From a3e261d506551713477adb2fd47d1a65b94e64d8 Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Wed, 27 Apr 2011 12:06:23 -0700 Subject: [PATCH] The accessibility input filter state was not unregistered when no spoken feedback accessibility services are regitstered. bug:4343996 Change-Id: Ie709ac24baa084cf3627d6adb6caf1550c399f8b --- .../accessibility/AccessibilityManagerService.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java index 1ad80470f7170..d96369b101fbf 100644 --- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -642,14 +642,16 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } /** - * Installs or removes the accessibility input filter when accessibility is enabled - * or disabled. + * Sets the input filter state. If the filter is in enabled it is registered + * in the window manager, otherwise the filter is removed from the latter. + * + * @param enabled Whether the input filter is enabled. */ - private void updateInputFilterLocked() { + private void setInputFilterEnabledLocked(boolean enabled) { WindowManagerService wm = (WindowManagerService)ServiceManager.getService( Context.WINDOW_SERVICE); if (wm != null) { - if (mIsEnabled) { + if (enabled) { if (mInputFilter == null) { mInputFilter = new AccessibilityInputFilter(mContext); } @@ -681,7 +683,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub if (enabledServices.size() > 0 && service.mFeedbackType == AccessibilityServiceInfo.FEEDBACK_SPOKEN) { updateClientsLocked(); - updateInputFilterLocked(); + setInputFilterEnabledLocked(true); } } @@ -697,7 +699,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub if (enabledServices.isEmpty() && service.mFeedbackType == AccessibilityServiceInfo.FEEDBACK_SPOKEN) { updateClientsLocked(); - updateInputFilterLocked(); + setInputFilterEnabledLocked(false); } }