diff options
| author | 2024-12-11 16:55:10 -0800 | |
|---|---|---|
| committer | 2024-12-11 17:09:09 -0800 | |
| commit | 1eb012191302fab6a2163737f9c7519ae1e021c0 (patch) | |
| tree | e4bf6f42de530fa4e0ee1230c0f614c946948086 | |
| parent | 0b3b6a6596a28628b8c27bacd4f66af946071090 (diff) | |
[Autofill] Fix getAutofillComponent returning null sometimes
Sometimes getAutofillComponent may return null. This can be easily
reproduced by killing the autofill provider, then calling
AutofillManager#getAutofillServiceComponentName, which returns null.
With this change, it'll return the user selected component.
Test: atest CtsAutoFillServiceTestCases
Bug: 319503432
Flag: android.service.autofill.fix_get_autofill_component
Change-Id: I10dd46830feb82c82a8f26084f2fc50685b5a1ec
| -rw-r--r-- | services/autofill/bugfixes.aconfig | 10 | ||||
| -rw-r--r-- | services/autofill/java/com/android/server/autofill/AutofillManagerService.java | 9 |
2 files changed, 17 insertions, 2 deletions
diff --git a/services/autofill/bugfixes.aconfig b/services/autofill/bugfixes.aconfig index 9c83757f4b0f..0d800a42eb4f 100644 --- a/services/autofill/bugfixes.aconfig +++ b/services/autofill/bugfixes.aconfig @@ -64,6 +64,16 @@ flag { } flag { + name: "fix_get_autofill_component" + namespace: "autofill" + description: "Fix getAutofillComponent returning null, even when user has selected provider" + bug: "319503432" + metadata { + purpose: PURPOSE_BUGFIX + } +} + +flag { name: "test_flag" namespace: "autofill" description: "Test flag " diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java index cba8c66cd5e3..c68e54956c99 100644 --- a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java +++ b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java @@ -18,6 +18,7 @@ package com.android.server.autofill; import static android.Manifest.permission.MANAGE_AUTO_FILL; import static android.content.Context.AUTOFILL_MANAGER_SERVICE; +import static android.service.autofill.Flags.fixGetAutofillComponent; import static android.view.autofill.AutofillManager.MAX_TEMP_AUGMENTED_SERVICE_DURATION_MS; import static android.view.autofill.AutofillManager.getSmartSuggestionModeToString; @@ -1920,8 +1921,12 @@ public final class AutofillManagerService try { synchronized (mLock) { - final AutofillManagerServiceImpl service = - peekServiceForUserWithLocalBinderIdentityLocked(userId); + final AutofillManagerServiceImpl service; + if (fixGetAutofillComponent()) { + service = getServiceForUserWithLocalBinderIdentityLocked(userId); + } else { + service = peekServiceForUserWithLocalBinderIdentityLocked(userId); + } if (service != null) { componentName = service.getServiceComponentName(); } else if (sVerbose) { |