Loading core/api/current.txt +7 −0 Original line number Diff line number Diff line Loading @@ -51430,6 +51430,7 @@ package android.view.accessibility { method public CharSequence getPackageName(); method public android.view.accessibility.AccessibilityRecord getRecord(int); method public int getRecordCount(); method public int getSpeechStateChangeTypes(); method public int getWindowChanges(); method public void initFromParcel(android.os.Parcel); method @Deprecated public static android.view.accessibility.AccessibilityEvent obtain(int); Loading @@ -51441,6 +51442,7 @@ package android.view.accessibility { method public void setEventType(int); method public void setMovementGranularity(int); method public void setPackageName(CharSequence); method public void setSpeechStateChangeTypes(int); method public void writeToParcel(android.os.Parcel, int); field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4 field public static final int CONTENT_CHANGE_TYPE_DRAG_CANCELLED = 512; // 0x200 Loading @@ -51456,12 +51458,17 @@ package android.view.accessibility { field @NonNull public static final android.os.Parcelable.Creator<android.view.accessibility.AccessibilityEvent> CREATOR; field public static final int INVALID_POSITION = -1; // 0xffffffff field @Deprecated public static final int MAX_TEXT_LENGTH = 500; // 0x1f4 field public static final int SPEECH_STATE_LISTENING_END = 8; // 0x8 field public static final int SPEECH_STATE_LISTENING_START = 4; // 0x4 field public static final int SPEECH_STATE_SPEAKING_END = 2; // 0x2 field public static final int SPEECH_STATE_SPEAKING_START = 1; // 0x1 field public static final int TYPES_ALL_MASK = -1; // 0xffffffff field public static final int TYPE_ANNOUNCEMENT = 16384; // 0x4000 field public static final int TYPE_ASSIST_READING_CONTEXT = 16777216; // 0x1000000 field public static final int TYPE_GESTURE_DETECTION_END = 524288; // 0x80000 field public static final int TYPE_GESTURE_DETECTION_START = 262144; // 0x40000 field public static final int TYPE_NOTIFICATION_STATE_CHANGED = 64; // 0x40 field public static final int TYPE_SPEECH_STATE_CHANGE = 33554432; // 0x2000000 field public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; // 0x400 field public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; // 0x200 field public static final int TYPE_TOUCH_INTERACTION_END = 2097152; // 0x200000 core/java/android/view/accessibility/AccessibilityEvent.java +144 −41 Original line number Diff line number Diff line Loading @@ -553,8 +553,20 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par public static final int TYPE_ASSIST_READING_CONTEXT = 0x01000000; /** * Change type for {@link #TYPE_WINDOW_CONTENT_CHANGED} event: * The type of change is not defined. * Represents a change in the speech state defined by the content-change types. A change in the * speech state occurs when another service is either speaking or listening for human speech. * This event helps avoid conflicts where two services want to speak or one listens * when another speaks. * @see #SPEECH_STATE_SPEAKING_START * @see #SPEECH_STATE_SPEAKING_END * @see #SPEECH_STATE_LISTENING_START * @see #SPEECH_STATE_LISTENING_END */ public static final int TYPE_SPEECH_STATE_CHANGE = 0x02000000; /** * Change type for {@link #TYPE_WINDOW_CONTENT_CHANGED} event: The type of change is not * defined. */ public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0x00000000; Loading Loading @@ -641,6 +653,27 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par */ public static final int CONTENT_CHANGE_TYPE_DRAG_CANCELLED = 0x0000200; /** Change type for {@link #TYPE_SPEECH_STATE_CHANGE} event: another service is speaking. */ public static final int SPEECH_STATE_SPEAKING_START = 0x00000001; /** * Change type for {@link #TYPE_SPEECH_STATE_CHANGE} event: another service is no longer * speaking. */ public static final int SPEECH_STATE_SPEAKING_END = 0x00000002; /** * Change type for {@link #TYPE_SPEECH_STATE_CHANGE} event: another service is listening to the * microphone. */ public static final int SPEECH_STATE_LISTENING_START = 0x00000004; /** * Change type for {@link #TYPE_SPEECH_STATE_CHANGE} event: another service is no longer * listening to the microphone. */ public static final int SPEECH_STATE_LISTENING_END = 0x00000008; /** * Change type for {@link #TYPE_WINDOWS_CHANGED} event: * The window was added. Loading Loading @@ -730,7 +763,9 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par /** @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(flag = true, prefix = { "CONTENT_CHANGE_TYPE_" }, @IntDef( flag = true, prefix = {"CONTENT_CHANGE_TYPE_"}, value = { CONTENT_CHANGE_TYPE_UNDEFINED, CONTENT_CHANGE_TYPE_SUBTREE, Loading @@ -742,12 +777,28 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par CONTENT_CHANGE_TYPE_PANE_DISAPPEARED, CONTENT_CHANGE_TYPE_DRAG_STARTED, CONTENT_CHANGE_TYPE_DRAG_DROPPED, CONTENT_CHANGE_TYPE_DRAG_CANCELLED CONTENT_CHANGE_TYPE_DRAG_CANCELLED, }) public @interface ContentChangeTypes {} /** @hide */ @IntDef(flag = true, prefix = { "TYPE_" }, value = { @Retention(RetentionPolicy.SOURCE) @IntDef( flag = true, prefix = {"SPEECH_STATE_"}, value = { SPEECH_STATE_SPEAKING_START, SPEECH_STATE_SPEAKING_END, SPEECH_STATE_LISTENING_START, SPEECH_STATE_LISTENING_END }) public @interface SpeechStateChangeTypes {} /** @hide */ @IntDef( flag = true, prefix = {"TYPE_"}, value = { TYPE_VIEW_CLICKED, TYPE_VIEW_LONG_CLICKED, TYPE_VIEW_SELECTED, Loading @@ -772,7 +823,8 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par TYPE_TOUCH_INTERACTION_END, TYPE_WINDOWS_CHANGED, TYPE_VIEW_CONTEXT_CLICKED, TYPE_ASSIST_READING_CONTEXT TYPE_ASSIST_READING_CONTEXT, TYPE_SPEECH_STATE_CHANGE }) @Retention(RetentionPolicy.SOURCE) public @interface EventType {} Loading Loading @@ -814,6 +866,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par int mAction; int mContentChangeTypes; int mWindowChangeTypes; int mSpeechStateChangeTypes; /** * The stack trace describing where this event originated from on the app side. Loading Loading @@ -867,6 +920,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par mMovementGranularity = event.mMovementGranularity; mAction = event.mAction; mContentChangeTypes = event.mContentChangeTypes; mSpeechStateChangeTypes = event.mSpeechStateChangeTypes; mWindowChangeTypes = event.mWindowChangeTypes; mEventTime = event.mEventTime; mPackageName = event.mPackageName; Loading Loading @@ -1007,6 +1061,51 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par mContentChangeTypes = changeTypes; } /** * Gets the speech state signaled by a {@link #TYPE_SPEECH_STATE_CHANGE} event * * @see #SPEECH_STATE_SPEAKING_START * @see #SPEECH_STATE_SPEAKING_END * @see #SPEECH_STATE_LISTENING_START * @see #SPEECH_STATE_LISTENING_END */ public int getSpeechStateChangeTypes() { return mSpeechStateChangeTypes; } private static String speechStateChangedTypesToString(int types) { return BitUtils.flagsToString( types, AccessibilityEvent::singleSpeechStateChangeTypeToString); } private static String singleSpeechStateChangeTypeToString(int type) { switch (type) { case SPEECH_STATE_SPEAKING_START: return "SPEECH_STATE_SPEAKING_START"; case SPEECH_STATE_LISTENING_START: return "SPEECH_STATE_LISTENING_START"; case SPEECH_STATE_SPEAKING_END: return "SPEECH_STATE_SPEAKING_END"; case SPEECH_STATE_LISTENING_END: return "SPEECH_STATE_LISTENING_END"; default: return Integer.toHexString(type); } } /** * Sets the speech state type signaled by a {@link #TYPE_SPEECH_STATE_CHANGE} event * * @see #SPEECH_STATE_SPEAKING_START * @see #SPEECH_STATE_SPEAKING_END * @see #SPEECH_STATE_LISTENING_START * @see #SPEECH_STATE_LISTENING_END */ public void setSpeechStateChangeTypes(int state) { enforceNotSealed(); mSpeechStateChangeTypes = state; } /** * Get the bit mask of change types signaled by a {@link #TYPE_WINDOWS_CHANGED} event. A * single event may represent multiple change types. Loading Loading @@ -1239,6 +1338,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par mAction = 0; mContentChangeTypes = 0; mWindowChangeTypes = 0; mSpeechStateChangeTypes = 0; mPackageName = null; mEventTime = 0; if (mRecords != null) { Loading @@ -1261,6 +1361,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par mAction = parcel.readInt(); mContentChangeTypes = parcel.readInt(); mWindowChangeTypes = parcel.readInt(); mSpeechStateChangeTypes = parcel.readInt(); mPackageName = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel); mEventTime = parcel.readLong(); mConnectionId = parcel.readInt(); Loading Loading @@ -1332,6 +1433,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par parcel.writeInt(mAction); parcel.writeInt(mContentChangeTypes); parcel.writeInt(mWindowChangeTypes); parcel.writeInt(mSpeechStateChangeTypes); TextUtils.writeToParcel(mPackageName, parcel, 0); parcel.writeLong(mEventTime); parcel.writeInt(mConnectionId); Loading Loading @@ -1500,6 +1602,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par case TYPE_WINDOWS_CHANGED: return "TYPE_WINDOWS_CHANGED"; case TYPE_VIEW_CONTEXT_CLICKED: return "TYPE_VIEW_CONTEXT_CLICKED"; case TYPE_ASSIST_READING_CONTEXT: return "TYPE_ASSIST_READING_CONTEXT"; case TYPE_SPEECH_STATE_CHANGE: return "TYPE_SPEECH_STATE_CHANGE"; default: return Integer.toHexString(eventType); } } Loading core/tests/coretests/src/android/view/accessibility/AccessibilityEventTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ public class AccessibilityEventTest { // and assertAccessibilityEventCleared /** The number of properties of the {@link AccessibilityEvent} class. */ private static final int A11Y_EVENT_NON_STATIC_FIELD_COUNT = 32; private static final int A11Y_EVENT_NON_STATIC_FIELD_COUNT = 33; // The number of fields tested in the corresponding CTS AccessibilityRecordTest: // assertAccessibilityRecordCleared, fullyPopulateAccessibilityRecord, Loading Loading
core/api/current.txt +7 −0 Original line number Diff line number Diff line Loading @@ -51430,6 +51430,7 @@ package android.view.accessibility { method public CharSequence getPackageName(); method public android.view.accessibility.AccessibilityRecord getRecord(int); method public int getRecordCount(); method public int getSpeechStateChangeTypes(); method public int getWindowChanges(); method public void initFromParcel(android.os.Parcel); method @Deprecated public static android.view.accessibility.AccessibilityEvent obtain(int); Loading @@ -51441,6 +51442,7 @@ package android.view.accessibility { method public void setEventType(int); method public void setMovementGranularity(int); method public void setPackageName(CharSequence); method public void setSpeechStateChangeTypes(int); method public void writeToParcel(android.os.Parcel, int); field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4 field public static final int CONTENT_CHANGE_TYPE_DRAG_CANCELLED = 512; // 0x200 Loading @@ -51456,12 +51458,17 @@ package android.view.accessibility { field @NonNull public static final android.os.Parcelable.Creator<android.view.accessibility.AccessibilityEvent> CREATOR; field public static final int INVALID_POSITION = -1; // 0xffffffff field @Deprecated public static final int MAX_TEXT_LENGTH = 500; // 0x1f4 field public static final int SPEECH_STATE_LISTENING_END = 8; // 0x8 field public static final int SPEECH_STATE_LISTENING_START = 4; // 0x4 field public static final int SPEECH_STATE_SPEAKING_END = 2; // 0x2 field public static final int SPEECH_STATE_SPEAKING_START = 1; // 0x1 field public static final int TYPES_ALL_MASK = -1; // 0xffffffff field public static final int TYPE_ANNOUNCEMENT = 16384; // 0x4000 field public static final int TYPE_ASSIST_READING_CONTEXT = 16777216; // 0x1000000 field public static final int TYPE_GESTURE_DETECTION_END = 524288; // 0x80000 field public static final int TYPE_GESTURE_DETECTION_START = 262144; // 0x40000 field public static final int TYPE_NOTIFICATION_STATE_CHANGED = 64; // 0x40 field public static final int TYPE_SPEECH_STATE_CHANGE = 33554432; // 0x2000000 field public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; // 0x400 field public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; // 0x200 field public static final int TYPE_TOUCH_INTERACTION_END = 2097152; // 0x200000
core/java/android/view/accessibility/AccessibilityEvent.java +144 −41 Original line number Diff line number Diff line Loading @@ -553,8 +553,20 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par public static final int TYPE_ASSIST_READING_CONTEXT = 0x01000000; /** * Change type for {@link #TYPE_WINDOW_CONTENT_CHANGED} event: * The type of change is not defined. * Represents a change in the speech state defined by the content-change types. A change in the * speech state occurs when another service is either speaking or listening for human speech. * This event helps avoid conflicts where two services want to speak or one listens * when another speaks. * @see #SPEECH_STATE_SPEAKING_START * @see #SPEECH_STATE_SPEAKING_END * @see #SPEECH_STATE_LISTENING_START * @see #SPEECH_STATE_LISTENING_END */ public static final int TYPE_SPEECH_STATE_CHANGE = 0x02000000; /** * Change type for {@link #TYPE_WINDOW_CONTENT_CHANGED} event: The type of change is not * defined. */ public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0x00000000; Loading Loading @@ -641,6 +653,27 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par */ public static final int CONTENT_CHANGE_TYPE_DRAG_CANCELLED = 0x0000200; /** Change type for {@link #TYPE_SPEECH_STATE_CHANGE} event: another service is speaking. */ public static final int SPEECH_STATE_SPEAKING_START = 0x00000001; /** * Change type for {@link #TYPE_SPEECH_STATE_CHANGE} event: another service is no longer * speaking. */ public static final int SPEECH_STATE_SPEAKING_END = 0x00000002; /** * Change type for {@link #TYPE_SPEECH_STATE_CHANGE} event: another service is listening to the * microphone. */ public static final int SPEECH_STATE_LISTENING_START = 0x00000004; /** * Change type for {@link #TYPE_SPEECH_STATE_CHANGE} event: another service is no longer * listening to the microphone. */ public static final int SPEECH_STATE_LISTENING_END = 0x00000008; /** * Change type for {@link #TYPE_WINDOWS_CHANGED} event: * The window was added. Loading Loading @@ -730,7 +763,9 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par /** @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(flag = true, prefix = { "CONTENT_CHANGE_TYPE_" }, @IntDef( flag = true, prefix = {"CONTENT_CHANGE_TYPE_"}, value = { CONTENT_CHANGE_TYPE_UNDEFINED, CONTENT_CHANGE_TYPE_SUBTREE, Loading @@ -742,12 +777,28 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par CONTENT_CHANGE_TYPE_PANE_DISAPPEARED, CONTENT_CHANGE_TYPE_DRAG_STARTED, CONTENT_CHANGE_TYPE_DRAG_DROPPED, CONTENT_CHANGE_TYPE_DRAG_CANCELLED CONTENT_CHANGE_TYPE_DRAG_CANCELLED, }) public @interface ContentChangeTypes {} /** @hide */ @IntDef(flag = true, prefix = { "TYPE_" }, value = { @Retention(RetentionPolicy.SOURCE) @IntDef( flag = true, prefix = {"SPEECH_STATE_"}, value = { SPEECH_STATE_SPEAKING_START, SPEECH_STATE_SPEAKING_END, SPEECH_STATE_LISTENING_START, SPEECH_STATE_LISTENING_END }) public @interface SpeechStateChangeTypes {} /** @hide */ @IntDef( flag = true, prefix = {"TYPE_"}, value = { TYPE_VIEW_CLICKED, TYPE_VIEW_LONG_CLICKED, TYPE_VIEW_SELECTED, Loading @@ -772,7 +823,8 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par TYPE_TOUCH_INTERACTION_END, TYPE_WINDOWS_CHANGED, TYPE_VIEW_CONTEXT_CLICKED, TYPE_ASSIST_READING_CONTEXT TYPE_ASSIST_READING_CONTEXT, TYPE_SPEECH_STATE_CHANGE }) @Retention(RetentionPolicy.SOURCE) public @interface EventType {} Loading Loading @@ -814,6 +866,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par int mAction; int mContentChangeTypes; int mWindowChangeTypes; int mSpeechStateChangeTypes; /** * The stack trace describing where this event originated from on the app side. Loading Loading @@ -867,6 +920,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par mMovementGranularity = event.mMovementGranularity; mAction = event.mAction; mContentChangeTypes = event.mContentChangeTypes; mSpeechStateChangeTypes = event.mSpeechStateChangeTypes; mWindowChangeTypes = event.mWindowChangeTypes; mEventTime = event.mEventTime; mPackageName = event.mPackageName; Loading Loading @@ -1007,6 +1061,51 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par mContentChangeTypes = changeTypes; } /** * Gets the speech state signaled by a {@link #TYPE_SPEECH_STATE_CHANGE} event * * @see #SPEECH_STATE_SPEAKING_START * @see #SPEECH_STATE_SPEAKING_END * @see #SPEECH_STATE_LISTENING_START * @see #SPEECH_STATE_LISTENING_END */ public int getSpeechStateChangeTypes() { return mSpeechStateChangeTypes; } private static String speechStateChangedTypesToString(int types) { return BitUtils.flagsToString( types, AccessibilityEvent::singleSpeechStateChangeTypeToString); } private static String singleSpeechStateChangeTypeToString(int type) { switch (type) { case SPEECH_STATE_SPEAKING_START: return "SPEECH_STATE_SPEAKING_START"; case SPEECH_STATE_LISTENING_START: return "SPEECH_STATE_LISTENING_START"; case SPEECH_STATE_SPEAKING_END: return "SPEECH_STATE_SPEAKING_END"; case SPEECH_STATE_LISTENING_END: return "SPEECH_STATE_LISTENING_END"; default: return Integer.toHexString(type); } } /** * Sets the speech state type signaled by a {@link #TYPE_SPEECH_STATE_CHANGE} event * * @see #SPEECH_STATE_SPEAKING_START * @see #SPEECH_STATE_SPEAKING_END * @see #SPEECH_STATE_LISTENING_START * @see #SPEECH_STATE_LISTENING_END */ public void setSpeechStateChangeTypes(int state) { enforceNotSealed(); mSpeechStateChangeTypes = state; } /** * Get the bit mask of change types signaled by a {@link #TYPE_WINDOWS_CHANGED} event. A * single event may represent multiple change types. Loading Loading @@ -1239,6 +1338,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par mAction = 0; mContentChangeTypes = 0; mWindowChangeTypes = 0; mSpeechStateChangeTypes = 0; mPackageName = null; mEventTime = 0; if (mRecords != null) { Loading @@ -1261,6 +1361,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par mAction = parcel.readInt(); mContentChangeTypes = parcel.readInt(); mWindowChangeTypes = parcel.readInt(); mSpeechStateChangeTypes = parcel.readInt(); mPackageName = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel); mEventTime = parcel.readLong(); mConnectionId = parcel.readInt(); Loading Loading @@ -1332,6 +1433,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par parcel.writeInt(mAction); parcel.writeInt(mContentChangeTypes); parcel.writeInt(mWindowChangeTypes); parcel.writeInt(mSpeechStateChangeTypes); TextUtils.writeToParcel(mPackageName, parcel, 0); parcel.writeLong(mEventTime); parcel.writeInt(mConnectionId); Loading Loading @@ -1500,6 +1602,7 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par case TYPE_WINDOWS_CHANGED: return "TYPE_WINDOWS_CHANGED"; case TYPE_VIEW_CONTEXT_CLICKED: return "TYPE_VIEW_CONTEXT_CLICKED"; case TYPE_ASSIST_READING_CONTEXT: return "TYPE_ASSIST_READING_CONTEXT"; case TYPE_SPEECH_STATE_CHANGE: return "TYPE_SPEECH_STATE_CHANGE"; default: return Integer.toHexString(eventType); } } Loading
core/tests/coretests/src/android/view/accessibility/AccessibilityEventTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ public class AccessibilityEventTest { // and assertAccessibilityEventCleared /** The number of properties of the {@link AccessibilityEvent} class. */ private static final int A11Y_EVENT_NON_STATIC_FIELD_COUNT = 32; private static final int A11Y_EVENT_NON_STATIC_FIELD_COUNT = 33; // The number of fields tested in the corresponding CTS AccessibilityRecordTest: // assertAccessibilityRecordCleared, fullyPopulateAccessibilityRecord, Loading