Loading packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/MobileInputLogger.kt +9 −0 Original line number Diff line number Diff line Loading @@ -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, Loading packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryImpl.kt +39 −26 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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( Loading @@ -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) Loading Loading @@ -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 = Loading Loading @@ -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 Loading @@ -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, Loading @@ -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) Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt +6 −12 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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() } Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/MobileInputLogger.kt +9 −0 Original line number Diff line number Diff line Loading @@ -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, Loading
packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryImpl.kt +39 −26 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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( Loading @@ -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) Loading Loading @@ -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 = Loading Loading @@ -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 Loading @@ -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, Loading @@ -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) Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt +6 −12 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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() } Loading