diff --git a/packages/CredentialManager/res/values/strings.xml b/packages/CredentialManager/res/values/strings.xml index e12eff9ce20bd..f655d6b174d5f 100644 --- a/packages/CredentialManager/res/values/strings.xml +++ b/packages/CredentialManager/res/values/strings.xml @@ -110,7 +110,7 @@ Continue - " - " + " • " Sign-in options diff --git a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt index 43912c26f3c83..96e2d3f4e3572 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt @@ -149,7 +149,10 @@ class GetFlowUtils { icon = providerIcon, displayName = providerLabel, credentialEntryList = getCredentialOptionInfoList( - it.providerFlattenedComponentName, it.credentialEntries, context + providerId = it.providerFlattenedComponentName, + providerLabel = providerLabel, + credentialEntries = it.credentialEntries, + context = context ), authenticationEntryList = getAuthenticationEntryList( it.providerFlattenedComponentName, @@ -202,6 +205,7 @@ class GetFlowUtils { */ private fun getCredentialOptionInfoList( providerId: String, + providerLabel: String, credentialEntries: List, context: Context, ): List { @@ -212,6 +216,7 @@ class GetFlowUtils { is PasswordCredentialEntry -> { result.add(CredentialEntryInfo( providerId = providerId, + providerDisplayName = providerLabel, entryKey = it.key, entrySubkey = it.subkey, pendingIntent = credentialEntry.pendingIntent, @@ -227,6 +232,7 @@ class GetFlowUtils { is PublicKeyCredentialEntry -> { result.add(CredentialEntryInfo( providerId = providerId, + providerDisplayName = providerLabel, entryKey = it.key, entrySubkey = it.subkey, pendingIntent = credentialEntry.pendingIntent, @@ -242,6 +248,7 @@ class GetFlowUtils { is CustomCredentialEntry -> { result.add(CredentialEntryInfo( providerId = providerId, + providerDisplayName = providerLabel, entryKey = it.key, entrySubkey = it.subkey, pendingIntent = credentialEntry.pendingIntent, diff --git a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt index 9a826f20fe030..ea56f46716f46 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt @@ -415,14 +415,15 @@ fun CredentialEntryRow( credentialEntryInfo.credentialType == CredentialType.PASSWORD) { "••••••••••••" } else { - if (TextUtils.isEmpty(credentialEntryInfo.displayName)) - credentialEntryInfo.credentialTypeDisplayName - else - credentialEntryInfo.credentialTypeDisplayName + - stringResource( - R.string.get_dialog_sign_in_type_username_separator - ) + - credentialEntryInfo.displayName + val itemsToDisplay = listOf( + credentialEntryInfo.displayName, + credentialEntryInfo.credentialTypeDisplayName, + credentialEntryInfo.providerDisplayName + ).filterNot(TextUtils::isEmpty) + if (itemsToDisplay.isEmpty()) null + else itemsToDisplay.joinToString( + separator = stringResource(R.string.get_dialog_sign_in_type_username_separator) + ) }, ) } diff --git a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetModel.kt b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetModel.kt index 9727d3f39c4ad..56bc19ae70415 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetModel.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetModel.kt @@ -77,6 +77,7 @@ class CredentialEntryInfo( val credentialType: CredentialType, /** Localized type value of this credential used for display purpose. */ val credentialTypeDisplayName: String, + val providerDisplayName: String, val userName: String, val displayName: String?, val icon: Drawable?,