diff --git a/api/current.txt b/api/current.txt index 4f8938639e322..2802062433826 100644 --- a/api/current.txt +++ b/api/current.txt @@ -37464,6 +37464,7 @@ package android.view.accessibility { field public static final deprecated int MAX_TEXT_LENGTH = 500; // 0x1f4 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 diff --git a/api/system-current.txt b/api/system-current.txt index 4a665dc3a21e6..5713af21c413b 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -39762,6 +39762,7 @@ package android.view.accessibility { field public static final deprecated int MAX_TEXT_LENGTH = 500; // 0x1f4 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 diff --git a/core/java/android/view/accessibility/AccessibilityEvent.java b/core/java/android/view/accessibility/AccessibilityEvent.java index 87706ef64a551..1464bb5cff970 100644 --- a/core/java/android/view/accessibility/AccessibilityEvent.java +++ b/core/java/android/view/accessibility/AccessibilityEvent.java @@ -688,6 +688,11 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par */ public static final int TYPE_VIEW_CONTEXT_CLICKED = 0x00800000; + /** + * Represents the event of the assistant currently reading the users screen context. + */ + 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. @@ -1413,6 +1418,13 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par } builder.append("TYPE_VIEW_CONTEXT_CLICKED"); eventTypeCount++; + } + case TYPE_ASSIST_READING_CONTEXT: { + if (eventTypeCount > 0) { + builder.append(", "); + } + builder.append("TYPE_ASSIST_READING_CONTEXT"); + eventTypeCount++; } break; } diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index fd47d49df4710..b1925ba2bc63c 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -3124,6 +3124,8 @@ i + + diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistDisclosure.java b/packages/SystemUI/src/com/android/systemui/assist/AssistDisclosure.java index 585f9ba63fce7..c3a8f2e73d78a 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistDisclosure.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistDisclosure.java @@ -32,6 +32,7 @@ import android.graphics.PorterDuffXfermode; import android.os.Handler; import android.view.View; import android.view.WindowManager; +import android.view.accessibility.AccessibilityEvent; import android.view.animation.AnimationUtils; /** @@ -166,6 +167,7 @@ public class AssistDisclosure { super.onAttachedToWindow(); startAnimation(); + sendAccessibilityEvent(AccessibilityEvent.TYPE_ASSIST_READING_CONTEXT); } @Override diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 7bcbcfb5427ec..57769e709bc3a 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -3351,6 +3351,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { case AccessibilityEvent.TYPE_TOUCH_INTERACTION_END: case AccessibilityEvent.TYPE_VIEW_HOVER_ENTER: case AccessibilityEvent.TYPE_VIEW_HOVER_EXIT: + // Also always dispatch the event that assist is reading context. + case AccessibilityEvent.TYPE_ASSIST_READING_CONTEXT: // Also windows changing should always be anounced. case AccessibilityEvent.TYPE_WINDOWS_CHANGED: { return true;