diff options
| author | 2025-03-05 12:48:03 -0800 | |
|---|---|---|
| committer | 2025-03-05 12:48:03 -0800 | |
| commit | 684e4e11c31abbeea72e550c38abe947814b1e3b (patch) | |
| tree | 58105370ad6ad6b69d477ce139ce445fcfc91b29 | |
| parent | f0ce57acd66d9182c3288a1f28a18a82fbcfa03f (diff) | |
| parent | de348a1b4e67215b241bff30188f719df7e02c28 (diff) | |
Merge "[EnabledComponentsObserver] hold PackageMonitor object" into main
| -rw-r--r-- | services/core/java/com/android/server/vr/EnabledComponentsObserver.java | 62 |
1 files changed, 29 insertions, 33 deletions
diff --git a/services/core/java/com/android/server/vr/EnabledComponentsObserver.java b/services/core/java/com/android/server/vr/EnabledComponentsObserver.java index 7c2ce6467122..458cb023cc4e 100644 --- a/services/core/java/com/android/server/vr/EnabledComponentsObserver.java +++ b/services/core/java/com/android/server/vr/EnabledComponentsObserver.java @@ -58,6 +58,7 @@ public class EnabledComponentsObserver implements SettingChangeListener { private final Object mLock; private final Context mContext; + private final PackageMonitor mPackageMonitor; private final String mSettingName; private final String mServiceName; private final String mServicePermission; @@ -78,13 +79,39 @@ public class EnabledComponentsObserver implements SettingChangeListener { private EnabledComponentsObserver(@NonNull Context context, @NonNull String settingName, @NonNull String servicePermission, @NonNull String serviceName, @NonNull Object lock, - @NonNull Collection<EnabledComponentChangeListener> listeners) { + @NonNull Collection<EnabledComponentChangeListener> listeners, + @NonNull Looper looper) { mLock = lock; mContext = context; mSettingName = settingName; mServiceName = serviceName; mServicePermission = servicePermission; mEnabledComponentListeners.addAll(listeners); + mPackageMonitor = new PackageMonitor(true) { + @Override + public void onSomePackagesChanged() { + onPackagesChanged(); + } + + @Override + public void onPackageDisappeared(String packageName, int reason) { + onPackagesChanged(); + } + + @Override + public void onPackageModified(String packageName) { + onPackagesChanged(); + } + + @Override + public boolean onHandleForceStop(Intent intent, String[] packages, int uid, + boolean doit) { + onPackagesChanged(); + return super.onHandleForceStop(intent, packages, uid, doit); + } + }; + + mPackageMonitor.register(context, looper, UserHandle.ALL, true);; } /** @@ -108,38 +135,7 @@ public class EnabledComponentsObserver implements SettingChangeListener { SettingsObserver s = SettingsObserver.build(context, handler, settingName); final EnabledComponentsObserver o = new EnabledComponentsObserver(context, settingName, - servicePermission, serviceName, lock, listeners); - - PackageMonitor packageMonitor = new PackageMonitor(true) { - @Override - public void onSomePackagesChanged() { - o.onPackagesChanged(); - - } - - @Override - public void onPackageDisappeared(String packageName, int reason) { - o.onPackagesChanged(); - - } - - @Override - public void onPackageModified(String packageName) { - o.onPackagesChanged(); - - } - - @Override - public boolean onHandleForceStop(Intent intent, String[] packages, int uid, - boolean doit) { - o.onPackagesChanged(); - - return super.onHandleForceStop(intent, packages, uid, doit); - } - }; - - packageMonitor.register(context, looper, UserHandle.ALL, true); - + servicePermission, serviceName, lock, listeners, looper); s.addListener(o); return o; |