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

This commit is contained in:
Menghan Li
2021-05-12 08:49:55 +00:00
committed by Android (Google) Code Review
5 changed files with 80 additions and 39 deletions

View File

@@ -70,45 +70,32 @@ public class AccessibilityEditDialogUtils {
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@IntDef({ @IntDef({
DialogType.EDIT_SHORTCUT_GENERIC, DialogType.EDIT_SHORTCUT_GENERIC,
DialogType.EDIT_SHORTCUT_GENERIC_SUW,
DialogType.EDIT_SHORTCUT_MAGNIFICATION, DialogType.EDIT_SHORTCUT_MAGNIFICATION,
DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW,
DialogType.EDIT_MAGNIFICATION_SWITCH_SHORTCUT, DialogType.EDIT_MAGNIFICATION_SWITCH_SHORTCUT,
}) })
private @interface DialogType { public @interface DialogType {
int EDIT_SHORTCUT_GENERIC = 0; int EDIT_SHORTCUT_GENERIC = 0;
int EDIT_SHORTCUT_MAGNIFICATION = 1; int EDIT_SHORTCUT_GENERIC_SUW = 1;
int EDIT_MAGNIFICATION_SWITCH_SHORTCUT = 2; int EDIT_SHORTCUT_MAGNIFICATION = 2;
int EDIT_SHORTCUT_MAGNIFICATION_SUW = 3;
int EDIT_MAGNIFICATION_SWITCH_SHORTCUT = 4;
} }
/** /**
* Method to show the edit shortcut dialog. * Method to show the edit shortcut dialog.
* *
* @param context A valid context * @param context A valid context
* @param dialogType The type of edit shortcut dialog
* @param dialogTitle The title of edit shortcut dialog * @param dialogTitle The title of edit shortcut dialog
* @param listener The listener to determine the action of edit shortcut dialog * @param listener The listener to determine the action of edit shortcut dialog
* @return A edit shortcut dialog for showing * @return A edit shortcut dialog for showing
*/ */
public static AlertDialog showEditShortcutDialog(Context context, CharSequence dialogTitle, public static AlertDialog showEditShortcutDialog(Context context, int dialogType,
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,
CharSequence dialogTitle, DialogInterface.OnClickListener listener) { CharSequence dialogTitle, DialogInterface.OnClickListener listener) {
final AlertDialog alertDialog = createDialog(context, final AlertDialog alertDialog = createDialog(context, dialogType, dialogTitle, listener);
DialogType.EDIT_SHORTCUT_MAGNIFICATION, dialogTitle, listener);
alertDialog.show(); alertDialog.show();
setScrollIndicators(alertDialog); setScrollIndicators(alertDialog);
return alertDialog; return alertDialog;
@@ -241,6 +228,12 @@ public class AccessibilityEditDialogUtils {
initSoftwareShortcut(context, contentView); initSoftwareShortcut(context, contentView);
initHardwareShortcut(context, contentView); initHardwareShortcut(context, contentView);
break; 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: case DialogType.EDIT_SHORTCUT_MAGNIFICATION:
contentView = inflater.inflate( contentView = inflater.inflate(
R.layout.accessibility_edit_shortcut_magnification, null); R.layout.accessibility_edit_shortcut_magnification, null);
@@ -249,6 +242,14 @@ public class AccessibilityEditDialogUtils {
initMagnifyShortcut(context, contentView); initMagnifyShortcut(context, contentView);
initAdvancedWidget(contentView); initAdvancedWidget(contentView);
break; 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: case DialogType.EDIT_MAGNIFICATION_SWITCH_SHORTCUT:
contentView = inflater.inflate( contentView = inflater.inflate(
R.layout.accessibility_edit_magnification_shortcut, null); R.layout.accessibility_edit_magnification_shortcut, null);
@@ -278,6 +279,18 @@ public class AccessibilityEditDialogUtils {
image.setImageResource(imageResId); 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) { private static void initSoftwareShortcut(Context context, View view) {
final View dialogView = view.findViewById(R.id.software_shortcut); final View dialogView = view.findViewById(R.id.software_shortcut);
final CharSequence title = context.getText( final CharSequence title = context.getText(
@@ -285,7 +298,8 @@ public class AccessibilityEditDialogUtils {
final TextView summary = dialogView.findViewById(R.id.summary); final TextView summary = dialogView.findViewById(R.id.summary);
final int lineHeight = summary.getLineHeight(); final int lineHeight = summary.getLineHeight();
setupShortcutWidget(dialogView, title, retrieveSummary(context, lineHeight), setupShortcutWidget(dialogView, title,
retrieveSoftwareShortcutSummary(context, lineHeight),
retrieveSoftwareShortcutImageResId(context)); 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(); final SpannableStringBuilder sb = new SpannableStringBuilder();
if (!AccessibilityUtil.isFloatingMenuEnabled(context)) { if (!AccessibilityUtil.isFloatingMenuEnabled(context)) {
sb.append(getSummaryStringWithIcon(context, lineHeight)); sb.append(getSummaryStringWithIcon(context, lineHeight));

View File

@@ -50,12 +50,15 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.accessibility.AccessibilityEditDialogUtils.DialogType;
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType; import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settings.widget.SettingsMainSwitchBar;
import com.android.settings.widget.SettingsMainSwitchPreference; import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.accessibility.AccessibilityUtils; import com.android.settingslib.accessibility.AccessibilityUtils;
import com.android.settingslib.widget.OnMainSwitchChangeListener; import com.android.settingslib.widget.OnMainSwitchChangeListener;
import com.google.android.setupcompat.util.WizardManagerHelper;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList; import java.util.ArrayList;
@@ -221,8 +224,11 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
case DialogEnums.EDIT_SHORTCUT: case DialogEnums.EDIT_SHORTCUT:
final CharSequence dialogTitle = getPrefContext().getString( final CharSequence dialogTitle = getPrefContext().getString(
R.string.accessibility_shortcut_title, mPackageName); R.string.accessibility_shortcut_title, mPackageName);
final int dialogType = WizardManagerHelper.isAnySetupWizard(getIntent())
? DialogType.EDIT_SHORTCUT_GENERIC_SUW : DialogType.EDIT_SHORTCUT_GENERIC;
dialog = AccessibilityEditDialogUtils.showEditShortcutDialog( dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(
getPrefContext(), dialogTitle, this::callOnAlertDialogCheckboxClicked); getPrefContext(), dialogType, dialogTitle,
this::callOnAlertDialogCheckboxClicked);
setupEditShortcutDialog(dialog); setupEditShortcutDialog(dialog);
return dialog; return dialog;
case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL: case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:

View File

@@ -44,8 +44,11 @@ import androidx.preference.PreferenceCategory;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.DialogCreatable; import com.android.settings.DialogCreatable;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityEditDialogUtils.DialogType;
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType; import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.google.android.setupcompat.util.WizardManagerHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
@@ -127,9 +130,11 @@ public class ToggleScreenMagnificationPreferenceFragment extends
case DialogEnums.MAGNIFICATION_EDIT_SHORTCUT: case DialogEnums.MAGNIFICATION_EDIT_SHORTCUT:
final CharSequence dialogTitle = getPrefContext().getString( final CharSequence dialogTitle = getPrefContext().getString(
R.string.accessibility_shortcut_title, mPackageName); R.string.accessibility_shortcut_title, mPackageName);
dialog = AccessibilityEditDialogUtils.showMagnificationEditShortcutDialog( final int dialogType = WizardManagerHelper.isAnySetupWizard(getIntent())
getPrefContext(), dialogTitle, ? DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW
this::callOnAlertDialogCheckboxClicked); : DialogType.EDIT_SHORTCUT_MAGNIFICATION;
dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(getPrefContext(),
dialogType, dialogTitle, this::callOnAlertDialogCheckboxClicked);
setupMagnificationEditShortcutDialog(dialog); setupMagnificationEditShortcutDialog(dialog);
return dialog; return dialog;
default: default:
@@ -139,7 +144,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends
@Override @Override
protected void initSettingsPreference() { protected void initSettingsPreference() {
// If the device doesn't support magnification area, it should hide the settings preference. // If the device doesn't support magnification area, it should hide the settings preference.
if (!getContext().getResources().getBoolean( if (!getContext().getResources().getBoolean(
com.android.internal.R.bool.config_magnification_area)) { com.android.internal.R.bool.config_magnification_area)) {

View File

@@ -43,6 +43,7 @@ import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityEditDialogUtils.DialogType;
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType; import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.android.settings.testutils.shadow.ShadowFragment; import com.android.settings.testutils.shadow.ShadowFragment;
@@ -145,7 +146,8 @@ public class ToggleFeaturePreferenceFragmentTest {
public void setupEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() { public void setupEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
mContext.setTheme(R.style.Theme_AppCompat); mContext.setTheme(R.style.Theme_AppCompat);
final AlertDialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog( 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= */ final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
null); null);
mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME; mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
@@ -162,7 +164,8 @@ public class ToggleFeaturePreferenceFragmentTest {
public void setupEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() { public void setupEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
mContext.setTheme(R.style.Theme_AppCompat); mContext.setTheme(R.style.Theme_AppCompat);
final AlertDialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog( 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= */ final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
null); null);
final PreferredShortcut hardwareShortcut = new PreferredShortcut( final PreferredShortcut hardwareShortcut = new PreferredShortcut(
@@ -183,7 +186,8 @@ public class ToggleFeaturePreferenceFragmentTest {
public void restoreValueFromSavedInstanceState_assignToVariable() { public void restoreValueFromSavedInstanceState_assignToVariable() {
mContext.setTheme(R.style.Theme_AppCompat); mContext.setTheme(R.style.Theme_AppCompat);
final AlertDialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog( 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 Bundle savedInstanceState = new Bundle();
final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */ final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
null); null);

View File

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