Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 24813b0d authored by Dan Sandler's avatar Dan Sandler
Browse files

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
parent e41a6c8b
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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) {