From cfa739350f0dfe6c149c7010f7cdf378fae2e9a5 Mon Sep 17 00:00:00 2001 From: Charlotte Lu Date: Wed, 27 Sep 2023 16:19:19 +0800 Subject: [PATCH] Add SettingsTextFieldPassword. Fix: 298906796 Test: Visual Change-Id: I7dc8c641f93df96a28a57a6f6082abe264680298 --- .../settings/network/apn/ApnEditPageProvider.kt | 6 +++++- src/com/android/settings/network/apn/ApnStatus.kt | 8 ++++++++ .../settings/network/apn/ApnEditPageProviderTest.kt | 13 +++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/network/apn/ApnEditPageProvider.kt b/src/com/android/settings/network/apn/ApnEditPageProvider.kt index f2c33258e7f..9f3947ff38a 100644 --- a/src/com/android/settings/network/apn/ApnEditPageProvider.kt +++ b/src/com/android/settings/network/apn/ApnEditPageProvider.kt @@ -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 @@ -123,7 +124,10 @@ fun ApnPage(apnDataCur: MutableState) { 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), diff --git a/src/com/android/settings/network/apn/ApnStatus.kt b/src/com/android/settings/network/apn/ApnStatus.kt index 06d8cfb83da..5d64142addd 100644 --- a/src/com/android/settings/network/apn/ApnStatus.kt +++ b/src/com/android/settings/network/apn/ApnStatus.kt @@ -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, 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 0d2dcef9b64..d744181fcbb 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 @@ -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, @@ -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