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

Commit d1f765c0 authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android (Google) Code Review
Browse files

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

parents 6f575bb3 11f796ed
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -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) {
            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(