summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Simranjit Kohli <simranjit@google.com> 2024-12-11 16:55:10 -0800
committer Simranjit Kohli <simranjit@google.com> 2024-12-11 17:09:09 -0800
commit1eb012191302fab6a2163737f9c7519ae1e021c0 (patch)
treee4bf6f42de530fa4e0ee1230c0f614c946948086
parent0b3b6a6596a28628b8c27bacd4f66af946071090 (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.aconfig10
-rw-r--r--services/autofill/java/com/android/server/autofill/AutofillManagerService.java9
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) {