diff --git a/core/api/current.txt b/core/api/current.txt index a372948cbefba554df820fe8b7d96afdb1d91f5f..69a3cb35fa612b5b822503ed72369b8b3f6876a7 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -3286,10 +3286,10 @@ package android.accessibilityservice { public abstract class AccessibilityService extends android.app.Service { ctor public AccessibilityService(); - method @Deprecated public void attachAccessibilityOverlayToDisplay(int, @NonNull android.view.SurfaceControl); - method public void attachAccessibilityOverlayToDisplay(int, @NonNull android.view.SurfaceControl, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.IntConsumer); - method @Deprecated public void attachAccessibilityOverlayToWindow(int, @NonNull android.view.SurfaceControl); - method public void attachAccessibilityOverlayToWindow(int, @NonNull android.view.SurfaceControl, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.IntConsumer); + method public void attachAccessibilityOverlayToDisplay(int, @NonNull android.view.SurfaceControl); + method @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public void attachAccessibilityOverlayToDisplay(int, @NonNull android.view.SurfaceControl, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.IntConsumer); + method public void attachAccessibilityOverlayToWindow(int, @NonNull android.view.SurfaceControl); + method @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public void attachAccessibilityOverlayToWindow(int, @NonNull android.view.SurfaceControl, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.IntConsumer); method public boolean clearCache(); method public boolean clearCachedSubtree(@NonNull android.view.accessibility.AccessibilityNodeInfo); method public final void disableSelf(); @@ -3401,9 +3401,9 @@ package android.accessibilityservice { field public static final int GLOBAL_ACTION_RECENTS = 3; // 0x3 field public static final int GLOBAL_ACTION_TAKE_SCREENSHOT = 9; // 0x9 field public static final int GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN = 7; // 0x7 - field public static final int OVERLAY_RESULT_INTERNAL_ERROR = 1; // 0x1 - field public static final int OVERLAY_RESULT_INVALID = 2; // 0x2 - field public static final int OVERLAY_RESULT_SUCCESS = 0; // 0x0 + field @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public static final int OVERLAY_RESULT_INTERNAL_ERROR = 1; // 0x1 + field @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public static final int OVERLAY_RESULT_INVALID = 2; // 0x2 + field @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public static final int OVERLAY_RESULT_SUCCESS = 0; // 0x0 field public static final String SERVICE_INTERFACE = "android.accessibilityservice.AccessibilityService"; field public static final String SERVICE_META_DATA = "android.accessibilityservice"; field public static final int SHOW_MODE_AUTO = 0; // 0x0 diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 0e857a9c5f932469089fdf3622b4387e83acf3c0..01cf6c604a6c6873ab72a78a45e34d13c956ecff 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -3616,7 +3616,6 @@ package android.view.accessibility { public final class AccessibilityWindowInfo implements android.os.Parcelable { method public static void setNumInstancesInUseCounter(java.util.concurrent.atomic.AtomicInteger); - field public static final int UNDEFINED_WINDOW_ID = -1; // 0xffffffff } } diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java index 3370c121acfebf6152c707794d935ffcc65fea11..1000612ee0e2b6058420d189196f5990daf29c26 100644 --- a/core/java/android/accessibilityservice/AccessibilityService.java +++ b/core/java/android/accessibilityservice/AccessibilityService.java @@ -23,6 +23,7 @@ import android.accessibilityservice.GestureDescription.MotionEventGenerator; import android.annotation.CallbackExecutor; import android.annotation.CheckResult; import android.annotation.ColorInt; +import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; @@ -793,6 +794,7 @@ public abstract class AccessibilityService extends Service { * @hide */ @Retention(RetentionPolicy.SOURCE) + @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") @IntDef( prefix = {"OVERLAY_RESULT_"}, value = { @@ -803,6 +805,7 @@ public abstract class AccessibilityService extends Service { public @interface AttachOverlayResult {} /** Result code indicating the overlay was successfully attached. */ + @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public static final int OVERLAY_RESULT_SUCCESS = 0; /** @@ -810,6 +813,7 @@ public abstract class AccessibilityService extends Service { * error and not * because of problems with the input. */ + @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public static final int OVERLAY_RESULT_INTERNAL_ERROR = 1; /** @@ -817,6 +821,7 @@ public abstract class AccessibilityService extends Service { * specified display or * window id was invalid. */ + @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public static final int OVERLAY_RESULT_INVALID = 2; private int mConnectionId = AccessibilityInteractionClient.NO_ID; @@ -3506,11 +3511,7 @@ public abstract class AccessibilityService extends Service { * @param displayId the display to which the SurfaceControl should be attached. * @param sc the SurfaceControl containing the overlay content * - * @deprecated Use - * {@link #attachAccessibilityOverlayToDisplay(int, SurfaceControl, Executor, IntConsumer)} - * instead. */ - @Deprecated public void attachAccessibilityOverlayToDisplay(int displayId, @NonNull SurfaceControl sc) { Preconditions.checkNotNull(sc, "SurfaceControl cannot be null"); AccessibilityInteractionClient.getInstance(this) @@ -3547,6 +3548,7 @@ public abstract class AccessibilityService extends Service { * @see #OVERLAY_RESULT_INVALID * @see #OVERLAY_RESULT_INTERNAL_ERROR */ + @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public void attachAccessibilityOverlayToDisplay( int displayId, @NonNull SurfaceControl sc, @@ -3581,11 +3583,7 @@ public abstract class AccessibilityService extends Service { * @param accessibilityWindowId The window id, from {@link AccessibilityWindowInfo#getId()}. * @param sc the SurfaceControl containing the overlay content * - * @deprecated Use - * {@link #attachAccessibilityOverlayToWindow(int, SurfaceControl, Executor,IntConsumer)} - * instead. */ - @Deprecated public void attachAccessibilityOverlayToWindow( int accessibilityWindowId, @NonNull SurfaceControl sc) { Preconditions.checkNotNull(sc, "SurfaceControl cannot be null"); @@ -3623,6 +3621,7 @@ public abstract class AccessibilityService extends Service { * @see #OVERLAY_RESULT_INVALID * @see #OVERLAY_RESULT_INTERNAL_ERROR */ + @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public void attachAccessibilityOverlayToWindow( int accessibilityWindowId, @NonNull SurfaceControl sc, diff --git a/core/java/android/view/accessibility/AccessibilityInteractionClient.java b/core/java/android/view/accessibility/AccessibilityInteractionClient.java index 60f46e60ec9ec132fcbd1eb1f93bd04dbceca39f..12ce0f47c4600a3fb4efada724e595edc5073d87 100644 --- a/core/java/android/view/accessibility/AccessibilityInteractionClient.java +++ b/core/java/android/view/accessibility/AccessibilityInteractionClient.java @@ -1731,6 +1731,9 @@ public final class AccessibilityInteractionClient @Override public void sendAttachOverlayResult( @AccessibilityService.AttachOverlayResult int result, int interactionId) { + if (!Flags.a11yOverlayCallbacks()) { + return; + } synchronized (mInstanceLock) { if (mAttachAccessibilityOverlayCallbacks.contains(interactionId)) { final Pair<Executor, IntConsumer> pair = diff --git a/core/java/android/view/accessibility/AccessibilityWindowInfo.java b/core/java/android/view/accessibility/AccessibilityWindowInfo.java index 09b2f9c1ee1585e008c19877cfb704c4bc74b802..fa0052cf664abde63e3745f591d19e2ebb4889a7 100644 --- a/core/java/android/view/accessibility/AccessibilityWindowInfo.java +++ b/core/java/android/view/accessibility/AccessibilityWindowInfo.java @@ -99,7 +99,6 @@ public final class AccessibilityWindowInfo implements Parcelable { /** @hide */ public static final int UNDEFINED_CONNECTION_ID = -1; /** @hide */ - @TestApi public static final int UNDEFINED_WINDOW_ID = -1; /** @hide */ public static final int ANY_WINDOW_ID = -2; diff --git a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig index 85dadd4a061d501fb7888b541f8a18d3aaddc36e..cc612ed93b2f157b9477d4ad43f96489e2857d86 100644 --- a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig +++ b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig @@ -13,3 +13,10 @@ flag { description: "Allows the a11y shortcut disambig dialog to appear on the lockscreen" bug: "303871725" } + +flag { + name: "a11y_overlay_callbacks" + namespace: "accessibility" + description: "Whether to allow the passing of result callbacks when attaching a11y overlays." + bug: "304478691" +}