Merge "Fix NPE" into sc-dev

This commit is contained in:
Julia Reynolds
2021-02-03 04:18:57 +00:00
committed by Android (Google) Code Review
2 changed files with 26 additions and 2 deletions

View File

@@ -1419,8 +1419,10 @@ public class PreferencesHelper implements RankingConfig {
conversation.setPkg(p.pkg);
conversation.setUid(p.uid);
conversation.setNotificationChannel(nc);
conversation.setParentChannelLabel(
p.channels.get(nc.getParentChannelId()).getName());
NotificationChannel parent = p.channels.get(nc.getParentChannelId());
conversation.setParentChannelLabel(parent == null
? null
: parent.getName());
boolean blockedByGroup = false;
if (nc.getGroup() != null) {
NotificationChannelGroup group = p.groups.get(nc.getGroup());

View File

@@ -3536,6 +3536,28 @@ public class PreferencesHelperTest extends UiServiceTestCase {
assertFalse(conversationWrapperContainsChannel(convos, channel2));
}
@Test
public void testGetConversations_parentDeleted() {
String convoId = "convo";
NotificationChannel messages =
new NotificationChannel("messages", "Messages", IMPORTANCE_DEFAULT);
mHelper.createNotificationChannel(PKG_O, UID_O, messages, true, false);
NotificationChannel channel =
new NotificationChannel("A person msgs", "messages from A", IMPORTANCE_DEFAULT);
channel.setConversationId(messages.getId(), convoId);
channel.setImportantConversation(true);
mHelper.createNotificationChannel(PKG_O, UID_O, channel, true, false);
mHelper.permanentlyDeleteNotificationChannel(PKG_O, UID_O, "messages");
List<ConversationChannelWrapper> convos =
mHelper.getConversations(IntArray.wrap(new int[] {0}), true);
assertEquals(1, convos.size());
assertTrue(conversationWrapperContainsChannel(convos, channel));
}
private boolean conversationWrapperContainsChannel(List<ConversationChannelWrapper> list,
NotificationChannel expected) {
for (ConversationChannelWrapper ccw : list) {