Loading core/java/com/android/internal/widget/ExploreByTouchHelper.java +45 −10 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); Loading Loading @@ -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); } /** Loading @@ -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); } } } /** Loading Loading @@ -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. Loading @@ -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); Loading Loading @@ -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. Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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 Loading Loading
core/java/com/android/internal/widget/ExploreByTouchHelper.java +45 −10 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); Loading Loading @@ -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); } /** Loading @@ -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); } } } /** Loading Loading @@ -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. Loading @@ -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); Loading Loading @@ -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. Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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 Loading