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

Commit 26b424b6 authored by alanv's avatar alanv
Browse files

Fix key info reported by keyboard accessibility node provider.

Bug: 6704529
Change-Id: I519881a96767a8858c11da7c0abac3e276a45cf5
parent dd7f7909
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -195,8 +195,7 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
            info.setSource(mKeyboardView, virtualViewId);
            info.setBoundsInScreen(boundsInScreen);
            info.setEnabled(true);
            info.setClickable(true);
            info.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK);
            info.setVisibleToUser(true);

            if (mAccessibilityFocusedView == virtualViewId) {
                info.addAction(AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS);
@@ -225,6 +224,9 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat

        mKeyboardView.onTouchEvent(downEvent);
        mKeyboardView.onTouchEvent(upEvent);

        downEvent.recycle();
        upEvent.recycle();
    }

    @Override
@@ -251,9 +253,6 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
        final int virtualViewId = generateVirtualViewIdForKey(key);

        switch (action) {
        case AccessibilityNodeInfoCompat.ACTION_CLICK:
            simulateKeyPress(key);
            return true;
        case AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS:
            if (mAccessibilityFocusedView == virtualViewId) {
                return false;
+15 −2
Original line number Diff line number Diff line
@@ -105,8 +105,21 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
    }

    /**
     * Receives hover events when accessibility is turned on in SDK versions ICS
     * and higher.
     * Receives motion events when touch exploration is turned on in SDK
     * versions ICS and higher.
     *
     * @param event The motion event.
     * @return {@code true} if the event is handled
     */
    public boolean onTouchEvent(MotionEvent event) {
        // To avoid accidental key presses during touch exploration, always drop
        // non-hover touch events.
        return false;
    }

    /**
     * Receives hover events when touch exploration is turned on in SDK versions
     * ICS and higher.
     *
     * @param event The hover event.
     * @return {@code true} if the event is handled
+3 −0
Original line number Diff line number Diff line
@@ -672,6 +672,9 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key
        if (getKeyboard() == null) {
            return false;
        }
        if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) {
            return AccessibleKeyboardViewProxy.getInstance().onTouchEvent(me);
        }
        return mTouchScreenRegulator.onTouchEvent(me);
    }

+1 −1
Original line number Diff line number Diff line
@@ -667,7 +667,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        // Forward this event to the accessibility utilities, if enabled.
        final AccessibilityUtils accessUtils = AccessibilityUtils.getInstance();
        if (accessUtils.isTouchExplorationEnabled()) {
            accessUtils.onStartInputViewInternal(inputView, editorInfo, restarting);
            accessUtils.onStartInputViewInternal(mainKeyboardView, editorInfo, restarting);
        }

        if (!restarting) {