diff options
3 files changed, 24 insertions, 3 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt index 5a77f3d40e82..6efb9c77c131 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt @@ -885,6 +885,20 @@ class MobileIconsInteractorTest : SysuiTestCase() { assertThat(latest).isFalse() } + @Test + fun defaultDataSubId_tracksRepo() = + kosmos.runTest { + val latest by collectLastValue(underTest.defaultDataSubId) + + connectionsRepository.defaultDataSubId.value = 1 + + assertThat(latest).isEqualTo(1) + + connectionsRepository.defaultDataSubId.value = 2 + + assertThat(latest).isEqualTo(2) + } + /** * Convenience method for creating a pair of subscriptions to test the filteredSubscriptions * flow. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractor.kt index 28fff4e68935..0b3c491e56fa 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractor.kt @@ -71,6 +71,9 @@ interface MobileIconsInteractor { /** List of subscriptions, potentially filtered for CBRS */ val filteredSubscriptions: Flow<List<SubscriptionModel>> + /** Subscription ID of the current default data subscription */ + val defaultDataSubId: Flow<Int> + /** * The current list of [MobileIconInteractor]s associated with the current list of * [filteredSubscriptions] @@ -82,7 +85,7 @@ interface MobileIconsInteractor { /** * Flow providing a reference to the Interactor for the active data subId. This represents the - * [MobileConnectionInteractor] responsible for the active data connection, if any. + * [MobileIconInteractor] responsible for the active data connection, if any. */ val activeDataIconInteractor: StateFlow<MobileIconInteractor?> @@ -280,6 +283,8 @@ constructor( } } + override val defaultDataSubId = mobileConnectionsRepo.defaultDataSubId + override val icons = filteredSubscriptions .mapLatest { subs -> @@ -321,7 +326,7 @@ constructor( mobileConnectionsRepo.defaultMobileIconMapping.stateIn( scope, SharingStarted.WhileSubscribed(), - initialValue = mapOf() + initialValue = mapOf(), ) override val alwaysShowDataRatIcon: StateFlow<Boolean> = @@ -350,7 +355,7 @@ constructor( mobileConnectionsRepo.defaultMobileIconGroup.stateIn( scope, SharingStarted.WhileSubscribed(), - initialValue = TelephonyIcons.G + initialValue = TelephonyIcons.G, ) /** diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/FakeMobileIconsInteractor.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/FakeMobileIconsInteractor.kt index 3a4bf8e48d33..652d105f7c92 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/FakeMobileIconsInteractor.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/FakeMobileIconsInteractor.kt @@ -55,6 +55,8 @@ class FakeMobileIconsInteractor( override val filteredSubscriptions = MutableStateFlow<List<SubscriptionModel>>(listOf()) + override val defaultDataSubId = MutableStateFlow(DEFAULT_DATA_SUB_ID) + private val _activeDataConnectionHasDataEnabled = MutableStateFlow(false) override val activeDataConnectionHasDataEnabled = _activeDataConnectionHasDataEnabled |