diff options
| author | 2023-12-27 23:04:07 +0000 | |
|---|---|---|
| committer | 2024-01-04 06:38:30 +0000 | |
| commit | 21d3c21e365b40e5bf6646cd9ea7e88a552d8142 (patch) | |
| tree | 8e1afb78e31e1412134f5dbcb127658342419bb8 | |
| parent | ce31eaf88fe141e08ffeaad4cbf1344ead98b86a (diff) | |
Modify logic for inline suggestions builder to align with Credman UX spec
1. Change inline suggestion title to display name instead of username. If not set, use username
2. If there are duplicate display names, display the username as the subtitle.
Bug: 310038358
Change-Id: I6ff06f2a440e3c2c9043a4d77d464ec7913ff8ba
| -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) } |