summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/AccessibilityManagerService.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/AccessibilityManagerService.java')
-rw-r--r--services/java/com/android/server/AccessibilityManagerService.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/services/java/com/android/server/AccessibilityManagerService.java b/services/java/com/android/server/AccessibilityManagerService.java
index d38522c..77b6dd0 100644
--- a/services/java/com/android/server/AccessibilityManagerService.java
+++ b/services/java/com/android/server/AccessibilityManagerService.java
@@ -587,15 +587,17 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
intalledService.name);
Service service = componentNameToServiceMap.get(componentName);
- if (isEnabled && enabledServices.contains(componentName)) {
- if (service == null) {
+ if (isEnabled) {
+ if (enabledServices.contains(componentName) && service == null) {
new Service(componentName).bind();
+ } else if (!enabledServices.contains(componentName) && service != null) {
+ // clean up done in Service#onServiceDisconnected
+ service.unbind();
}
} else {
if (service != null) {
+ // clean up done in Service#onServiceDisconnected
service.unbind();
- componentNameToServiceMap.remove(componentName);
- services.remove(service);
}
}
}