Media - Handle cleanup of pending notification entries am: 65f41278ee
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12514147 Change-Id: I343232605b228c320d1af81f05c9dc2f8035cccf
This commit is contained in:
@@ -21,6 +21,7 @@ import static com.android.systemui.statusbar.phone.StatusBar.ENABLE_LOCKSCREEN_W
|
||||
import static com.android.systemui.statusbar.phone.StatusBar.SHOW_LOCKSCREEN_MEDIA_ARTWORK;
|
||||
|
||||
import android.annotation.MainThread;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.app.Notification;
|
||||
import android.content.Context;
|
||||
@@ -57,6 +58,7 @@ import com.android.systemui.statusbar.dagger.StatusBarModule;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryListener;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
|
||||
import com.android.systemui.statusbar.phone.BiometricUnlockController;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.phone.LockscreenWallpaper;
|
||||
@@ -234,8 +236,17 @@ public class NotificationMediaManager implements Dumpable {
|
||||
NotificationVisibility visibility,
|
||||
boolean removedByUser,
|
||||
int reason) {
|
||||
onNotificationRemoved(entry.getKey());
|
||||
mediaDataManager.onNotificationRemoved(entry.getKey());
|
||||
removeEntry(entry);
|
||||
}
|
||||
});
|
||||
|
||||
// Pending entries are never inflated, and will never generate a call to onEntryRemoved().
|
||||
// This can happen when notifications are added and canceled before inflation. Add this
|
||||
// separate listener for cleanup, since media inflation occurs onPendingEntryAdded().
|
||||
notificationEntryManager.addCollectionListener(new NotifCollectionListener() {
|
||||
@Override
|
||||
public void onEntryCleanUp(@NonNull NotificationEntry entry) {
|
||||
removeEntry(entry);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -248,6 +259,11 @@ public class NotificationMediaManager implements Dumpable {
|
||||
mPropertiesChangedListener);
|
||||
}
|
||||
|
||||
private void removeEntry(NotificationEntry entry) {
|
||||
onNotificationRemoved(entry.getKey());
|
||||
mMediaDataManager.onNotificationRemoved(entry.getKey());
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a state should be considered actively playing
|
||||
* @param state a PlaybackState
|
||||
|
||||
Reference in New Issue
Block a user