From 93aa03a0db54439f02c2945f4ed66297a2f33949 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Tue, 22 Jun 2021 13:30:37 -0400 Subject: [PATCH] Fix NPE when deleting old zen rules Test: manually revoke access for a DND app that has rules created before and after b/189332346 Bug: 191773100 Bug: 189332346 Bug: 235823407 Change-Id: I069fcc124af24227fa50b61d4fc55d6dadc7a20b Merged-In: I069fcc124af24227fa50b61d4fc55d6dadc7a20b (cherry picked from commit b4fe101e5e609f3f24ec471a35a7e0e96a416834) --- .../com/android/server/notification/ZenModeHelper.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index fc536a985d344..a5d8462032076 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -405,7 +405,14 @@ public class ZenModeHelper { newConfig = mConfig.copy(); for (int i = newConfig.automaticRules.size() - 1; i >= 0; i--) { ZenRule rule = newConfig.automaticRules.get(newConfig.automaticRules.keyAt(i)); - if (rule.pkg.equals(packageName) && canManageAutomaticZenRule(rule)) { + String pkg = rule.pkg != null + ? rule.pkg + : (rule.component != null) + ? rule.component.getPackageName() + : (rule.configurationActivity != null) + ? rule.configurationActivity.getPackageName() + : null; + if (Objects.equals(pkg, packageName) && canManageAutomaticZenRule(rule)) { newConfig.automaticRules.removeAt(i); } }