diff options
| author | 2025-01-10 10:34:00 -0800 | |
|---|---|---|
| committer | 2025-01-10 10:34:00 -0800 | |
| commit | d1765c39fb04470d4297c110663fe0ae6eb7e4eb (patch) | |
| tree | 6dde9c1538854ea47014a4a4fb8ab9affa64fe9e | |
| parent | e16f8993f5887b24afa52c7885974dd99f206e2f (diff) | |
| parent | bc8316ad31ed17ac994df7b7ce4260faf5c64958 (diff) | |
Merge changes Ic0664697,Ief318002 into main
* changes:
[sb] use concurrenthashmap for mobile vm cache
[sb] Use a threadsafe hashmap for the repo cache
2 files changed, 5 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt index 589db1690d3f..b762751ecbb4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt @@ -58,6 +58,7 @@ import com.android.systemui.util.kotlin.pairwise import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow import java.io.PrintWriter import java.lang.ref.WeakReference +import java.util.concurrent.ConcurrentHashMap import javax.inject.Inject import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope @@ -108,9 +109,8 @@ constructor( ) : MobileConnectionsRepository, Dumpable { // TODO(b/333912012): for now, we are never invalidating the cache. We can do better though - private var subIdRepositoryCache: - MutableMap<Int, WeakReference<FullMobileConnectionRepository>> = - mutableMapOf() + private var subIdRepositoryCache = + ConcurrentHashMap<Int, WeakReference<FullMobileConnectionRepository>>() private val defaultNetworkName = NetworkNameModel.Default( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModel.kt index 2cd01170b5ef..67fdb3ae7681 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/ui/viewmodel/MobileIconsViewModel.kt @@ -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 |