diff options
| author | 2024-03-27 19:02:26 +0000 | |
|---|---|---|
| committer | 2024-03-30 02:41:11 +0000 | |
| commit | 692deaceba32fd201d40f0d2e5da93c49a9bc85f (patch) | |
| tree | 741c96b82733026cb26398cbd57353570fbdeed4 | |
| parent | 4b03e090fab9d7beeea89779b76a3614a67b523f (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
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); } |