Stop leaking Notifications when they change groupKeys.
If a Notification changes groups (either from one group to another, or gets a group key for the first time, which takes it out of its implicit singleton group) it should be removed from the old group in NotificationGroupManager's mGroupMap and re-inserted under the new one. Unfortunately we were passing the *new* notification in the oldNotification argument, so we would always attempt (and fail) to remove it from the *new* group, leaving a strong reference to the Notification inside mGroupMap under an obsolete group key. Bug: 26561365 Change-Id: Ie5cdceb4f843dbd363652e00fbc0f3ac6f6ef247
This commit is contained in:
@@ -1914,8 +1914,9 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
boolean shouldInterrupt = shouldInterrupt(entry, notification);
|
||||
boolean alertAgain = alertAgain(entry, n);
|
||||
|
||||
final StatusBarNotification oldNotification = entry.notification;
|
||||
entry.notification = notification;
|
||||
mGroupManager.onEntryUpdated(entry, entry.notification);
|
||||
mGroupManager.onEntryUpdated(entry, oldNotification);
|
||||
|
||||
boolean updateSuccessful = false;
|
||||
if (applyInPlace) {
|
||||
|
||||
Reference in New Issue
Block a user