Merge "Zen priority settings update" into oc-dr1-dev

am: 9dec71f7d7

Change-Id: I81e2609637537413bfd36ed9e0658d49d533a9cd
This commit is contained in:
Julia Reynolds
2017-07-20 14:23:51 +00:00
committed by android-build-merger
4 changed files with 58 additions and 10 deletions

View File

@@ -7181,6 +7181,9 @@
<!-- [CHAR LIMIT=50] Zen mode settings: Alarms option --> <!-- [CHAR LIMIT=50] Zen mode settings: Alarms option -->
<string name="zen_mode_alarms">Alarms</string> <string name="zen_mode_alarms">Alarms</string>
<!-- [CHAR LIMIT=50] Zen mode settings: Alarms option summary -->
<string name="zen_mode_alarms_summary">Alarms are always a priority and make sound</string>
<!-- [CHAR LIMIT=50] Zen mode settings: Reminders option --> <!-- [CHAR LIMIT=50] Zen mode settings: Reminders option -->
<string name="zen_mode_reminders">Reminders</string> <string name="zen_mode_reminders">Reminders</string>

View File

@@ -19,13 +19,6 @@
android:key="zen_mode_priority_settings" android:key="zen_mode_priority_settings"
android:title="@string/zen_mode_priority_settings_title" > android:title="@string/zen_mode_priority_settings_title" >
<!-- Alarms -->
<SwitchPreference
android:key="alarms"
android:title="@string/zen_mode_alarms"
android:enabled="false"
android:defaultValue="true"/>
<!-- Reminders --> <!-- Reminders -->
<SwitchPreference <SwitchPreference
android:key="reminders" android:key="reminders"
@@ -36,6 +29,14 @@
android:key="events" android:key="events"
android:title="@string/zen_mode_events"/> android:title="@string/zen_mode_events"/>
<!-- Alarms -->
<SwitchPreference
android:key="alarms"
android:title="@string/zen_mode_alarms"
android:summary="@string/zen_mode_alarms_summary"
android:enabled="false"
android:defaultValue="true"/>
<!-- Messages --> <!-- Messages -->
<DropDownPreference <DropDownPreference
android:key="messages" android:key="messages"

View File

@@ -356,10 +356,10 @@ public class ZenModeSettings extends ZenModeSettingsBase {
String getPrioritySettingSummary(Policy policy) { String getPrioritySettingSummary(Policy policy) {
String s = mContext.getString(R.string.zen_mode_alarms); String s = mContext.getString(R.string.zen_mode_alarms);
s = append(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_REMINDERS), s = prepend(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_EVENTS),
R.string.zen_mode_events);
s = prepend(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_REMINDERS),
R.string.zen_mode_reminders); R.string.zen_mode_reminders);
s = append(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_EVENTS),
R.string.zen_mode_events);
if (isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_MESSAGES)) { if (isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_MESSAGES)) {
if (policy.priorityMessageSenders == Policy.PRIORITY_SENDERS_ANY) { if (policy.priorityMessageSenders == Policy.PRIORITY_SENDERS_ANY) {
s = append(s, true, R.string.zen_mode_all_messages); s = append(s, true, R.string.zen_mode_all_messages);
@@ -424,6 +424,15 @@ public class ZenModeSettings extends ZenModeSettingsBase {
return s; return s;
} }
@VisibleForTesting
String prepend(String s, boolean condition, int resId) {
if (condition) {
return mContext.getString(
R.string.join_many_items_middle, mContext.getString(resId), s);
}
return s;
}
private boolean isCategoryEnabled(Policy policy, int categoryType) { private boolean isCategoryEnabled(Policy policy, int categoryType) {
return (policy.priorityCategories & categoryType) != 0; return (policy.priorityCategories & categoryType) != 0;
} }

View File

@@ -16,6 +16,7 @@
package com.android.settings.notification; package com.android.settings.notification;
import android.app.NotificationManager;
import android.content.Context; import android.content.Context;
import com.android.settings.R; import com.android.settings.R;
@@ -30,6 +31,8 @@ import org.robolectric.annotation.Config;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static junit.framework.Assert.assertTrue;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class ZenModeSettingsTest { public class ZenModeSettingsTest {
@@ -60,6 +63,38 @@ public class ZenModeSettingsTest {
final String result = mBuilder.append(original, true, R.string.zen_mode_alarms); final String result = mBuilder.append(original, true, R.string.zen_mode_alarms);
assertThat(result).contains(alarm); assertThat(result).contains(alarm);
assertThat(result).contains(original);
assertTrue(result.indexOf(original) < result.indexOf(alarm));
}
@Test
public void testPrepend() {
String original = mContext.getString(R.string.zen_mode_alarms);
String reminders = mContext.getString(R.string.zen_mode_reminders);
final String result = mBuilder.prepend(original, true, R.string.zen_mode_reminders);
assertThat(result).contains(original);
assertThat(result).contains(reminders);
assertTrue(result.indexOf(reminders) < result.indexOf(original));
}
@Test
public void testGetPrioritySettingSummary_sameOrderAsTargetPage() {
NotificationManager.Policy policy = new NotificationManager.Policy(
NotificationManager.Policy.PRIORITY_CATEGORY_EVENTS
| NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS,
0, 0);
final String result = mBuilder.getPrioritySettingSummary(policy);
String alarms = mContext.getString(R.string.zen_mode_alarms);
String reminders = mContext.getString(R.string.zen_mode_reminders);
String events = mContext.getString(R.string.zen_mode_events);
assertThat(result).contains(alarms);
assertThat(result).contains(reminders);
assertThat(result).contains(events);
assertTrue(result.indexOf(reminders) < result.indexOf(events) &&
result.indexOf(events) < result.indexOf(alarms));
} }
} }