diff options
| author | 2016-08-18 01:01:17 +0000 | |
|---|---|---|
| committer | 2016-08-18 01:01:17 +0000 | |
| commit | 7f7588d3fb24c7fdae38ecc030668558d5dd5c5e (patch) | |
| tree | ebf1e9ad876e56b8313a9ad1e0b79312e3703ece | |
| parent | d1f8be5f53f860ecd55f30aa1f07de26aed20923 (diff) | |
| parent | f49d1bab467365dfc2cf0ebdb633a734e5aaf441 (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.java | 25 |
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(); |