Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3e261d5 authored by Svetoslav Ganov's avatar Svetoslav Ganov
Browse files

The accessibility input filter state was not unregistered when

no spoken feedback accessibility services are regitstered.

bug:4343996

Change-Id: Ie709ac24baa084cf3627d6adb6caf1550c399f8b
parent 3bd92957
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -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);
        }
    }