From 62ea99ca218bcf2f38616ae9eb43fdd9a8d3b3bd Mon Sep 17 00:00:00 2001 From: Rhed Jao Date: Sat, 14 Sep 2019 14:25:17 +0800 Subject: [PATCH] Accessibility shortcut improvement (2/n) New accessibility flag for accessibility shortcut. Bug: 136293963 Test: atest AccessibilityServiceInfoTest Change-Id: Ic545c551f148ef240a80fabc6af1d3587a93923b --- api/current.txt | 1 + .../AccessibilityServiceInfo.java | 12 ++++++++++++ core/res/res/values/attrs.xml | 2 ++ 3 files changed, 15 insertions(+) diff --git a/api/current.txt b/api/current.txt index f1f011e7948b2..38e12eab0260c 100644 --- a/api/current.txt +++ b/api/current.txt @@ -2946,6 +2946,7 @@ package android.accessibilityservice { field public static final int FEEDBACK_SPOKEN = 1; // 0x1 field public static final int FEEDBACK_VISUAL = 8; // 0x8 field public static final int FLAG_ENABLE_ACCESSIBILITY_VOLUME = 128; // 0x80 + field public static final int FLAG_HANDLE_SHORTCUT = 2048; // 0x800 field public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 2; // 0x2 field public static final int FLAG_REPORT_VIEW_IDS = 16; // 0x10 field public static final int FLAG_REQUEST_ACCESSIBILITY_BUTTON = 256; // 0x100 diff --git a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java index cf24b8e1ffa69..8e1690f7b6222 100644 --- a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java +++ b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java @@ -18,6 +18,7 @@ package android.accessibilityservice; import static android.content.pm.PackageManager.FEATURE_FINGERPRINT; +import android.accessibilityservice.AccessibilityButtonController.AccessibilityButtonCallback; import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.UnsupportedAppUsage; @@ -322,6 +323,14 @@ public class AccessibilityServiceInfo implements Parcelable { */ public static final int FLAG_REQUEST_SHORTCUT_WARNING_DIALOG_SPOKEN_FEEDBACK = 0x00000400; + /** + * This flag indicates that the accessibility service will handle the shortcut action itself. + * A callback {@link AccessibilityButtonCallback#onClicked(AccessibilityButtonController)} is + * called when the user presses the accessibility shortcut. Otherwise, the service is enabled + * or disabled by the system instead. + */ + public static final int FLAG_HANDLE_SHORTCUT = 0x00000800; + /** {@hide} */ public static final int FLAG_FORCE_DIRECT_BOOT_AWARE = 0x00010000; @@ -423,6 +432,7 @@ public class AccessibilityServiceInfo implements Parcelable { * @see #FLAG_ENABLE_ACCESSIBILITY_VOLUME * @see #FLAG_REQUEST_ACCESSIBILITY_BUTTON * @see #FLAG_REQUEST_SHORTCUT_WARNING_DIALOG_SPOKEN_FEEDBACK + * @see #FLAG_HANDLE_SHORTCUT */ public int flags; @@ -1103,6 +1113,8 @@ public class AccessibilityServiceInfo implements Parcelable { return "FLAG_REQUEST_FINGERPRINT_GESTURES"; case FLAG_REQUEST_SHORTCUT_WARNING_DIALOG_SPOKEN_FEEDBACK: return "FLAG_REQUEST_SHORTCUT_WARNING_DIALOG_SPOKEN_FEEDBACK"; + case FLAG_HANDLE_SHORTCUT: + return "FLAG_HANDLE_SHORTCUT"; default: return null; } diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 14f5d97b64816..acaaeec7b2ee8 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -3701,6 +3701,8 @@ + +