summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Beth Thibodeau <ethibodeau@google.com> 2020-05-27 19:45:44 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-05-27 19:45:44 +0000
commit044e426b0092d2ffa73eaa5eb56215a0405793a1 (patch)
tree55be682f24114ba93d30f45b65c402f8aeb18c73
parent2155f1a378f200aafaf54143ce72dafc23b4551d (diff)
parent34d90f46090dc5a4afb0986289c12c61ff156d10 (diff)
Merge "Fix CME crashes" into rvc-dev am: 34d90f4609
Change-Id: Ib85bb53a376adccc949dfe3df7bb4849b940087e
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt10
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)
}
}