diff options
| author | 2023-10-11 21:18:51 +0000 | |
|---|---|---|
| committer | 2023-10-11 21:18:51 +0000 | |
| commit | e7bb976d294865d992affaf1a12e4925fcc7583b (patch) | |
| tree | 04a41ee2dbd9626e009e555d8fb1f6193fccbf65 | |
| parent | 4b0765c01e20dd67b556b12f4e2462a0c843ab60 (diff) | |
| parent | 1d13538e9a3deb91bcb96546468d195f8e7fb7ba (diff) | |
Merge "Stops using the deprecated PackageListObserver in A11yManagerService." into main
| -rw-r--r-- | services/accessibility/accessibility.aconfig | 9 | ||||
| -rw-r--r-- | services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java | 42 |
2 files changed, 29 insertions, 22 deletions
diff --git a/services/accessibility/accessibility.aconfig b/services/accessibility/accessibility.aconfig index 6fa9c0809f75..10ac2ebc9b2f 100644 --- a/services/accessibility/accessibility.aconfig +++ b/services/accessibility/accessibility.aconfig @@ -40,4 +40,11 @@ flag { namespace: "accessibility" description: "Whether to set min span of ScaleGestureDetector to zero." bug: "295327792" -}
\ No newline at end of file +} + +flag { + name: "deprecate_package_list_observer" + namespace: "accessibility" + description: "Stops using the deprecated PackageListObserver." + bug: "304561459" +} diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 60d4ee61fdd4..aa6d800510e1 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -841,32 +841,32 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub // package changes monitor.register(mContext, null, UserHandle.ALL, true); - // Register an additional observer for new packages using PackageManagerInternal, which - // generally notifies observers much sooner than the BroadcastReceiver-based PackageMonitor. - final PackageManagerInternal pm = LocalServices.getService( - PackageManagerInternal.class); - if (pm != null) { - pm.getPackageList(new PackageManagerInternal.PackageListObserver() { - @Override - public void onPackageAdded(String packageName, int uid) { - final int userId = UserHandle.getUserId(uid); - synchronized (mLock) { - if (userId == mCurrentUserId) { - onSomePackagesChangedLocked(); + if (!Flags.deprecatePackageListObserver()) { + final PackageManagerInternal pm = LocalServices.getService( + PackageManagerInternal.class); + if (pm != null) { + pm.getPackageList(new PackageManagerInternal.PackageListObserver() { + @Override + public void onPackageAdded(String packageName, int uid) { + final int userId = UserHandle.getUserId(uid); + synchronized (mLock) { + if (userId == mCurrentUserId) { + onSomePackagesChangedLocked(); + } } } - } - @Override - public void onPackageRemoved(String packageName, int uid) { - final int userId = UserHandle.getUserId(uid); - synchronized (mLock) { - if (userId == mCurrentUserId) { - onPackageRemovedLocked(packageName); + @Override + public void onPackageRemoved(String packageName, int uid) { + final int userId = UserHandle.getUserId(uid); + synchronized (mLock) { + if (userId == mCurrentUserId) { + onPackageRemovedLocked(packageName); + } } } - } - }); + }); + } } // user change and unlock |