Merge "[Sb refactor] Ensure config is fetched on flow start" into udc-dev
This commit is contained in:
@@ -233,6 +233,7 @@ constructor(
|
|||||||
|
|
||||||
override val defaultDataSubRatConfig: StateFlow<Config> =
|
override val defaultDataSubRatConfig: StateFlow<Config> =
|
||||||
merge(defaultDataSubIdChangeEvent, carrierConfigChangedEvent)
|
merge(defaultDataSubIdChangeEvent, carrierConfigChangedEvent)
|
||||||
|
.onStart { emit(Unit) }
|
||||||
.mapLatest { Config.readConfig(context) }
|
.mapLatest { Config.readConfig(context) }
|
||||||
.distinctUntilChanged()
|
.distinctUntilChanged()
|
||||||
.onEach { logger.logDefaultDataSubRatConfig(it) }
|
.onEach { logger.logDefaultDataSubRatConfig(it) }
|
||||||
|
|||||||
@@ -1111,6 +1111,33 @@ class MobileConnectionsRepositoryTest : SysuiTestCase() {
|
|||||||
assertThat(latest!!.showAtLeast3G).isTrue()
|
assertThat(latest!!.showAtLeast3G).isTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun carrierConfig_initialValueIsFetched() =
|
||||||
|
testScope.runTest {
|
||||||
|
|
||||||
|
// Value starts out false
|
||||||
|
assertThat(underTest.defaultDataSubRatConfig.value.showAtLeast3G).isFalse()
|
||||||
|
|
||||||
|
overrideResource(R.bool.config_showMin3G, true)
|
||||||
|
val configFromContext = MobileMappings.Config.readConfig(context)
|
||||||
|
assertThat(configFromContext.showAtLeast3G).isTrue()
|
||||||
|
|
||||||
|
// WHEN the change event is fired
|
||||||
|
fakeBroadcastDispatcher.registeredReceivers.forEach { receiver ->
|
||||||
|
receiver.onReceive(
|
||||||
|
context,
|
||||||
|
Intent(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// WHEN collection starts AFTER the broadcast is sent out
|
||||||
|
val latest by collectLastValue(underTest.defaultDataSubRatConfig)
|
||||||
|
|
||||||
|
// THEN the config has the updated value
|
||||||
|
assertThat(latest!!.areEqual(configFromContext)).isTrue()
|
||||||
|
assertThat(latest!!.showAtLeast3G).isTrue()
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activeDataChange_inSameGroup_emitsUnit() =
|
fun activeDataChange_inSameGroup_emitsUnit() =
|
||||||
testScope.runTest {
|
testScope.runTest {
|
||||||
|
|||||||
Reference in New Issue
Block a user