Loading src/com/android/settings/notification/BadgePreferenceController.java +7 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.notification; import static android.provider.Settings.Secure.NOTIFICATION_BADGING; import android.app.NotificationChannel; import android.content.Context; import android.provider.Settings; import android.support.v7.preference.Preference; Loading Loading @@ -55,8 +56,12 @@ public class BadgePreferenceController extends NotificationPreferenceController NOTIFICATION_BADGING, SYSTEM_WIDE_ON) == SYSTEM_WIDE_OFF) { return false; } if (mChannel != null && !mAppRow.showBadge) { return false; if (mChannel != null) { if (NotificationChannel.DEFAULT_CHANNEL_ID.equals(mChannel.getId())) { return true; } else { return mAppRow.showBadge; } } return true; } Loading tests/robotests/src/com/android/settings/notification/BadgePreferenceControllerTest.java +27 −2 Original line number Diff line number Diff line Loading @@ -133,6 +133,19 @@ public class BadgePreferenceControllerTest { assertTrue(mController.isAvailable()); } @Test public void testIsAvailable_defaultChannel() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); appRow.showBadge = true; NotificationChannel channel = mock(NotificationChannel.class); when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH); when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID); mController.onResume(appRow, channel, null, null); Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BADGING, 1); assertTrue(mController.isAvailable()); } @Test public void testIsAvailable_channel() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); Loading @@ -145,12 +158,24 @@ public class BadgePreferenceControllerTest { assertTrue(mController.isAvailable()); } @Test public void testIsAvailable_channelAppOff() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); appRow.showBadge = false; NotificationChannel channel = mock(NotificationChannel.class); when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH); mController.onResume(appRow, channel, null, null); Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BADGING, 1); assertFalse(mController.isAvailable()); } @Test public void testUpdateState_disabledByAdmin() { NotificationChannel channel = mock(NotificationChannel.class); when(channel.getId()).thenReturn("something"); mController.onResume( new NotificationBackend.AppRow(), channel, null, mock(RestrictedLockUtils.EnforcedAdmin.class)); mController.onResume(new NotificationBackend.AppRow(), channel, null, mock(RestrictedLockUtils.EnforcedAdmin.class)); Preference pref = new RestrictedSwitchPreference(mContext); mController.updateState(pref); Loading Loading
src/com/android/settings/notification/BadgePreferenceController.java +7 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.notification; import static android.provider.Settings.Secure.NOTIFICATION_BADGING; import android.app.NotificationChannel; import android.content.Context; import android.provider.Settings; import android.support.v7.preference.Preference; Loading Loading @@ -55,8 +56,12 @@ public class BadgePreferenceController extends NotificationPreferenceController NOTIFICATION_BADGING, SYSTEM_WIDE_ON) == SYSTEM_WIDE_OFF) { return false; } if (mChannel != null && !mAppRow.showBadge) { return false; if (mChannel != null) { if (NotificationChannel.DEFAULT_CHANNEL_ID.equals(mChannel.getId())) { return true; } else { return mAppRow.showBadge; } } return true; } Loading
tests/robotests/src/com/android/settings/notification/BadgePreferenceControllerTest.java +27 −2 Original line number Diff line number Diff line Loading @@ -133,6 +133,19 @@ public class BadgePreferenceControllerTest { assertTrue(mController.isAvailable()); } @Test public void testIsAvailable_defaultChannel() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); appRow.showBadge = true; NotificationChannel channel = mock(NotificationChannel.class); when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH); when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID); mController.onResume(appRow, channel, null, null); Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BADGING, 1); assertTrue(mController.isAvailable()); } @Test public void testIsAvailable_channel() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); Loading @@ -145,12 +158,24 @@ public class BadgePreferenceControllerTest { assertTrue(mController.isAvailable()); } @Test public void testIsAvailable_channelAppOff() { NotificationBackend.AppRow appRow = new NotificationBackend.AppRow(); appRow.showBadge = false; NotificationChannel channel = mock(NotificationChannel.class); when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH); mController.onResume(appRow, channel, null, null); Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BADGING, 1); assertFalse(mController.isAvailable()); } @Test public void testUpdateState_disabledByAdmin() { NotificationChannel channel = mock(NotificationChannel.class); when(channel.getId()).thenReturn("something"); mController.onResume( new NotificationBackend.AppRow(), channel, null, mock(RestrictedLockUtils.EnforcedAdmin.class)); mController.onResume(new NotificationBackend.AppRow(), channel, null, mock(RestrictedLockUtils.EnforcedAdmin.class)); Preference pref = new RestrictedSwitchPreference(mContext); mController.updateState(pref); Loading