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