diff options
3 files changed, 10 insertions, 3 deletions
diff --git a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt index d3ec644fcc59..b86eec04d542 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt @@ -480,7 +480,10 @@ class CreateFlowUtils { createCredentialRequestJetpack.preferImmediatelyAvailableCredentials, appPreferredDefaultProviderId = appPreferredDefaultProviderId, 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 -> { newRequestDisplayInfoFromPasskeyJson( @@ -491,7 +494,10 @@ class CreateFlowUtils { createCredentialRequestJetpack.preferImmediatelyAvailableCredentials, appPreferredDefaultProviderId = appPreferredDefaultProviderId, 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 -> { diff --git a/packages/CredentialManager/src/com/android/credentialmanager/common/Constants.kt b/packages/CredentialManager/src/com/android/credentialmanager/common/Constants.kt index 37e21a8fc161..c6dc5945d886 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/common/Constants.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/common/Constants.kt @@ -19,5 +19,7 @@ package com.android.credentialmanager.common class Constants { companion object Constants { const val LOG_TAG = "CredentialSelector" + const val BUNDLE_KEY_PREFER_IMMEDIATELY_AVAILABLE_CREDENTIALS = + "androidx.credentials.BUNDLE_KEY_IS_AUTO_SELECT_ALLOWED" } }
\ No newline at end of file diff --git a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateModel.kt b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateModel.kt index cf7a943f2c66..e9e8c2e0ccbf 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateModel.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateModel.kt @@ -42,7 +42,6 @@ internal fun isFlowAutoSelectable( // applicable. uiState.currentScreenState != CreateScreenState.PASSKEY_INTRO && uiState.currentScreenState != CreateScreenState.MORE_ABOUT_PASSKEYS_INTRO && - uiState.remoteEntry == null && uiState.sortedCreateOptionsPairs.size == 1 && uiState.activeEntry?.activeEntryInfo?.let { it is CreateOptionInfo && it.allowAutoSelect |