Merge "Zen priority settings update" into oc-dr1-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ec21ff8..100d295 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7166,6 +7166,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 e2b8f48..e4f8f5e 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 5e815f8..59e588d 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -358,10 +358,10 @@
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);
@@ -426,6 +426,15 @@
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 8ac482b..716e2b2 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 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 @@
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));
}
}