am d1f765c0: Merge "Fix restoration of virtual accessibility focus in ListView." into jb-mr2-dev

* commit 'd1f765c009ec28484792b9d847fa0c41e6b943e0':
  Fix restoration of virtual accessibility focus in ListView.
This commit is contained in:
Svetoslav Ganov
2013-04-18 19:20:19 -07:00
committed by Android Git Automerger

View File

@@ -41,6 +41,7 @@ import android.view.ViewParent;
import android.view.ViewRootImpl;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.widget.RemoteViews.RemoteView;
import java.util.ArrayList;
@@ -1715,11 +1716,17 @@ public class ListView extends AbsListView {
}
// Attempt to restore accessibility focus.
if (accessibilityFocusLayoutRestoreNode != null) {
accessibilityFocusLayoutRestoreNode.performAction(
AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS);
} else if (accessibilityFocusLayoutRestoreView != null) {
accessibilityFocusLayoutRestoreView.requestAccessibilityFocus();
if (accessibilityFocusLayoutRestoreView != null) {
final AccessibilityNodeProvider provider =
accessibilityFocusLayoutRestoreView.getAccessibilityNodeProvider();
if ((accessibilityFocusLayoutRestoreNode != null) && (provider != null)) {
final int virtualViewId = AccessibilityNodeInfo.getVirtualDescendantId(
accessibilityFocusLayoutRestoreNode.getSourceNodeId());
provider.performAction(virtualViewId,
AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null);
} else {
accessibilityFocusLayoutRestoreView.requestAccessibilityFocus();
}
} else if (accessibilityFocusPosition != INVALID_POSITION) {
// Bound the position within the visible children.
final int position = MathUtils.constrain(