summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Gavin Corkery <gavincorkery@google.com> 2020-06-02 14:58:14 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-06-02 14:58:14 +0000
commitaafb1f7006a40a47bb2bc86895d40dc749395218 (patch)
treece6487d3ccc2e696406c266a401f9b3ad4254f85
parentb300644acc2eda5e0ff9c8b6610e82179b42a62f (diff)
parentca7187adfedbf5320f5a36e437af4ba1f6ad7448 (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.java9
-rw-r--r--tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java1
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),