diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt b/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt index 5052386e65e1a..d6b6660b778cf 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt @@ -193,12 +193,15 @@ class MediaDataManager( private fun clearData() { // Called on user change. Remove all current MediaData objects and inform listeners val listenersCopy = listeners.toSet() - mediaEntries.forEach { + val keyCopy = mediaEntries.keys.toMutableList() + // Clear the list first, to make sure callbacks from listeners if we have any entries + // are up to date + mediaEntries.clear() + keyCopy.forEach { listenersCopy.forEach { listener -> - listener.onMediaDataRemoved(it.key) + listener.onMediaDataRemoved(it) } } - mediaEntries.clear() } private fun removeAllForPackage(packageName: String) {