summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2010-12-28 15:48:52 -0800
committerSvetoslav Ganov <svetoslavganov@google.com>2010-12-28 15:50:32 -0800
commitf2245aa5d7f5d6f0ea6d55fb2acc66624b2ef13f (patch)
treed75e190fe95f876b4ab86393c3ef63771d3ad939
parente51f94cfe9f97e13dad0e564dfc92b22e70c296d (diff)
downloadframeworks_base-f2245aa5d7f5d6f0ea6d55fb2acc66624b2ef13f.zip
frameworks_base-f2245aa5d7f5d6f0ea6d55fb2acc66624b2ef13f.tar.gz
frameworks_base-f2245aa5d7f5d6f0ea6d55fb2acc66624b2ef13f.tar.bz2
3304011 At times Talkback still works after disabling it.
Change-Id: If99ef28c6285a2d290d46518a07d69d5e22cca5b
-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);
}
}
}