summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chun-Ku Lin <chunkulin@google.com> 2024-03-27 19:02:26 +0000
committer Chun-Ku Lin <chunkulin@google.com> 2024-03-30 02:41:11 +0000
commit692deaceba32fd201d40f0d2e5da93c49a9bc85f (patch)
tree741c96b82733026cb26398cbd57353570fbdeed4
parent4b03e090fab9d7beeea89779b76a3614a67b523f (diff)
Replace ShortcutType with UserShortcutType to reduce duplicate
declaration. - Replace AccessibilityManager.ACCESSIBILITY_BUTTON with ShortcutConstants.UserShortcutType.SOFTWARE - Replace AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY with ShortcutConstants.UserShortcutType.HARDWARE Bug: 323686675 Test: atest Flag: N/A. Not able to flag the refactor Change-Id: I2085f5307122ad3252d4ca396666780c3d6e9ce1
-rw-r--r--core/java/android/view/accessibility/AccessibilityManager.java51
-rw-r--r--core/java/com/android/internal/accessibility/AccessibilityShortcutController.java9
-rw-r--r--core/java/com/android/internal/accessibility/dialog/AccessibilityActivityTarget.java7
-rw-r--r--core/java/com/android/internal/accessibility/dialog/AccessibilityButtonChooserActivity.java4
-rw-r--r--core/java/com/android/internal/accessibility/dialog/AccessibilityServiceTarget.java7
-rw-r--r--core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java13
-rw-r--r--core/java/com/android/internal/accessibility/dialog/AccessibilityTarget.java22
-rw-r--r--core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java21
-rw-r--r--core/java/com/android/internal/accessibility/dialog/InvisibleToggleAccessibilityServiceTarget.java14
-rw-r--r--core/java/com/android/internal/accessibility/dialog/InvisibleToggleAllowListingFeatureTarget.java4
-rw-r--r--core/java/com/android/internal/accessibility/dialog/ToggleAccessibilityServiceTarget.java4
-rw-r--r--core/java/com/android/internal/accessibility/dialog/ToggleAllowListingFeatureTarget.java4
-rw-r--r--core/java/com/android/internal/accessibility/dialog/VolumeShortcutToggleAccessibilityServiceTarget.java16
-rw-r--r--core/java/com/android/internal/accessibility/util/AccessibilityStatsLogUtils.java29
-rw-r--r--core/java/com/android/internal/accessibility/util/ShortcutUtils.java27
-rw-r--r--core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java10
-rw-r--r--core/tests/coretests/src/com/android/internal/accessibility/dialog/InvisibleToggleAccessibilityServiceTargetTest.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuInfoRepository.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuViewLayer.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/MenuViewLayerTest.java6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java13
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java54
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java36
24 files changed, 155 insertions, 219 deletions
diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java
index 9708591ae4c3..3fc9ebc7c9fb 100644
--- a/core/java/android/view/accessibility/AccessibilityManager.java
+++ b/core/java/android/view/accessibility/AccessibilityManager.java
@@ -69,7 +69,6 @@ import android.view.accessibility.AccessibilityEvent.EventType;
import com.android.internal.R;
import com.android.internal.accessibility.common.ShortcutConstants;
-import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.IntPair;
@@ -161,22 +160,6 @@ public final class AccessibilityManager {
public static final String ACTION_CHOOSE_ACCESSIBILITY_BUTTON =
"com.android.internal.intent.action.CHOOSE_ACCESSIBILITY_BUTTON";
- /**
- * Used as an int value for accessibility chooser activity to represent the accessibility button
- * shortcut type.
- *
- * @hide
- */
- public static final int ACCESSIBILITY_BUTTON = 0;
-
- /**
- * Used as an int value for accessibility chooser activity to represent hardware key shortcut,
- * such as volume key button.
- *
- * @hide
- */
- public static final int ACCESSIBILITY_SHORTCUT_KEY = 1;
-
/** @hide */
public static final int FLASH_REASON_CALL = 1;
@@ -190,35 +173,6 @@ public final class AccessibilityManager {
public static final int FLASH_REASON_PREVIEW = 4;
/**
- * Annotations for the shortcut type.
- * <p>Note: Keep in sync with {@link #SHORTCUT_TYPES}.</p>
- * @hide
- */
- // TODO(b/323686675): reuse the one defined in ShortcutConstants
- @Retention(RetentionPolicy.SOURCE)
- @IntDef(value = {
- // LINT.IfChange(shortcut_type_intdef)
- ACCESSIBILITY_BUTTON,
- ACCESSIBILITY_SHORTCUT_KEY,
- UserShortcutType.QUICK_SETTINGS,
- // LINT.ThenChange(:shortcut_type_array)
- })
- public @interface ShortcutType {}
-
- /**
- * Used for iterating through {@link ShortcutType}.
- * <p>Note: Keep in sync with {@link ShortcutType}.</p>
- * @hide
- */
- public static final int[] SHORTCUT_TYPES = {
- // LINT.IfChange(shortcut_type_array)
- ACCESSIBILITY_BUTTON,
- ACCESSIBILITY_SHORTCUT_KEY,
- UserShortcutType.QUICK_SETTINGS,
- // LINT.ThenChange(:shortcut_type_intdef)
- };
-
- /**
* Annotations for content flag of UI.
* @hide
*/
@@ -1648,7 +1602,7 @@ public final class AccessibilityManager {
*/
@RequiresPermission(Manifest.permission.MANAGE_ACCESSIBILITY)
public void enableShortcutsForTargets(boolean enable,
- @UserShortcutType int shortcutTypes, @NonNull Set<String> targets,
+ @ShortcutConstants.UserShortcutType int shortcutTypes, @NonNull Set<String> targets,
@UserIdInt int userId) {
final IAccessibilityManager service;
synchronized (mLock) {
@@ -1862,7 +1816,8 @@ public final class AccessibilityManager {
@TestApi
@RequiresPermission(Manifest.permission.MANAGE_ACCESSIBILITY)
@NonNull
- public List<String> getAccessibilityShortcutTargets(@ShortcutType int shortcutType) {
+ public List<String> getAccessibilityShortcutTargets(
+ @ShortcutConstants.UserShortcutType int shortcutType) {
final IAccessibilityManager service;
synchronized (mLock) {
service = getServiceLocked();
diff --git a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
index 840e2a1aa5fc..9481dc91bcc4 100644
--- a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
+++ b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
@@ -18,8 +18,8 @@ package com.android.internal.accessibility;
import static android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_ALL_MASK;
import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets;
import static com.android.internal.os.RoSystemProperties.SUPPORT_ONE_HANDED_MODE;
import static com.android.internal.util.ArrayUtils.convertToLongArray;
@@ -57,7 +57,6 @@ import android.view.accessibility.Flags;
import android.widget.Toast;
import com.android.internal.R;
-import com.android.internal.accessibility.common.ShortcutConstants;
import com.android.internal.accessibility.dialog.AccessibilityTarget;
import com.android.internal.accessibility.util.ShortcutUtils;
import com.android.internal.util.function.pooled.PooledLambda;
@@ -331,7 +330,7 @@ public class AccessibilityShortcutController {
}
private AlertDialog createShortcutWarningDialog(int userId) {
- List<AccessibilityTarget> targets = getTargets(mContext, ACCESSIBILITY_SHORTCUT_KEY);
+ List<AccessibilityTarget> targets = getTargets(mContext, HARDWARE);
if (targets.size() == 0) {
return null;
}
@@ -374,7 +373,7 @@ public class AccessibilityShortcutController {
Set<String> targetServices =
ShortcutUtils.getShortcutTargetsFromSettings(
mContext,
- ShortcutConstants.UserShortcutType.HARDWARE,
+ HARDWARE,
userId);
Settings.Secure.putStringForUser(mContext.getContentResolver(),
@@ -543,7 +542,7 @@ public class AccessibilityShortcutController {
private ComponentName getShortcutTargetComponentName() {
final List<String> shortcutTargets = mFrameworkObjectProvider
.getAccessibilityManagerInstance(mContext)
- .getAccessibilityShortcutTargets(ACCESSIBILITY_SHORTCUT_KEY);
+ .getAccessibilityShortcutTargets(HARDWARE);
if (shortcutTargets.size() != 1) {
return null;
}
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityActivityTarget.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityActivityTarget.java
index 063154d9a6d6..bd3c65991bdb 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityActivityTarget.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityActivityTarget.java
@@ -17,23 +17,22 @@
package com.android.internal.accessibility.dialog;
import static com.android.internal.accessibility.util.ShortcutUtils.convertToKey;
-import static com.android.internal.accessibility.util.ShortcutUtils.convertToUserType;
import static com.android.internal.accessibility.util.ShortcutUtils.isShortcutContained;
import android.accessibilityservice.AccessibilityShortcutInfo;
import android.annotation.NonNull;
import android.content.Context;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
import com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
/**
* Base class for creating accessibility activity target.
*/
class AccessibilityActivityTarget extends AccessibilityTarget {
- AccessibilityActivityTarget(Context context, @ShortcutType int shortcutType,
+ AccessibilityActivityTarget(Context context, @UserShortcutType int shortcutType,
@NonNull AccessibilityShortcutInfo shortcutInfo) {
super(context,
shortcutType,
@@ -44,7 +43,7 @@ class AccessibilityActivityTarget extends AccessibilityTarget {
shortcutInfo.getActivityInfo().applicationInfo.uid,
shortcutInfo.getActivityInfo().loadLabel(context.getPackageManager()),
shortcutInfo.getActivityInfo().loadIcon(context.getPackageManager()),
- convertToKey(convertToUserType(shortcutType)));
+ convertToKey(shortcutType));
}
@Override
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityButtonChooserActivity.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityButtonChooserActivity.java
index 7eb09e59601b..fc3cd45787f7 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityButtonChooserActivity.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityButtonChooserActivity.java
@@ -17,10 +17,10 @@
package com.android.internal.accessibility.dialog;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets;
import static com.android.internal.accessibility.util.AccessibilityStatsLogUtils.logAccessibilityButtonLongPressStatus;
@@ -85,7 +85,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
prompt.setVisibility(View.VISIBLE);
}
- mTargets.addAll(getTargets(this, ACCESSIBILITY_BUTTON));
+ mTargets.addAll(getTargets(this, SOFTWARE));
final GridView gridview = findViewById(R.id.accessibility_button_chooser_grid);
gridview.setAdapter(new ButtonTargetAdapter(mTargets));
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityServiceTarget.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityServiceTarget.java
index 2b6913ca5e5a..677c0f07761f 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityServiceTarget.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityServiceTarget.java
@@ -17,16 +17,15 @@
package com.android.internal.accessibility.dialog;
import static com.android.internal.accessibility.util.ShortcutUtils.convertToKey;
-import static com.android.internal.accessibility.util.ShortcutUtils.convertToUserType;
import static com.android.internal.accessibility.util.ShortcutUtils.isShortcutContained;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.annotation.NonNull;
import android.content.Context;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
import com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
/**
* Base class for creating accessibility service target with various fragment types related to
@@ -36,7 +35,7 @@ class AccessibilityServiceTarget extends AccessibilityTarget {
private final AccessibilityServiceInfo mAccessibilityServiceInfo;
- AccessibilityServiceTarget(Context context, @ShortcutType int shortcutType,
+ AccessibilityServiceTarget(Context context, @UserShortcutType int shortcutType,
@AccessibilityFragmentType int fragmentType,
@NonNull AccessibilityServiceInfo serviceInfo) {
super(context,
@@ -48,7 +47,7 @@ class AccessibilityServiceTarget extends AccessibilityTarget {
serviceInfo.getResolveInfo().serviceInfo.applicationInfo.uid,
serviceInfo.getResolveInfo().loadLabel(context.getPackageManager()),
serviceInfo.getResolveInfo().loadIcon(context.getPackageManager()),
- convertToKey(convertToUserType(shortcutType)));
+ convertToKey(shortcutType));
mAccessibilityServiceInfo = serviceInfo;
}
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java
index 34b487fe4c80..6256dbcfe4de 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java
@@ -15,11 +15,10 @@
*/
package com.android.internal.accessibility.dialog;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
-import static android.view.accessibility.AccessibilityManager.ShortcutType;
-
import static com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getInstalledTargets;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets;
import static com.android.internal.accessibility.util.AccessibilityUtils.isUserSetupCompleted;
@@ -50,8 +49,8 @@ import java.util.List;
* activity or allowlisting feature for volume key shortcut.
*/
public class AccessibilityShortcutChooserActivity extends Activity {
- @ShortcutType
- private final int mShortcutType = ACCESSIBILITY_SHORTCUT_KEY;
+ @UserShortcutType
+ private final int mShortcutType = HARDWARE;
private static final String KEY_ACCESSIBILITY_SHORTCUT_MENU_MODE =
"accessibility_shortcut_menu_mode";
private final List<AccessibilityTarget> mTargets = new ArrayList<>();
@@ -215,7 +214,7 @@ public class AccessibilityShortcutChooserActivity extends Activity {
mTargetAdapter.getShortcutMenuMode() == ShortcutMenuMode.EDIT;
final int selectDialogTitleId = R.string.accessibility_select_shortcut_menu_title;
final int editDialogTitleId =
- mShortcutType == ACCESSIBILITY_BUTTON
+ mShortcutType == SOFTWARE
? R.string.accessibility_edit_shortcut_menu_button_title
: R.string.accessibility_edit_shortcut_menu_volume_title;
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityTarget.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityTarget.java
index 652cb5233461..ba1dffcec73f 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityTarget.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityTarget.java
@@ -16,10 +16,8 @@
package com.android.internal.accessibility.dialog;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
-
-import static com.android.internal.accessibility.util.ShortcutUtils.convertToUserType;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.internal.accessibility.util.ShortcutUtils.optInValueToSettings;
import static com.android.internal.accessibility.util.ShortcutUtils.optOutValueFromSettings;
@@ -30,10 +28,10 @@ import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
import com.android.internal.accessibility.common.ShortcutConstants;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.accessibility.dialog.TargetAdapter.ViewHolder;
import com.android.internal.annotations.VisibleForTesting;
@@ -47,7 +45,7 @@ import com.android.internal.annotations.VisibleForTesting;
public abstract class AccessibilityTarget implements TargetOperations, OnTargetSelectedListener,
OnTargetCheckedChangeListener {
private Context mContext;
- @ShortcutType
+ @UserShortcutType
private int mShortcutType;
@AccessibilityFragmentType
private int mFragmentType;
@@ -61,7 +59,7 @@ public abstract class AccessibilityTarget implements TargetOperations, OnTargetS
private CharSequence mStateDescription;
@VisibleForTesting
- public AccessibilityTarget(Context context, @ShortcutType int shortcutType,
+ public AccessibilityTarget(Context context, @UserShortcutType int shortcutType,
@AccessibilityFragmentType int fragmentType, boolean isShortcutSwitched, String id,
int uid, CharSequence label, Drawable icon, String key) {
mContext = context;
@@ -99,10 +97,10 @@ public abstract class AccessibilityTarget implements TargetOperations, OnTargetS
final AccessibilityManager am =
getContext().getSystemService(AccessibilityManager.class);
switch (getShortcutType()) {
- case ACCESSIBILITY_BUTTON:
+ case SOFTWARE:
am.notifyAccessibilityButtonClicked(getContext().getDisplayId(), getId());
return;
- case ACCESSIBILITY_SHORTCUT_KEY:
+ case HARDWARE:
am.performAccessibilityShortcut(getId());
return;
default:
@@ -114,9 +112,9 @@ public abstract class AccessibilityTarget implements TargetOperations, OnTargetS
public void onCheckedChanged(boolean isChecked) {
setShortcutEnabled(isChecked);
if (isChecked) {
- optInValueToSettings(getContext(), convertToUserType(getShortcutType()), getId());
+ optInValueToSettings(getContext(), getShortcutType(), getId());
} else {
- optOutValueFromSettings(getContext(), convertToUserType(getShortcutType()), getId());
+ optOutValueFromSettings(getContext(), getShortcutType(), getId());
}
}
@@ -142,7 +140,7 @@ public abstract class AccessibilityTarget implements TargetOperations, OnTargetS
return mContext;
}
- public @ShortcutType int getShortcutType() {
+ public @UserShortcutType int getShortcutType() {
return mShortcutType;
}
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
index 0d82d63d8450..e523ab066074 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
@@ -16,14 +16,13 @@
package com.android.internal.accessibility.dialog;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
-
import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.COLOR_INVERSION_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.ONE_HANDED_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.REDUCE_BRIGHT_COLORS_COMPONENT_NAME;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.internal.accessibility.util.AccessibilityUtils.getAccessibilityServiceFragmentType;
import static com.android.internal.accessibility.util.ShortcutUtils.isShortcutContained;
import static com.android.internal.os.RoSystemProperties.SUPPORT_ONE_HANDED_MODE;
@@ -38,10 +37,10 @@ import android.os.Build;
import android.os.UserHandle;
import android.provider.Settings;
import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
import com.android.internal.R;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import java.util.ArrayList;
import java.util.Collections;
@@ -64,7 +63,7 @@ public final class AccessibilityTargetHelper {
* @hide
*/
public static List<AccessibilityTarget> getTargets(Context context,
- @ShortcutType int shortcutType) {
+ @UserShortcutType int shortcutType) {
// List all accessibility target
final List<AccessibilityTarget> installedTargets = getInstalledTargets(context,
shortcutType);
@@ -107,7 +106,7 @@ public final class AccessibilityTargetHelper {
* @hide
*/
public static List<AccessibilityTarget> getInstalledTargets(Context context,
- @ShortcutType int shortcutType) {
+ @UserShortcutType int shortcutType) {
final List<AccessibilityTarget> targets = new ArrayList<>();
targets.addAll(getAccessibilityFilteredTargets(context, shortcutType));
targets.addAll(getAllowListingFeatureTargets(context, shortcutType));
@@ -116,7 +115,7 @@ public final class AccessibilityTargetHelper {
}
private static List<AccessibilityTarget> getAccessibilityFilteredTargets(Context context,
- @ShortcutType int shortcutType) {
+ @UserShortcutType int shortcutType) {
final List<AccessibilityTarget> serviceTargets =
getAccessibilityServiceTargets(context, shortcutType);
final List<AccessibilityTarget> activityTargets =
@@ -149,7 +148,7 @@ public final class AccessibilityTargetHelper {
}
private static List<AccessibilityTarget> getAccessibilityServiceTargets(Context context,
- @ShortcutType int shortcutType) {
+ @UserShortcutType int shortcutType) {
final AccessibilityManager am = (AccessibilityManager) context.getSystemService(
Context.ACCESSIBILITY_SERVICE);
final List<AccessibilityServiceInfo> installedServices =
@@ -165,7 +164,7 @@ public final class AccessibilityTargetHelper {
final boolean hasRequestAccessibilityButtonFlag =
(info.flags & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;
if ((targetSdk <= Build.VERSION_CODES.Q) && !hasRequestAccessibilityButtonFlag
- && (shortcutType == ACCESSIBILITY_BUTTON)) {
+ && (shortcutType == SOFTWARE)) {
continue;
}
@@ -176,7 +175,7 @@ public final class AccessibilityTargetHelper {
}
private static List<AccessibilityTarget> getAccessibilityActivityTargets(Context context,
- @ShortcutType int shortcutType) {
+ @UserShortcutType int shortcutType) {
final AccessibilityManager am = (AccessibilityManager) context.getSystemService(
Context.ACCESSIBILITY_SERVICE);
final List<AccessibilityShortcutInfo> installedServices =
@@ -195,7 +194,7 @@ public final class AccessibilityTargetHelper {
}
private static List<AccessibilityTarget> getAllowListingFeatureTargets(Context context,
- @ShortcutType int shortcutType) {
+ @UserShortcutType int shortcutType) {
final List<AccessibilityTarget> targets = new ArrayList<>();
final int uid = context.getApplicationInfo().uid;
@@ -276,7 +275,7 @@ public final class AccessibilityTargetHelper {
}
private static AccessibilityTarget createAccessibilityServiceTarget(Context context,
- @ShortcutType int shortcutType, @NonNull AccessibilityServiceInfo info) {
+ @UserShortcutType int shortcutType, @NonNull AccessibilityServiceInfo info) {
switch (getAccessibilityServiceFragmentType(info)) {
case AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE:
return new VolumeShortcutToggleAccessibilityServiceTarget(context, shortcutType,
diff --git a/core/java/com/android/internal/accessibility/dialog/InvisibleToggleAccessibilityServiceTarget.java b/core/java/com/android/internal/accessibility/dialog/InvisibleToggleAccessibilityServiceTarget.java
index 1bc8b84e6869..7831afb8798e 100644
--- a/core/java/com/android/internal/accessibility/dialog/InvisibleToggleAccessibilityServiceTarget.java
+++ b/core/java/com/android/internal/accessibility/dialog/InvisibleToggleAccessibilityServiceTarget.java
@@ -16,10 +16,8 @@
package com.android.internal.accessibility.dialog;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
-
-import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.internal.accessibility.util.AccessibilityUtils.setAccessibilityServiceState;
import static com.android.internal.accessibility.util.ShortcutUtils.isComponentIdExistingInSettings;
@@ -28,10 +26,10 @@ import android.annotation.NonNull;
import android.content.ComponentName;
import android.content.Context;
import android.os.UserHandle;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
import android.view.accessibility.Flags;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.accessibility.util.ShortcutUtils;
import com.android.internal.annotations.VisibleForTesting;
@@ -45,7 +43,7 @@ import java.util.Set;
public class InvisibleToggleAccessibilityServiceTarget extends AccessibilityServiceTarget {
public InvisibleToggleAccessibilityServiceTarget(
- Context context, @ShortcutType int shortcutType,
+ Context context, @UserShortcutType int shortcutType,
@NonNull AccessibilityServiceInfo serviceInfo) {
super(context,
shortcutType,
@@ -72,10 +70,10 @@ public class InvisibleToggleAccessibilityServiceTarget extends AccessibilityServ
private boolean isComponentIdExistingInOtherShortcut() {
switch (getShortcutType()) {
- case ACCESSIBILITY_BUTTON:
+ case SOFTWARE:
return isComponentIdExistingInSettings(getContext(), UserShortcutType.HARDWARE,
getId());
- case ACCESSIBILITY_SHORTCUT_KEY:
+ case HARDWARE:
return isComponentIdExistingInSettings(getContext(), UserShortcutType.SOFTWARE,
getId());
default:
diff --git a/core/java/com/android/internal/accessibility/dialog/InvisibleToggleAllowListingFeatureTarget.java b/core/java/com/android/internal/accessibility/dialog/InvisibleToggleAllowListingFeatureTarget.java
index c22f17dfa967..9605793c7a5c 100644
--- a/core/java/com/android/internal/accessibility/dialog/InvisibleToggleAllowListingFeatureTarget.java
+++ b/core/java/com/android/internal/accessibility/dialog/InvisibleToggleAllowListingFeatureTarget.java
@@ -18,9 +18,9 @@ package com.android.internal.accessibility.dialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
/**
* Extension for {@link AccessibilityTarget} with {@link AccessibilityFragmentType#INVISIBLE_TOGGLE}
@@ -28,7 +28,7 @@ import com.android.internal.accessibility.common.ShortcutConstants.Accessibility
*/
class InvisibleToggleAllowListingFeatureTarget extends AccessibilityTarget {
- InvisibleToggleAllowListingFeatureTarget(Context context, @ShortcutType int shortcutType,
+ InvisibleToggleAllowListingFeatureTarget(Context context, @UserShortcutType int shortcutType,
boolean isShortcutSwitched, String id, int uid, CharSequence label, Drawable icon,
String key) {
super(context, shortcutType, AccessibilityFragmentType.INVISIBLE_TOGGLE, isShortcutSwitched,
diff --git a/core/java/com/android/internal/accessibility/dialog/ToggleAccessibilityServiceTarget.java b/core/java/com/android/internal/accessibility/dialog/ToggleAccessibilityServiceTarget.java
index a4ffef6bfbc2..4c5401cc0ab6 100644
--- a/core/java/com/android/internal/accessibility/dialog/ToggleAccessibilityServiceTarget.java
+++ b/core/java/com/android/internal/accessibility/dialog/ToggleAccessibilityServiceTarget.java
@@ -22,11 +22,11 @@ import android.accessibilityservice.AccessibilityServiceInfo;
import android.annotation.NonNull;
import android.content.Context;
import android.view.View;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
import com.android.internal.R;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
import com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.accessibility.dialog.TargetAdapter.ViewHolder;
import java.lang.annotation.Retention;
@@ -45,7 +45,7 @@ class ToggleAccessibilityServiceTarget extends AccessibilityServiceTarget {
float DISABLED = 0.5f;
}
- ToggleAccessibilityServiceTarget(Context context, @ShortcutType int shortcutType,
+ ToggleAccessibilityServiceTarget(Context context, @UserShortcutType int shortcutType,
@NonNull AccessibilityServiceInfo serviceInfo) {
super(context,
shortcutType,
diff --git a/core/java/com/android/internal/accessibility/dialog/ToggleAllowListingFeatureTarget.java b/core/java/com/android/internal/accessibility/dialog/ToggleAllowListingFeatureTarget.java
index 11e668f51774..c285670cccb4 100644
--- a/core/java/com/android/internal/accessibility/dialog/ToggleAllowListingFeatureTarget.java
+++ b/core/java/com/android/internal/accessibility/dialog/ToggleAllowListingFeatureTarget.java
@@ -21,11 +21,11 @@ import android.content.Context;
import android.graphics.drawable.Drawable;
import android.provider.Settings;
import android.view.View;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
import com.android.internal.R;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
import com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.accessibility.dialog.TargetAdapter.ViewHolder;
/**
@@ -34,7 +34,7 @@ import com.android.internal.accessibility.dialog.TargetAdapter.ViewHolder;
*/
class ToggleAllowListingFeatureTarget extends AccessibilityTarget {
- ToggleAllowListingFeatureTarget(Context context, @ShortcutType int shortcutType,
+ ToggleAllowListingFeatureTarget(Context context, @UserShortcutType int shortcutType,
boolean isShortcutSwitched, String id, int uid, CharSequence label, Drawable icon,
String key) {
super(context, shortcutType, AccessibilityFragmentType.TOGGLE, isShortcutSwitched, id,
diff --git a/core/java/com/android/internal/accessibility/dialog/VolumeShortcutToggleAccessibilityServiceTarget.java b/core/java/com/android/internal/accessibility/dialog/VolumeShortcutToggleAccessibilityServiceTarget.java
index 04f5061fbd8e..753597914782 100644
--- a/core/java/com/android/internal/accessibility/dialog/VolumeShortcutToggleAccessibilityServiceTarget.java
+++ b/core/java/com/android/internal/accessibility/dialog/VolumeShortcutToggleAccessibilityServiceTarget.java
@@ -16,10 +16,8 @@
package com.android.internal.accessibility.dialog;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
-
-import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.internal.accessibility.util.AccessibilityUtils.setAccessibilityServiceState;
import static com.android.internal.accessibility.util.ShortcutUtils.optOutValueFromSettings;
@@ -27,11 +25,11 @@ import android.accessibilityservice.AccessibilityServiceInfo;
import android.annotation.NonNull;
import android.content.ComponentName;
import android.content.Context;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
import android.widget.Toast;
import com.android.internal.R;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
/**
* Extension for {@link AccessibilityServiceTarget} with
@@ -39,8 +37,8 @@ import com.android.internal.accessibility.common.ShortcutConstants.Accessibility
*/
class VolumeShortcutToggleAccessibilityServiceTarget extends AccessibilityServiceTarget {
- VolumeShortcutToggleAccessibilityServiceTarget(Context context, @ShortcutType int shortcutType,
- @NonNull AccessibilityServiceInfo serviceInfo) {
+ VolumeShortcutToggleAccessibilityServiceTarget(Context context,
+ @UserShortcutType int shortcutType, @NonNull AccessibilityServiceInfo serviceInfo) {
super(context,
shortcutType,
AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE,
@@ -50,10 +48,10 @@ class VolumeShortcutToggleAccessibilityServiceTarget extends AccessibilityServic
@Override
public void onCheckedChanged(boolean isChecked) {
switch (getShortcutType()) {
- case ACCESSIBILITY_BUTTON:
+ case SOFTWARE:
onCheckedFromAccessibilityButton(isChecked);
return;
- case ACCESSIBILITY_SHORTCUT_KEY:
+ case HARDWARE:
super.onCheckedChanged(isChecked);
return;
default:
diff --git a/core/java/com/android/internal/accessibility/util/AccessibilityStatsLogUtils.java b/core/java/com/android/internal/accessibility/util/AccessibilityStatsLogUtils.java
index 6b074a610818..6864bf7bae16 100644
--- a/core/java/com/android/internal/accessibility/util/AccessibilityStatsLogUtils.java
+++ b/core/java/com/android/internal/accessibility/util/AccessibilityStatsLogUtils.java
@@ -21,10 +21,10 @@ import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_GESTURE
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.internal.util.FrameworkStatsLog.ACCESSIBILITY_SHORTCUT_REPORTED__SERVICE_STATUS__DISABLED;
import static com.android.internal.util.FrameworkStatsLog.ACCESSIBILITY_SHORTCUT_REPORTED__SERVICE_STATUS__ENABLED;
import static com.android.internal.util.FrameworkStatsLog.ACCESSIBILITY_SHORTCUT_REPORTED__SERVICE_STATUS__UNKNOWN;
@@ -47,9 +47,9 @@ import static com.android.internal.util.FrameworkStatsLog.NON_A11Y_TOOL_SERVICE_
import android.content.ComponentName;
import android.content.Context;
import android.provider.Settings;
-import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
+import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.util.FrameworkStatsLog;
/** Methods for logging accessibility states. */
@@ -71,15 +71,15 @@ public final class AccessibilityStatsLogUtils {
/**
* Logs accessibility feature name that is assigned to the given {@code shortcutType}.
- * Calls this when clicking the shortcut {@link AccessibilityManager#ACCESSIBILITY_BUTTON} or
- * {@link AccessibilityManager#ACCESSIBILITY_SHORTCUT_KEY}.
+ * Calls this when clicking the shortcut {@link ShortcutConstants.UserShortcutType#SOFTWARE} or
+ * {@link ShortcutConstants.UserShortcutType#HARDWARE}.
*
* @param context context used to retrieve the {@link Settings} provider
* @param componentName component name of the accessibility feature
* @param shortcutType accessibility shortcut type
*/
public static void logAccessibilityShortcutActivated(Context context,
- ComponentName componentName, @ShortcutType int shortcutType) {
+ ComponentName componentName, @UserShortcutType int shortcutType) {
logAccessibilityShortcutActivatedInternal(componentName,
convertToLoggingShortcutType(context, shortcutType), UNKNOWN_STATUS);
}
@@ -87,16 +87,17 @@ public final class AccessibilityStatsLogUtils {
/**
* Logs accessibility feature name that is assigned to the given {@code shortcutType} and the
* {@code serviceEnabled} status.
- * Calls this when clicking the shortcut {@link AccessibilityManager#ACCESSIBILITY_BUTTON}
- * or {@link AccessibilityManager#ACCESSIBILITY_SHORTCUT_KEY}.
+ * Calls this when clicking the shortcut {@link ShortcutConstants.UserShortcutType#SOFTWARE}
+ * or {@link ShortcutConstants.UserShortcutType#HARDWARE}.
*
* @param context context used to retrieve the {@link Settings} provider
* @param componentName component name of the accessibility feature
* @param shortcutType accessibility shortcut type
* @param serviceEnabled {@code true} if the service is enabled
*/
- public static void logAccessibilityShortcutActivated(Context context,
- ComponentName componentName, @ShortcutType int shortcutType, boolean serviceEnabled) {
+ public static void logAccessibilityShortcutActivated(
+ Context context, ComponentName componentName,
+ @UserShortcutType int shortcutType, boolean serviceEnabled) {
logAccessibilityShortcutActivatedInternal(componentName,
convertToLoggingShortcutType(context, shortcutType),
convertToLoggingServiceStatus(serviceEnabled));
@@ -235,9 +236,9 @@ public final class AccessibilityStatsLogUtils {
}
private static int convertToLoggingShortcutType(Context context,
- @ShortcutType int shortcutType) {
+ @UserShortcutType int shortcutType) {
switch (shortcutType) {
- case ACCESSIBILITY_BUTTON:
+ case SOFTWARE:
if (isAccessibilityFloatingMenuEnabled(context)) {
return ACCESSIBILITY_SHORTCUT_REPORTED__SHORTCUT_TYPE__A11Y_FLOATING_MENU;
} else if (isAccessibilityGestureEnabled(context)) {
@@ -245,7 +246,7 @@ public final class AccessibilityStatsLogUtils {
} else {
return ACCESSIBILITY_SHORTCUT_REPORTED__SHORTCUT_TYPE__A11Y_BUTTON;
}
- case ACCESSIBILITY_SHORTCUT_KEY:
+ case HARDWARE:
return ACCESSIBILITY_SHORTCUT_REPORTED__SHORTCUT_TYPE__VOLUME_KEY;
}
return ACCESSIBILITY_SHORTCUT_REPORTED__SHORTCUT_TYPE__UNKNOWN_TYPE;
diff --git a/core/java/com/android/internal/accessibility/util/ShortcutUtils.java b/core/java/com/android/internal/accessibility/util/ShortcutUtils.java
index f9c4d37ad001..5b09a8be8c65 100644
--- a/core/java/com/android/internal/accessibility/util/ShortcutUtils.java
+++ b/core/java/com/android/internal/accessibility/util/ShortcutUtils.java
@@ -16,14 +16,10 @@
package com.android.internal.accessibility.util;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
-
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
import static com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType.INVISIBLE_TOGGLE;
import static com.android.internal.accessibility.common.ShortcutConstants.SERVICES_SEPARATOR;
import static com.android.internal.accessibility.common.ShortcutConstants.USER_SHORTCUT_TYPES;
-import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.annotation.NonNull;
@@ -33,7 +29,8 @@ import android.provider.Settings;
import android.text.TextUtils;
import android.util.ArraySet;
import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.AccessibilityManager.ShortcutType;
+
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import java.util.Collections;
import java.util.List;
@@ -151,7 +148,7 @@ public final class ShortcutUtils {
* @param componentId The component id that need to be checked.
* @return {@code true} if a component id is contained.
*/
- public static boolean isShortcutContained(Context context, @ShortcutType int shortcutType,
+ public static boolean isShortcutContained(Context context, @UserShortcutType int shortcutType,
@NonNull String componentId) {
final AccessibilityManager am = (AccessibilityManager) context.getSystemService(
Context.ACCESSIBILITY_SERVICE);
@@ -184,24 +181,6 @@ public final class ShortcutUtils {
}
/**
- * Converts {@link ShortcutType} to {@link UserShortcutType}.
- *
- * @param type The shortcut type.
- * @return Mapping type from {@link UserShortcutType}.
- */
- public static @UserShortcutType int convertToUserType(@ShortcutType int type) {
- switch (type) {
- case ACCESSIBILITY_BUTTON:
- return UserShortcutType.SOFTWARE;
- case ACCESSIBILITY_SHORTCUT_KEY:
- return UserShortcutType.HARDWARE;
- default:
- throw new IllegalArgumentException(
- "Unsupported shortcut type:" + type);
- }
- }
-
- /**
* Updates an accessibility state if the accessibility service is a Always-On a11y service,
* a.k.a. AccessibilityServices that has FLAG_REQUEST_ACCESSIBILITY_BUTTON
* <p>
diff --git a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java
index 75b0d4a159d9..180521ba7b70 100644
--- a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java
+++ b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java
@@ -21,13 +21,13 @@ import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_DIALOG_SHO
import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN;
import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
import static android.provider.Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.COLOR_INVERSION_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.ONE_HANDED_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.REDUCE_BRIGHT_COLORS_COMPONENT_NAME;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
import static com.google.common.truth.Truth.assertThat;
@@ -726,14 +726,14 @@ public class AccessibilityShortcutControllerTest {
private void configureNoShortcutService() throws Exception {
when(mAccessibilityManagerService
- .getAccessibilityShortcutTargets(ACCESSIBILITY_SHORTCUT_KEY))
+ .getAccessibilityShortcutTargets(HARDWARE))
.thenReturn(Collections.emptyList());
Settings.Secure.putString(mContentResolver, ACCESSIBILITY_SHORTCUT_TARGET_SERVICE, "");
}
private void configureValidShortcutService() throws Exception {
when(mAccessibilityManagerService
- .getAccessibilityShortcutTargets(ACCESSIBILITY_SHORTCUT_KEY))
+ .getAccessibilityShortcutTargets(HARDWARE))
.thenReturn(Collections.singletonList(SERVICE_NAME_STRING));
Settings.Secure.putString(
mContentResolver, ACCESSIBILITY_SHORTCUT_TARGET_SERVICE, SERVICE_NAME_STRING);
@@ -744,7 +744,7 @@ public class AccessibilityShortcutControllerTest {
(ComponentName) AccessibilityShortcutController.getFrameworkShortcutFeaturesMap()
.keySet().toArray()[0];
when(mAccessibilityManagerService
- .getAccessibilityShortcutTargets(ACCESSIBILITY_SHORTCUT_KEY))
+ .getAccessibilityShortcutTargets(HARDWARE))
.thenReturn(Collections.singletonList(featureComponentName.flattenToString()));
Settings.Secure.putString(mContentResolver, ACCESSIBILITY_SHORTCUT_TARGET_SERVICE,
featureComponentName.flattenToString());
@@ -806,7 +806,7 @@ public class AccessibilityShortcutControllerTest {
private void configureDefaultAccessibilityService() throws Exception {
when(mAccessibilityManagerService
- .getAccessibilityShortcutTargets(ACCESSIBILITY_SHORTCUT_KEY))
+ .getAccessibilityShortcutTargets(HARDWARE))
.thenReturn(Collections.singletonList(SERVICE_NAME_STRING));
when(mResources.getString(R.string.config_defaultAccessibilityService)).thenReturn(
diff --git a/core/tests/coretests/src/com/android/internal/accessibility/dialog/InvisibleToggleAccessibilityServiceTargetTest.java b/core/tests/coretests/src/com/android/internal/accessibility/dialog/InvisibleToggleAccessibilityServiceTargetTest.java
index 69b6a9b7aa87..2ea044ccfb52 100644
--- a/core/tests/coretests/src/com/android/internal/accessibility/dialog/InvisibleToggleAccessibilityServiceTargetTest.java
+++ b/core/tests/coretests/src/com/android/internal/accessibility/dialog/InvisibleToggleAccessibilityServiceTargetTest.java
@@ -39,6 +39,7 @@ import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
import com.android.internal.accessibility.TestUtils;
+import com.android.internal.accessibility.common.ShortcutConstants;
import com.android.internal.util.test.FakeSettingsProvider;
import com.android.internal.util.test.FakeSettingsProviderRule;
@@ -99,7 +100,7 @@ public class InvisibleToggleAccessibilityServiceTargetTest {
mSut = new InvisibleToggleAccessibilityServiceTarget(
mContextSpy,
- AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY, accessibilityServiceInfo);
+ ShortcutConstants.UserShortcutType.HARDWARE, accessibilityServiceInfo);
}
@Test
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuInfoRepository.java b/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuInfoRepository.java
index 0538e7d55bfd..1018f70c7f60 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuInfoRepository.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuInfoRepository.java
@@ -21,8 +21,8 @@ import static android.provider.Settings.Secure.ACCESSIBILITY_FLOATING_MENU_MIGRA
import static android.provider.Settings.Secure.ACCESSIBILITY_FLOATING_MENU_OPACITY;
import static android.provider.Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE;
import static android.provider.Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets;
import static com.android.systemui.accessibility.floatingmenu.MenuFadeEffectInfoKt.DEFAULT_FADE_EFFECT_IS_ENABLED;
import static com.android.systemui.accessibility.floatingmenu.MenuFadeEffectInfoKt.DEFAULT_OPACITY_VALUE;
@@ -182,7 +182,7 @@ class MenuInfoRepository {
}
void loadMenuTargetFeatures(OnInfoReady<List<AccessibilityTarget>> callback) {
- callback.onReady(getTargets(mContext, ACCESSIBILITY_BUTTON));
+ callback.onReady(getTargets(mContext, SOFTWARE));
}
void loadMenuSizeType(OnInfoReady<Integer> callback) {
@@ -223,7 +223,7 @@ class MenuInfoRepository {
private void onTargetFeaturesChanged() {
mSettingsContentsCallback.onTargetFeaturesChanged(
- getTargets(mContext, ACCESSIBILITY_BUTTON));
+ getTargets(mContext, SOFTWARE));
}
private Position getStartPosition() {
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuViewLayer.java b/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuViewLayer.java
index 86279befc2ba..6dce1bb22921 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuViewLayer.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuViewLayer.java
@@ -17,13 +17,13 @@
package com.android.systemui.accessibility.floatingmenu;
import static android.view.WindowInsets.Type.ime;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
import static androidx.core.view.WindowInsetsCompat.Type;
import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_BUTTON_COMPONENT_NAME;
import static com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType.INVISIBLE_TOGGLE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.internal.accessibility.util.AccessibilityUtils.getAccessibilityServiceFragmentType;
import static com.android.internal.accessibility.util.AccessibilityUtils.setAccessibilityServiceState;
import static com.android.systemui.accessibility.floatingmenu.MenuMessageView.Index;
@@ -175,8 +175,8 @@ class MenuViewLayer extends FrameLayout implements
mAccessibilityManager.enableShortcutsForTargets(
/* enable= */ false,
ShortcutConstants.UserShortcutType.SOFTWARE,
- new ArraySet<>(mAccessibilityManager.getAccessibilityShortcutTargets(
- ACCESSIBILITY_BUTTON)),
+ new ArraySet<>(
+ mAccessibilityManager.getAccessibilityShortcutTargets(SOFTWARE)),
mSecureSettings.getRealUserHandle(UserHandle.USER_CURRENT)
);
} else {
@@ -185,8 +185,7 @@ class MenuViewLayer extends FrameLayout implements
UserHandle.USER_CURRENT);
final List<ComponentName> hardwareKeyShortcutComponents =
- mAccessibilityManager.getAccessibilityShortcutTargets(
- ACCESSIBILITY_SHORTCUT_KEY)
+ mAccessibilityManager.getAccessibilityShortcutTargets(HARDWARE)
.stream()
.map(ComponentName::unflattenFromString)
.toList();
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java
index d49a513f6e9f..63989ef64c8e 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavBarHelper.java
@@ -56,6 +56,7 @@ import android.view.accessibility.AccessibilityManager;
import androidx.annotation.NonNull;
+import com.android.internal.accessibility.common.ShortcutConstants;
import com.android.systemui.Dumpable;
import com.android.systemui.accessibility.AccessibilityButtonModeObserver;
import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver;
@@ -380,7 +381,7 @@ public final class NavBarHelper implements
// permission
final List<String> a11yButtonTargets =
mAccessibilityManager.getAccessibilityShortcutTargets(
- AccessibilityManager.ACCESSIBILITY_BUTTON);
+ ShortcutConstants.UserShortcutType.SOFTWARE);
final int requestingServices = a11yButtonTargets.size();
clickable = requestingServices >= 1;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/MenuViewLayerTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/MenuViewLayerTest.java
index 71f6081edc23..05d75606fd10 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/MenuViewLayerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/MenuViewLayerTest.java
@@ -232,7 +232,7 @@ public class MenuViewLayerTest extends SysuiTestCase {
final List<String> stubShortcutTargets = new ArrayList<>();
stubShortcutTargets.add(TEST_SELECT_TO_SPEAK_COMPONENT_NAME.flattenToString());
when(mStubAccessibilityManager.getAccessibilityShortcutTargets(
- AccessibilityManager.ACCESSIBILITY_BUTTON)).thenReturn(stubShortcutTargets);
+ ShortcutConstants.UserShortcutType.SOFTWARE)).thenReturn(stubShortcutTargets);
mMenuViewLayer.mDismissMenuAction.run();
@@ -271,7 +271,7 @@ public class MenuViewLayerTest extends SysuiTestCase {
final List<String> stubShortcutTargets = new ArrayList<>();
stubShortcutTargets.add(TEST_SELECT_TO_SPEAK_COMPONENT_NAME.flattenToString());
when(mStubAccessibilityManager.getAccessibilityShortcutTargets(
- AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY)).thenReturn(stubShortcutTargets);
+ ShortcutConstants.UserShortcutType.HARDWARE)).thenReturn(stubShortcutTargets);
mMenuViewLayer.mDismissMenuAction.run();
final String value = Settings.Secure.getString(mSpyContext.getContentResolver(),
@@ -439,7 +439,7 @@ public class MenuViewLayerTest extends SysuiTestCase {
private static class TestAccessibilityTarget extends AccessibilityTarget {
TestAccessibilityTarget(Context context, int uid) {
// Set fields unused by tests to defaults that allow test compilation.
- super(context, AccessibilityManager.ACCESSIBILITY_BUTTON, 0, false,
+ super(context, ShortcutConstants.UserShortcutType.SOFTWARE, 0, false,
TEST_SELECT_TO_SPEAK_COMPONENT_NAME.flattenToString(), uid, null, null, null);
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java
index e5ba569fd1d6..a702ddaa579e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavBarHelperTest.java
@@ -41,6 +41,7 @@ import android.view.accessibility.AccessibilityManager;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.accessibility.AccessibilityButtonModeObserver;
import com.android.systemui.accessibility.AccessibilityButtonTargetsObserver;
@@ -56,6 +57,8 @@ import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.policy.KeyguardStateController;
+import dagger.Lazy;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -67,8 +70,6 @@ import java.util.List;
import java.util.Optional;
import java.util.concurrent.Executor;
-import dagger.Lazy;
-
/**
* Tests for {@link NavBarHelper}.
*/
@@ -269,8 +270,8 @@ public class NavBarHelperTest extends SysuiTestCase {
@Test
public void initNavBarHelper_buttonModeNavBar_a11yButtonClickableState() {
- when(mAccessibilityManager.getAccessibilityShortcutTargets(
- AccessibilityManager.ACCESSIBILITY_BUTTON)).thenReturn(createFakeShortcutTargets());
+ when(mAccessibilityManager.getAccessibilityShortcutTargets(UserShortcutType.SOFTWARE))
+ .thenReturn(createFakeShortcutTargets());
mNavBarHelper.registerNavTaskStateUpdater(mNavbarTaskbarStateUpdater);
@@ -294,8 +295,8 @@ public class NavBarHelperTest extends SysuiTestCase {
when(mAccessibilityButtonModeObserver.getCurrentAccessibilityButtonMode()).thenReturn(
ACCESSIBILITY_BUTTON_MODE_NAVIGATION_BAR);
- when(mAccessibilityManager.getAccessibilityShortcutTargets(
- AccessibilityManager.ACCESSIBILITY_BUTTON)).thenReturn(createFakeShortcutTargets());
+ when(mAccessibilityManager.getAccessibilityShortcutTargets(UserShortcutType.SOFTWARE))
+ .thenReturn(createFakeShortcutTargets());
mAccessibilityServicesStateChangeListener.onAccessibilityServicesStateChanged(
mAccessibilityManager);
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index 940379699ee6..06cd8d302bf4 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -31,16 +31,14 @@ import static android.companion.virtual.VirtualDeviceManager.ACTION_VIRTUAL_DEVI
import static android.companion.virtual.VirtualDeviceManager.EXTRA_VIRTUAL_DEVICE_ID;
import static android.content.Context.DEVICE_ID_DEFAULT;
import static android.provider.Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
import static android.view.accessibility.AccessibilityManager.FlashNotificationReason;
-import static android.view.accessibility.AccessibilityManager.ShortcutType;
import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
import static com.android.internal.accessibility.common.ShortcutConstants.CHOOSER_PACKAGE_NAME;
import static com.android.internal.accessibility.common.ShortcutConstants.USER_SHORTCUT_TYPES;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import static com.android.internal.accessibility.util.AccessibilityStatsLogUtils.logAccessibilityShortcutActivated;
import static com.android.internal.util.FunctionalUtils.ignoreRemoteException;
import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
@@ -149,7 +147,6 @@ import com.android.internal.accessibility.AccessibilityShortcutController.Framew
import com.android.internal.accessibility.AccessibilityShortcutController.LaunchableFrameworkFeatureInfo;
import com.android.internal.accessibility.common.ShortcutConstants;
import com.android.internal.accessibility.common.ShortcutConstants.FloatingMenuSize;
-import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.accessibility.dialog.AccessibilityButtonChooserActivity;
import com.android.internal.accessibility.dialog.AccessibilityShortcutChooserActivity;
import com.android.internal.accessibility.util.AccessibilityUtils;
@@ -1679,7 +1676,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
}
mMainHandler.sendMessage(obtainMessage(
AccessibilityManagerService::performAccessibilityShortcutInternal, this,
- displayId, ACCESSIBILITY_BUTTON, targetName));
+ displayId, UserShortcutType.SOFTWARE, targetName));
}
/**
@@ -2276,9 +2273,9 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
}
private void showAccessibilityTargetsSelection(int displayId,
- @ShortcutType int shortcutType) {
+ @UserShortcutType int shortcutType) {
final Intent intent = new Intent(AccessibilityManager.ACTION_CHOOSE_ACCESSIBILITY_BUTTON);
- final String chooserClassName = (shortcutType == ACCESSIBILITY_SHORTCUT_KEY)
+ final String chooserClassName = (shortcutType == UserShortcutType.HARDWARE)
? AccessibilityShortcutChooserActivity.class.getName()
: AccessibilityButtonChooserActivity.class.getName();
intent.setClassName(CHOOSER_PACKAGE_NAME, chooserClassName);
@@ -3363,7 +3360,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
}
final Set<String> currentTargets =
- userState.getShortcutTargetsLocked(ACCESSIBILITY_SHORTCUT_KEY);
+ userState.getShortcutTargetsLocked(UserShortcutType.HARDWARE);
if (targetsFromSetting.equals(currentTargets)) {
return false;
}
@@ -3394,7 +3391,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
userState.mUserId, str -> str, targetsFromSetting);
final Set<String> currentTargets =
- userState.getShortcutTargetsLocked(ACCESSIBILITY_BUTTON);
+ userState.getShortcutTargetsLocked(UserShortcutType.SOFTWARE);
if (targetsFromSetting.equals(currentTargets)) {
return false;
}
@@ -3449,7 +3446,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
*/
private void updateAccessibilityShortcutKeyTargetsLocked(AccessibilityUserState userState) {
final Set<String> currentTargets =
- userState.getShortcutTargetsLocked(ACCESSIBILITY_SHORTCUT_KEY);
+ userState.getShortcutTargetsLocked(UserShortcutType.HARDWARE);
final int lastSize = currentTargets.size();
if (lastSize == 0) {
return;
@@ -3641,7 +3638,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
}
final Set<String> currentTargets =
- userState.getShortcutTargetsLocked(ACCESSIBILITY_BUTTON);
+ userState.getShortcutTargetsLocked(UserShortcutType.SOFTWARE);
final int lastSize = currentTargets.size();
if (lastSize == 0) {
return;
@@ -3681,7 +3678,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
return;
}
final Set<String> buttonTargets =
- userState.getShortcutTargetsLocked(ACCESSIBILITY_BUTTON);
+ userState.getShortcutTargetsLocked(UserShortcutType.SOFTWARE);
int lastSize = buttonTargets.size();
buttonTargets.removeIf(name -> {
if (packageName != null && name != null && !name.contains(packageName)) {
@@ -3718,7 +3715,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
lastSize = buttonTargets.size();
final Set<String> shortcutKeyTargets =
- userState.getShortcutTargetsLocked(ACCESSIBILITY_SHORTCUT_KEY);
+ userState.getShortcutTargetsLocked(UserShortcutType.HARDWARE);
final Set<String> qsShortcutTargets =
userState.getShortcutTargetsLocked(UserShortcutType.QUICK_SETTINGS);
userState.mEnabledServices.forEach(componentName -> {
@@ -3824,10 +3821,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
final List<Pair<Integer, String>> shortcutTypeAndShortcutSetting = new ArrayList<>(3);
shortcutTypeAndShortcutSetting.add(
- new Pair<>(ACCESSIBILITY_SHORTCUT_KEY,
+ new Pair<>(UserShortcutType.HARDWARE,
Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE));
shortcutTypeAndShortcutSetting.add(
- new Pair<>(ACCESSIBILITY_BUTTON,
+ new Pair<>(UserShortcutType.SOFTWARE,
Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS));
if (android.view.accessibility.Flags.a11yQsShortcut()) {
shortcutTypeAndShortcutSetting.add(
@@ -3934,7 +3931,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
}
mMainHandler.sendMessage(obtainMessage(
AccessibilityManagerService::performAccessibilityShortcutInternal, this,
- Display.DEFAULT_DISPLAY, ACCESSIBILITY_SHORTCUT_KEY, targetName));
+ Display.DEFAULT_DISPLAY, UserShortcutType.HARDWARE, targetName));
}
/**
@@ -3947,7 +3944,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
* specified target.
*/
private void performAccessibilityShortcutInternal(int displayId,
- @ShortcutType int shortcutType, @Nullable String targetName) {
+ @UserShortcutType int shortcutType, @Nullable String targetName) {
final List<String> shortcutTargets = getAccessibilityShortcutTargetsInternal(shortcutType);
if (shortcutTargets.isEmpty()) {
Slog.d(LOG_TAG, "No target to perform shortcut, shortcutType=" + shortcutType);
@@ -3998,7 +3995,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
}
private boolean performAccessibilityFrameworkFeature(int displayId,
- ComponentName assignedTarget, @ShortcutType int shortcutType) {
+ ComponentName assignedTarget, @UserShortcutType int shortcutType) {
final Map<ComponentName, FrameworkFeatureInfo> frameworkFeatureMap =
AccessibilityShortcutController.getFrameworkShortcutFeaturesMap();
if (!frameworkFeatureMap.containsKey(assignedTarget)) {
@@ -4047,12 +4044,12 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
/**
* Perform accessibility service shortcut action.
*
- * 1) For {@link AccessibilityManager#ACCESSIBILITY_BUTTON} type and services targeting sdk
+ * 1) For {@link UserShortcutType#SOFTWARE} type and services targeting sdk
* version <= Q: callbacks to accessibility service if service is bounded and requests
* accessibility button.
- * 2) For {@link AccessibilityManager#ACCESSIBILITY_SHORTCUT_KEY} type and service targeting sdk
+ * 2) For {@link UserShortcutType#HARDWARE} type and service targeting sdk
* version <= Q: turns on / off the accessibility service.
- * 3) For {@link AccessibilityManager#ACCESSIBILITY_SHORTCUT_KEY} type and service targeting sdk
+ * 3) For {@link UserShortcutType#HARDWARE} type and service targeting sdk
* version > Q and request accessibility button: turn on the accessibility service if it's
* not in the enabled state.
* (It'll happen when a service is disabled and assigned to shortcut then upgraded.)
@@ -4063,7 +4060,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
* button.
*/
private boolean performAccessibilityShortcutTargetService(int displayId,
- @ShortcutType int shortcutType, ComponentName assignedTarget) {
+ @UserShortcutType int shortcutType, ComponentName assignedTarget) {
synchronized (mLock) {
final AccessibilityUserState userState = getCurrentUserStateLocked();
final AccessibilityServiceInfo installedServiceInfo =
@@ -4081,7 +4078,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
final boolean requestA11yButton = (installedServiceInfo.flags
& FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;
// Turns on / off the accessibility service
- if ((targetSdk <= Build.VERSION_CODES.Q && shortcutType == ACCESSIBILITY_SHORTCUT_KEY)
+ if ((targetSdk <= Build.VERSION_CODES.Q && shortcutType == UserShortcutType.HARDWARE)
|| (targetSdk > Build.VERSION_CODES.Q && !requestA11yButton)) {
if (serviceConnection == null) {
logAccessibilityShortcutActivated(mContext, assignedTarget, shortcutType,
@@ -4095,7 +4092,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
}
return true;
}
- if (shortcutType == ACCESSIBILITY_SHORTCUT_KEY && targetSdk > Build.VERSION_CODES.Q
+ if (shortcutType == UserShortcutType.HARDWARE && targetSdk > Build.VERSION_CODES.Q
&& requestA11yButton) {
if (!userState.getEnabledServicesLocked().contains(assignedTarget)) {
enableAccessibilityServiceLocked(assignedTarget, mCurrentUserId);
@@ -4383,7 +4380,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
}
@Override
- public List<String> getAccessibilityShortcutTargets(@ShortcutType int shortcutType) {
+ public List<String> getAccessibilityShortcutTargets(@UserShortcutType int shortcutType) {
if (mTraceManager.isA11yTracingEnabledForTypes(FLAGS_ACCESSIBILITY_MANAGER)) {
mTraceManager.logTrace(LOG_TAG + ".getAccessibilityShortcutTargets",
FLAGS_ACCESSIBILITY_MANAGER, "shortcutType=" + shortcutType);
@@ -4397,12 +4394,13 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
return getAccessibilityShortcutTargetsInternal(shortcutType);
}
- private List<String> getAccessibilityShortcutTargetsInternal(@ShortcutType int shortcutType) {
+ private List<String> getAccessibilityShortcutTargetsInternal(
+ @UserShortcutType int shortcutType) {
synchronized (mLock) {
final AccessibilityUserState userState = getCurrentUserStateLocked();
final ArrayList<String> shortcutTargets = new ArrayList<>(
userState.getShortcutTargetsLocked(shortcutType));
- if (shortcutType != ACCESSIBILITY_BUTTON) {
+ if (shortcutType != UserShortcutType.SOFTWARE) {
return shortcutTargets;
}
// Adds legacy a11y services requesting a11y button into the list.
@@ -4895,7 +4893,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
}
}
// Warning is not required if the service is already assigned to a shortcut.
- for (int shortcutType : AccessibilityManager.SHORTCUT_TYPES) {
+ for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
if (getAccessibilityShortcutTargets(shortcutType).contains(
componentName.flattenToString())) {
return false;
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java
index 7008e8e0f0ba..a37a1841fcc0 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java
@@ -24,11 +24,9 @@ import static android.accessibilityservice.AccessibilityService.SHOW_MODE_IGNORE
import static android.accessibilityservice.AccessibilityService.SHOW_MODE_MASK;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_NONE;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_BUTTON;
-import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
-import static android.view.accessibility.AccessibilityManager.ShortcutType;
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import android.accessibilityservice.AccessibilityService.SoftKeyboardShowMode;
import android.accessibilityservice.AccessibilityServiceInfo;
@@ -53,7 +51,6 @@ import android.view.accessibility.IAccessibilityManagerClient;
import com.android.internal.R;
import com.android.internal.accessibility.AccessibilityShortcutController;
-import com.android.internal.accessibility.common.ShortcutConstants;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -779,15 +776,22 @@ class AccessibilityUserState {
* @param shortcutType The shortcut type.
* @return The array set of the strings
*/
- public ArraySet<String> getShortcutTargetsLocked(@ShortcutType int shortcutType) {
- if (shortcutType == ACCESSIBILITY_SHORTCUT_KEY) {
+ public ArraySet<String> getShortcutTargetsLocked(@UserShortcutType int shortcutType) {
+ if (shortcutType == UserShortcutType.HARDWARE) {
return mAccessibilityShortcutKeyTargets;
- } else if (shortcutType == ACCESSIBILITY_BUTTON) {
+ } else if (shortcutType == UserShortcutType.SOFTWARE) {
return mAccessibilityButtonTargets;
- } else if (shortcutType == ShortcutConstants.UserShortcutType.QUICK_SETTINGS) {
+ } else if (shortcutType == UserShortcutType.QUICK_SETTINGS) {
return getA11yQsTargets();
+ } else if ((shortcutType == UserShortcutType.TRIPLETAP
+ && isMagnificationSingleFingerTripleTapEnabledLocked()) || (
+ shortcutType == UserShortcutType.TWOFINGER_DOUBLETAP
+ && isMagnificationTwoFingerTripleTapEnabledLocked())) {
+ ArraySet<String> targets = new ArraySet<>();
+ targets.add(MAGNIFICATION_CONTROLLER_NAME);
+ return targets;
}
- return null;
+ return new ArraySet<>();
}
/**
@@ -830,8 +834,16 @@ class AccessibilityUserState {
* @param target The component name of the shortcut target.
* @return true if the shortcut target is removed.
*/
- public boolean removeShortcutTargetLocked(@ShortcutType int shortcutType,
- ComponentName target) {
+ public boolean removeShortcutTargetLocked(
+ @UserShortcutType int shortcutType, ComponentName target) {
+ if (shortcutType == UserShortcutType.TRIPLETAP
+ || shortcutType == UserShortcutType.TWOFINGER_DOUBLETAP) {
+ throw new UnsupportedOperationException(
+ "removeShortcutTargetLocked only support shortcut type: "
+ + "software and hardware and quick settings for now"
+ );
+ }
+
Set<String> targets = getShortcutTargetsLocked(shortcutType);
boolean result = targets.removeIf(name -> {
ComponentName componentName;
@@ -841,7 +853,7 @@ class AccessibilityUserState {
}
return componentName.equals(target);
});
- if (shortcutType == ShortcutConstants.UserShortcutType.QUICK_SETTINGS) {
+ if (shortcutType == UserShortcutType.QUICK_SETTINGS) {
updateA11yQsTargetLocked(targets);
}