diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java index b846aa08c33b4..eca4c8082dfea 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java @@ -316,7 +316,7 @@ public abstract class AlertingNotificationManager implements NotificationLifetim * of the timer and should be removed externally. * @return true if the notification is sticky */ - protected boolean isSticky() { + public boolean isSticky() { return false; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java index 3dcf7ed674c7f..e05ba12781c46 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java @@ -428,7 +428,7 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable, @Override - protected boolean isSticky() { + public boolean isSticky() { return super.isSticky() || mMenuShownPinned; } @@ -568,6 +568,17 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable, } mKeysToRemoveWhenLeavingKeyguard.clear(); } + if (wasKeyguard && !isKeyguard && mBypassController.getBypassEnabled()) { + ArrayList keysToRemove = new ArrayList<>(); + for (AlertEntry entry : mAlertEntries.values()) { + if (entry.mEntry != null && entry.mEntry.isBubble() && !entry.isSticky()) { + keysToRemove.add(entry.mEntry.getKey()); + } + } + for (String key : keysToRemove) { + removeAlertEntry(key); + } + } } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java index 0d5a149608509..07de388598b75 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java @@ -368,7 +368,7 @@ public abstract class HeadsUpManager extends AlertingNotificationManager { protected boolean expanded; @Override - protected boolean isSticky() { + public boolean isSticky() { return (mEntry.isRowPinned() && expanded) || remoteInputActive || hasFullScreenIntent(mEntry); }