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?,