Use isGroupBlocked to check for blocked notifGroup

Avoids null pointer exception

Test: atest PreferencesHelperTest
Change-Id: Ic94b6f1f8768d4cb4afcdef8ec03165e6523188e
Fixes: 119798101
This commit is contained in:
Beverly
2018-11-20 09:56:31 -05:00
parent 0479cde2b7
commit 4f7b53dee7
2 changed files with 20 additions and 4 deletions

View File

@@ -1015,10 +1015,8 @@ public class PreferencesHelper implements RankingConfig {
private boolean channelIsLive(PackagePreferences pkgPref, NotificationChannel channel) {
// Channel is in a group that's blocked
if (!TextUtils.isEmpty(channel.getGroup())) {
if (pkgPref.groups.get(channel.getGroup()).isBlocked()) {
return false;
}
if (isGroupBlocked(pkgPref.pkg, pkgPref.uid, channel.getGroup())) {
return false;
}
// Channel is deleted or is blocked

View File

@@ -1089,6 +1089,24 @@ public class PreferencesHelperTest extends UiServiceTestCase {
assertEquals(0, mHelper.getBlockedChannelCount("pkg2", UID_O));
}
@Test
public void testUpdateChannelsBypassingDnd_onUserSwitch_onUserUnlocked() throws Exception {
int user = USER.getIdentifier();
NotificationChannelGroup ncg = new NotificationChannelGroup("group1", "name1");
NotificationChannel channel1 = new NotificationChannel("id1", "name1",
NotificationManager.IMPORTANCE_MAX);
channel1.setBypassDnd(true);
channel1.setGroup(ncg.getId());
// channel is associated with a group, then group is deleted
mHelper.createNotificationChannelGroup(PKG_N_MR1, user, ncg, /* fromTargetApp */ true);
mHelper.createNotificationChannel(PKG_N_MR1, user, channel1, true, /*has DND access*/ true);
mHelper.deleteNotificationChannelGroup(PKG_N_MR1, user, ncg.getId());
mHelper.onUserSwitched(user);
mHelper.onUserUnlocked(user);
}
@Test
public void testGetChannelsBypassingDndCount_noChannelsBypassing() throws Exception {
assertEquals(0, mHelper.getNotificationChannelsBypassingDnd(PKG_N_MR1,