Merge "AccessibilityManagerService not registered for removed packages."

This commit is contained in:
Svetoslav Ganov
2011-09-14 16:24:21 -07:00
committed by Android (Google) Code Review

View File

@@ -189,6 +189,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) {
@@ -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