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

Commit 83109d66 authored by Alan Viverette's avatar Alan Viverette Committed by Android (Google) Code Review
Browse files

Merge "Add change type to ExploreByTouchHelper"

parents 88a96f58 961cdbf1
Loading
Loading
Loading
Loading
+45 −10
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import android.content.Context;
import android.graphics.Rect;
import android.os.Bundle;
import android.util.IntArray;
import android.view.accessibility.*;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewParent;
@@ -50,6 +49,9 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
    /** Virtual node identifier value for invalid nodes. */
    public static final int INVALID_ID = Integer.MIN_VALUE;

    /** Virtual node identifier value for the host view's node. */
    public static final int HOST_ID = View.NO_ID;

    /** Default class name used for virtual views. */
    private static final String DEFAULT_CLASS_NAME = View.class.getName();

@@ -195,7 +197,7 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
     * parent view.
     */
    public void invalidateRoot() {
        invalidateVirtualView(View.NO_ID);
        invalidateVirtualView(HOST_ID, AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE);
    }

    /**
@@ -205,10 +207,43 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
     * You <b>must</b> call this method after changing any of the properties set
     * in {@link #onPopulateNodeForVirtualView}.
     *
     * @param virtualViewId The virtual view id to invalidate.
     * @param virtualViewId The virtual view id to invalidate, or
     *                      {@link #HOST_ID} to invalidate the root view.
     * @see #invalidateVirtualView(int, int)
     */
    public void invalidateVirtualView(int virtualViewId) {
        sendEventForVirtualView(virtualViewId, AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
        invalidateVirtualView(virtualViewId,
                AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED);
    }

    /**
     * Notifies the accessibility framework that the properties of a particular
     * item have changed.
     * <p>
     * You <b>must</b> call this method after changing any of the properties set
     * in {@link #onPopulateNodeForVirtualView}.
     *
     * @param virtualViewId The virtual view id to invalidate, or
     *                      {@link #HOST_ID} to invalidate the root view.
     * @param changeTypes The bit mask of change types. May be {@code 0} for the
     *                    default (undefined) change type or one or more of:
     *         <ul>
     *         <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION}
     *         <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_SUBTREE}
     *         <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_TEXT}
     *         <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_UNDEFINED}
     *         </ul>
     */
    public void invalidateVirtualView(int virtualViewId, int changeTypes) {
        if (virtualViewId != INVALID_ID && mManager.isEnabled()) {
            final ViewParent parent = mView.getParent();
            if (parent != null) {
                final AccessibilityEvent event = createEvent(virtualViewId,
                        AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
                event.setContentChangeTypes(changeTypes);
                parent.requestSendAccessibilityEvent(mView, event);
            }
        }
    }

    /**
@@ -245,7 +280,7 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {

    /**
     * Constructs and returns an {@link AccessibilityEvent} for the specified
     * virtual view id, which includes the host view ({@link View#NO_ID}).
     * virtual view id, which includes the host view ({@link #HOST_ID}).
     *
     * @param virtualViewId The virtual view id for the item for which to
     *            construct an event.
@@ -255,7 +290,7 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
     */
    private AccessibilityEvent createEvent(int virtualViewId, int eventType) {
        switch (virtualViewId) {
            case View.NO_ID:
            case HOST_ID:
                return createEventForHost(eventType);
            default:
                return createEventForChild(virtualViewId, eventType);
@@ -309,7 +344,7 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
    /**
     * Constructs and returns an {@link android.view.accessibility.AccessibilityNodeInfo} for the
     * specified virtual view id, which includes the host view
     * ({@link View#NO_ID}).
     * ({@link #HOST_ID}).
     *
     * @param virtualViewId The virtual view id for the item for which to
     *            construct a node.
@@ -318,7 +353,7 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
     */
    private AccessibilityNodeInfo createNode(int virtualViewId) {
        switch (virtualViewId) {
            case View.NO_ID:
            case HOST_ID:
                return createNodeForHost();
            default:
                return createNodeForChild(virtualViewId);
@@ -457,7 +492,7 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {

    private boolean performAction(int virtualViewId, int action, Bundle arguments) {
        switch (virtualViewId) {
            case View.NO_ID:
            case HOST_ID:
                return performActionForHost(action, arguments);
            default:
                return performActionForChild(virtualViewId, action, arguments);
@@ -646,7 +681,7 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
     * <li>package name, set to the package of the host view's
     * {@link Context}, see {@link AccessibilityEvent#setPackageName}
     * <li>event source, set to the host view and virtual view identifier,
     * see {@link AccessibilityRecord#setSource(View, int)}
     * see {@link android.view.accessibility.AccessibilityRecord#setSource(View, int)}
     * </ul>
     *
     * @param virtualViewId The virtual view id for the item for which to