diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4be267fec4a..fbc570dea56 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6320,7 +6320,7 @@
- Do Not Disturb
+ Do Not Disturb preferences
Priority only allows
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 0aaaff1009c..d288a9dec37 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -56,38 +56,34 @@
android:title="@string/zen_mode_settings_title"
settings:useAdminDisabledSummary="true"
settings:keywords="@string/keywords_sounds_and_notifications_interruptions"
- android:fragment="com.android.settings.notification.ZenModeSettings" />
+ android:fragment="com.android.settings.notification.ZenModeSettings"
+ settings:allowDividerAbove="true" />
-
+
+
-
-
+
+
-
-
-
-
-
-
-
+
+
+ settings:useAdminDisabledSummary="true"
+ settings:allowDividerAbove="true" >
ruleMap =
+ NotificationManager.from(mContext).getAutomaticZenRules();
+ if (ruleMap != null) {
+ for (Entry ruleEntry : ruleMap.entrySet()) {
+ final AutomaticZenRule rule = ruleEntry.getValue();
+ if (rule != null && rule.isEnabled()) {
+ count++;
+ }
+ }
+ }
+ return count;
+ }
+
@VisibleForTesting
String append(String s, boolean condition, int resId) {
if (condition) {
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
index a31fb5ec12c..685390e9164 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
@@ -21,6 +21,7 @@ import android.app.NotificationManager.Policy;
import android.content.Context;
import android.support.v7.preference.Preference;
+import com.android.settings.R;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
@@ -30,11 +31,14 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -42,8 +46,6 @@ import static org.mockito.Mockito.when;
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class ZenModePreferenceControllerTest {
- @Mock
- private Context mContext;
@Mock
private Preference mPreference;
@Mock
@@ -51,15 +53,21 @@ public class ZenModePreferenceControllerTest {
@Mock
private Policy mPolicy;
+ private Context mContext;
private ZenModePreferenceController mController;
+ private ZenModeSettings.SummaryBuilder mSummaryBuilder;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ ShadowApplication shadowApplication = ShadowApplication.getInstance();
+ shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
+ mContext = shadowApplication.getApplicationContext();
mController = new ZenModePreferenceController(mContext);
- when(mContext.getSystemService(Context.NOTIFICATION_SERVICE))
- .thenReturn(mNotificationManager);
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
+ mSummaryBuilder = spy(new ZenModeSettings.SummaryBuilder(mContext));
+ ReflectionHelpers.setField(mController, "mSummaryBuilder", mSummaryBuilder);
+ doReturn(0).when(mSummaryBuilder).getEnabledAutomaticRulesCount();
}
@Test
@@ -72,8 +80,12 @@ public class ZenModePreferenceControllerTest {
when(mPreference.isEnabled()).thenReturn(true);
mController.updateState(mPreference);
+ verify(mPreference).setSummary(mContext.getString(R.string.zen_mode_settings_summary_off));
- verify(mPreference).setSummary(anyString());
+ doReturn(1).when(mSummaryBuilder).getEnabledAutomaticRulesCount();
+ mController.updateState(mPreference);
+ verify(mPreference).setSummary(mContext.getResources().getQuantityString(
+ R.plurals.zen_mode_settings_summary_on, 1, 1));
}
@Test