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

Commit fd05966f authored by Menghan Li's avatar Menghan Li Committed by Android (Google) Code Review
Browse files

Merge "Fix style in "Vision Settings" is inconsistent" into sc-dev

parents 7bdf791e 11a07008
Loading
Loading
Loading
Loading
+48 −25
Original line number Diff line number Diff line
@@ -70,45 +70,32 @@ public class AccessibilityEditDialogUtils {
    @Retention(RetentionPolicy.SOURCE)
    @IntDef({
         DialogType.EDIT_SHORTCUT_GENERIC,
         DialogType.EDIT_SHORTCUT_GENERIC_SUW,
         DialogType.EDIT_SHORTCUT_MAGNIFICATION,
         DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW,
         DialogType.EDIT_MAGNIFICATION_SWITCH_SHORTCUT,
    })

    private @interface DialogType {
    public  @interface DialogType {
        int EDIT_SHORTCUT_GENERIC = 0;
        int EDIT_SHORTCUT_MAGNIFICATION = 1;
        int EDIT_MAGNIFICATION_SWITCH_SHORTCUT = 2;
        int EDIT_SHORTCUT_GENERIC_SUW = 1;
        int EDIT_SHORTCUT_MAGNIFICATION = 2;
        int EDIT_SHORTCUT_MAGNIFICATION_SUW = 3;
        int EDIT_MAGNIFICATION_SWITCH_SHORTCUT = 4;
    }

    /**
     * Method to show the edit shortcut dialog.
     *
     * @param context A valid context
     * @param dialogType The type of edit shortcut dialog
     * @param dialogTitle The title of edit shortcut dialog
     * @param listener The listener to determine the action of edit shortcut dialog
     * @return A edit shortcut dialog for showing
     */
    public static AlertDialog showEditShortcutDialog(Context context, CharSequence dialogTitle,
            DialogInterface.OnClickListener listener) {
        final AlertDialog alertDialog = createDialog(context, DialogType.EDIT_SHORTCUT_GENERIC,
                dialogTitle, listener);
        alertDialog.show();
        setScrollIndicators(alertDialog);
        return alertDialog;
    }

    /**
     * Method to show the edit shortcut dialog in Magnification.
     *
     * @param context A valid context
     * @param dialogTitle The title of edit shortcut dialog
     * @param listener The listener to determine the action of edit shortcut dialog
     * @return A edit shortcut dialog for showing in Magnification
     */
    public static AlertDialog showMagnificationEditShortcutDialog(Context context,
    public static AlertDialog showEditShortcutDialog(Context context, int dialogType,
            CharSequence dialogTitle, DialogInterface.OnClickListener listener) {
        final AlertDialog alertDialog = createDialog(context,
                DialogType.EDIT_SHORTCUT_MAGNIFICATION, dialogTitle, listener);
        final AlertDialog alertDialog = createDialog(context, dialogType, dialogTitle, listener);
        alertDialog.show();
        setScrollIndicators(alertDialog);
        return alertDialog;
@@ -241,6 +228,12 @@ public class AccessibilityEditDialogUtils {
                initSoftwareShortcut(context, contentView);
                initHardwareShortcut(context, contentView);
                break;
            case DialogType.EDIT_SHORTCUT_GENERIC_SUW:
                contentView = inflater.inflate(
                        R.layout.accessibility_edit_shortcut, null);
                initSoftwareShortcutForSUW(context, contentView);
                initHardwareShortcut(context, contentView);
                break;
            case DialogType.EDIT_SHORTCUT_MAGNIFICATION:
                contentView = inflater.inflate(
                        R.layout.accessibility_edit_shortcut_magnification, null);
@@ -249,6 +242,14 @@ public class AccessibilityEditDialogUtils {
                initMagnifyShortcut(context, contentView);
                initAdvancedWidget(contentView);
                break;
            case DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW:
                contentView = inflater.inflate(
                        R.layout.accessibility_edit_shortcut_magnification, null);
                initSoftwareShortcutForSUW(context, contentView);
                initHardwareShortcut(context, contentView);
                initMagnifyShortcut(context, contentView);
                initAdvancedWidget(contentView);
                break;
            case DialogType.EDIT_MAGNIFICATION_SWITCH_SHORTCUT:
                contentView = inflater.inflate(
                        R.layout.accessibility_edit_magnification_shortcut, null);
@@ -278,6 +279,18 @@ public class AccessibilityEditDialogUtils {
        image.setImageResource(imageResId);
    }

    private static void initSoftwareShortcutForSUW(Context context, View view) {
        final View dialogView = view.findViewById(R.id.software_shortcut);
        final CharSequence title = context.getText(
                R.string.accessibility_shortcut_edit_dialog_title_software);
        final TextView summary = dialogView.findViewById(R.id.summary);
        final int lineHeight = summary.getLineHeight();

        setupShortcutWidget(dialogView, title,
                retrieveSoftwareShortcutSummaryForSUW(context, lineHeight),
                retrieveSoftwareShortcutImageResId(context));
    }

    private static void initSoftwareShortcut(Context context, View view) {
        final View dialogView = view.findViewById(R.id.software_shortcut);
        final CharSequence title = context.getText(
@@ -285,7 +298,8 @@ public class AccessibilityEditDialogUtils {
        final TextView summary = dialogView.findViewById(R.id.summary);
        final int lineHeight = summary.getLineHeight();

        setupShortcutWidget(dialogView, title, retrieveSummary(context, lineHeight),
        setupShortcutWidget(dialogView, title,
                retrieveSoftwareShortcutSummary(context, lineHeight),
                retrieveSoftwareShortcutImageResId(context));
    }

@@ -320,7 +334,16 @@ public class AccessibilityEditDialogUtils {
        });
    }

    private static CharSequence retrieveSummary(Context context, int lineHeight) {
    private static CharSequence retrieveSoftwareShortcutSummaryForSUW(Context context,
            int lineHeight) {
        final SpannableStringBuilder sb = new SpannableStringBuilder();
        if (!AccessibilityUtil.isFloatingMenuEnabled(context)) {
            sb.append(getSummaryStringWithIcon(context, lineHeight));
        }
        return sb;
    }

    private static CharSequence retrieveSoftwareShortcutSummary(Context context, int lineHeight) {
        final SpannableStringBuilder sb = new SpannableStringBuilder();
        if (!AccessibilityUtil.isFloatingMenuEnabled(context)) {
            sb.append(getSummaryStringWithIcon(context, lineHeight));
+7 −1
Original line number Diff line number Diff line
@@ -50,12 +50,15 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.accessibility.AccessibilityEditDialogUtils.DialogType;
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.android.settings.widget.SettingsMainSwitchBar;
import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.accessibility.AccessibilityUtils;
import com.android.settingslib.widget.OnMainSwitchChangeListener;

import com.google.android.setupcompat.util.WizardManagerHelper;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -221,8 +224,11 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
            case DialogEnums.EDIT_SHORTCUT:
                final CharSequence dialogTitle = getPrefContext().getString(
                        R.string.accessibility_shortcut_title, mPackageName);
                final int dialogType = WizardManagerHelper.isAnySetupWizard(getIntent())
                        ? DialogType.EDIT_SHORTCUT_GENERIC_SUW : DialogType.EDIT_SHORTCUT_GENERIC;
                dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(
                        getPrefContext(), dialogTitle, this::callOnAlertDialogCheckboxClicked);
                        getPrefContext(), dialogType, dialogTitle,
                        this::callOnAlertDialogCheckboxClicked);
                setupEditShortcutDialog(dialog);
                return dialog;
            case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
+8 −4
Original line number Diff line number Diff line
@@ -44,8 +44,11 @@ import androidx.preference.PreferenceCategory;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.DialogCreatable;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityEditDialogUtils.DialogType;
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;

import com.google.android.setupcompat.util.WizardManagerHelper;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@@ -127,9 +130,11 @@ public class ToggleScreenMagnificationPreferenceFragment extends
            case DialogEnums.MAGNIFICATION_EDIT_SHORTCUT:
                final CharSequence dialogTitle = getPrefContext().getString(
                        R.string.accessibility_shortcut_title, mPackageName);
                dialog = AccessibilityEditDialogUtils.showMagnificationEditShortcutDialog(
                                getPrefContext(), dialogTitle,
                                this::callOnAlertDialogCheckboxClicked);
                final int dialogType = WizardManagerHelper.isAnySetupWizard(getIntent())
                        ? DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW
                        : DialogType.EDIT_SHORTCUT_MAGNIFICATION;
                dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(getPrefContext(),
                        dialogType, dialogTitle, this::callOnAlertDialogCheckboxClicked);
                setupMagnificationEditShortcutDialog(dialog);
                return dialog;
            default:
@@ -139,7 +144,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends

    @Override
    protected void initSettingsPreference() {

        // If the device doesn't support magnification area, it should hide the settings preference.
        if (!getContext().getResources().getBoolean(
                com.android.internal.R.bool.config_magnification_area)) {
+7 −3
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityEditDialogUtils.DialogType;
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.android.settings.testutils.shadow.ShadowFragment;

@@ -145,7 +146,8 @@ public class ToggleFeaturePreferenceFragmentTest {
    public void setupEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
        mContext.setTheme(R.style.Theme_AppCompat);
        final AlertDialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(
                mContext, PLACEHOLDER_DIALOG_TITLE, this::callEmptyOnClicked);
                mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
                this::callEmptyOnClicked);
        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
                null);
        mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
@@ -162,7 +164,8 @@ public class ToggleFeaturePreferenceFragmentTest {
    public void setupEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
        mContext.setTheme(R.style.Theme_AppCompat);
        final AlertDialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(
                mContext, PLACEHOLDER_DIALOG_TITLE, this::callEmptyOnClicked);
                mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
                this::callEmptyOnClicked);
        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
                null);
        final PreferredShortcut hardwareShortcut = new PreferredShortcut(
@@ -183,7 +186,8 @@ public class ToggleFeaturePreferenceFragmentTest {
    public void restoreValueFromSavedInstanceState_assignToVariable() {
        mContext.setTheme(R.style.Theme_AppCompat);
        final AlertDialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(
                mContext, PLACEHOLDER_DIALOG_TITLE, this::callEmptyOnClicked);
                mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
                this::callEmptyOnClicked);
        final Bundle savedInstanceState = new Bundle();
        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
                null);
+10 −6
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import androidx.test.core.app.ApplicationProvider;

import com.android.settings.DialogCreatable;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityEditDialogUtils.DialogType;
import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settings.testutils.shadow.ShadowSettingsPreferenceFragment;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -208,8 +209,9 @@ public class ToggleScreenMagnificationPreferenceFragmentTest {
    @Test
    public void setupMagnificationEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
        mContext.setTheme(R.style.Theme_AppCompat);
        final AlertDialog dialog = AccessibilityEditDialogUtils.showMagnificationEditShortcutDialog(
                mContext, PLACEHOLDER_DIALOG_TITLE, this::callEmptyOnClicked);
        final AlertDialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(
                mContext, DialogType.EDIT_SHORTCUT_MAGNIFICATION, PLACEHOLDER_DIALOG_TITLE,
                this::callEmptyOnClicked);
        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
                null);
        mFragment.mShortcutPreference = shortcutPreference;
@@ -224,8 +226,9 @@ public class ToggleScreenMagnificationPreferenceFragmentTest {
    @Test
    public void setupMagnificationEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
        mContext.setTheme(R.style.Theme_AppCompat);
        final AlertDialog dialog = AccessibilityEditDialogUtils.showMagnificationEditShortcutDialog(
                mContext, PLACEHOLDER_DIALOG_TITLE, this::callEmptyOnClicked);
        final AlertDialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(
                mContext, DialogType.EDIT_SHORTCUT_MAGNIFICATION, PLACEHOLDER_DIALOG_TITLE,
                this::callEmptyOnClicked);
        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
                null);
        final PreferredShortcut tripletapShortcut = new PreferredShortcut(
@@ -244,8 +247,9 @@ public class ToggleScreenMagnificationPreferenceFragmentTest {
    @Config(shadows = ShadowFragment.class)
    public void restoreValueFromSavedInstanceState_assignToVariable() {
        mContext.setTheme(R.style.Theme_AppCompat);
        final AlertDialog dialog = AccessibilityEditDialogUtils.showMagnificationEditShortcutDialog(
                mContext, PLACEHOLDER_DIALOG_TITLE, this::callEmptyOnClicked);
        final AlertDialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(
                mContext, DialogType.EDIT_SHORTCUT_MAGNIFICATION, PLACEHOLDER_DIALOG_TITLE,
                this::callEmptyOnClicked);
        final Bundle savedInstanceState = new Bundle();
        mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */ null);