Merge "Bug fixes for the create flow auto select." into udc-dev am: c58528f3f4 am: 9f64db5079

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23125172

Change-Id: I6085860838353e18f489c6834960171d79e1bfd5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Helen Qin
2023-05-10 05:29:29 +00:00
committed by Automerger Merge Worker
3 changed files with 10 additions and 3 deletions

View File

@@ -480,7 +480,10 @@ class CreateFlowUtils {
createCredentialRequestJetpack.preferImmediatelyAvailableCredentials, createCredentialRequestJetpack.preferImmediatelyAvailableCredentials,
appPreferredDefaultProviderId = appPreferredDefaultProviderId, appPreferredDefaultProviderId = appPreferredDefaultProviderId,
userSetDefaultProviderIds = requestInfo.defaultProviderIds.toSet(), userSetDefaultProviderIds = requestInfo.defaultProviderIds.toSet(),
isAutoSelectRequest = createCredentialRequestJetpack.isAutoSelectAllowed, // The jetpack library requires a fix to parse this value correctly for
// the password type. For now, directly parse it ourselves.
isAutoSelectRequest = createCredentialRequest.credentialData.getBoolean(
Constants.BUNDLE_KEY_PREFER_IMMEDIATELY_AVAILABLE_CREDENTIALS, false),
) )
is CreatePublicKeyCredentialRequest -> { is CreatePublicKeyCredentialRequest -> {
newRequestDisplayInfoFromPasskeyJson( newRequestDisplayInfoFromPasskeyJson(
@@ -491,7 +494,10 @@ class CreateFlowUtils {
createCredentialRequestJetpack.preferImmediatelyAvailableCredentials, createCredentialRequestJetpack.preferImmediatelyAvailableCredentials,
appPreferredDefaultProviderId = appPreferredDefaultProviderId, appPreferredDefaultProviderId = appPreferredDefaultProviderId,
userSetDefaultProviderIds = requestInfo.defaultProviderIds.toSet(), userSetDefaultProviderIds = requestInfo.defaultProviderIds.toSet(),
isAutoSelectRequest = createCredentialRequestJetpack.isAutoSelectAllowed, // The jetpack library requires a fix to parse this value correctly for
// the passkey type. For now, directly parse it ourselves.
isAutoSelectRequest = createCredentialRequest.credentialData.getBoolean(
Constants.BUNDLE_KEY_PREFER_IMMEDIATELY_AVAILABLE_CREDENTIALS, false),
) )
} }
is CreateCustomCredentialRequest -> { is CreateCustomCredentialRequest -> {

View File

@@ -19,5 +19,7 @@ package com.android.credentialmanager.common
class Constants { class Constants {
companion object Constants { companion object Constants {
const val LOG_TAG = "CredentialSelector" const val LOG_TAG = "CredentialSelector"
const val BUNDLE_KEY_PREFER_IMMEDIATELY_AVAILABLE_CREDENTIALS =
"androidx.credentials.BUNDLE_KEY_IS_AUTO_SELECT_ALLOWED"
} }
} }

View File

@@ -42,7 +42,6 @@ internal fun isFlowAutoSelectable(
// applicable. // applicable.
uiState.currentScreenState != CreateScreenState.PASSKEY_INTRO && uiState.currentScreenState != CreateScreenState.PASSKEY_INTRO &&
uiState.currentScreenState != CreateScreenState.MORE_ABOUT_PASSKEYS_INTRO && uiState.currentScreenState != CreateScreenState.MORE_ABOUT_PASSKEYS_INTRO &&
uiState.remoteEntry == null &&
uiState.sortedCreateOptionsPairs.size == 1 && uiState.sortedCreateOptionsPairs.size == 1 &&
uiState.activeEntry?.activeEntryInfo?.let { uiState.activeEntry?.activeEntryInfo?.let {
it is CreateOptionInfo && it.allowAutoSelect it is CreateOptionInfo && it.allowAutoSelect