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

Commit 041982bf authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android Git Automerger
Browse files

am 11832db4: am 531d5866: Merge "Accessibility focus search and setting it...

am 11832db4: am 531d5866: Merge "Accessibility focus search and setting it from hover are performed by the client." into jb-dev

* commit '11832db4':
  Accessibility focus search and setting it from hover are performed by the client.
parents 23b437d3 11832db4
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -24374,12 +24374,6 @@ package android.view {
    method protected boolean verifyDrawable(android.graphics.drawable.Drawable);
    method public boolean willNotCacheDrawing();
    method public boolean willNotDraw();
    field public static final int ACCESSIBILITY_FOCUS_BACKWARD = 4097; // 0x1001
    field public static final int ACCESSIBILITY_FOCUS_DOWN = 4226; // 0x1082
    field public static final int ACCESSIBILITY_FOCUS_FORWARD = 4098; // 0x1002
    field public static final int ACCESSIBILITY_FOCUS_LEFT = 4113; // 0x1011
    field public static final int ACCESSIBILITY_FOCUS_RIGHT = 4162; // 0x1042
    field public static final int ACCESSIBILITY_FOCUS_UP = 4129; // 0x1021
    field public static final android.util.Property ALPHA;
    field public static final int DRAWING_CACHE_QUALITY_AUTO = 0; // 0x0
    field public static final int DRAWING_CACHE_QUALITY_HIGH = 1048576; // 0x100000
@@ -24401,7 +24395,6 @@ package android.view {
    field protected static final int[] FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET;
    field protected static final int[] FOCUSED_STATE_SET;
    field protected static final int[] FOCUSED_WINDOW_FOCUSED_STATE_SET;
    field public static final int FOCUS_ACCESSIBILITY = 4096; // 0x1000
    field public static final int FOCUS_BACKWARD = 1; // 0x1
    field public static final int FOCUS_DOWN = 130; // 0x82
    field public static final int FOCUS_FORWARD = 2; // 0x2
@@ -25348,7 +25341,6 @@ package android.view.accessibility {
  public abstract class AccessibilityNodeProvider {
    ctor public AccessibilityNodeProvider();
    method public android.view.accessibility.AccessibilityNodeInfo accessibilityFocusSearch(int, int);
    method public android.view.accessibility.AccessibilityNodeInfo createAccessibilityNodeInfo(int);
    method public android.view.accessibility.AccessibilityNodeInfo findAccessibilityFocus(int);
    method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(java.lang.String, int);
+0 −8
Original line number Diff line number Diff line
@@ -24433,12 +24433,6 @@ package android.view {
    method protected boolean verifyDrawable(android.graphics.drawable.Drawable);
    method public boolean willNotCacheDrawing();
    method public boolean willNotDraw();
    field public static final int ACCESSIBILITY_FOCUS_BACKWARD = 4097; // 0x1001
    field public static final int ACCESSIBILITY_FOCUS_DOWN = 4226; // 0x1082
    field public static final int ACCESSIBILITY_FOCUS_FORWARD = 4098; // 0x1002
    field public static final int ACCESSIBILITY_FOCUS_LEFT = 4113; // 0x1011
    field public static final int ACCESSIBILITY_FOCUS_RIGHT = 4162; // 0x1042
    field public static final int ACCESSIBILITY_FOCUS_UP = 4129; // 0x1021
    field public static final android.util.Property ALPHA;
    field public static final int DRAWING_CACHE_QUALITY_AUTO = 0; // 0x0
    field public static final int DRAWING_CACHE_QUALITY_HIGH = 1048576; // 0x100000
@@ -24460,7 +24454,6 @@ package android.view {
    field protected static final int[] FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET;
    field protected static final int[] FOCUSED_STATE_SET;
    field protected static final int[] FOCUSED_WINDOW_FOCUSED_STATE_SET;
    field public static final int FOCUS_ACCESSIBILITY = 4096; // 0x1000
    field public static final int FOCUS_BACKWARD = 1; // 0x1
    field public static final int FOCUS_DOWN = 130; // 0x82
    field public static final int FOCUS_FORWARD = 2; // 0x2
@@ -25431,7 +25424,6 @@ package android.view.accessibility {
  public abstract class AccessibilityNodeProvider {
    ctor public AccessibilityNodeProvider();
    method public android.view.accessibility.AccessibilityNodeInfo accessibilityFocusSearch(int, int);
    method public android.view.accessibility.AccessibilityNodeInfo createAccessibilityNodeInfo(int);
    method public android.view.accessibility.AccessibilityNodeInfo findAccessibilityFocus(int);
    method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(java.lang.String, int);
+41 −3
Original line number Diff line number Diff line
@@ -1051,36 +1051,50 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    /**
     * The accessibility focus which is the current user position when
     * interacting with the accessibility framework.
     *
     * @hide
     */
    public static final int FOCUS_ACCESSIBILITY =  0x00001000;
    /**
     * Use with {@link #focusSearch(int)}. Move acessibility focus left.
     *
     * @hide
     */
    public static final int ACCESSIBILITY_FOCUS_LEFT = FOCUS_LEFT | FOCUS_ACCESSIBILITY;
    /**
     * Use with {@link #focusSearch(int)}. Move acessibility focus up.
     *
     * @hide
     */
    public static final int ACCESSIBILITY_FOCUS_UP = FOCUS_UP | FOCUS_ACCESSIBILITY;
    /**
     * Use with {@link #focusSearch(int)}. Move acessibility focus right.
     *
     * @hide
     */
    public static final int ACCESSIBILITY_FOCUS_RIGHT = FOCUS_RIGHT | FOCUS_ACCESSIBILITY;
    /**
     * Use with {@link #focusSearch(int)}. Move acessibility focus down.
     *
     * @hide
     */
    public static final int ACCESSIBILITY_FOCUS_DOWN = FOCUS_DOWN | FOCUS_ACCESSIBILITY;
    /**
     * Use with {@link #focusSearch(int)}. Move acessibility focus forward.
     *
     * @hide
     */
    public static final int ACCESSIBILITY_FOCUS_FORWARD = FOCUS_FORWARD | FOCUS_ACCESSIBILITY;
    /**
     * Use with {@link #focusSearch(int)}. Move acessibility focus backward.
     *
     * @hide
     */
    public static final int ACCESSIBILITY_FOCUS_BACKWARD = FOCUS_BACKWARD | FOCUS_ACCESSIBILITY;
@@ -6322,6 +6336,31 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        }
    }
    private void sendAccessibilityHoverEvent(int eventType) {
        // Since we are not delivering to a client accessibility events from not
        // important views (unless the clinet request that) we need to fire the
        // event from the deepest view exposed to the client. As a consequence if
        // the user crosses a not exposed view the client will see enter and exit
        // of the exposed predecessor followed by and enter and exit of that same
        // predecessor when entering and exiting the not exposed descendant. This
        // is fine since the client has a clear idea which view is hovered at the
        // price of a couple more events being sent. This is a simple and
        // working solution.
        View source = this;
        while (true) {
            if (source.includeForAccessibility()) {
                source.sendAccessibilityEvent(eventType);
                return;
            }
            ViewParent parent = source.getParent();
            if (parent instanceof View) {
                source = (View) parent;
            } else {
                return;
            }
        }
    }
    private void requestAccessibilityFocusFromHover() {
        if (includeForAccessibility() && isActionableForAccessibility()) {
            requestAccessibilityFocus();
@@ -7891,16 +7930,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                    || action == MotionEvent.ACTION_HOVER_MOVE)
                    && !hasHoveredChild()
                    && pointInView(event.getX(), event.getY())) {
                sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_HOVER_ENTER);
                sendAccessibilityHoverEvent(AccessibilityEvent.TYPE_VIEW_HOVER_ENTER);
                mSendingHoverAccessibilityEvents = true;
                requestAccessibilityFocusFromHover();
            }
        } else {
            if (action == MotionEvent.ACTION_HOVER_EXIT
                    || (action == MotionEvent.ACTION_MOVE
                            && !pointInView(event.getX(), event.getY()))) {
                mSendingHoverAccessibilityEvents = false;
                sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_HOVER_EXIT);
                sendAccessibilityHoverEvent(AccessibilityEvent.TYPE_VIEW_HOVER_EXIT);
                // If the window does not have input focus we take away accessibility
                // focus as soon as the user stop hovering over the view.
                if (mAttachInfo != null && !mAttachInfo.mHasWindowFocus) {
+1 −7
Original line number Diff line number Diff line
@@ -469,13 +469,7 @@ public class AccessibilityNodeInfo implements Parcelable {
     *     {@link View#FOCUS_LEFT},
     *     {@link View#FOCUS_RIGHT},
     *     {@link View#FOCUS_FORWARD},
     *     {@link View#FOCUS_BACKWARD},
     *     {@link View#ACCESSIBILITY_FOCUS_FORWARD},
     *     {@link View#ACCESSIBILITY_FOCUS_BACKWARD},
     *     {@link View#ACCESSIBILITY_FOCUS_UP},
     *     {@link View#ACCESSIBILITY_FOCUS_RIGHT},
     *     {@link View#ACCESSIBILITY_FOCUS_DOWN},
     *     {@link View#ACCESSIBILITY_FOCUS_LEFT}.
     *     {@link View#FOCUS_BACKWARD}.
     *
     * @return The node info for the view that can take accessibility focus.
     */
+2 −0
Original line number Diff line number Diff line
@@ -180,6 +180,8 @@ public abstract class AccessibilityNodeProvider {
     *
     * @see #createAccessibilityNodeInfo(int)
     * @see AccessibilityNodeInfo
     *
     * @hide
     */
    public AccessibilityNodeInfo accessibilityFocusSearch(int direction, int virtualViewId) {
        return null;