diff options
| author | 2023-10-10 21:04:40 +0000 | |
|---|---|---|
| committer | 2023-10-13 17:10:40 +0000 | |
| commit | 0497e504e23a8d9c15db51a875db70cb5ac26e09 (patch) | |
| tree | a0e4f50e79c523d545646ce8571da9fc1c60c067 | |
| parent | a10767e3db7cb593b25515e5df5b98e541e850aa (diff) | |
Flag a11y overlay result callback APIs
Fix: 304478691
Test: atest AccessibilityOverlayTest
Change-Id: I0cc833e519ccecd987c3d9353382dd4a832b7799
6 files changed, 24 insertions, 17 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 20424beb2447..4728f27c4411 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -3288,10 +3288,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(); @@ -3403,9 +3403,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 eeddeb21aa9d..67d030a431ab 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -3618,7 +3618,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 3370c121acfe..1000612ee0e2 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 60f46e60ec9e..12ce0f47c460 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 09b2f9c1ee15..fa0052cf664a 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 85dadd4a061d..cc612ed93b2f 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" +} |