Merge "Check for null view root before checking for accessibility focus"
This commit is contained in:
committed by
Android (Google) Code Review
commit
35e2721399
@@ -1335,27 +1335,30 @@ public class GridView extends AbsListView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Attempt to restore accessibility focus, if necessary.
|
// Attempt to restore accessibility focus, if necessary.
|
||||||
final View newAccessibilityFocusedView = viewRootImpl.getAccessibilityFocusedHost();
|
if (viewRootImpl != null) {
|
||||||
if (newAccessibilityFocusedView == null) {
|
final View newAccessibilityFocusedView = viewRootImpl.getAccessibilityFocusedHost();
|
||||||
if (accessibilityFocusLayoutRestoreView != null
|
if (newAccessibilityFocusedView == null) {
|
||||||
&& accessibilityFocusLayoutRestoreView.isAttachedToWindow()) {
|
if (accessibilityFocusLayoutRestoreView != null
|
||||||
final AccessibilityNodeProvider provider =
|
&& accessibilityFocusLayoutRestoreView.isAttachedToWindow()) {
|
||||||
accessibilityFocusLayoutRestoreView.getAccessibilityNodeProvider();
|
final AccessibilityNodeProvider provider =
|
||||||
if (accessibilityFocusLayoutRestoreNode != null && provider != null) {
|
accessibilityFocusLayoutRestoreView.getAccessibilityNodeProvider();
|
||||||
final int virtualViewId = AccessibilityNodeInfo.getVirtualDescendantId(
|
if (accessibilityFocusLayoutRestoreNode != null && provider != null) {
|
||||||
accessibilityFocusLayoutRestoreNode.getSourceNodeId());
|
final int virtualViewId = AccessibilityNodeInfo.getVirtualDescendantId(
|
||||||
provider.performAction(virtualViewId,
|
accessibilityFocusLayoutRestoreNode.getSourceNodeId());
|
||||||
AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null);
|
provider.performAction(virtualViewId,
|
||||||
} else {
|
AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null);
|
||||||
accessibilityFocusLayoutRestoreView.requestAccessibilityFocus();
|
} else {
|
||||||
}
|
accessibilityFocusLayoutRestoreView.requestAccessibilityFocus();
|
||||||
} else if (accessibilityFocusPosition != INVALID_POSITION) {
|
}
|
||||||
// Bound the position within the visible children.
|
} else if (accessibilityFocusPosition != INVALID_POSITION) {
|
||||||
final int position = MathUtils.constrain(
|
// Bound the position within the visible children.
|
||||||
accessibilityFocusPosition - mFirstPosition, 0, getChildCount() - 1);
|
final int position = MathUtils.constrain(
|
||||||
final View restoreView = getChildAt(position);
|
accessibilityFocusPosition - mFirstPosition, 0,
|
||||||
if (restoreView != null) {
|
getChildCount() - 1);
|
||||||
restoreView.requestAccessibilityFocus();
|
final View restoreView = getChildAt(position);
|
||||||
|
if (restoreView != null) {
|
||||||
|
restoreView.requestAccessibilityFocus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1738,27 +1738,30 @@ public class ListView extends AbsListView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Attempt to restore accessibility focus, if necessary.
|
// Attempt to restore accessibility focus, if necessary.
|
||||||
final View newAccessibilityFocusedView = viewRootImpl.getAccessibilityFocusedHost();
|
if (viewRootImpl != null) {
|
||||||
if (newAccessibilityFocusedView == null) {
|
final View newAccessibilityFocusedView = viewRootImpl.getAccessibilityFocusedHost();
|
||||||
if (accessibilityFocusLayoutRestoreView != null
|
if (newAccessibilityFocusedView == null) {
|
||||||
&& accessibilityFocusLayoutRestoreView.isAttachedToWindow()) {
|
if (accessibilityFocusLayoutRestoreView != null
|
||||||
final AccessibilityNodeProvider provider =
|
&& accessibilityFocusLayoutRestoreView.isAttachedToWindow()) {
|
||||||
accessibilityFocusLayoutRestoreView.getAccessibilityNodeProvider();
|
final AccessibilityNodeProvider provider =
|
||||||
if (accessibilityFocusLayoutRestoreNode != null && provider != null) {
|
accessibilityFocusLayoutRestoreView.getAccessibilityNodeProvider();
|
||||||
final int virtualViewId = AccessibilityNodeInfo.getVirtualDescendantId(
|
if (accessibilityFocusLayoutRestoreNode != null && provider != null) {
|
||||||
accessibilityFocusLayoutRestoreNode.getSourceNodeId());
|
final int virtualViewId = AccessibilityNodeInfo.getVirtualDescendantId(
|
||||||
provider.performAction(virtualViewId,
|
accessibilityFocusLayoutRestoreNode.getSourceNodeId());
|
||||||
AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null);
|
provider.performAction(virtualViewId,
|
||||||
} else {
|
AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null);
|
||||||
accessibilityFocusLayoutRestoreView.requestAccessibilityFocus();
|
} else {
|
||||||
}
|
accessibilityFocusLayoutRestoreView.requestAccessibilityFocus();
|
||||||
} else if (accessibilityFocusPosition != INVALID_POSITION) {
|
}
|
||||||
// Bound the position within the visible children.
|
} else if (accessibilityFocusPosition != INVALID_POSITION) {
|
||||||
final int position = MathUtils.constrain(
|
// Bound the position within the visible children.
|
||||||
accessibilityFocusPosition - mFirstPosition, 0, getChildCount() - 1);
|
final int position = MathUtils.constrain(
|
||||||
final View restoreView = getChildAt(position);
|
accessibilityFocusPosition - mFirstPosition, 0,
|
||||||
if (restoreView != null) {
|
getChildCount() - 1);
|
||||||
restoreView.requestAccessibilityFocus();
|
final View restoreView = getChildAt(position);
|
||||||
|
if (restoreView != null) {
|
||||||
|
restoreView.requestAccessibilityFocus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user