Loading packages/CredentialManager/res/values/strings.xml +5 −1 Original line number Diff line number Diff line <resources> <?xml version="1.0" encoding="utf-8"?> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_name">CredentialManager</string> <string name="string_cancel">Cancel</string> <string name="string_continue">Continue</string> Loading @@ -12,4 +13,7 @@ <string name="choose_create_option_title">Create a passkey at</string> <string name="choose_sign_in_title">Use saved sign in</string> <string name="create_passkey_at">Create passkey at</string> <string name="use_provider_for_all_title">Use <xliff:g id="providerInfoName">%1$s</xliff:g> for all your sign-ins?</string> <string name="set_as_default">Set as default</string> <string name="use_once">Use once</string> </resources> No newline at end of file packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt +29 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,8 @@ fun CreatePasskeyScreen( onOptionSelected = {viewModel.onMoreOptionsRowSelected(it)} ) CreateScreenState.MORE_OPTIONS_ROW_INTRO -> MoreOptionsRowIntroCard( providerInfo = uiState.selectedProvider!!, onDefaultOrNotSelected = {viewModel.onDefaultOrNotSelected(it)} ) } }, Loading Loading @@ -282,10 +284,37 @@ fun MoreOptionsSelectionCard( @ExperimentalMaterialApi @Composable fun MoreOptionsRowIntroCard( providerInfo: ProviderInfo, onDefaultOrNotSelected: (String) -> Unit, ) { Card( backgroundColor = lightBackgroundColor, ) { Column() { Text( text = stringResource(R.string.use_provider_for_all_title, providerInfo.name), style = Typography.subtitle1, modifier = Modifier.padding(all = 24.dp).align(alignment = Alignment.CenterHorizontally) ) Row( horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth().padding(horizontal = 24.dp) ) { CancelButton( stringResource(R.string.use_once), onclick = { onDefaultOrNotSelected(providerInfo.name) } ) ConfirmButton( stringResource(R.string.set_as_default), onclick = { onDefaultOrNotSelected(providerInfo.name) } ) } Divider( thickness = 18.dp, color = Color.Transparent, modifier = Modifier.padding(bottom = 40.dp) ) } } } Loading packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyViewModel.kt +8 −0 Original line number Diff line number Diff line Loading @@ -112,4 +112,12 @@ class CreatePasskeyViewModel( CredentialManagerRepo.getInstance().onCancel() dialogResult.value = DialogResult(ResultState.CANCELED) } fun onDefaultOrNotSelected(providerName: String) { uiState = uiState.copy( currentScreenState = CreateScreenState.CREATION_OPTION_SELECTION, selectedProvider = getProviderInfoByName(providerName) ) // TODO: implement the if choose as default or not logic later } } Loading
packages/CredentialManager/res/values/strings.xml +5 −1 Original line number Diff line number Diff line <resources> <?xml version="1.0" encoding="utf-8"?> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_name">CredentialManager</string> <string name="string_cancel">Cancel</string> <string name="string_continue">Continue</string> Loading @@ -12,4 +13,7 @@ <string name="choose_create_option_title">Create a passkey at</string> <string name="choose_sign_in_title">Use saved sign in</string> <string name="create_passkey_at">Create passkey at</string> <string name="use_provider_for_all_title">Use <xliff:g id="providerInfoName">%1$s</xliff:g> for all your sign-ins?</string> <string name="set_as_default">Set as default</string> <string name="use_once">Use once</string> </resources> No newline at end of file
packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt +29 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,8 @@ fun CreatePasskeyScreen( onOptionSelected = {viewModel.onMoreOptionsRowSelected(it)} ) CreateScreenState.MORE_OPTIONS_ROW_INTRO -> MoreOptionsRowIntroCard( providerInfo = uiState.selectedProvider!!, onDefaultOrNotSelected = {viewModel.onDefaultOrNotSelected(it)} ) } }, Loading Loading @@ -282,10 +284,37 @@ fun MoreOptionsSelectionCard( @ExperimentalMaterialApi @Composable fun MoreOptionsRowIntroCard( providerInfo: ProviderInfo, onDefaultOrNotSelected: (String) -> Unit, ) { Card( backgroundColor = lightBackgroundColor, ) { Column() { Text( text = stringResource(R.string.use_provider_for_all_title, providerInfo.name), style = Typography.subtitle1, modifier = Modifier.padding(all = 24.dp).align(alignment = Alignment.CenterHorizontally) ) Row( horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth().padding(horizontal = 24.dp) ) { CancelButton( stringResource(R.string.use_once), onclick = { onDefaultOrNotSelected(providerInfo.name) } ) ConfirmButton( stringResource(R.string.set_as_default), onclick = { onDefaultOrNotSelected(providerInfo.name) } ) } Divider( thickness = 18.dp, color = Color.Transparent, modifier = Modifier.padding(bottom = 40.dp) ) } } } Loading
packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyViewModel.kt +8 −0 Original line number Diff line number Diff line Loading @@ -112,4 +112,12 @@ class CreatePasskeyViewModel( CredentialManagerRepo.getInstance().onCancel() dialogResult.value = DialogResult(ResultState.CANCELED) } fun onDefaultOrNotSelected(providerName: String) { uiState = uiState.copy( currentScreenState = CreateScreenState.CREATION_OPTION_SELECTION, selectedProvider = getProviderInfoByName(providerName) ) // TODO: implement the if choose as default or not logic later } }