Loading packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/DataConnectionState.kt +14 −7 Original line number Diff line number Diff line Loading @@ -20,16 +20,21 @@ import android.telephony.TelephonyManager.DATA_CONNECTED import android.telephony.TelephonyManager.DATA_CONNECTING import android.telephony.TelephonyManager.DATA_DISCONNECTED import android.telephony.TelephonyManager.DATA_DISCONNECTING import android.telephony.TelephonyManager.DATA_HANDOVER_IN_PROGRESS import android.telephony.TelephonyManager.DATA_SUSPENDED import android.telephony.TelephonyManager.DATA_UNKNOWN import android.telephony.TelephonyManager.DataState /** Internal enum representation of the telephony data connection states */ enum class DataConnectionState(@DataState val dataState: Int) { Connected(DATA_CONNECTED), Connecting(DATA_CONNECTING), Disconnected(DATA_DISCONNECTED), Disconnecting(DATA_DISCONNECTING), Unknown(DATA_UNKNOWN), enum class DataConnectionState { Connected, Connecting, Disconnected, Disconnecting, Suspended, HandoverInProgress, Unknown, Invalid, } fun @receiver:DataState Int.toDataConnectionType(): DataConnectionState = Loading @@ -38,6 +43,8 @@ fun @receiver:DataState Int.toDataConnectionType(): DataConnectionState = DATA_CONNECTING -> DataConnectionState.Connecting DATA_DISCONNECTED -> DataConnectionState.Disconnected DATA_DISCONNECTING -> DataConnectionState.Disconnecting DATA_SUSPENDED -> DataConnectionState.Suspended DATA_HANDOVER_IN_PROGRESS -> DataConnectionState.HandoverInProgress DATA_UNKNOWN -> DataConnectionState.Unknown else -> throw IllegalArgumentException("unknown data state received $this") else -> DataConnectionState.Invalid } packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/MobileConnectionModel.kt +2 −2 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ data class MobileConnectionModel( ) : Diffable<MobileConnectionModel> { override fun logDiffs(prevVal: MobileConnectionModel, row: TableRowLogger) { if (prevVal.dataConnectionState != dataConnectionState) { row.logChange(COL_CONNECTION_STATE, dataConnectionState.toString()) row.logChange(COL_CONNECTION_STATE, dataConnectionState.name) } if (prevVal.isEmergencyOnly != isEmergencyOnly) { Loading Loading @@ -139,7 +139,7 @@ data class MobileConnectionModel( } override fun logFull(row: TableRowLogger) { row.logChange(COL_CONNECTION_STATE, dataConnectionState.toString()) row.logChange(COL_CONNECTION_STATE, dataConnectionState.name) row.logChange(COL_EMERGENCY, isEmergencyOnly) row.logChange(COL_ROAMING, isRoaming) row.logChange(COL_OPERATOR, operatorAlphaShort) Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt +48 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ import android.telephony.TelephonyManager.DATA_CONNECTED import android.telephony.TelephonyManager.DATA_CONNECTING import android.telephony.TelephonyManager.DATA_DISCONNECTED import android.telephony.TelephonyManager.DATA_DISCONNECTING import android.telephony.TelephonyManager.DATA_HANDOVER_IN_PROGRESS import android.telephony.TelephonyManager.DATA_SUSPENDED import android.telephony.TelephonyManager.DATA_UNKNOWN import android.telephony.TelephonyManager.ERI_OFF import android.telephony.TelephonyManager.ERI_ON Loading Loading @@ -254,6 +256,37 @@ class MobileConnectionRepositoryTest : SysuiTestCase() { job.cancel() } @Test fun testFlowForSubId_dataConnectionState_suspended() = runBlocking(IMMEDIATE) { var latest: MobileConnectionModel? = null val job = underTest.connectionInfo.onEach { latest = it }.launchIn(this) val callback = getTelephonyCallbackForType<TelephonyCallback.DataConnectionStateListener>() callback.onDataConnectionStateChanged(DATA_SUSPENDED, 200 /* unused */) assertThat(latest?.dataConnectionState).isEqualTo(DataConnectionState.Suspended) job.cancel() } @Test fun testFlowForSubId_dataConnectionState_handoverInProgress() = runBlocking(IMMEDIATE) { var latest: MobileConnectionModel? = null val job = underTest.connectionInfo.onEach { latest = it }.launchIn(this) val callback = getTelephonyCallbackForType<TelephonyCallback.DataConnectionStateListener>() callback.onDataConnectionStateChanged(DATA_HANDOVER_IN_PROGRESS, 200 /* unused */) assertThat(latest?.dataConnectionState) .isEqualTo(DataConnectionState.HandoverInProgress) job.cancel() } @Test fun testFlowForSubId_dataConnectionState_unknown() = runBlocking(IMMEDIATE) { Loading @@ -269,6 +302,21 @@ class MobileConnectionRepositoryTest : SysuiTestCase() { job.cancel() } @Test fun testFlowForSubId_dataConnectionState_invalid() = runBlocking(IMMEDIATE) { var latest: MobileConnectionModel? = null val job = underTest.connectionInfo.onEach { latest = it }.launchIn(this) val callback = getTelephonyCallbackForType<TelephonyCallback.DataConnectionStateListener>() callback.onDataConnectionStateChanged(45, 200 /* unused */) assertThat(latest?.dataConnectionState).isEqualTo(DataConnectionState.Invalid) job.cancel() } @Test fun testFlowForSubId_dataActivity() = runBlocking(IMMEDIATE) { Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/DataConnectionState.kt +14 −7 Original line number Diff line number Diff line Loading @@ -20,16 +20,21 @@ import android.telephony.TelephonyManager.DATA_CONNECTED import android.telephony.TelephonyManager.DATA_CONNECTING import android.telephony.TelephonyManager.DATA_DISCONNECTED import android.telephony.TelephonyManager.DATA_DISCONNECTING import android.telephony.TelephonyManager.DATA_HANDOVER_IN_PROGRESS import android.telephony.TelephonyManager.DATA_SUSPENDED import android.telephony.TelephonyManager.DATA_UNKNOWN import android.telephony.TelephonyManager.DataState /** Internal enum representation of the telephony data connection states */ enum class DataConnectionState(@DataState val dataState: Int) { Connected(DATA_CONNECTED), Connecting(DATA_CONNECTING), Disconnected(DATA_DISCONNECTED), Disconnecting(DATA_DISCONNECTING), Unknown(DATA_UNKNOWN), enum class DataConnectionState { Connected, Connecting, Disconnected, Disconnecting, Suspended, HandoverInProgress, Unknown, Invalid, } fun @receiver:DataState Int.toDataConnectionType(): DataConnectionState = Loading @@ -38,6 +43,8 @@ fun @receiver:DataState Int.toDataConnectionType(): DataConnectionState = DATA_CONNECTING -> DataConnectionState.Connecting DATA_DISCONNECTED -> DataConnectionState.Disconnected DATA_DISCONNECTING -> DataConnectionState.Disconnecting DATA_SUSPENDED -> DataConnectionState.Suspended DATA_HANDOVER_IN_PROGRESS -> DataConnectionState.HandoverInProgress DATA_UNKNOWN -> DataConnectionState.Unknown else -> throw IllegalArgumentException("unknown data state received $this") else -> DataConnectionState.Invalid }
packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/MobileConnectionModel.kt +2 −2 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ data class MobileConnectionModel( ) : Diffable<MobileConnectionModel> { override fun logDiffs(prevVal: MobileConnectionModel, row: TableRowLogger) { if (prevVal.dataConnectionState != dataConnectionState) { row.logChange(COL_CONNECTION_STATE, dataConnectionState.toString()) row.logChange(COL_CONNECTION_STATE, dataConnectionState.name) } if (prevVal.isEmergencyOnly != isEmergencyOnly) { Loading Loading @@ -139,7 +139,7 @@ data class MobileConnectionModel( } override fun logFull(row: TableRowLogger) { row.logChange(COL_CONNECTION_STATE, dataConnectionState.toString()) row.logChange(COL_CONNECTION_STATE, dataConnectionState.name) row.logChange(COL_EMERGENCY, isEmergencyOnly) row.logChange(COL_ROAMING, isRoaming) row.logChange(COL_OPERATOR, operatorAlphaShort) Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt +48 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ import android.telephony.TelephonyManager.DATA_CONNECTED import android.telephony.TelephonyManager.DATA_CONNECTING import android.telephony.TelephonyManager.DATA_DISCONNECTED import android.telephony.TelephonyManager.DATA_DISCONNECTING import android.telephony.TelephonyManager.DATA_HANDOVER_IN_PROGRESS import android.telephony.TelephonyManager.DATA_SUSPENDED import android.telephony.TelephonyManager.DATA_UNKNOWN import android.telephony.TelephonyManager.ERI_OFF import android.telephony.TelephonyManager.ERI_ON Loading Loading @@ -254,6 +256,37 @@ class MobileConnectionRepositoryTest : SysuiTestCase() { job.cancel() } @Test fun testFlowForSubId_dataConnectionState_suspended() = runBlocking(IMMEDIATE) { var latest: MobileConnectionModel? = null val job = underTest.connectionInfo.onEach { latest = it }.launchIn(this) val callback = getTelephonyCallbackForType<TelephonyCallback.DataConnectionStateListener>() callback.onDataConnectionStateChanged(DATA_SUSPENDED, 200 /* unused */) assertThat(latest?.dataConnectionState).isEqualTo(DataConnectionState.Suspended) job.cancel() } @Test fun testFlowForSubId_dataConnectionState_handoverInProgress() = runBlocking(IMMEDIATE) { var latest: MobileConnectionModel? = null val job = underTest.connectionInfo.onEach { latest = it }.launchIn(this) val callback = getTelephonyCallbackForType<TelephonyCallback.DataConnectionStateListener>() callback.onDataConnectionStateChanged(DATA_HANDOVER_IN_PROGRESS, 200 /* unused */) assertThat(latest?.dataConnectionState) .isEqualTo(DataConnectionState.HandoverInProgress) job.cancel() } @Test fun testFlowForSubId_dataConnectionState_unknown() = runBlocking(IMMEDIATE) { Loading @@ -269,6 +302,21 @@ class MobileConnectionRepositoryTest : SysuiTestCase() { job.cancel() } @Test fun testFlowForSubId_dataConnectionState_invalid() = runBlocking(IMMEDIATE) { var latest: MobileConnectionModel? = null val job = underTest.connectionInfo.onEach { latest = it }.launchIn(this) val callback = getTelephonyCallbackForType<TelephonyCallback.DataConnectionStateListener>() callback.onDataConnectionStateChanged(45, 200 /* unused */) assertThat(latest?.dataConnectionState).isEqualTo(DataConnectionState.Invalid) job.cancel() } @Test fun testFlowForSubId_dataActivity() = runBlocking(IMMEDIATE) { Loading