diff options
3 files changed, 54 insertions, 38 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/MobileInputLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/MobileInputLogger.kt index 4f702d7534cb..d4b2dbff078b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/MobileInputLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/MobileInputLogger.kt @@ -102,6 +102,15 @@ constructor( ) } + fun logOnCarrierRoamingNtnModeChanged(active: Boolean) { + buffer.log( + TAG, + LogLevel.INFO, + { bool1 = active }, + { "onCarrierRoamingNtnModeChanged: $bool1" } + ) + } + fun logOnDisplayInfoChanged(displayInfo: TelephonyDisplayInfo, subId: Int) { buffer.log( TAG, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryImpl.kt index b3885d247949..6803a9dc06fd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryImpl.kt @@ -142,29 +142,23 @@ class MobileConnectionRepositoryImpl( val callback = object : TelephonyCallback(), - TelephonyCallback.ServiceStateListener, - TelephonyCallback.SignalStrengthsListener, - TelephonyCallback.DataConnectionStateListener, - TelephonyCallback.DataActivityListener, TelephonyCallback.CarrierNetworkListener, + TelephonyCallback.CarrierRoamingNtnModeListener, + TelephonyCallback.DataActivityListener, + TelephonyCallback.DataConnectionStateListener, + TelephonyCallback.DataEnabledListener, TelephonyCallback.DisplayInfoListener, - TelephonyCallback.DataEnabledListener { - override fun onServiceStateChanged(serviceState: ServiceState) { - logger.logOnServiceStateChanged(serviceState, subId) - trySend(CallbackEvent.OnServiceStateChanged(serviceState)) - } + TelephonyCallback.ServiceStateListener, + TelephonyCallback.SignalStrengthsListener { - override fun onSignalStrengthsChanged(signalStrength: SignalStrength) { - logger.logOnSignalStrengthsChanged(signalStrength, subId) - trySend(CallbackEvent.OnSignalStrengthChanged(signalStrength)) + override fun onCarrierNetworkChange(active: Boolean) { + logger.logOnCarrierNetworkChange(active, subId) + trySend(CallbackEvent.OnCarrierNetworkChange(active)) } - override fun onDataConnectionStateChanged( - dataState: Int, - networkType: Int - ) { - logger.logOnDataConnectionStateChanged(dataState, networkType, subId) - trySend(CallbackEvent.OnDataConnectionStateChanged(dataState)) + override fun onCarrierRoamingNtnModeChanged(active: Boolean) { + logger.logOnCarrierRoamingNtnModeChanged(active) + trySend(CallbackEvent.OnCarrierRoamingNtnModeChanged(active)) } override fun onDataActivity(direction: Int) { @@ -172,9 +166,17 @@ class MobileConnectionRepositoryImpl( trySend(CallbackEvent.OnDataActivity(direction)) } - override fun onCarrierNetworkChange(active: Boolean) { - logger.logOnCarrierNetworkChange(active, subId) - trySend(CallbackEvent.OnCarrierNetworkChange(active)) + override fun onDataEnabledChanged(enabled: Boolean, reason: Int) { + logger.logOnDataEnabledChanged(enabled, subId) + trySend(CallbackEvent.OnDataEnabledChanged(enabled)) + } + + override fun onDataConnectionStateChanged( + dataState: Int, + networkType: Int + ) { + logger.logOnDataConnectionStateChanged(dataState, networkType, subId) + trySend(CallbackEvent.OnDataConnectionStateChanged(dataState)) } override fun onDisplayInfoChanged( @@ -184,9 +186,14 @@ class MobileConnectionRepositoryImpl( trySend(CallbackEvent.OnDisplayInfoChanged(telephonyDisplayInfo)) } - override fun onDataEnabledChanged(enabled: Boolean, reason: Int) { - logger.logOnDataEnabledChanged(enabled, subId) - trySend(CallbackEvent.OnDataEnabledChanged(enabled)) + override fun onServiceStateChanged(serviceState: ServiceState) { + logger.logOnServiceStateChanged(serviceState, subId) + trySend(CallbackEvent.OnServiceStateChanged(serviceState)) + } + + override fun onSignalStrengthsChanged(signalStrength: SignalStrength) { + logger.logOnSignalStrengthsChanged(signalStrength, subId) + trySend(CallbackEvent.OnSignalStrengthChanged(signalStrength)) } } telephonyManager.registerTelephonyCallback(bgDispatcher.asExecutor(), callback) @@ -229,8 +236,8 @@ class MobileConnectionRepositoryImpl( override val isNonTerrestrial = callbackEvents - .mapNotNull { it.onServiceStateChanged } - .map { it.serviceState.isUsingNonTerrestrialNetwork } + .mapNotNull { it.onCarrierRoamingNtnModeChanged } + .map { it.active } .stateIn(scope, SharingStarted.WhileSubscribed(), false) override val isGsm = @@ -502,6 +509,8 @@ private fun Intent.carrierId(): Int = sealed interface CallbackEvent { data class OnCarrierNetworkChange(val active: Boolean) : CallbackEvent + data class OnCarrierRoamingNtnModeChanged(val active: Boolean) : CallbackEvent + data class OnDataActivity(val direction: Int) : CallbackEvent data class OnDataConnectionStateChanged(val dataState: Int) : CallbackEvent @@ -522,6 +531,7 @@ sealed interface CallbackEvent { data class TelephonyCallbackState( val onDataActivity: CallbackEvent.OnDataActivity? = null, val onCarrierNetworkChange: CallbackEvent.OnCarrierNetworkChange? = null, + val onCarrierRoamingNtnModeChanged: CallbackEvent.OnCarrierRoamingNtnModeChanged? = null, val onDataConnectionStateChanged: CallbackEvent.OnDataConnectionStateChanged? = null, val onDataEnabledChanged: CallbackEvent.OnDataEnabledChanged? = null, val onDisplayInfoChanged: CallbackEvent.OnDisplayInfoChanged? = null, @@ -531,6 +541,9 @@ data class TelephonyCallbackState( fun applyEvent(event: CallbackEvent): TelephonyCallbackState { return when (event) { is CallbackEvent.OnCarrierNetworkChange -> copy(onCarrierNetworkChange = event) + is CallbackEvent.OnCarrierRoamingNtnModeChanged -> { + copy(onCarrierRoamingNtnModeChanged = event) + } is CallbackEvent.OnDataActivity -> copy(onDataActivity = event) is CallbackEvent.OnDataConnectionStateChanged -> copy(onDataConnectionStateChanged = event) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt index 9d1411625a8f..3695d8c151a2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt @@ -35,6 +35,7 @@ import android.telephony.ServiceState.STATE_OUT_OF_SERVICE import android.telephony.SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX import android.telephony.SubscriptionManager.PROFILE_CLASS_UNSET import android.telephony.TelephonyCallback +import android.telephony.TelephonyCallback.CarrierRoamingNtnModeListener import android.telephony.TelephonyCallback.DataActivityListener import android.telephony.TelephonyCallback.DisplayInfoListener import android.telephony.TelephonyCallback.ServiceStateListener @@ -983,26 +984,19 @@ class MobileConnectionRepositoryTest : SysuiTestCase() { @Test @EnableFlags(com.android.internal.telephony.flags.Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) - fun isNonTerrestrial_updatesFromServiceState() = + fun isNonTerrestrial_updatesFromCallback0() = testScope.runTest { val latest by collectLastValue(underTest.isNonTerrestrial) - // Lambda makes it a little clearer what we are testing IMO - val serviceStateCreator = { ntn: Boolean -> - mock<ServiceState>().also { - whenever(it.isUsingNonTerrestrialNetwork).thenReturn(ntn) - } - } - // Starts out false assertThat(latest).isFalse() - getTelephonyCallbackForType<ServiceStateListener>() - .onServiceStateChanged(serviceStateCreator(true)) + val callback = getTelephonyCallbackForType<CarrierRoamingNtnModeListener>() + + callback.onCarrierRoamingNtnModeChanged(true) assertThat(latest).isTrue() - getTelephonyCallbackForType<ServiceStateListener>() - .onServiceStateChanged(serviceStateCreator(false)) + callback.onCarrierRoamingNtnModeChanged(false) assertThat(latest).isFalse() } |