From f368dbefaec271d526999971957d159afcf0b0f5 Mon Sep 17 00:00:00 2001 From: Joanne Chung Date: Thu, 21 May 2020 13:55:36 +0800 Subject: [PATCH] Fix hasEnabledAutofillServices() return wrong value after AutofillServie updated AutofillManagerService tries to get service impl from the cache, but the service impl will be deleted from the cache after service is updated. The service enabled status should not be affect after updating service. If AutofillManagerService cannot get the service from the cache, we will get the service instance for an user. Bug: 152473957 Test: atest CtsAutoFillServiceTestCases Test: Manual. Install sample app and make sure the value is correct after update Change-Id: I0f2c156ccced8c87e0df5b2f9266acfd769a7322 --- .../android/server/autofill/AutofillManagerService.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java index c6a54fc3d2063..a8112a8ee3523 100644 --- a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java +++ b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java @@ -1639,12 +1639,8 @@ public final class AutofillManagerService @NonNull IResultReceiver receiver) { boolean enabled = false; synchronized (mLock) { - final AutofillManagerServiceImpl service = peekServiceForUserLocked(userId); - if (service != null) { - enabled = Objects.equals(packageName, service.getServicePackageName()); - } else if (sVerbose) { - Slog.v(TAG, "isServiceEnabled(): no service for " + userId); - } + final AutofillManagerServiceImpl service = getServiceForUserLocked(userId); + enabled = Objects.equals(packageName, service.getServicePackageName()); } send(receiver, enabled); }