diff options
| -rw-r--r-- | res/values/strings.xml | 3 | ||||
| -rw-r--r-- | res/xml/zen_mode_priority_settings.xml | 15 | ||||
| -rw-r--r-- | src/com/android/settings/notification/ZenModeSettings.java | 15 | ||||
| -rw-r--r-- | tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java | 35 |
4 files changed, 58 insertions, 10 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index c2b90de1b0..9ac1912db1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -7181,6 +7181,9 @@ <!-- [CHAR LIMIT=50] Zen mode settings: Alarms option --> <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 --> <string name="zen_mode_reminders">Reminders</string> diff --git a/res/xml/zen_mode_priority_settings.xml b/res/xml/zen_mode_priority_settings.xml index e2b8f48a07..e4f8f5e0f6 100644 --- a/res/xml/zen_mode_priority_settings.xml +++ b/res/xml/zen_mode_priority_settings.xml @@ -19,13 +19,6 @@ android:key="zen_mode_priority_settings" 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 --> <SwitchPreference android:key="reminders" @@ -36,6 +29,14 @@ android:key="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 --> <DropDownPreference android:key="messages" diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java index 1061b43718..297789041c 100644 --- a/src/com/android/settings/notification/ZenModeSettings.java +++ b/src/com/android/settings/notification/ZenModeSettings.java @@ -356,10 +356,10 @@ public class ZenModeSettings extends ZenModeSettingsBase { String getPrioritySettingSummary(Policy policy) { 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); - s = append(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_EVENTS), - R.string.zen_mode_events); if (isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_MESSAGES)) { if (policy.priorityMessageSenders == Policy.PRIORITY_SENDERS_ANY) { s = append(s, true, R.string.zen_mode_all_messages); @@ -424,6 +424,15 @@ public class ZenModeSettings extends ZenModeSettingsBase { 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) { return (policy.priorityCategories & categoryType) != 0; } diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java index 8ac482b834..716e2b274e 100644 --- a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java +++ b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java @@ -16,6 +16,7 @@ package com.android.settings.notification; +import android.app.NotificationManager; import android.content.Context; import com.android.settings.R; @@ -30,6 +31,8 @@ import org.robolectric.annotation.Config; import static com.google.common.truth.Truth.assertThat; +import static junit.framework.Assert.assertTrue; + @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class ZenModeSettingsTest { @@ -60,6 +63,38 @@ public class ZenModeSettingsTest { final String result = mBuilder.append(original, true, R.string.zen_mode_alarms); 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)); } } |
