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 static com.android.systemui.statusbar.phone.StatusBar.SHOW_LOCKSCREEN_MEDIA_ARTWORK;
|
||||||
|
|
||||||
import android.annotation.MainThread;
|
import android.annotation.MainThread;
|
||||||
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.content.Context;
|
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.NotificationEntryListener;
|
||||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
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.BiometricUnlockController;
|
||||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||||
import com.android.systemui.statusbar.phone.LockscreenWallpaper;
|
import com.android.systemui.statusbar.phone.LockscreenWallpaper;
|
||||||
@@ -234,8 +236,17 @@ public class NotificationMediaManager implements Dumpable {
|
|||||||
NotificationVisibility visibility,
|
NotificationVisibility visibility,
|
||||||
boolean removedByUser,
|
boolean removedByUser,
|
||||||
int reason) {
|
int reason) {
|
||||||
onNotificationRemoved(entry.getKey());
|
removeEntry(entry);
|
||||||
mediaDataManager.onNotificationRemoved(entry.getKey());
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 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);
|
mPropertiesChangedListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void removeEntry(NotificationEntry entry) {
|
||||||
|
onNotificationRemoved(entry.getKey());
|
||||||
|
mMediaDataManager.onNotificationRemoved(entry.getKey());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a state should be considered actively playing
|
* Check if a state should be considered actively playing
|
||||||
* @param state a PlaybackState
|
* @param state a PlaybackState
|
||||||
|
|||||||
Reference in New Issue
Block a user