From 11737b956e3c89514f841c1ed0466f5a5d8c5abc Mon Sep 17 00:00:00 2001 From: Charlotte Lu Date: Sat, 7 Oct 2023 17:44:28 +0800 Subject: [PATCH] Telephony.Carriers.BEARER is deprecated. Fix: 303971237 Test: Unit Test Change-Id: Id3257b279421eb9f3544430667dc8ae536476e5c --- res/values/arrays.xml | 55 +++++++++++++++++++ res/values/strings.xml | 2 + .../network/apn/ApnEditPageProvider.kt | 20 +++---- .../android/settings/network/apn/ApnStatus.kt | 41 ++++++-------- .../network/apn/ApnEditPageProviderTest.kt | 40 +++++++------- 5 files changed, 105 insertions(+), 53 deletions(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 01a8126a3e3..18f37bf8e47 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -416,6 +416,61 @@ 20 + + + Unspecified + LTE + HSPAP + HSPA + HSUPA + HSDPA + UMTS + EDGE + GPRS + eHRPD + EVDO_B + EVDO_A + EVDO_0 + 1xRTT + CDMA + NR + + + + + 0 + + 13 + + 15 + + 10 + + 9 + + 8 + + 3 + + 2 + + 1 + + 14 + + 12 + + 6 + + 5 + + 7 + + 4 + + 20 + + None diff --git a/res/values/strings.xml b/res/values/strings.xml index 87ba77b0336..7e6de11b2f6 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3121,6 +3121,8 @@ APN disabled Bearer + + Network type MVNO type diff --git a/src/com/android/settings/network/apn/ApnEditPageProvider.kt b/src/com/android/settings/network/apn/ApnEditPageProvider.kt index 5a459a03598..97d001c5802 100644 --- a/src/com/android/settings/network/apn/ApnEditPageProvider.kt +++ b/src/com/android/settings/network/apn/ApnEditPageProvider.kt @@ -88,12 +88,12 @@ fun ApnPage(apnDataCur: MutableState) { val context = LocalContext.current val authTypeOptions = stringArrayResource(R.array.apn_auth_entries).toList() val apnProtocolOptions = stringArrayResource(R.array.apn_protocol_entries).toList() - val bearerOptionsAll = stringArrayResource(R.array.bearer_entries) - val bearerOptions = bearerOptionsAll.drop(1).toList() - val bearerEmptyVal = bearerOptionsAll[0] + val networkTypeOptionsAll = stringArrayResource(R.array.network_type_entries) + val networkTypeOptions = networkTypeOptionsAll.drop(1).toList() + val networkTypeEmptyVal = networkTypeOptionsAll[0] val mvnoTypeOptions = stringArrayResource(R.array.mvno_type_entries).toList() - val bearerSelectedOptionsState = remember { - getBearerSelectedOptionsState(apnData.bearer, apnData.bearerBitmask, context) + val networkTypeSelectedOptionsState = remember { + getNetworkTypeSelectedOptionsState(apnData.networkType, context) } RegularScaffold( title = stringResource(id = R.string.apn_edit), @@ -196,11 +196,11 @@ fun ApnPage(apnDataCur: MutableState) { } ) SettingsExposedDropdownMenuCheckBox( - label = stringResource(R.string.bearer), - options = bearerOptions, - selectedOptionsState = bearerSelectedOptionsState, - emptyVal = bearerEmptyVal, - enabled = apnData.bearerEnabled + label = stringResource(R.string.network_type), + options = networkTypeOptions, + selectedOptionsState = networkTypeSelectedOptionsState, + emptyVal = networkTypeEmptyVal, + enabled = apnData.networkTypeEnabled ) {} SettingsExposedDropdownMenuBox( label = stringResource(R.string.mvno_type), diff --git a/src/com/android/settings/network/apn/ApnStatus.kt b/src/com/android/settings/network/apn/ApnStatus.kt index 5d64142addd..5a13edeb8dd 100644 --- a/src/com/android/settings/network/apn/ApnStatus.kt +++ b/src/com/android/settings/network/apn/ApnStatus.kt @@ -41,10 +41,9 @@ data class ApnData( val apnProtocol: Int = -1, val apnRoaming: Int = -1, val apnEnable: Boolean = true, - val bearer: Int = 0, + val networkType: Int = 0, val mvnoType: Int = -1, var mvnoValue: String = "", - val bearerBitmask: Int = 0, val edited: Int = Telephony.Carriers.USER_EDITED, val userEditable: Int = 1, val carrierId: Int = TelephonyManager.UNKNOWN_CARRIER_ID @@ -66,40 +65,36 @@ data class ApnData( var apnProtocolEnabled = true var apnRoamingEnabled = true var apnEnableEnabled = true - var bearerEnabled = true + var networkTypeEnabled = true var mvnoTypeEnabled = true var mvnoValueEnabled = false } /** - * Initialize the selected Bearer Selected Options according to bearer. - * @param bearer Initialized bearer options. - * @param bearerBitmask Initialized bearer bitmask, often multiple bearer options may be included. - * @param context The context to get bearerValues. + * Initialize the selected Network type Selected Options according to network type. + * @param networkType Initialized network type bitmask, often multiple network type options may be included. + * @param context The context to get network type values. * * @return An error message if the apn data is invalid, otherwise return null. */ -fun getBearerSelectedOptionsState( - bearer: Int, - bearerBitmask: Int, +fun getNetworkTypeSelectedOptionsState( + networkType: Int, context: Context ): SnapshotStateList { - val bearerValues = context.resources.getStringArray(R.array.bearer_values) - val bearerSelectedOptionsState = mutableStateListOf() - if (bearerBitmask != 0) { + val networkTypeValues = context.resources.getStringArray(R.array.network_type_values) + val networkTypeSelectedOptionsState = mutableStateListOf() + if (networkType != 0) { var i = 1 - var _bearerBitmask = bearerBitmask - while (_bearerBitmask != 0) { - if (_bearerBitmask and 1 == 1 && !bearerSelectedOptionsState.contains(i)) { - bearerSelectedOptionsState.add(bearerValues.indexOf("$i") - 1) + var networkTypeBitMask = networkType + while (networkTypeBitMask != 0) { + if (networkTypeBitMask and 1 == 1 && !networkTypeSelectedOptionsState.contains(i)) { + networkTypeSelectedOptionsState.add(networkTypeValues.indexOf("$i") - 1) } - _bearerBitmask = _bearerBitmask shr 1 + networkTypeBitMask = networkTypeBitMask shr 1 i++ } } - if (bearer != 0 && !bearerSelectedOptionsState.contains(bearer)) { - // add mBearerInitialVal to bearers - bearerSelectedOptionsState.add(bearerValues.indexOf("$bearer") - 1) - } - return bearerSelectedOptionsState + return networkTypeSelectedOptionsState } + + diff --git a/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt index d744181fcbb..f6b23429f73 100644 --- a/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt +++ b/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt @@ -57,8 +57,8 @@ class ApnEditPageProviderTest { private val apnEnable = context.resources.getString(R.string.carrier_enabled) private val apnProtocolOptions = context.resources.getStringArray(R.array.apn_protocol_entries).toList() - private val bearer = context.resources.getString(R.string.bearer) - private val bearerOptions = context.resources.getStringArray(R.array.bearer_entries).toList() + private val networkType = context.resources.getString(R.string.network_type) + private val networkTypeOptions = context.resources.getStringArray(R.array.network_type_entries).toList() private val passwordTitle = context.resources.getString(R.string.apn_password) private val apnData = mutableStateOf( ApnData( @@ -195,19 +195,19 @@ class ApnEditPageProviderTest { } @Test - fun bearer_displayed() { + fun network_type_displayed() { composeTestRule.setContent { ApnPage(remember { apnData }) } composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(bearer, true)) - composeTestRule.onNodeWithText(bearer, true).assertIsDisplayed() + .performScrollToNode(hasText(networkType, true)) + composeTestRule.onNodeWithText(networkType, true).assertIsDisplayed() } @Test - fun bearer_changed() { + fun network_type_changed() { var apnDataa: MutableState = apnData composeTestRule.setContent { apnDataa = remember { @@ -216,15 +216,15 @@ class ApnEditPageProviderTest { ApnPage(apnDataa) } composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(bearer, true)) - composeTestRule.onNodeWithText(bearer, true).performClick() - composeTestRule.onNodeWithText(bearerOptions[1], true).performClick() - composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertDoesNotExist() - composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertIsDisplayed() + .performScrollToNode(hasText(networkType, true)) + composeTestRule.onNodeWithText(networkType, true).performClick() + composeTestRule.onNodeWithText(networkTypeOptions[1], true).performClick() + composeTestRule.onNode(hasText(networkTypeOptions[0]) and isFocused(), true).assertDoesNotExist() + composeTestRule.onNode(hasText(networkTypeOptions[1]) and isFocused(), true).assertIsDisplayed() } @Test - fun bearer_changed_back2Default() { + fun network_type_changed_back2Default() { var apnDataa: MutableState = apnData composeTestRule.setContent { apnDataa = remember { @@ -233,14 +233,14 @@ class ApnEditPageProviderTest { ApnPage(apnDataa) } composeTestRule.onRoot().onChild().onChildAt(0) - .performScrollToNode(hasText(bearer, true)) - composeTestRule.onNodeWithText(bearer, true).performClick() - composeTestRule.onNodeWithText(bearerOptions[1], true).performClick() - composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertDoesNotExist() - composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertIsDisplayed() - composeTestRule.onAllNodesWithText(bearerOptions[1], true).onLast().performClick() - composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertIsDisplayed() - composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertDoesNotExist() + .performScrollToNode(hasText(networkType, true)) + composeTestRule.onNodeWithText(networkType, true).performClick() + composeTestRule.onNodeWithText(networkTypeOptions[1], true).performClick() + composeTestRule.onNode(hasText(networkTypeOptions[0]) and isFocused(), true).assertDoesNotExist() + composeTestRule.onNode(hasText(networkTypeOptions[1]) and isFocused(), true).assertIsDisplayed() + composeTestRule.onAllNodesWithText(networkTypeOptions[1], true).onLast().performClick() + composeTestRule.onNode(hasText(networkTypeOptions[0]) and isFocused(), true).assertIsDisplayed() + composeTestRule.onNode(hasText(networkTypeOptions[1]) and isFocused(), true).assertDoesNotExist() } @Test