summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Phil Weaver <pweaver@google.com> 2016-08-18 01:01:17 +0000
committer android-build-merger <android-build-merger@google.com> 2016-08-18 01:01:17 +0000
commit7f7588d3fb24c7fdae38ecc030668558d5dd5c5e (patch)
treeebf1e9ad876e56b8313a9ad1e0b79312e3703ece
parentd1f8be5f53f860ecd55f30aa1f07de26aed20923 (diff)
parentf49d1bab467365dfc2cf0ebdb633a734e5aaf441 (diff)
Restart accessibility services after they update. am: 1e6695bbd4 am: fff4a144de
am: f49d1bab46 Change-Id: I27d86acb98d9cf19f89af036202af9b0a911eea6
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index 79a8165c2056..3e397350ddcc 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -279,6 +279,31 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
}
@Override
+ public void onPackageUpdateFinished(String packageName, int uid) {
+ // Unbind all services from this package, and then update the user state to
+ // re-bind new versions of them.
+ synchronized (mLock) {
+ final int userId = getChangingUserId();
+ if (userId != mCurrentUserId) {
+ return;
+ }
+ UserState userState = getUserStateLocked(userId);
+ boolean unboundAService = false;
+ for (int i = userState.mBoundServices.size() - 1; i >= 0; i--) {
+ Service boundService = userState.mBoundServices.get(i);
+ String servicePkg = boundService.mComponentName.getPackageName();
+ if (servicePkg.equals(packageName)) {
+ boundService.unbindLocked();
+ unboundAService = true;
+ }
+ }
+ if (unboundAService) {
+ onUserStateChangedLocked(userState);
+ }
+ }
+ }
+
+ @Override
public void onPackageRemoved(String packageName, int uid) {
synchronized (mLock) {
final int userId = getChangingUserId();