Merge "[SB Refactor] Support all possible data connection ints." into tm-qpr-dev am: 7183782a78

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21161759

Change-Id: I2238c022a1cc383430e36736fe81a302cc3566d2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Caitlin Shkuratov
2023-02-03 15:35:18 +00:00
committed by Automerger Merge Worker
3 changed files with 64 additions and 9 deletions

View File

@@ -20,16 +20,21 @@ import android.telephony.TelephonyManager.DATA_CONNECTED
import android.telephony.TelephonyManager.DATA_CONNECTING import android.telephony.TelephonyManager.DATA_CONNECTING
import android.telephony.TelephonyManager.DATA_DISCONNECTED import android.telephony.TelephonyManager.DATA_DISCONNECTED
import android.telephony.TelephonyManager.DATA_DISCONNECTING 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.DATA_UNKNOWN
import android.telephony.TelephonyManager.DataState import android.telephony.TelephonyManager.DataState
/** Internal enum representation of the telephony data connection states */ /** Internal enum representation of the telephony data connection states */
enum class DataConnectionState(@DataState val dataState: Int) { enum class DataConnectionState {
Connected(DATA_CONNECTED), Connected,
Connecting(DATA_CONNECTING), Connecting,
Disconnected(DATA_DISCONNECTED), Disconnected,
Disconnecting(DATA_DISCONNECTING), Disconnecting,
Unknown(DATA_UNKNOWN), Suspended,
HandoverInProgress,
Unknown,
Invalid,
} }
fun @receiver:DataState Int.toDataConnectionType(): DataConnectionState = fun @receiver:DataState Int.toDataConnectionType(): DataConnectionState =
@@ -38,6 +43,8 @@ fun @receiver:DataState Int.toDataConnectionType(): DataConnectionState =
DATA_CONNECTING -> DataConnectionState.Connecting DATA_CONNECTING -> DataConnectionState.Connecting
DATA_DISCONNECTED -> DataConnectionState.Disconnected DATA_DISCONNECTED -> DataConnectionState.Disconnected
DATA_DISCONNECTING -> DataConnectionState.Disconnecting DATA_DISCONNECTING -> DataConnectionState.Disconnecting
DATA_SUSPENDED -> DataConnectionState.Suspended
DATA_HANDOVER_IN_PROGRESS -> DataConnectionState.HandoverInProgress
DATA_UNKNOWN -> DataConnectionState.Unknown DATA_UNKNOWN -> DataConnectionState.Unknown
else -> throw IllegalArgumentException("unknown data state received $this") else -> DataConnectionState.Invalid
} }

View File

@@ -94,7 +94,7 @@ data class MobileConnectionModel(
) : Diffable<MobileConnectionModel> { ) : Diffable<MobileConnectionModel> {
override fun logDiffs(prevVal: MobileConnectionModel, row: TableRowLogger) { override fun logDiffs(prevVal: MobileConnectionModel, row: TableRowLogger) {
if (prevVal.dataConnectionState != dataConnectionState) { if (prevVal.dataConnectionState != dataConnectionState) {
row.logChange(COL_CONNECTION_STATE, dataConnectionState.toString()) row.logChange(COL_CONNECTION_STATE, dataConnectionState.name)
} }
if (prevVal.isEmergencyOnly != isEmergencyOnly) { if (prevVal.isEmergencyOnly != isEmergencyOnly) {
@@ -139,7 +139,7 @@ data class MobileConnectionModel(
} }
override fun logFull(row: TableRowLogger) { 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_EMERGENCY, isEmergencyOnly)
row.logChange(COL_ROAMING, isRoaming) row.logChange(COL_ROAMING, isRoaming)
row.logChange(COL_OPERATOR, operatorAlphaShort) row.logChange(COL_OPERATOR, operatorAlphaShort)

View File

@@ -41,6 +41,8 @@ import android.telephony.TelephonyManager.DATA_CONNECTED
import android.telephony.TelephonyManager.DATA_CONNECTING import android.telephony.TelephonyManager.DATA_CONNECTING
import android.telephony.TelephonyManager.DATA_DISCONNECTED import android.telephony.TelephonyManager.DATA_DISCONNECTED
import android.telephony.TelephonyManager.DATA_DISCONNECTING 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.DATA_UNKNOWN
import android.telephony.TelephonyManager.ERI_OFF import android.telephony.TelephonyManager.ERI_OFF
import android.telephony.TelephonyManager.ERI_ON import android.telephony.TelephonyManager.ERI_ON
@@ -254,6 +256,37 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
job.cancel() 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 @Test
fun testFlowForSubId_dataConnectionState_unknown() = fun testFlowForSubId_dataConnectionState_unknown() =
runBlocking(IMMEDIATE) { runBlocking(IMMEDIATE) {
@@ -269,6 +302,21 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
job.cancel() 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 @Test
fun testFlowForSubId_dataActivity() = fun testFlowForSubId_dataActivity() =
runBlocking(IMMEDIATE) { runBlocking(IMMEDIATE) {