diff options
| author | 2024-01-05 18:27:53 +0000 | |
|---|---|---|
| committer | 2024-01-05 18:27:53 +0000 | |
| commit | 664fe94bcfc5e8e62906a6d8f38fafa53f1e86ed (patch) | |
| tree | 9fd1474df5bd1cd592de0e1e3c39a88de2aa75e1 | |
| parent | 986ba6acf0ef7abd79031664df92c7955f03459c (diff) | |
| parent | 21d3c21e365b40e5bf6646cd9ea7e88a552d8142 (diff) | |
Merge "Modify logic for inline suggestions builder to align with Credman UX spec" into main
| -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 34f2509b2e1e..8ac364e72fef 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/autofill/CredentialAutofillService.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/autofill/CredentialAutofillService.kt @@ -305,6 +305,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 @@ -339,10 +347,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) } |