Merge "Telephony.Carriers.BEARER is deprecated." into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
9f49e038a0
@@ -416,6 +416,61 @@
|
|||||||
<item>20</item>
|
<item>20</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<!-- Network type used in APN editor -->
|
||||||
|
<string-array name="network_type_entries">
|
||||||
|
<item>Unspecified</item>
|
||||||
|
<item>LTE</item>
|
||||||
|
<item>HSPAP</item>
|
||||||
|
<item>HSPA</item>
|
||||||
|
<item>HSUPA</item>
|
||||||
|
<item>HSDPA</item>
|
||||||
|
<item>UMTS</item>
|
||||||
|
<item>EDGE</item>
|
||||||
|
<item>GPRS</item>
|
||||||
|
<item>eHRPD</item>
|
||||||
|
<item>EVDO_B</item>
|
||||||
|
<item>EVDO_A</item>
|
||||||
|
<item>EVDO_0</item>
|
||||||
|
<item>1xRTT</item>
|
||||||
|
<item>CDMA</item>
|
||||||
|
<item>NR</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<string-array translatable="false" name="network_type_values">
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>0</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>13</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>15</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>10</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>9</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>8</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>3</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>2</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>1</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>14</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>12</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>6</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>5</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>7</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>4</item>
|
||||||
|
<!-- Do not translate. -->
|
||||||
|
<item>20</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
<!-- MVNO Info used in APN editor -->
|
<!-- MVNO Info used in APN editor -->
|
||||||
<string-array name="mvno_type_entries">
|
<string-array name="mvno_type_entries">
|
||||||
<item>None</item>
|
<item>None</item>
|
||||||
|
@@ -3121,6 +3121,8 @@
|
|||||||
<string name="carrier_enabled_summaryOff">APN disabled</string>
|
<string name="carrier_enabled_summaryOff">APN disabled</string>
|
||||||
<!-- Edit Beaerer Info of APN -->
|
<!-- Edit Beaerer Info of APN -->
|
||||||
<string name="bearer">Bearer</string>
|
<string name="bearer">Bearer</string>
|
||||||
|
<!-- Edit Network Type Info of APN -->
|
||||||
|
<string name="network_type">Network type</string>
|
||||||
<!-- Edit Mvno Type Info of APN -->
|
<!-- Edit Mvno Type Info of APN -->
|
||||||
<string name="mvno_type">MVNO type</string>
|
<string name="mvno_type">MVNO type</string>
|
||||||
<!-- Edit Mvno Match Data Info of APN -->
|
<!-- Edit Mvno Match Data Info of APN -->
|
||||||
|
@@ -88,12 +88,12 @@ fun ApnPage(apnDataCur: MutableState<ApnData>) {
|
|||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val authTypeOptions = stringArrayResource(R.array.apn_auth_entries).toList()
|
val authTypeOptions = stringArrayResource(R.array.apn_auth_entries).toList()
|
||||||
val apnProtocolOptions = stringArrayResource(R.array.apn_protocol_entries).toList()
|
val apnProtocolOptions = stringArrayResource(R.array.apn_protocol_entries).toList()
|
||||||
val bearerOptionsAll = stringArrayResource(R.array.bearer_entries)
|
val networkTypeOptionsAll = stringArrayResource(R.array.network_type_entries)
|
||||||
val bearerOptions = bearerOptionsAll.drop(1).toList()
|
val networkTypeOptions = networkTypeOptionsAll.drop(1).toList()
|
||||||
val bearerEmptyVal = bearerOptionsAll[0]
|
val networkTypeEmptyVal = networkTypeOptionsAll[0]
|
||||||
val mvnoTypeOptions = stringArrayResource(R.array.mvno_type_entries).toList()
|
val mvnoTypeOptions = stringArrayResource(R.array.mvno_type_entries).toList()
|
||||||
val bearerSelectedOptionsState = remember {
|
val networkTypeSelectedOptionsState = remember {
|
||||||
getBearerSelectedOptionsState(apnData.bearer, apnData.bearerBitmask, context)
|
getNetworkTypeSelectedOptionsState(apnData.networkType, context)
|
||||||
}
|
}
|
||||||
RegularScaffold(
|
RegularScaffold(
|
||||||
title = stringResource(id = R.string.apn_edit),
|
title = stringResource(id = R.string.apn_edit),
|
||||||
@@ -196,11 +196,11 @@ fun ApnPage(apnDataCur: MutableState<ApnData>) {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
SettingsExposedDropdownMenuCheckBox(
|
SettingsExposedDropdownMenuCheckBox(
|
||||||
label = stringResource(R.string.bearer),
|
label = stringResource(R.string.network_type),
|
||||||
options = bearerOptions,
|
options = networkTypeOptions,
|
||||||
selectedOptionsState = bearerSelectedOptionsState,
|
selectedOptionsState = networkTypeSelectedOptionsState,
|
||||||
emptyVal = bearerEmptyVal,
|
emptyVal = networkTypeEmptyVal,
|
||||||
enabled = apnData.bearerEnabled
|
enabled = apnData.networkTypeEnabled
|
||||||
) {}
|
) {}
|
||||||
SettingsExposedDropdownMenuBox(
|
SettingsExposedDropdownMenuBox(
|
||||||
label = stringResource(R.string.mvno_type),
|
label = stringResource(R.string.mvno_type),
|
||||||
|
@@ -41,10 +41,9 @@ data class ApnData(
|
|||||||
val apnProtocol: Int = -1,
|
val apnProtocol: Int = -1,
|
||||||
val apnRoaming: Int = -1,
|
val apnRoaming: Int = -1,
|
||||||
val apnEnable: Boolean = true,
|
val apnEnable: Boolean = true,
|
||||||
val bearer: Int = 0,
|
val networkType: Int = 0,
|
||||||
val mvnoType: Int = -1,
|
val mvnoType: Int = -1,
|
||||||
var mvnoValue: String = "",
|
var mvnoValue: String = "",
|
||||||
val bearerBitmask: Int = 0,
|
|
||||||
val edited: Int = Telephony.Carriers.USER_EDITED,
|
val edited: Int = Telephony.Carriers.USER_EDITED,
|
||||||
val userEditable: Int = 1,
|
val userEditable: Int = 1,
|
||||||
val carrierId: Int = TelephonyManager.UNKNOWN_CARRIER_ID
|
val carrierId: Int = TelephonyManager.UNKNOWN_CARRIER_ID
|
||||||
@@ -66,40 +65,36 @@ data class ApnData(
|
|||||||
var apnProtocolEnabled = true
|
var apnProtocolEnabled = true
|
||||||
var apnRoamingEnabled = true
|
var apnRoamingEnabled = true
|
||||||
var apnEnableEnabled = true
|
var apnEnableEnabled = true
|
||||||
var bearerEnabled = true
|
var networkTypeEnabled = true
|
||||||
var mvnoTypeEnabled = true
|
var mvnoTypeEnabled = true
|
||||||
var mvnoValueEnabled = false
|
var mvnoValueEnabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize the selected Bearer Selected Options according to bearer.
|
* Initialize the selected Network type Selected Options according to network type.
|
||||||
* @param bearer Initialized bearer options.
|
* @param networkType Initialized network type bitmask, often multiple network type options may be included.
|
||||||
* @param bearerBitmask Initialized bearer bitmask, often multiple bearer options may be included.
|
* @param context The context to get network type values.
|
||||||
* @param context The context to get bearerValues.
|
|
||||||
*
|
*
|
||||||
* @return An error message if the apn data is invalid, otherwise return null.
|
* @return An error message if the apn data is invalid, otherwise return null.
|
||||||
*/
|
*/
|
||||||
fun getBearerSelectedOptionsState(
|
fun getNetworkTypeSelectedOptionsState(
|
||||||
bearer: Int,
|
networkType: Int,
|
||||||
bearerBitmask: Int,
|
|
||||||
context: Context
|
context: Context
|
||||||
): SnapshotStateList<Int> {
|
): SnapshotStateList<Int> {
|
||||||
val bearerValues = context.resources.getStringArray(R.array.bearer_values)
|
val networkTypeValues = context.resources.getStringArray(R.array.network_type_values)
|
||||||
val bearerSelectedOptionsState = mutableStateListOf<Int>()
|
val networkTypeSelectedOptionsState = mutableStateListOf<Int>()
|
||||||
if (bearerBitmask != 0) {
|
if (networkType != 0) {
|
||||||
var i = 1
|
var i = 1
|
||||||
var _bearerBitmask = bearerBitmask
|
var networkTypeBitMask = networkType
|
||||||
while (_bearerBitmask != 0) {
|
while (networkTypeBitMask != 0) {
|
||||||
if (_bearerBitmask and 1 == 1 && !bearerSelectedOptionsState.contains(i)) {
|
if (networkTypeBitMask and 1 == 1 && !networkTypeSelectedOptionsState.contains(i)) {
|
||||||
bearerSelectedOptionsState.add(bearerValues.indexOf("$i") - 1)
|
networkTypeSelectedOptionsState.add(networkTypeValues.indexOf("$i") - 1)
|
||||||
}
|
}
|
||||||
_bearerBitmask = _bearerBitmask shr 1
|
networkTypeBitMask = networkTypeBitMask shr 1
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (bearer != 0 && !bearerSelectedOptionsState.contains(bearer)) {
|
return networkTypeSelectedOptionsState
|
||||||
// add mBearerInitialVal to bearers
|
|
||||||
bearerSelectedOptionsState.add(bearerValues.indexOf("$bearer") - 1)
|
|
||||||
}
|
|
||||||
return bearerSelectedOptionsState
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -57,8 +57,8 @@ class ApnEditPageProviderTest {
|
|||||||
private val apnEnable = context.resources.getString(R.string.carrier_enabled)
|
private val apnEnable = context.resources.getString(R.string.carrier_enabled)
|
||||||
private val apnProtocolOptions =
|
private val apnProtocolOptions =
|
||||||
context.resources.getStringArray(R.array.apn_protocol_entries).toList()
|
context.resources.getStringArray(R.array.apn_protocol_entries).toList()
|
||||||
private val bearer = context.resources.getString(R.string.bearer)
|
private val networkType = context.resources.getString(R.string.network_type)
|
||||||
private val bearerOptions = context.resources.getStringArray(R.array.bearer_entries).toList()
|
private val networkTypeOptions = context.resources.getStringArray(R.array.network_type_entries).toList()
|
||||||
private val passwordTitle = context.resources.getString(R.string.apn_password)
|
private val passwordTitle = context.resources.getString(R.string.apn_password)
|
||||||
private val apnData = mutableStateOf(
|
private val apnData = mutableStateOf(
|
||||||
ApnData(
|
ApnData(
|
||||||
@@ -195,19 +195,19 @@ class ApnEditPageProviderTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun bearer_displayed() {
|
fun network_type_displayed() {
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent {
|
||||||
ApnPage(remember {
|
ApnPage(remember {
|
||||||
apnData
|
apnData
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
composeTestRule.onRoot().onChild().onChildAt(0)
|
composeTestRule.onRoot().onChild().onChildAt(0)
|
||||||
.performScrollToNode(hasText(bearer, true))
|
.performScrollToNode(hasText(networkType, true))
|
||||||
composeTestRule.onNodeWithText(bearer, true).assertIsDisplayed()
|
composeTestRule.onNodeWithText(networkType, true).assertIsDisplayed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun bearer_changed() {
|
fun network_type_changed() {
|
||||||
var apnDataa: MutableState<ApnData> = apnData
|
var apnDataa: MutableState<ApnData> = apnData
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent {
|
||||||
apnDataa = remember {
|
apnDataa = remember {
|
||||||
@@ -216,15 +216,15 @@ class ApnEditPageProviderTest {
|
|||||||
ApnPage(apnDataa)
|
ApnPage(apnDataa)
|
||||||
}
|
}
|
||||||
composeTestRule.onRoot().onChild().onChildAt(0)
|
composeTestRule.onRoot().onChild().onChildAt(0)
|
||||||
.performScrollToNode(hasText(bearer, true))
|
.performScrollToNode(hasText(networkType, true))
|
||||||
composeTestRule.onNodeWithText(bearer, true).performClick()
|
composeTestRule.onNodeWithText(networkType, true).performClick()
|
||||||
composeTestRule.onNodeWithText(bearerOptions[1], true).performClick()
|
composeTestRule.onNodeWithText(networkTypeOptions[1], true).performClick()
|
||||||
composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertDoesNotExist()
|
composeTestRule.onNode(hasText(networkTypeOptions[0]) and isFocused(), true).assertDoesNotExist()
|
||||||
composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertIsDisplayed()
|
composeTestRule.onNode(hasText(networkTypeOptions[1]) and isFocused(), true).assertIsDisplayed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun bearer_changed_back2Default() {
|
fun network_type_changed_back2Default() {
|
||||||
var apnDataa: MutableState<ApnData> = apnData
|
var apnDataa: MutableState<ApnData> = apnData
|
||||||
composeTestRule.setContent {
|
composeTestRule.setContent {
|
||||||
apnDataa = remember {
|
apnDataa = remember {
|
||||||
@@ -233,14 +233,14 @@ class ApnEditPageProviderTest {
|
|||||||
ApnPage(apnDataa)
|
ApnPage(apnDataa)
|
||||||
}
|
}
|
||||||
composeTestRule.onRoot().onChild().onChildAt(0)
|
composeTestRule.onRoot().onChild().onChildAt(0)
|
||||||
.performScrollToNode(hasText(bearer, true))
|
.performScrollToNode(hasText(networkType, true))
|
||||||
composeTestRule.onNodeWithText(bearer, true).performClick()
|
composeTestRule.onNodeWithText(networkType, true).performClick()
|
||||||
composeTestRule.onNodeWithText(bearerOptions[1], true).performClick()
|
composeTestRule.onNodeWithText(networkTypeOptions[1], true).performClick()
|
||||||
composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertDoesNotExist()
|
composeTestRule.onNode(hasText(networkTypeOptions[0]) and isFocused(), true).assertDoesNotExist()
|
||||||
composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertIsDisplayed()
|
composeTestRule.onNode(hasText(networkTypeOptions[1]) and isFocused(), true).assertIsDisplayed()
|
||||||
composeTestRule.onAllNodesWithText(bearerOptions[1], true).onLast().performClick()
|
composeTestRule.onAllNodesWithText(networkTypeOptions[1], true).onLast().performClick()
|
||||||
composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertIsDisplayed()
|
composeTestRule.onNode(hasText(networkTypeOptions[0]) and isFocused(), true).assertIsDisplayed()
|
||||||
composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertDoesNotExist()
|
composeTestRule.onNode(hasText(networkTypeOptions[1]) and isFocused(), true).assertDoesNotExist()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user