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

Commit dea08853 authored by PETER LIANG's avatar PETER LIANG Committed by Automerger Merge Worker
Browse files

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

Merge "Renaming for accessibility fragment type and functions." into rvc-dev am: 83c4af69 am: a5d65240

Change-Id: Ib5350c2b2e0a3852df0a7a3cd9ec2b9aa22e54e6
parents 3e75d248 a5d65240
Loading
Loading
Loading
Loading
+16 −15
Original line number 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
     * 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;
    }

    /**
+6 −6
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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;
    }
}
+46 −45
Original line number 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.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;
@@ -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,
            },
    };
@@ -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());
@@ -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);

@@ -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())
@@ -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);

@@ -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,
@@ -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);
@@ -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");
@@ -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());
@@ -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());
@@ -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());
@@ -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) {
@@ -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);
@@ -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();
@@ -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);