diff options
author | 2020-05-27 19:45:44 +0000 | |
---|---|---|
committer | 2020-05-27 19:45:44 +0000 | |
commit | 044e426b0092d2ffa73eaa5eb56215a0405793a1 (patch) | |
tree | 55be682f24114ba93d30f45b65c402f8aeb18c73 | |
parent | 2155f1a378f200aafaf54143ce72dafc23b4551d (diff) | |
parent | 34d90f46090dc5a4afb0986289c12c61ff156d10 (diff) |
Merge "Fix CME crashes" into rvc-dev am: 34d90f4609
Change-Id: Ib85bb53a376adccc949dfe3df7bb4849b940087e
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt b/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt index 009f5494cefe..cf7fbfa9461e 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt @@ -36,6 +36,7 @@ import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.statusbar.notification.MediaNotificationProcessor import com.android.systemui.statusbar.notification.row.HybridGroupManager +import com.android.systemui.util.Assert import com.android.systemui.util.Utils import java.io.IOException import java.util.concurrent.Executor @@ -85,6 +86,7 @@ class MediaDataManager @Inject constructor( fun onNotificationAdded(key: String, sbn: StatusBarNotification) { if (Utils.useQsMediaPlayer(context) && isMediaNotification(sbn)) { + Assert.isMainThread() if (!mediaEntries.containsKey(key)) { mediaEntries.put(key, LOADING) } @@ -269,19 +271,23 @@ class MediaDataManager @Inject constructor( } fun onMediaDataLoaded(key: String, data: MediaData) { + Assert.isMainThread() if (mediaEntries.containsKey(key)) { // Otherwise this was removed already mediaEntries.put(key, data) - listeners.forEach { + val listenersCopy = listeners.toSet() + listenersCopy.forEach { it.onMediaDataLoaded(key, data) } } } fun onNotificationRemoved(key: String) { + Assert.isMainThread() val removed = mediaEntries.remove(key) if (removed != null) { - listeners.forEach { + val listenersCopy = listeners.toSet() + listenersCopy.forEach { it.onMediaDataRemoved(key) } } |