Add SettingsTextFieldPassword.

Fix: 298906796
Test: Visual
Change-Id: I7dc8c641f93df96a28a57a6f6082abe264680298
This commit is contained in:
Charlotte Lu
2023-09-27 16:19:19 +08:00
parent 5872a8f573
commit cfa739350f
3 changed files with 26 additions and 1 deletions

View File

@@ -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<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),

View File

@@ -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,

View File

@@ -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()
}
}