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