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

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

Clearing accessibility focus of a view did not update the global state.

1. The code in clear accessibility focus was not updaing the global
   accessibility focus reference in view root if the view not a
   descendant has accessibility focus.

bug:6382856

Change-Id: I0c99578b5afd1f1f5d0df5bba05b0a03b5951a43
parent 0eaeb69d
Loading
Loading
Loading
Loading
+9 −9
Original line number Original line Diff line number Diff line
@@ -6196,23 +6196,23 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
     * @hide
     * @hide
     */
     */
    public void clearAccessibilityFocus() {
    public void clearAccessibilityFocus() {
        ViewRootImpl viewRootImpl = getViewRootImpl();
        if (viewRootImpl != null) {
            View focusHost = viewRootImpl.getAccessibilityFocusedHost();
            if (focusHost != null && focusHost != this
                    && ViewRootImpl.isViewDescendantOf(focusHost, this)) {
                viewRootImpl.setAccessibilityFocusedHost(null);
            }
        }
        if ((mPrivateFlags2 & ACCESSIBILITY_FOCUSED) != 0) {
        if ((mPrivateFlags2 & ACCESSIBILITY_FOCUSED) != 0) {
            mPrivateFlags2 &= ~ACCESSIBILITY_FOCUSED;
            mPrivateFlags2 &= ~ACCESSIBILITY_FOCUSED;
            invalidate();
            invalidate();
            sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED);
            sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED);
            notifyAccessibilityStateChanged();
            notifyAccessibilityStateChanged();
            // Clear the text navigation state.
            // Clear the text navigation state.
            setAccessibilityCursorPosition(-1);
            setAccessibilityCursorPosition(-1);
        }
        }
        // Clear the global reference of accessibility focus if this
        // view or any of its descendants had accessibility focus.
        ViewRootImpl viewRootImpl = getViewRootImpl();
        if (viewRootImpl != null) {
            View focusHost = viewRootImpl.getAccessibilityFocusedHost();
            if (focusHost != null && ViewRootImpl.isViewDescendantOf(focusHost, this)) {
                viewRootImpl.setAccessibilityFocusedHost(null);
            }
        }
    }
    }
    private void requestAccessibilityFocusFromHover() {
    private void requestAccessibilityFocusFromHover() {