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 Original line Diff line number Diff line
@@ -41,6 +41,7 @@ import android.view.ViewParent;
import android.view.ViewRootImpl;
import android.view.ViewRootImpl;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.widget.RemoteViews.RemoteView;
import android.widget.RemoteViews.RemoteView;


import java.util.ArrayList;
import java.util.ArrayList;
@@ -1715,11 +1716,17 @@ public class ListView extends AbsListView {
            }
            }


            // Attempt to restore accessibility focus.
            // Attempt to restore accessibility focus.
            if (accessibilityFocusLayoutRestoreNode != null) {
            if (accessibilityFocusLayoutRestoreView != null) {
                accessibilityFocusLayoutRestoreNode.performAction(
                final AccessibilityNodeProvider provider =
                        AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS);
                        accessibilityFocusLayoutRestoreView.getAccessibilityNodeProvider();
            } else if (accessibilityFocusLayoutRestoreView != null) {
                if ((accessibilityFocusLayoutRestoreNode != null) && (provider != null)) {
                    final int virtualViewId = AccessibilityNodeInfo.getVirtualDescendantId(
                            accessibilityFocusLayoutRestoreNode.getSourceNodeId());
                    provider.performAction(virtualViewId,
                            AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null);
                } else {
                    accessibilityFocusLayoutRestoreView.requestAccessibilityFocus();
                    accessibilityFocusLayoutRestoreView.requestAccessibilityFocus();
                }
            } else if (accessibilityFocusPosition != INVALID_POSITION) {
            } else if (accessibilityFocusPosition != INVALID_POSITION) {
                // Bound the position within the visible children.
                // Bound the position within the visible children.
                final int position = MathUtils.constrain(
                final int position = MathUtils.constrain(