summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/CredentialManager/src/com/android/credentialmanager/autofill/CredentialAutofillService.kt14
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/CredentialManager/src/com/android/credentialmanager/autofill/CredentialAutofillService.kt b/packages/CredentialManager/src/com/android/credentialmanager/autofill/CredentialAutofillService.kt
index 0ff1c7fd8953..6966a37ebf2c 100644
--- a/packages/CredentialManager/src/com/android/credentialmanager/autofill/CredentialAutofillService.kt
+++ b/packages/CredentialManager/src/com/android/credentialmanager/autofill/CredentialAutofillService.kt
@@ -201,6 +201,14 @@ class CredentialAutofillService : AutofillService() {
var i = 0
var datasetAdded = false
+ val duplicateDisplayNames: MutableMap<String, Boolean> = mutableMapOf()
+ providerDisplayInfo.sortedUserNameToCredentialEntryList.forEach {
+ val credentialEntry = it.sortedCredentialEntryList.first()
+ credentialEntry.displayName?.let {displayName ->
+ val duplicateEntry = duplicateDisplayNames.contains(displayName)
+ duplicateDisplayNames[displayName] = duplicateEntry
+ }
+ }
providerDisplayInfo.sortedUserNameToCredentialEntryList.forEach usernameLoop@{
val primaryEntry = it.sortedCredentialEntryList.first()
val pendingIntent = primaryEntry.pendingIntent
@@ -235,10 +243,14 @@ class CredentialAutofillService : AutofillService() {
} else {
spec = inlinePresentationSpecs[inlinePresentationSpecsCount - 1]
}
+ val displayName : String = primaryEntry.displayName ?: primaryEntry.userName
val sliceBuilder = InlineSuggestionUi
.newContentBuilder(pendingIntent)
- .setTitle(primaryEntry.userName)
+ .setTitle(displayName)
sliceBuilder.setStartIcon(icon)
+ if (duplicateDisplayNames[displayName] == true) {
+ sliceBuilder.setSubtitle(primaryEntry.userName)
+ }
inlinePresentation = InlinePresentation(
sliceBuilder.build().slice, spec, /* pinned= */ false)
}