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

Commit 5182a5bc authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android Git Automerger
Browse files

am 4ce106f5: Merge "Fixing some minor issues in accessibility focus." into jb-dev

* commit '4ce106f5':
  Fixing some minor issues in accessibility focus.
parents 47fca44b 4ce106f5
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -4325,7 +4325,6 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
        if (gainFocus) {
            if (AccessibilityManager.getInstance(mContext).isEnabled()) {
                sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
                requestAccessibilityFocus();
            }
        }
@@ -6183,8 +6182,6 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
            invalidate();
            sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
            notifyAccessibilityStateChanged();
            // Try to give input focus to this view - not a descendant.
            requestFocusNoSearch(View.FOCUS_DOWN, null);
            return true;
        }
        return false;
@@ -6230,11 +6227,13 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
    private void requestAccessibilityFocusFromHover() {
        if (includeForAccessibility() && isActionableForAccessibility()) {
            requestAccessibilityFocus();
            requestFocusNoSearch(View.FOCUS_DOWN, null);
        } else {
            if (mParent != null) {
                View nextFocus = mParent.findViewToTakeAccessibilityFocusFromHover(this, this);
                if (nextFocus != null) {
                    nextFocus.requestAccessibilityFocus();
                    nextFocus.requestFocusNoSearch(View.FOCUS_DOWN, null);
                }
            }
        }
+16 −11
Original line number Diff line number Diff line
@@ -1352,24 +1352,23 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
            case ACCESSIBILITY_FOCUS_FORWARD: {
                ViewRootImpl viewRootImpl = getViewRootImpl();
                if (viewRootImpl == null) {
                    break;
                    return null;
                }
                View currentFocus = viewRootImpl.getAccessibilityFocusedHost();
                if (currentFocus == null) {
                    break;
                    return super.focusSearch(this, direction);
                }
                // If we have the focus try giving it to the first child.
                if (currentFocus == this) {
                    final int firstVisiblePosition = getFirstVisiblePosition();
                    if (firstVisiblePosition >= 0) {
                    if (getChildCount() > 0) {
                        return getChildAt(0);
                    }
                    return null;
                    return super.focusSearch(this, direction);
                }
                // Find the item that has accessibility focus.
                final int currentPosition = getPositionForView(currentFocus);
                if (currentPosition < 0 || currentPosition >= getCount()) {
                    break;
                    return super.focusSearch(this, direction);
                }
                // Try to advance focus in the current item.
                View currentItem = getChildAt(currentPosition - getFirstVisiblePosition());
@@ -1386,25 +1385,31 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                final int nextPosition = currentPosition - getFirstVisiblePosition() + 1;
                if (nextPosition < getChildCount()) {
                    return getChildAt(nextPosition);
                } else {
                    return super.focusSearch(this, direction);
                }
            }
            } break;
            case ACCESSIBILITY_FOCUS_BACKWARD: {
                ViewRootImpl viewRootImpl = getViewRootImpl();
                if (viewRootImpl == null) {
                    break;
                    return null;
                }
                View currentFocus = viewRootImpl.getAccessibilityFocusedHost();
                if (currentFocus == null) {
                    break;
                    return super.focusSearch(this, direction);
                }
                // If we have the focus do a generic search.
                if (currentFocus == this) {
                    final int lastChildIndex = getChildCount() - 1;
                    if (lastChildIndex >= 0) {
                        return getChildAt(lastChildIndex);
                    }
                    return super.focusSearch(this, direction);
                }
                // Find the item that has accessibility focus.
                final int currentPosition = getPositionForView(currentFocus);
                if (currentPosition < 0 || currentPosition >= getCount()) {
                    break;
                    return super.focusSearch(this, direction);
                }
                // Try to advance focus in the current item.
                View currentItem = getChildAt(currentPosition - getFirstVisiblePosition());
@@ -1422,7 +1427,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                if (nextPosition >= 0) {
                    return getChildAt(nextPosition);
                } else {
                    return this;
                    return super.focusSearch(this, direction);
                }
            }
        }