diff options
| author | 2022-05-03 05:22:56 +0000 | |
|---|---|---|
| committer | 2022-05-03 05:22:56 +0000 | |
| commit | 9e98853f0470632f3622ab119de8e9d6ee99a9dd (patch) | |
| tree | e9bc4c8b0671dd6752fd1621a2493f861f2ee8d9 | |
| parent | b3dfec5c5f9fb1f206c556377b3ec995567fe45f (diff) | |
| parent | 59f972ae6e9f4177320a365de12e4c9e02bfeee3 (diff) | |
Merge "Fix incorrect PackageSetting in the SharedUserSetting" into tm-dev am: a22156f40d am: 59f972ae6e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17988068
Change-Id: If71fbaf57df3fcb60bce366e8f010ff0239d5bf8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/pm/SharedUserSetting.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/SharedUserSetting.java b/services/core/java/com/android/server/pm/SharedUserSetting.java index 23f0de8a5f71..58be87852026 100644 --- a/services/core/java/com/android/server/pm/SharedUserSetting.java +++ b/services/core/java/com/android/server/pm/SharedUserSetting.java @@ -17,6 +17,7 @@ package com.android.server.pm; import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.pm.ApplicationInfo; import android.content.pm.SigningDetails; import android.service.pm.PackageServiceDumpProto; @@ -33,7 +34,9 @@ import com.android.server.pm.pkg.component.ComponentMutateUtils; import com.android.server.pm.pkg.component.ParsedProcess; import com.android.server.pm.pkg.component.ParsedProcessImpl; import com.android.server.utils.SnapshotCache; +import com.android.server.utils.Watchable; import com.android.server.utils.WatchedArraySet; +import com.android.server.utils.Watcher; import libcore.util.EmptyArray; @@ -66,6 +69,16 @@ public final class SharedUserSetting extends SettingBase implements SharedUserAp final WatchedArraySet<PackageSetting> mDisabledPackages; private final SnapshotCache<WatchedArraySet<PackageSetting>> mDisabledPackagesSnapshot; + /** + * The observer that watches for changes from array members + */ + private final Watcher mObserver = new Watcher() { + @Override + public void onChange(@Nullable Watchable what) { + SharedUserSetting.this.onChanged(); + } + }; + final PackageSignatures signatures = new PackageSignatures(); Boolean signaturesChanged; @@ -97,6 +110,7 @@ public final class SharedUserSetting extends SettingBase implements SharedUserAp mDisabledPackagesSnapshot = new SnapshotCache.Auto<>(mDisabledPackages, mDisabledPackages, "SharedUserSetting.mDisabledPackages"); processes = new ArrayMap<>(); + registerObservers(); mSnapshot = makeCache(); } @@ -119,6 +133,11 @@ public final class SharedUserSetting extends SettingBase implements SharedUserAp mSnapshot = new SnapshotCache.Sealed<>(); } + private void registerObservers() { + mPackages.registerObserver(mObserver); + mDisabledPackages.registerObserver(mObserver); + } + /** * Return a read-only snapshot of this object. */ |