diff options
author | 2020-06-02 14:58:14 +0000 | |
---|---|---|
committer | 2020-06-02 14:58:14 +0000 | |
commit | aafb1f7006a40a47bb2bc86895d40dc749395218 (patch) | |
tree | ce6487d3ccc2e696406c266a401f9b3ad4254f85 | |
parent | b300644acc2eda5e0ff9c8b6610e82179b42a62f (diff) | |
parent | ca7187adfedbf5320f5a36e437af4ba1f6ad7448 (diff) |
Merge "Unbind explicit health check controller when possible" into rvc-dev am: d43ac6b413 am: ca7187adfe
Original change: undetermined
Change-Id: Iba7c4f436203554e1dcee32eb664aff827400910
-rw-r--r-- | services/core/java/com/android/server/PackageWatchdog.java | 9 | ||||
-rw-r--r-- | tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java | 1 |
2 files changed, 7 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/PackageWatchdog.java b/services/core/java/com/android/server/PackageWatchdog.java index e77458cc955a..fd7abfa65c86 100644 --- a/services/core/java/com/android/server/PackageWatchdog.java +++ b/services/core/java/com/android/server/PackageWatchdog.java @@ -239,7 +239,10 @@ public class PackageWatchdog { mIsPackagesReady = true; mHealthCheckController.setCallbacks(packageName -> onHealthCheckPassed(packageName), packages -> onSupportedPackages(packages), - () -> syncRequestsAsync()); + () -> { + syncRequestsAsync(); + mSyncRequired = true; + }); setPropertyChangedListenerLocked(); updateConfigs(); registerConnectivityModuleHealthListener(); @@ -255,7 +258,6 @@ public class PackageWatchdog { */ public void registerHealthObserver(PackageHealthObserver observer) { synchronized (mLock) { - mSyncRequired = true; ObserverInternal internalObserver = mAllObservers.get(observer.getName()); if (internalObserver != null) { internalObserver.registeredObserver = observer; @@ -642,7 +644,8 @@ public class PackageWatchdog { synchronized (mLock) { if (mIsPackagesReady) { Set<String> packages = getPackagesPendingHealthChecksLocked(); - if (!packages.equals(mRequestedHealthCheckPackages) || mSyncRequired) { + if (mSyncRequired || !packages.equals(mRequestedHealthCheckPackages) + || packages.isEmpty()) { syncRequired = true; mRequestedHealthCheckPackages = packages; } diff --git a/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java b/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java index d011dbbbe5db..ae93a81f274e 100644 --- a/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java +++ b/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java @@ -1113,6 +1113,7 @@ public class PackageWatchdogTest { mTestLooper.dispatchAll(); List<Set> expectedSyncRequests = List.of( + Set.of(), Set.of(APP_A), Set.of(APP_A, APP_B), Set.of(APP_A, APP_B, APP_C), |