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

Commit 26c44eee authored by Alan Viverette's avatar Alan Viverette
Browse files

Add accessibility action for making a node visible on screen

Bug: 19872425
Change-Id: I39c971f949d08d6573da2e5567dca1e187a17d7e
parent 73484d8b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -36192,6 +36192,7 @@ package android.view.accessibility {
    field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SELECT;
    field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SET_SELECTION;
    field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SET_TEXT;
    field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_ON_SCREEN;
  }
  public static final class AccessibilityNodeInfo.CollectionInfo {
+1 −0
Original line number Diff line number Diff line
@@ -38629,6 +38629,7 @@ package android.view.accessibility {
    field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SELECT;
    field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SET_SELECTION;
    field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SET_TEXT;
    field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_ON_SCREEN;
  }
  public static final class AccessibilityNodeInfo.CollectionInfo {
+10 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityEventSource;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
@@ -5814,6 +5815,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                    | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD
                    | AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH);
        }
        info.addAction(AccessibilityAction.ACTION_SHOW_ON_SCREEN);
    }
    private View findLabelForView(View view, int labeledId) {
@@ -8261,6 +8264,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                    return true;
                }
            } break;
            case R.id.accessibility_action_show_on_screen: {
                if (mAttachInfo != null) {
                    final Rect r = mAttachInfo.mTmpInvalRect;
                    getDrawingRect(r);
                    return requestRectangleOnScreen(r, true);
                }
            } break;
        }
        return false;
    }
+12 −0
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ import android.util.LongArray;
import android.util.Pools.SynchronizedPool;
import android.view.View;

import com.android.internal.R;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -3402,6 +3404,15 @@ public class AccessibilityNodeInfo implements Parcelable {
                new AccessibilityAction(
                        AccessibilityNodeInfo.ACTION_SET_TEXT, null);

        /**
         * Action that requests the node make its bounding rectangle visible
         * on the screen, scrolling if necessary just enough.
         *
         * @see View#requestRectangleOnScreen(Rect)
         */
        public static final AccessibilityAction ACTION_SHOW_ON_SCREEN =
                new AccessibilityAction(R.id.accessibility_action_show_on_screen, null);

        private static final ArraySet<AccessibilityAction> sStandardActions = new ArraySet<AccessibilityAction>();
        static {
            sStandardActions.add(ACTION_FOCUS);
@@ -3426,6 +3437,7 @@ public class AccessibilityNodeInfo implements Parcelable {
            sStandardActions.add(ACTION_COLLAPSE);
            sStandardActions.add(ACTION_DISMISS);
            sStandardActions.add(ACTION_SET_TEXT);
            sStandardActions.add(ACTION_SHOW_ON_SCREEN);
        }

        private final int mActionId;
+1 −0
Original line number Diff line number Diff line
@@ -93,4 +93,5 @@
  <item type="id" name="undo" />
  <item type="id" name="redo" />
  <item type="id" name="replaceText" />
  <item type="id" name="accessibility_action_show_on_screen" />
</resources>
Loading