Loading src/com/android/settings/network/apn/ApnEditPageProvider.kt +5 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import com.android.settingslib.spa.framework.compose.stateOf import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuBox import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuCheckBox import com.android.settingslib.spa.widget.editor.SettingsOutlinedTextField import com.android.settingslib.spa.widget.editor.SettingsTextFieldPassword import com.android.settingslib.spa.widget.preference.SwitchPreference import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel import com.android.settingslib.spa.widget.scaffold.RegularScaffold Loading Loading @@ -123,7 +124,10 @@ fun ApnPage(apnDataCur: MutableState<ApnData>) { stringResource(R.string.apn_user), enabled = apnData.userNameEnabled ) { apnData = apnData.copy(userName = it) } // TODO: password SettingsTextFieldPassword( apnData.passWord, stringResource(R.string.apn_password) ) { apnData = apnData.copy(passWord = it) } SettingsOutlinedTextField( apnData.server, stringResource(R.string.apn_server), Loading src/com/android/settings/network/apn/ApnStatus.kt +8 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,14 @@ data class ApnData( 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. * * @return An error message if the apn data is invalid, otherwise return null. */ fun getBearerSelectedOptionsState( bearer: Int, bearerBitmask: Int, Loading tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt +13 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ class ApnEditPageProviderTest { 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 passwordTitle = context.resources.getString(R.string.apn_password) private val apnData = mutableStateOf( ApnData( name = apnName, Loading Loading @@ -241,4 +242,16 @@ class ApnEditPageProviderTest { composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertIsDisplayed() composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertDoesNotExist() } @Test fun password_displayed() { composeTestRule.setContent { ApnPage(remember { apnData }) } composeTestRule.onRoot().onChild().onChildAt(0) .performScrollToNode(hasText(passwordTitle, true)) composeTestRule.onNodeWithText(passwordTitle, true).assertIsDisplayed() } } No newline at end of file Loading
src/com/android/settings/network/apn/ApnEditPageProvider.kt +5 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import com.android.settingslib.spa.framework.compose.stateOf import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuBox import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuCheckBox import com.android.settingslib.spa.widget.editor.SettingsOutlinedTextField import com.android.settingslib.spa.widget.editor.SettingsTextFieldPassword import com.android.settingslib.spa.widget.preference.SwitchPreference import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel import com.android.settingslib.spa.widget.scaffold.RegularScaffold Loading Loading @@ -123,7 +124,10 @@ fun ApnPage(apnDataCur: MutableState<ApnData>) { stringResource(R.string.apn_user), enabled = apnData.userNameEnabled ) { apnData = apnData.copy(userName = it) } // TODO: password SettingsTextFieldPassword( apnData.passWord, stringResource(R.string.apn_password) ) { apnData = apnData.copy(passWord = it) } SettingsOutlinedTextField( apnData.server, stringResource(R.string.apn_server), Loading
src/com/android/settings/network/apn/ApnStatus.kt +8 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,14 @@ data class ApnData( 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. * * @return An error message if the apn data is invalid, otherwise return null. */ fun getBearerSelectedOptionsState( bearer: Int, bearerBitmask: Int, Loading
tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt +13 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ class ApnEditPageProviderTest { 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 passwordTitle = context.resources.getString(R.string.apn_password) private val apnData = mutableStateOf( ApnData( name = apnName, Loading Loading @@ -241,4 +242,16 @@ class ApnEditPageProviderTest { composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertIsDisplayed() composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertDoesNotExist() } @Test fun password_displayed() { composeTestRule.setContent { ApnPage(remember { apnData }) } composeTestRule.onRoot().onChild().onChildAt(0) .performScrollToNode(hasText(passwordTitle, true)) composeTestRule.onNodeWithText(passwordTitle, true).assertIsDisplayed() } } No newline at end of file