Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83c4af69 authored by PETER LIANG's avatar PETER LIANG Committed by Android (Google) Code Review
Browse files

Merge "Renaming for accessibility fragment type and functions." into rvc-dev

parents aec74e1a 293e32bb
Loading
Loading
Loading
Loading
+16 −15
Original line number Original line Diff line number Diff line
@@ -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
     * {@code VOLUME_SHORTCUT_TOGGLE} for displaying appearance with switch bar and only one
     * page, but only hardware shortcut allowed and under service in version Q or early.
     * shortcut option that is volume key shortcut.
     * {@code INVISIBLE} for displaying appearance without switch bar.
     * {@code INVISIBLE_TOGGLE} for displaying appearance without switch bar.
     * {@code INTUITIVE} for displaying appearance with version R accessibility design.
     * {@code TOGGLE} for displaying appearance with switch bar.
     * {@code BOUNCE} for displaying appearance with pop-up action.
     * {@code LAUNCH_ACTIVITY} for displaying appearance with pop-up action that is for launch
     * activity.
     */
     */
    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
    @IntDef({
    @IntDef({
            AccessibilityServiceFragmentType.LEGACY,
            AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE,
            AccessibilityServiceFragmentType.INVISIBLE,
            AccessibilityFragmentType.INVISIBLE_TOGGLE,
            AccessibilityServiceFragmentType.INTUITIVE,
            AccessibilityFragmentType.TOGGLE,
            AccessibilityServiceFragmentType.BOUNCE,
            AccessibilityFragmentType.LAUNCH_ACTIVITY,
    })
    })
    public @interface AccessibilityServiceFragmentType {
    public @interface AccessibilityFragmentType {
        int LEGACY = 0;
        int VOLUME_SHORTCUT_TOGGLE = 0;
        int INVISIBLE = 1;
        int INVISIBLE_TOGGLE = 1;
        int INTUITIVE = 2;
        int TOGGLE = 2;
        int BOUNCE = 3;
        int LAUNCH_ACTIVITY = 3;
    }
    }


    /**
    /**
+6 −6
Original line number Original line Diff line number Diff line
@@ -15,7 +15,7 @@
 */
 */


package com.android.internal.accessibility.util;
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 static com.android.internal.accessibility.common.ShortcutConstants.SERVICES_SEPARATOR;


import android.accessibilityservice.AccessibilityServiceInfo;
import android.accessibilityservice.AccessibilityServiceInfo;
@@ -112,9 +112,9 @@ public final class AccessibilityUtils {
     * Gets the corresponding fragment type of a given accessibility service.
     * Gets the corresponding fragment type of a given accessibility service.
     *
     *
     * @param accessibilityServiceInfo The accessibilityService's info.
     * @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) {
            AccessibilityServiceInfo accessibilityServiceInfo) {
        final int targetSdk = accessibilityServiceInfo.getResolveInfo()
        final int targetSdk = accessibilityServiceInfo.getResolveInfo()
                .serviceInfo.applicationInfo.targetSdkVersion;
                .serviceInfo.applicationInfo.targetSdkVersion;
@@ -122,10 +122,10 @@ public final class AccessibilityUtils {
                & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;
                & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;


        if (targetSdk <= Build.VERSION_CODES.Q) {
        if (targetSdk <= Build.VERSION_CODES.Q) {
            return AccessibilityServiceFragmentType.LEGACY;
            return AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE;
        }
        }
        return requestA11yButton
        return requestA11yButton
                ? AccessibilityServiceFragmentType.INVISIBLE
                ? AccessibilityFragmentType.INVISIBLE_TOGGLE
                : AccessibilityServiceFragmentType.INTUITIVE;
                : AccessibilityFragmentType.TOGGLE;
    }
    }
}
}
+46 −45
Original line number Original line Diff line number Diff line
@@ -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.COLOR_INVERSION_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.DALTONIZER_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.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.ShortcutMenuMode;
import static com.android.internal.accessibility.common.ShortcutConstants.TargetType;
import static com.android.internal.accessibility.common.ShortcutConstants.TargetType;
import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
@@ -97,21 +97,21 @@ public class AccessibilityButtonChooserActivity extends Activity {
                    COLOR_INVERSION_COMPONENT_NAME.flattenToString(),
                    COLOR_INVERSION_COMPONENT_NAME.flattenToString(),
                    String.valueOf(R.string.color_inversion_feature_name),
                    String.valueOf(R.string.color_inversion_feature_name),
                    String.valueOf(R.drawable.ic_accessibility_color_inversion),
                    String.valueOf(R.drawable.ic_accessibility_color_inversion),
                    String.valueOf(AccessibilityServiceFragmentType.INTUITIVE),
                    String.valueOf(AccessibilityFragmentType.TOGGLE),
                    Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED,
                    Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED,
            },
            },
            {
            {
                    DALTONIZER_COMPONENT_NAME.flattenToString(),
                    DALTONIZER_COMPONENT_NAME.flattenToString(),
                    String.valueOf(R.string.color_correction_feature_name),
                    String.valueOf(R.string.color_correction_feature_name),
                    String.valueOf(R.drawable.ic_accessibility_color_correction),
                    String.valueOf(R.drawable.ic_accessibility_color_correction),
                    String.valueOf(AccessibilityServiceFragmentType.INTUITIVE),
                    String.valueOf(AccessibilityFragmentType.TOGGLE),
                    Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
                    Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
            },
            },
            {
            {
                    MAGNIFICATION_CONTROLLER_NAME,
                    MAGNIFICATION_CONTROLLER_NAME,
                    String.valueOf(R.string.accessibility_magnification_chooser_text),
                    String.valueOf(R.string.accessibility_magnification_chooser_text),
                    String.valueOf(R.drawable.ic_accessibility_magnification),
                    String.valueOf(R.drawable.ic_accessibility_magnification),
                    String.valueOf(AccessibilityServiceFragmentType.INVISIBLE),
                    String.valueOf(AccessibilityFragmentType.INVISIBLE_TOGGLE),
                    Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED,
                    Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED,
            },
            },
    };
    };
@@ -381,25 +381,25 @@ public class AccessibilityButtonChooserActivity extends Activity {
                @NonNull ViewHolder holder, AccessibilityButtonTarget target) {
                @NonNull ViewHolder holder, AccessibilityButtonTarget target) {


            switch (target.getFragmentType()) {
            switch (target.getFragmentType()) {
                case AccessibilityServiceFragmentType.LEGACY:
                case AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE:
                    updateLegacyActionItemVisibility(holder, target);
                    updateVolumeShortcutToggleTargetActionItemVisibility(holder, target);
                    break;
                    break;
                case AccessibilityServiceFragmentType.INVISIBLE:
                case AccessibilityFragmentType.INVISIBLE_TOGGLE:
                    updateInvisibleActionItemVisibility(holder, target);
                    updateInvisibleToggleTargetActionItemVisibility(holder, target);
                    break;
                    break;
                case AccessibilityServiceFragmentType.INTUITIVE:
                case AccessibilityFragmentType.TOGGLE:
                    updateIntuitiveActionItemVisibility(context, holder, target);
                    updateToggleTargetActionItemVisibility(context, holder, target);
                    break;
                    break;
                case AccessibilityServiceFragmentType.BOUNCE:
                case AccessibilityFragmentType.LAUNCH_ACTIVITY:
                    updateBounceActionItemVisibility(holder, target);
                    updateLaunchActivityTargetActionItemVisibility(holder, target);
                    break;
                    break;
                default:
                default:
                    throw new IllegalStateException("Unexpected fragment type");
                    throw new IllegalStateException("Unexpected fragment type");
            }
            }
        }
        }


        private void updateLegacyActionItemVisibility(@NonNull ViewHolder holder,
        private void updateVolumeShortcutToggleTargetActionItemVisibility(
                AccessibilityButtonTarget target) {
                @NonNull ViewHolder holder, AccessibilityButtonTarget target) {
            final boolean isLaunchMenuMode = (mShortcutMenuMode == ShortcutMenuMode.LAUNCH);
            final boolean isLaunchMenuMode = (mShortcutMenuMode == ShortcutMenuMode.LAUNCH);


            holder.mCheckBox.setChecked(!isLaunchMenuMode && target.isChecked());
            holder.mCheckBox.setChecked(!isLaunchMenuMode && target.isChecked());
@@ -409,7 +409,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
            holder.mSwitchItem.setVisibility(View.GONE);
            holder.mSwitchItem.setVisibility(View.GONE);
        }
        }


        private void updateInvisibleActionItemVisibility(@NonNull ViewHolder holder,
        private void updateInvisibleToggleTargetActionItemVisibility(@NonNull ViewHolder holder,
                AccessibilityButtonTarget target) {
                AccessibilityButtonTarget target) {
            final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT);
            final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT);


@@ -420,7 +420,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
            holder.mSwitchItem.setVisibility(View.GONE);
            holder.mSwitchItem.setVisibility(View.GONE);
        }
        }


        private void updateIntuitiveActionItemVisibility(@NonNull Context context,
        private void updateToggleTargetActionItemVisibility(@NonNull Context context,
                @NonNull ViewHolder holder, AccessibilityButtonTarget target) {
                @NonNull ViewHolder holder, AccessibilityButtonTarget target) {
            final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT);
            final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT);
            final boolean isServiceEnabled = isWhiteListingService(target.getId())
            final boolean isServiceEnabled = isWhiteListingService(target.getId())
@@ -435,7 +435,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
            holder.mSwitchItem.setChecked(!isEditMenuMode && isServiceEnabled);
            holder.mSwitchItem.setChecked(!isEditMenuMode && isServiceEnabled);
        }
        }


        private void updateBounceActionItemVisibility(@NonNull ViewHolder holder,
        private void updateLaunchActivityTargetActionItemVisibility(@NonNull ViewHolder holder,
                AccessibilityButtonTarget target) {
                AccessibilityButtonTarget target) {
            final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT);
            final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT);


@@ -454,7 +454,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
        private boolean mChecked;
        private boolean mChecked;
        private CharSequence mLabel;
        private CharSequence mLabel;
        private Drawable mDrawable;
        private Drawable mDrawable;
        @AccessibilityServiceFragmentType
        @AccessibilityFragmentType
        private int mFragmentType;
        private int mFragmentType;


        AccessibilityButtonTarget(@NonNull Context context,
        AccessibilityButtonTarget(@NonNull Context context,
@@ -474,11 +474,11 @@ public class AccessibilityButtonChooserActivity extends Activity {
            this.mChecked = isTargetShortcutUsed(context, mId);
            this.mChecked = isTargetShortcutUsed(context, mId);
            this.mLabel = shortcutInfo.getActivityInfo().loadLabel(context.getPackageManager());
            this.mLabel = shortcutInfo.getActivityInfo().loadLabel(context.getPackageManager());
            this.mDrawable = shortcutInfo.getActivityInfo().loadIcon(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,
        AccessibilityButtonTarget(Context context, @NonNull String id, int labelResId,
                int iconRes, @AccessibilityServiceFragmentType int fragmentType) {
                int iconRes, @AccessibilityFragmentType int fragmentType) {
            this.mId = id;
            this.mId = id;
            this.mType = TargetType.WHITE_LISTING;
            this.mType = TargetType.WHITE_LISTING;
            this.mChecked = isTargetShortcutUsed(context, mId);
            this.mChecked = isTargetShortcutUsed(context, mId);
@@ -535,17 +535,17 @@ public class AccessibilityButtonChooserActivity extends Activity {
    private void onTargetSelected(AdapterView<?> parent, View view, int position, long id) {
    private void onTargetSelected(AdapterView<?> parent, View view, int position, long id) {
        final AccessibilityButtonTarget target = mTargets.get(position);
        final AccessibilityButtonTarget target = mTargets.get(position);
        switch (target.getFragmentType()) {
        switch (target.getFragmentType()) {
            case AccessibilityServiceFragmentType.LEGACY:
            case AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE:
                onLegacyTargetSelected(target);
                onVolumeShortcutToggleTargetSelected(target);
                break;
                break;
            case AccessibilityServiceFragmentType.INVISIBLE:
            case AccessibilityFragmentType.INVISIBLE_TOGGLE:
                onInvisibleTargetSelected(target);
                onInvisibleToggleTargetSelected(target);
                break;
                break;
            case AccessibilityServiceFragmentType.INTUITIVE:
            case AccessibilityFragmentType.TOGGLE:
                onIntuitiveTargetSelected(target);
                onToggleTargetSelected(target);
                break;
                break;
            case AccessibilityServiceFragmentType.BOUNCE:
            case AccessibilityFragmentType.LAUNCH_ACTIVITY:
                onBounceTargetSelected(target);
                onLaunchActivityTargetSelected(target);
                break;
                break;
            default:
            default:
                throw new IllegalStateException("Unexpected fragment type");
                throw new IllegalStateException("Unexpected fragment type");
@@ -554,7 +554,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
        mAlertDialog.dismiss();
        mAlertDialog.dismiss();
    }
    }


    private void onLegacyTargetSelected(AccessibilityButtonTarget target) {
    private void onVolumeShortcutToggleTargetSelected(AccessibilityButtonTarget target) {
        if (sShortcutType == ACCESSIBILITY_BUTTON) {
        if (sShortcutType == ACCESSIBILITY_BUTTON) {
            final AccessibilityManager ams = getSystemService(AccessibilityManager.class);
            final AccessibilityManager ams = getSystemService(AccessibilityManager.class);
            ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId());
            ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId());
@@ -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);
        final AccessibilityManager ams = getSystemService(AccessibilityManager.class);
        if (sShortcutType == ACCESSIBILITY_BUTTON) {
        if (sShortcutType == ACCESSIBILITY_BUTTON) {
            ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId());
            ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId());
@@ -572,11 +572,11 @@ public class AccessibilityButtonChooserActivity extends Activity {
        }
        }
    }
    }


    private void onIntuitiveTargetSelected(AccessibilityButtonTarget target) {
    private void onToggleTargetSelected(AccessibilityButtonTarget target) {
        switchServiceState(target);
        switchServiceState(target);
    }
    }


    private void onBounceTargetSelected(AccessibilityButtonTarget target) {
    private void onLaunchActivityTargetSelected(AccessibilityButtonTarget target) {
        final AccessibilityManager ams = getSystemService(AccessibilityManager.class);
        final AccessibilityManager ams = getSystemService(AccessibilityManager.class);
        if (sShortcutType == ACCESSIBILITY_BUTTON) {
        if (sShortcutType == ACCESSIBILITY_BUTTON) {
            ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId());
            ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId());
@@ -620,24 +620,24 @@ public class AccessibilityButtonChooserActivity extends Activity {


    private void onTargetChecked(AccessibilityButtonTarget target, boolean checked) {
    private void onTargetChecked(AccessibilityButtonTarget target, boolean checked) {
        switch (target.getFragmentType()) {
        switch (target.getFragmentType()) {
            case AccessibilityServiceFragmentType.LEGACY:
            case AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE:
                onLegacyTargetChecked(checked);
                onVolumeShortcutToggleTargetChecked(checked);
                break;
                break;
            case AccessibilityServiceFragmentType.INVISIBLE:
            case AccessibilityFragmentType.INVISIBLE_TOGGLE:
                onInvisibleTargetChecked(checked);
                onInvisibleToggleTargetChecked(checked);
                break;
                break;
            case AccessibilityServiceFragmentType.INTUITIVE:
            case AccessibilityFragmentType.TOGGLE:
                onIntuitiveTargetChecked(checked);
                onToggleTargetChecked(checked);
                break;
                break;
            case AccessibilityServiceFragmentType.BOUNCE:
            case AccessibilityFragmentType.LAUNCH_ACTIVITY:
                onBounceTargetChecked(checked);
                onLaunchActivityTargetChecked(checked);
                break;
                break;
            default:
            default:
                throw new IllegalStateException("Unexpected fragment type");
                throw new IllegalStateException("Unexpected fragment type");
        }
        }
    }
    }


    private void onLegacyTargetChecked(boolean checked) {
    private void onVolumeShortcutToggleTargetChecked(boolean checked) {
        if (sShortcutType == ACCESSIBILITY_BUTTON) {
        if (sShortcutType == ACCESSIBILITY_BUTTON) {
            setServiceEnabled(mCurrentCheckedTarget.getId(), checked);
            setServiceEnabled(mCurrentCheckedTarget.getId(), checked);
            if (!checked) {
            if (!checked) {
@@ -657,7 +657,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
        mTargetAdapter.notifyDataSetChanged();
        mTargetAdapter.notifyDataSetChanged();
    }
    }


    private void onInvisibleTargetChecked(boolean checked) {
    private void onInvisibleToggleTargetChecked(boolean checked) {
        final int shortcutTypes = UserShortcutType.SOFTWARE | HARDWARE;
        final int shortcutTypes = UserShortcutType.SOFTWARE | HARDWARE;
        if (!hasValuesInSettings(this, shortcutTypes, mCurrentCheckedTarget.getId())) {
        if (!hasValuesInSettings(this, shortcutTypes, mCurrentCheckedTarget.getId())) {
            setServiceEnabled(mCurrentCheckedTarget.getId(), checked);
            setServiceEnabled(mCurrentCheckedTarget.getId(), checked);
@@ -668,13 +668,13 @@ public class AccessibilityButtonChooserActivity extends Activity {
        mTargetAdapter.notifyDataSetChanged();
        mTargetAdapter.notifyDataSetChanged();
    }
    }


    private void onIntuitiveTargetChecked(boolean checked) {
    private void onToggleTargetChecked(boolean checked) {
        updateValueToSettings(mCurrentCheckedTarget.getId(), checked);
        updateValueToSettings(mCurrentCheckedTarget.getId(), checked);
        mCurrentCheckedTarget.setChecked(checked);
        mCurrentCheckedTarget.setChecked(checked);
        mTargetAdapter.notifyDataSetChanged();
        mTargetAdapter.notifyDataSetChanged();
    }
    }


    private void onBounceTargetChecked(boolean checked) {
    private void onLaunchActivityTargetChecked(boolean checked) {
        updateValueToSettings(mCurrentCheckedTarget.getId(), checked);
        updateValueToSettings(mCurrentCheckedTarget.getId(), checked);
        mCurrentCheckedTarget.setChecked(checked);
        mCurrentCheckedTarget.setChecked(checked);
        mTargetAdapter.notifyDataSetChanged();
        mTargetAdapter.notifyDataSetChanged();
@@ -740,7 +740,8 @@ public class AccessibilityButtonChooserActivity extends Activity {
    }
    }


    private void onPermissionAllowButtonClicked(View view) {
    private void onPermissionAllowButtonClicked(View view) {
        if (mCurrentCheckedTarget.getFragmentType() != AccessibilityServiceFragmentType.LEGACY) {
        if (mCurrentCheckedTarget.getFragmentType()
                != AccessibilityFragmentType.VOLUME_SHORTCUT_TOGGLE) {
            updateValueToSettings(mCurrentCheckedTarget.getId(), /* checked= */ true);
            updateValueToSettings(mCurrentCheckedTarget.getId(), /* checked= */ true);
        }
        }
        onTargetChecked(mCurrentCheckedTarget, /* checked= */ true);
        onTargetChecked(mCurrentCheckedTarget, /* checked= */ true);