From d80ddbd82b4f1333b2f8be62841c214d5b6fa0db Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Fri, 11 Oct 2019 13:06:55 -0400 Subject: [PATCH] Fix crash on clicking dismissed notifications Read the channelid from the notification vs RankingMap for historical notifications Test: manual Fixes: 142531668 Change-Id: Ia7b48e6bcee3995286eea2e2f5f3b6bc4cff98e2 --- .../android/settings/notification/NotificationStation.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/notification/NotificationStation.java b/src/com/android/settings/notification/NotificationStation.java index c2c8b6076e5..754dfa29261 100644 --- a/src/com/android/settings/notification/NotificationStation.java +++ b/src/com/android/settings/notification/NotificationStation.java @@ -79,6 +79,9 @@ public class NotificationStation extends SettingsPreferenceFragment { private static class HistoricalNotificationInfo { public String key; public NotificationChannel channel; + // Historical notifications don't have Ranking information. for most fields that's ok + // but we need channel id to launch settings. + public String channelId; public String pkg; public Drawable pkgicon; public CharSequence pkgname; @@ -416,6 +419,7 @@ public class NotificationStation extends SettingsPreferenceFragment { info.timestamp = sbn.getPostTime(); info.priority = n.priority; info.key = sbn.getKey(); + info.channelId = sbn.getNotification().getChannelId(); info.active = active; info.notificationExtra = generateExtraText(sbn, info); @@ -724,7 +728,8 @@ public class NotificationStation extends SettingsPreferenceFragment { public void performClick() { Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS) .putExtra(EXTRA_APP_PACKAGE, mInfo.pkg) - .putExtra(EXTRA_CHANNEL_ID, mInfo.channel.getId()); + .putExtra(EXTRA_CHANNEL_ID, + mInfo.channel != null ? mInfo.channel.getId() : mInfo.channelId); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); getContext().startActivity(intent); }