Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc8316ad authored by Evan Laird's avatar Evan Laird
Browse files

[sb] use concurrenthashmap for mobile vm cache

To guard against multiple threads requesting the same view model at the
same time.

Bug: 387616100
Test: tests in statusbar/pipeline/mobile
Flag: EXEMPT bugfix
Change-Id: Ic066469707a8eac4d0ab8ea0b872ac68c98bab32
parent 9d5599fd
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.systemui.statusbar.pipeline.mobile.ui.MobileViewLogger
import com.android.systemui.statusbar.pipeline.mobile.ui.VerboseMobileViewLogger
import com.android.systemui.statusbar.pipeline.mobile.ui.view.ModernStatusBarMobileView
import com.android.systemui.statusbar.pipeline.shared.ConnectivityConstants
import java.util.concurrent.ConcurrentHashMap
import javax.inject.Inject
import kotlin.coroutines.CoroutineContext
import kotlinx.coroutines.CoroutineScope
@@ -62,7 +63,7 @@ constructor(
    @Background private val scope: CoroutineScope,
) {
    @VisibleForTesting
    val reuseCache = mutableMapOf<Int, Pair<MobileIconViewModel, CoroutineScope>>()
    val reuseCache = ConcurrentHashMap<Int, Pair<MobileIconViewModel, CoroutineScope>>()

    val subscriptionIdsFlow: StateFlow<List<Int>> =
        interactor.filteredSubscriptions