diff options
| -rw-r--r-- | services/java/com/android/server/accessibility/AccessibilityManagerService.java | 44 | 
1 files changed, 32 insertions, 12 deletions
| diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java index 1e4faad55f31..10d384b47502 100644 --- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -190,6 +190,22 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub              }              @Override +            public void onPackageRemoved(String packageName, int uid) { +                synchronized (mLock) { +                    Iterator<ComponentName> it = mEnabledServices.iterator(); +                    while (it.hasNext()) { +                        ComponentName comp = it.next(); +                        String compPkg = comp.getPackageName(); +                        if (compPkg.equals(packageName)) { +                            it.remove(); +                            updateEnabledAccessibilitySerivcesSettingLocked(mEnabledServices); +                            return; +                        } +                    } +                } +            } + +            @Override              public boolean onHandleForceStop(Intent intent, String[] packages,                      int uid, boolean doit) {                  synchronized (mLock) { @@ -209,18 +225,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub                          }                      }                      if (changed) { -                        it = mEnabledServices.iterator(); -                        StringBuilder str = new StringBuilder(); -                        while (it.hasNext()) { -                            if (str.length() > 0) { -                                str.append(':'); -                            } -                            str.append(it.next().flattenToShortString()); -                        } -                        Settings.Secure.putString(mContext.getContentResolver(), -                                Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, -                                str.toString()); -                        manageServicesLocked(); +                        updateEnabledAccessibilitySerivcesSettingLocked(mEnabledServices);                      }                      return false;                  } @@ -252,6 +257,21 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub                  super.onReceive(context, intent);              } + +            private void updateEnabledAccessibilitySerivcesSettingLocked( +                    Set<ComponentName> enabledServices) { +                Iterator<ComponentName> it = enabledServices.iterator(); +                StringBuilder str = new StringBuilder(); +                while (it.hasNext()) { +                    if (str.length() > 0) { +                        str.append(':'); +                    } +                    str.append(it.next().flattenToShortString()); +                } +                Settings.Secure.putString(mContext.getContentResolver(), +                        Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, +                        str.toString()); +            }          };          // package changes |