From f1451fc3c4131c42cc74b3eed1e95bc4d8bad340 Mon Sep 17 00:00:00 2001 From: Qinmei Du Date: Wed, 19 Oct 2022 04:43:16 +0000 Subject: [PATCH] Add the use provider for all your signins checking page screencast: https://screencast.googleplex.com/cast/NTI0MDk5NDYxNTI2MzIzMnwzMDcxYTc0Zi0xZA Test: deployed locally Bug: 253157211 Change-Id: Ie3e1eb33fdb51b0b4483bb0b1e1c6168975fee92 --- .../CredentialManager/res/values/strings.xml | 6 +++- .../createflow/CreatePasskeyComponents.kt | 29 +++++++++++++++++++ .../createflow/CreatePasskeyViewModel.kt | 8 +++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/packages/CredentialManager/res/values/strings.xml b/packages/CredentialManager/res/values/strings.xml index 2c24bf14117a7..92ce77282cb96 100644 --- a/packages/CredentialManager/res/values/strings.xml +++ b/packages/CredentialManager/res/values/strings.xml @@ -1,4 +1,5 @@ - + + CredentialManager Cancel Continue @@ -12,4 +13,7 @@ Create a passkey at Use saved sign in Create passkey at + Use %1$s for all your sign-ins? + Set as default + Use once \ No newline at end of file diff --git a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt index f4d60b5f77ccd..82fce9f7a98dd 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyComponents.kt @@ -83,6 +83,8 @@ fun CreatePasskeyScreen( onOptionSelected = {viewModel.onMoreOptionsRowSelected(it)} ) CreateScreenState.MORE_OPTIONS_ROW_INTRO -> MoreOptionsRowIntroCard( + providerInfo = uiState.selectedProvider!!, + onDefaultOrNotSelected = {viewModel.onDefaultOrNotSelected(it)} ) } }, @@ -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) + ) + } } } diff --git a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyViewModel.kt b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyViewModel.kt index 3cf81da1fbaa8..ff44e2ee1b068 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyViewModel.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreatePasskeyViewModel.kt @@ -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 + } }