Loading core/java/com/android/internal/accessibility/common/ShortcutConstants.java +16 −15 Original line number Diff line number Diff line Loading @@ -55,26 +55,27 @@ public final class ShortcutConstants { } /** * Annotation for different accessibilityService fragment UI type. * Annotation for the different accessibility fragment type. * * {@code LEGACY} for displaying appearance aligned with sdk version Q accessibility service * page, but only hardware shortcut allowed and under service in version Q or early. * {@code INVISIBLE} for displaying appearance without switch bar. * {@code INTUITIVE} for displaying appearance with version R accessibility design. * {@code BOUNCE} for displaying appearance with pop-up action. * {@code VOLUME_SHORTCUT_TOGGLE} for displaying appearance with switch bar and only one * shortcut option that is volume key shortcut. * {@code INVISIBLE_TOGGLE} for displaying appearance without switch bar. * {@code TOGGLE} for displaying appearance with switch bar. * {@code LAUNCH_ACTIVITY} for displaying appearance with pop-up action that is for launch * activity. */ @Retention(RetentionPolicy.SOURCE) @IntDef({ AccessibilityServiceFragmentType.LEGACY, AccessibilityServiceFragmentType.INVISIBLE, AccessibilityServiceFragmentType.INTUITIVE, AccessibilityServiceFragmentType.BOUNCE, AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE, AccessibilityFragmentType.INVISIBLE_TOGGLE, AccessibilityFragmentType.TOGGLE, AccessibilityFragmentType.LAUNCH_ACTIVITY, }) public @interface AccessibilityServiceFragmentType { int LEGACY = 0; int INVISIBLE = 1; int INTUITIVE = 2; int BOUNCE = 3; public @interface AccessibilityFragmentType { int VOLUME_SHORTCUT_TOGGLE = 0; int INVISIBLE_TOGGLE = 1; int TOGGLE = 2; int LAUNCH_ACTIVITY = 3; } /** Loading core/java/com/android/internal/accessibility/util/AccessibilityUtils.java +6 −6 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ */ package com.android.internal.accessibility.util; import static com.android.internal.accessibility.common.ShortcutConstants.AccessibilityServiceFragmentType; import static com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType; import static com.android.internal.accessibility.common.ShortcutConstants.SERVICES_SEPARATOR; import android.accessibilityservice.AccessibilityServiceInfo; Loading Loading @@ -112,9 +112,9 @@ public final class AccessibilityUtils { * Gets the corresponding fragment type of a given accessibility service. * * @param accessibilityServiceInfo The accessibilityService's info. * @return int from {@link AccessibilityServiceFragmentType}. * @return int from {@link AccessibilityFragmentType}. */ public static @AccessibilityServiceFragmentType int getAccessibilityServiceFragmentType( public static @AccessibilityFragmentType int getAccessibilityServiceFragmentType( AccessibilityServiceInfo accessibilityServiceInfo) { final int targetSdk = accessibilityServiceInfo.getResolveInfo() .serviceInfo.applicationInfo.targetSdkVersion; Loading @@ -122,10 +122,10 @@ public final class AccessibilityUtils { & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0; if (targetSdk <= Build.VERSION_CODES.Q) { return AccessibilityServiceFragmentType.LEGACY; return AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE; } return requestA11yButton ? AccessibilityServiceFragmentType.INVISIBLE : AccessibilityServiceFragmentType.INTUITIVE; ? AccessibilityFragmentType.INVISIBLE_TOGGLE : AccessibilityFragmentType.TOGGLE; } } core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java +46 −45 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import static android.view.accessibility.AccessibilityManager.ShortcutType; 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.common.ShortcutConstants.AccessibilityServiceFragmentType; import static com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType; import static com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode; import static com.android.internal.accessibility.common.ShortcutConstants.TargetType; import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType; Loading Loading @@ -97,21 +97,21 @@ public class AccessibilityButtonChooserActivity extends Activity { COLOR_INVERSION_COMPONENT_NAME.flattenToString(), String.valueOf(R.string.color_inversion_feature_name), String.valueOf(R.drawable.ic_accessibility_color_inversion), String.valueOf(AccessibilityServiceFragmentType.INTUITIVE), String.valueOf(AccessibilityFragmentType.TOGGLE), Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, }, { DALTONIZER_COMPONENT_NAME.flattenToString(), String.valueOf(R.string.color_correction_feature_name), String.valueOf(R.drawable.ic_accessibility_color_correction), String.valueOf(AccessibilityServiceFragmentType.INTUITIVE), String.valueOf(AccessibilityFragmentType.TOGGLE), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, }, { MAGNIFICATION_CONTROLLER_NAME, String.valueOf(R.string.accessibility_magnification_chooser_text), String.valueOf(R.drawable.ic_accessibility_magnification), String.valueOf(AccessibilityServiceFragmentType.INVISIBLE), String.valueOf(AccessibilityFragmentType.INVISIBLE_TOGGLE), Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, }, }; Loading Loading @@ -381,25 +381,25 @@ public class AccessibilityButtonChooserActivity extends Activity { @NonNull ViewHolder holder, AccessibilityButtonTarget target) { switch (target.getFragmentType()) { case AccessibilityServiceFragmentType.LEGACY: updateLegacyActionItemVisibility(holder, target); case AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE: updateVolumeShortcutToggleTargetActionItemVisibility(holder, target); break; case AccessibilityServiceFragmentType.INVISIBLE: updateInvisibleActionItemVisibility(holder, target); case AccessibilityFragmentType.INVISIBLE_TOGGLE: updateInvisibleToggleTargetActionItemVisibility(holder, target); break; case AccessibilityServiceFragmentType.INTUITIVE: updateIntuitiveActionItemVisibility(context, holder, target); case AccessibilityFragmentType.TOGGLE: updateToggleTargetActionItemVisibility(context, holder, target); break; case AccessibilityServiceFragmentType.BOUNCE: updateBounceActionItemVisibility(holder, target); case AccessibilityFragmentType.LAUNCH_ACTIVITY: updateLaunchActivityTargetActionItemVisibility(holder, target); break; default: throw new IllegalStateException("Unexpected fragment type"); } } private void updateLegacyActionItemVisibility(@NonNull ViewHolder holder, AccessibilityButtonTarget target) { private void updateVolumeShortcutToggleTargetActionItemVisibility( @NonNull ViewHolder holder, AccessibilityButtonTarget target) { final boolean isLaunchMenuMode = (mShortcutMenuMode == ShortcutMenuMode.LAUNCH); holder.mCheckBox.setChecked(!isLaunchMenuMode && target.isChecked()); Loading @@ -409,7 +409,7 @@ public class AccessibilityButtonChooserActivity extends Activity { holder.mSwitchItem.setVisibility(View.GONE); } private void updateInvisibleActionItemVisibility(@NonNull ViewHolder holder, private void updateInvisibleToggleTargetActionItemVisibility(@NonNull ViewHolder holder, AccessibilityButtonTarget target) { final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT); Loading @@ -420,7 +420,7 @@ public class AccessibilityButtonChooserActivity extends Activity { holder.mSwitchItem.setVisibility(View.GONE); } private void updateIntuitiveActionItemVisibility(@NonNull Context context, private void updateToggleTargetActionItemVisibility(@NonNull Context context, @NonNull ViewHolder holder, AccessibilityButtonTarget target) { final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT); final boolean isServiceEnabled = isWhiteListingService(target.getId()) Loading @@ -435,7 +435,7 @@ public class AccessibilityButtonChooserActivity extends Activity { holder.mSwitchItem.setChecked(!isEditMenuMode && isServiceEnabled); } private void updateBounceActionItemVisibility(@NonNull ViewHolder holder, private void updateLaunchActivityTargetActionItemVisibility(@NonNull ViewHolder holder, AccessibilityButtonTarget target) { final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT); Loading @@ -454,7 +454,7 @@ public class AccessibilityButtonChooserActivity extends Activity { private boolean mChecked; private CharSequence mLabel; private Drawable mDrawable; @AccessibilityServiceFragmentType @AccessibilityFragmentType private int mFragmentType; AccessibilityButtonTarget(@NonNull Context context, Loading @@ -474,11 +474,11 @@ public class AccessibilityButtonChooserActivity extends Activity { this.mChecked = isTargetShortcutUsed(context, mId); this.mLabel = shortcutInfo.getActivityInfo().loadLabel(context.getPackageManager()); this.mDrawable = shortcutInfo.getActivityInfo().loadIcon(context.getPackageManager()); this.mFragmentType = AccessibilityServiceFragmentType.BOUNCE; this.mFragmentType = AccessibilityFragmentType.LAUNCH_ACTIVITY; } AccessibilityButtonTarget(Context context, @NonNull String id, int labelResId, int iconRes, @AccessibilityServiceFragmentType int fragmentType) { int iconRes, @AccessibilityFragmentType int fragmentType) { this.mId = id; this.mType = TargetType.WHITE_LISTING; this.mChecked = isTargetShortcutUsed(context, mId); Loading Loading @@ -535,17 +535,17 @@ public class AccessibilityButtonChooserActivity extends Activity { private void onTargetSelected(AdapterView<?> parent, View view, int position, long id) { final AccessibilityButtonTarget target = mTargets.get(position); switch (target.getFragmentType()) { case AccessibilityServiceFragmentType.LEGACY: onLegacyTargetSelected(target); case AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE: onVolumeShortcutToggleTargetSelected(target); break; case AccessibilityServiceFragmentType.INVISIBLE: onInvisibleTargetSelected(target); case AccessibilityFragmentType.INVISIBLE_TOGGLE: onInvisibleToggleTargetSelected(target); break; case AccessibilityServiceFragmentType.INTUITIVE: onIntuitiveTargetSelected(target); case AccessibilityFragmentType.TOGGLE: onToggleTargetSelected(target); break; case AccessibilityServiceFragmentType.BOUNCE: onBounceTargetSelected(target); case AccessibilityFragmentType.LAUNCH_ACTIVITY: onLaunchActivityTargetSelected(target); break; default: throw new IllegalStateException("Unexpected fragment type"); Loading @@ -554,7 +554,7 @@ public class AccessibilityButtonChooserActivity extends Activity { mAlertDialog.dismiss(); } private void onLegacyTargetSelected(AccessibilityButtonTarget target) { private void onVolumeShortcutToggleTargetSelected(AccessibilityButtonTarget target) { if (sShortcutType == ACCESSIBILITY_BUTTON) { final AccessibilityManager ams = getSystemService(AccessibilityManager.class); ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId()); Loading @@ -563,7 +563,7 @@ public class AccessibilityButtonChooserActivity extends Activity { } } private void onInvisibleTargetSelected(AccessibilityButtonTarget target) { private void onInvisibleToggleTargetSelected(AccessibilityButtonTarget target) { final AccessibilityManager ams = getSystemService(AccessibilityManager.class); if (sShortcutType == ACCESSIBILITY_BUTTON) { ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId()); Loading @@ -572,11 +572,11 @@ public class AccessibilityButtonChooserActivity extends Activity { } } private void onIntuitiveTargetSelected(AccessibilityButtonTarget target) { private void onToggleTargetSelected(AccessibilityButtonTarget target) { switchServiceState(target); } private void onBounceTargetSelected(AccessibilityButtonTarget target) { private void onLaunchActivityTargetSelected(AccessibilityButtonTarget target) { final AccessibilityManager ams = getSystemService(AccessibilityManager.class); if (sShortcutType == ACCESSIBILITY_BUTTON) { ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId()); Loading Loading @@ -620,24 +620,24 @@ public class AccessibilityButtonChooserActivity extends Activity { private void onTargetChecked(AccessibilityButtonTarget target, boolean checked) { switch (target.getFragmentType()) { case AccessibilityServiceFragmentType.LEGACY: onLegacyTargetChecked(checked); case AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE: onVolumeShortcutToggleTargetChecked(checked); break; case AccessibilityServiceFragmentType.INVISIBLE: onInvisibleTargetChecked(checked); case AccessibilityFragmentType.INVISIBLE_TOGGLE: onInvisibleToggleTargetChecked(checked); break; case AccessibilityServiceFragmentType.INTUITIVE: onIntuitiveTargetChecked(checked); case AccessibilityFragmentType.TOGGLE: onToggleTargetChecked(checked); break; case AccessibilityServiceFragmentType.BOUNCE: onBounceTargetChecked(checked); case AccessibilityFragmentType.LAUNCH_ACTIVITY: onLaunchActivityTargetChecked(checked); break; default: throw new IllegalStateException("Unexpected fragment type"); } } private void onLegacyTargetChecked(boolean checked) { private void onVolumeShortcutToggleTargetChecked(boolean checked) { if (sShortcutType == ACCESSIBILITY_BUTTON) { setServiceEnabled(mCurrentCheckedTarget.getId(), checked); if (!checked) { Loading @@ -657,7 +657,7 @@ public class AccessibilityButtonChooserActivity extends Activity { mTargetAdapter.notifyDataSetChanged(); } private void onInvisibleTargetChecked(boolean checked) { private void onInvisibleToggleTargetChecked(boolean checked) { final int shortcutTypes = UserShortcutType.SOFTWARE | HARDWARE; if (!hasValuesInSettings(this, shortcutTypes, mCurrentCheckedTarget.getId())) { setServiceEnabled(mCurrentCheckedTarget.getId(), checked); Loading @@ -668,13 +668,13 @@ public class AccessibilityButtonChooserActivity extends Activity { mTargetAdapter.notifyDataSetChanged(); } private void onIntuitiveTargetChecked(boolean checked) { private void onToggleTargetChecked(boolean checked) { updateValueToSettings(mCurrentCheckedTarget.getId(), checked); mCurrentCheckedTarget.setChecked(checked); mTargetAdapter.notifyDataSetChanged(); } private void onBounceTargetChecked(boolean checked) { private void onLaunchActivityTargetChecked(boolean checked) { updateValueToSettings(mCurrentCheckedTarget.getId(), checked); mCurrentCheckedTarget.setChecked(checked); mTargetAdapter.notifyDataSetChanged(); Loading Loading @@ -740,7 +740,8 @@ public class AccessibilityButtonChooserActivity extends Activity { } private void onPermissionAllowButtonClicked(View view) { if (mCurrentCheckedTarget.getFragmentType() != AccessibilityServiceFragmentType.LEGACY) { if (mCurrentCheckedTarget.getFragmentType() != AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE) { updateValueToSettings(mCurrentCheckedTarget.getId(), /* checked= */ true); } onTargetChecked(mCurrentCheckedTarget, /* checked= */ true); Loading Loading
core/java/com/android/internal/accessibility/common/ShortcutConstants.java +16 −15 Original line number Diff line number Diff line Loading @@ -55,26 +55,27 @@ public final class ShortcutConstants { } /** * Annotation for different accessibilityService fragment UI type. * Annotation for the different accessibility fragment type. * * {@code LEGACY} for displaying appearance aligned with sdk version Q accessibility service * page, but only hardware shortcut allowed and under service in version Q or early. * {@code INVISIBLE} for displaying appearance without switch bar. * {@code INTUITIVE} for displaying appearance with version R accessibility design. * {@code BOUNCE} for displaying appearance with pop-up action. * {@code VOLUME_SHORTCUT_TOGGLE} for displaying appearance with switch bar and only one * shortcut option that is volume key shortcut. * {@code INVISIBLE_TOGGLE} for displaying appearance without switch bar. * {@code TOGGLE} for displaying appearance with switch bar. * {@code LAUNCH_ACTIVITY} for displaying appearance with pop-up action that is for launch * activity. */ @Retention(RetentionPolicy.SOURCE) @IntDef({ AccessibilityServiceFragmentType.LEGACY, AccessibilityServiceFragmentType.INVISIBLE, AccessibilityServiceFragmentType.INTUITIVE, AccessibilityServiceFragmentType.BOUNCE, AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE, AccessibilityFragmentType.INVISIBLE_TOGGLE, AccessibilityFragmentType.TOGGLE, AccessibilityFragmentType.LAUNCH_ACTIVITY, }) public @interface AccessibilityServiceFragmentType { int LEGACY = 0; int INVISIBLE = 1; int INTUITIVE = 2; int BOUNCE = 3; public @interface AccessibilityFragmentType { int VOLUME_SHORTCUT_TOGGLE = 0; int INVISIBLE_TOGGLE = 1; int TOGGLE = 2; int LAUNCH_ACTIVITY = 3; } /** Loading
core/java/com/android/internal/accessibility/util/AccessibilityUtils.java +6 −6 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ */ package com.android.internal.accessibility.util; import static com.android.internal.accessibility.common.ShortcutConstants.AccessibilityServiceFragmentType; import static com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType; import static com.android.internal.accessibility.common.ShortcutConstants.SERVICES_SEPARATOR; import android.accessibilityservice.AccessibilityServiceInfo; Loading Loading @@ -112,9 +112,9 @@ public final class AccessibilityUtils { * Gets the corresponding fragment type of a given accessibility service. * * @param accessibilityServiceInfo The accessibilityService's info. * @return int from {@link AccessibilityServiceFragmentType}. * @return int from {@link AccessibilityFragmentType}. */ public static @AccessibilityServiceFragmentType int getAccessibilityServiceFragmentType( public static @AccessibilityFragmentType int getAccessibilityServiceFragmentType( AccessibilityServiceInfo accessibilityServiceInfo) { final int targetSdk = accessibilityServiceInfo.getResolveInfo() .serviceInfo.applicationInfo.targetSdkVersion; Loading @@ -122,10 +122,10 @@ public final class AccessibilityUtils { & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0; if (targetSdk <= Build.VERSION_CODES.Q) { return AccessibilityServiceFragmentType.LEGACY; return AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE; } return requestA11yButton ? AccessibilityServiceFragmentType.INVISIBLE : AccessibilityServiceFragmentType.INTUITIVE; ? AccessibilityFragmentType.INVISIBLE_TOGGLE : AccessibilityFragmentType.TOGGLE; } }
core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java +46 −45 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ import static android.view.accessibility.AccessibilityManager.ShortcutType; 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.common.ShortcutConstants.AccessibilityServiceFragmentType; import static com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType; import static com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode; import static com.android.internal.accessibility.common.ShortcutConstants.TargetType; import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType; Loading Loading @@ -97,21 +97,21 @@ public class AccessibilityButtonChooserActivity extends Activity { COLOR_INVERSION_COMPONENT_NAME.flattenToString(), String.valueOf(R.string.color_inversion_feature_name), String.valueOf(R.drawable.ic_accessibility_color_inversion), String.valueOf(AccessibilityServiceFragmentType.INTUITIVE), String.valueOf(AccessibilityFragmentType.TOGGLE), Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, }, { DALTONIZER_COMPONENT_NAME.flattenToString(), String.valueOf(R.string.color_correction_feature_name), String.valueOf(R.drawable.ic_accessibility_color_correction), String.valueOf(AccessibilityServiceFragmentType.INTUITIVE), String.valueOf(AccessibilityFragmentType.TOGGLE), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, }, { MAGNIFICATION_CONTROLLER_NAME, String.valueOf(R.string.accessibility_magnification_chooser_text), String.valueOf(R.drawable.ic_accessibility_magnification), String.valueOf(AccessibilityServiceFragmentType.INVISIBLE), String.valueOf(AccessibilityFragmentType.INVISIBLE_TOGGLE), Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, }, }; Loading Loading @@ -381,25 +381,25 @@ public class AccessibilityButtonChooserActivity extends Activity { @NonNull ViewHolder holder, AccessibilityButtonTarget target) { switch (target.getFragmentType()) { case AccessibilityServiceFragmentType.LEGACY: updateLegacyActionItemVisibility(holder, target); case AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE: updateVolumeShortcutToggleTargetActionItemVisibility(holder, target); break; case AccessibilityServiceFragmentType.INVISIBLE: updateInvisibleActionItemVisibility(holder, target); case AccessibilityFragmentType.INVISIBLE_TOGGLE: updateInvisibleToggleTargetActionItemVisibility(holder, target); break; case AccessibilityServiceFragmentType.INTUITIVE: updateIntuitiveActionItemVisibility(context, holder, target); case AccessibilityFragmentType.TOGGLE: updateToggleTargetActionItemVisibility(context, holder, target); break; case AccessibilityServiceFragmentType.BOUNCE: updateBounceActionItemVisibility(holder, target); case AccessibilityFragmentType.LAUNCH_ACTIVITY: updateLaunchActivityTargetActionItemVisibility(holder, target); break; default: throw new IllegalStateException("Unexpected fragment type"); } } private void updateLegacyActionItemVisibility(@NonNull ViewHolder holder, AccessibilityButtonTarget target) { private void updateVolumeShortcutToggleTargetActionItemVisibility( @NonNull ViewHolder holder, AccessibilityButtonTarget target) { final boolean isLaunchMenuMode = (mShortcutMenuMode == ShortcutMenuMode.LAUNCH); holder.mCheckBox.setChecked(!isLaunchMenuMode && target.isChecked()); Loading @@ -409,7 +409,7 @@ public class AccessibilityButtonChooserActivity extends Activity { holder.mSwitchItem.setVisibility(View.GONE); } private void updateInvisibleActionItemVisibility(@NonNull ViewHolder holder, private void updateInvisibleToggleTargetActionItemVisibility(@NonNull ViewHolder holder, AccessibilityButtonTarget target) { final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT); Loading @@ -420,7 +420,7 @@ public class AccessibilityButtonChooserActivity extends Activity { holder.mSwitchItem.setVisibility(View.GONE); } private void updateIntuitiveActionItemVisibility(@NonNull Context context, private void updateToggleTargetActionItemVisibility(@NonNull Context context, @NonNull ViewHolder holder, AccessibilityButtonTarget target) { final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT); final boolean isServiceEnabled = isWhiteListingService(target.getId()) Loading @@ -435,7 +435,7 @@ public class AccessibilityButtonChooserActivity extends Activity { holder.mSwitchItem.setChecked(!isEditMenuMode && isServiceEnabled); } private void updateBounceActionItemVisibility(@NonNull ViewHolder holder, private void updateLaunchActivityTargetActionItemVisibility(@NonNull ViewHolder holder, AccessibilityButtonTarget target) { final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT); Loading @@ -454,7 +454,7 @@ public class AccessibilityButtonChooserActivity extends Activity { private boolean mChecked; private CharSequence mLabel; private Drawable mDrawable; @AccessibilityServiceFragmentType @AccessibilityFragmentType private int mFragmentType; AccessibilityButtonTarget(@NonNull Context context, Loading @@ -474,11 +474,11 @@ public class AccessibilityButtonChooserActivity extends Activity { this.mChecked = isTargetShortcutUsed(context, mId); this.mLabel = shortcutInfo.getActivityInfo().loadLabel(context.getPackageManager()); this.mDrawable = shortcutInfo.getActivityInfo().loadIcon(context.getPackageManager()); this.mFragmentType = AccessibilityServiceFragmentType.BOUNCE; this.mFragmentType = AccessibilityFragmentType.LAUNCH_ACTIVITY; } AccessibilityButtonTarget(Context context, @NonNull String id, int labelResId, int iconRes, @AccessibilityServiceFragmentType int fragmentType) { int iconRes, @AccessibilityFragmentType int fragmentType) { this.mId = id; this.mType = TargetType.WHITE_LISTING; this.mChecked = isTargetShortcutUsed(context, mId); Loading Loading @@ -535,17 +535,17 @@ public class AccessibilityButtonChooserActivity extends Activity { private void onTargetSelected(AdapterView<?> parent, View view, int position, long id) { final AccessibilityButtonTarget target = mTargets.get(position); switch (target.getFragmentType()) { case AccessibilityServiceFragmentType.LEGACY: onLegacyTargetSelected(target); case AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE: onVolumeShortcutToggleTargetSelected(target); break; case AccessibilityServiceFragmentType.INVISIBLE: onInvisibleTargetSelected(target); case AccessibilityFragmentType.INVISIBLE_TOGGLE: onInvisibleToggleTargetSelected(target); break; case AccessibilityServiceFragmentType.INTUITIVE: onIntuitiveTargetSelected(target); case AccessibilityFragmentType.TOGGLE: onToggleTargetSelected(target); break; case AccessibilityServiceFragmentType.BOUNCE: onBounceTargetSelected(target); case AccessibilityFragmentType.LAUNCH_ACTIVITY: onLaunchActivityTargetSelected(target); break; default: throw new IllegalStateException("Unexpected fragment type"); Loading @@ -554,7 +554,7 @@ public class AccessibilityButtonChooserActivity extends Activity { mAlertDialog.dismiss(); } private void onLegacyTargetSelected(AccessibilityButtonTarget target) { private void onVolumeShortcutToggleTargetSelected(AccessibilityButtonTarget target) { if (sShortcutType == ACCESSIBILITY_BUTTON) { final AccessibilityManager ams = getSystemService(AccessibilityManager.class); ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId()); Loading @@ -563,7 +563,7 @@ public class AccessibilityButtonChooserActivity extends Activity { } } private void onInvisibleTargetSelected(AccessibilityButtonTarget target) { private void onInvisibleToggleTargetSelected(AccessibilityButtonTarget target) { final AccessibilityManager ams = getSystemService(AccessibilityManager.class); if (sShortcutType == ACCESSIBILITY_BUTTON) { ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId()); Loading @@ -572,11 +572,11 @@ public class AccessibilityButtonChooserActivity extends Activity { } } private void onIntuitiveTargetSelected(AccessibilityButtonTarget target) { private void onToggleTargetSelected(AccessibilityButtonTarget target) { switchServiceState(target); } private void onBounceTargetSelected(AccessibilityButtonTarget target) { private void onLaunchActivityTargetSelected(AccessibilityButtonTarget target) { final AccessibilityManager ams = getSystemService(AccessibilityManager.class); if (sShortcutType == ACCESSIBILITY_BUTTON) { ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId()); Loading Loading @@ -620,24 +620,24 @@ public class AccessibilityButtonChooserActivity extends Activity { private void onTargetChecked(AccessibilityButtonTarget target, boolean checked) { switch (target.getFragmentType()) { case AccessibilityServiceFragmentType.LEGACY: onLegacyTargetChecked(checked); case AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE: onVolumeShortcutToggleTargetChecked(checked); break; case AccessibilityServiceFragmentType.INVISIBLE: onInvisibleTargetChecked(checked); case AccessibilityFragmentType.INVISIBLE_TOGGLE: onInvisibleToggleTargetChecked(checked); break; case AccessibilityServiceFragmentType.INTUITIVE: onIntuitiveTargetChecked(checked); case AccessibilityFragmentType.TOGGLE: onToggleTargetChecked(checked); break; case AccessibilityServiceFragmentType.BOUNCE: onBounceTargetChecked(checked); case AccessibilityFragmentType.LAUNCH_ACTIVITY: onLaunchActivityTargetChecked(checked); break; default: throw new IllegalStateException("Unexpected fragment type"); } } private void onLegacyTargetChecked(boolean checked) { private void onVolumeShortcutToggleTargetChecked(boolean checked) { if (sShortcutType == ACCESSIBILITY_BUTTON) { setServiceEnabled(mCurrentCheckedTarget.getId(), checked); if (!checked) { Loading @@ -657,7 +657,7 @@ public class AccessibilityButtonChooserActivity extends Activity { mTargetAdapter.notifyDataSetChanged(); } private void onInvisibleTargetChecked(boolean checked) { private void onInvisibleToggleTargetChecked(boolean checked) { final int shortcutTypes = UserShortcutType.SOFTWARE | HARDWARE; if (!hasValuesInSettings(this, shortcutTypes, mCurrentCheckedTarget.getId())) { setServiceEnabled(mCurrentCheckedTarget.getId(), checked); Loading @@ -668,13 +668,13 @@ public class AccessibilityButtonChooserActivity extends Activity { mTargetAdapter.notifyDataSetChanged(); } private void onIntuitiveTargetChecked(boolean checked) { private void onToggleTargetChecked(boolean checked) { updateValueToSettings(mCurrentCheckedTarget.getId(), checked); mCurrentCheckedTarget.setChecked(checked); mTargetAdapter.notifyDataSetChanged(); } private void onBounceTargetChecked(boolean checked) { private void onLaunchActivityTargetChecked(boolean checked) { updateValueToSettings(mCurrentCheckedTarget.getId(), checked); mCurrentCheckedTarget.setChecked(checked); mTargetAdapter.notifyDataSetChanged(); Loading Loading @@ -740,7 +740,8 @@ public class AccessibilityButtonChooserActivity extends Activity { } private void onPermissionAllowButtonClicked(View view) { if (mCurrentCheckedTarget.getFragmentType() != AccessibilityServiceFragmentType.LEGACY) { if (mCurrentCheckedTarget.getFragmentType() != AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE) { updateValueToSettings(mCurrentCheckedTarget.getId(), /* checked= */ true); } onTargetChecked(mCurrentCheckedTarget, /* checked= */ true); Loading