diff options
| -rw-r--r-- | packages/CredentialManager/src/com/android/credentialmanager/autofill/CredentialAutofillService.kt | 14 |
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) } |