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