Merge "DO NOT MERGE: Don't let NotificationEntryManager keep around old RankingMaps" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-12-11 21:30:13 +00:00
committed by Android (Google) Code Review
2 changed files with 4 additions and 4 deletions

View File

@@ -85,7 +85,6 @@ public class NotificationEntryManager implements
private NotificationRowBinder mNotificationRowBinder; private NotificationRowBinder mNotificationRowBinder;
private NotificationPresenter mPresenter; private NotificationPresenter mPresenter;
private NotificationListenerService.RankingMap mLatestRankingMap;
@VisibleForTesting @VisibleForTesting
protected NotificationData mNotificationData; protected NotificationData mNotificationData;
@@ -163,8 +162,7 @@ public class NotificationEntryManager implements
/** Adds a {@link NotificationLifetimeExtender}. */ /** Adds a {@link NotificationLifetimeExtender}. */
public void addNotificationLifetimeExtender(NotificationLifetimeExtender extender) { public void addNotificationLifetimeExtender(NotificationLifetimeExtender extender) {
mNotificationLifetimeExtenders.add(extender); mNotificationLifetimeExtenders.add(extender);
extender.setCallback(key -> removeNotification(key, mLatestRankingMap, extender.setCallback(key -> removeNotification(key, null, UNDEFINED_DISMISS_REASON));
UNDEFINED_DISMISS_REASON));
} }
public NotificationData getNotificationData() { public NotificationData getNotificationData() {
@@ -302,7 +300,6 @@ public class NotificationEntryManager implements
if (!forceRemove && !entryDismissed) { if (!forceRemove && !entryDismissed) {
for (NotificationLifetimeExtender extender : mNotificationLifetimeExtenders) { for (NotificationLifetimeExtender extender : mNotificationLifetimeExtenders) {
if (extender.shouldExtendLifetime(entry)) { if (extender.shouldExtendLifetime(entry)) {
mLatestRankingMap = ranking;
extendLifetime(entry, extender); extendLifetime(entry, extender);
lifetimeExtended = true; lifetimeExtended = true;
break; break;

View File

@@ -203,6 +203,9 @@ public class NotificationData {
removed = mEntries.remove(key); removed = mEntries.remove(key);
} }
if (removed == null) return null; if (removed == null) return null;
// NEM may pass us a null ranking map if removing a lifetime-extended notification,
// so use the most recent ranking
if (ranking == null) ranking = mRankingMap;
mGroupManager.onEntryRemoved(removed); mGroupManager.onEntryRemoved(removed);
updateRankingAndSort(ranking); updateRankingAndSort(ranking);
return removed; return removed;