summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Helen Qin <helenqin@google.com> 2023-05-10 04:49:27 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-05-10 04:49:27 +0000
commit9f64db5079eb53b2385f19fac780522e60091824 (patch)
treecb0f76edc06450a568f1330c4127dc207e05b153
parentf14751bda9d77e968c96f220ea9d013acb2c8e3f (diff)
parentc58528f3f4d80a95a187c14d8fbddf2c47c3deb5 (diff)
Merge "Bug fixes for the create flow auto select." into udc-dev am: c58528f3f4
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23125172 Change-Id: If31c3b826325eaa32546e9c540ce49ce6c4410fe Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt10
-rw-r--r--packages/CredentialManager/src/com/android/credentialmanager/common/Constants.kt2
-rw-r--r--packages/CredentialManager/src/com/android/credentialmanager/createflow/CreateModel.kt1
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