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_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 =
@@ -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
}

View File

@@ -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) {
@@ -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)

View File

@@ -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
@@ -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) {
@@ -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) {