Loading res/layout/accessibility_edit_shortcut_magnification.xml +4 −2 Original line number Diff line number Diff line Loading @@ -44,19 +44,21 @@ android:id="@+id/advanced_shortcut" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeightSmall" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="fitCenter" android:layout_gravity="center" android:contentDescription="@null" android:scaleType="centerCrop" android:src="@drawable/ic_keyboard_arrow_down" /> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:minHeight="?android:attr/listPreferredItemHeightSmall" android:paddingStart="12dp" android:text="@string/accessibility_shortcut_edit_dialog_title_advance" android:textAppearance="?android:attr/textAppearanceListItem" Loading src/com/android/settings/accessibility/AccessibilityUtil.java +4 −4 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ final class AccessibilityUtil { /** * Annotation for different user shortcut type UI type. * * {@code DEFAULT} for displaying default value. * {@code EMPTY} for displaying default value. * {@code SOFTWARE} for displaying specifying the accessibility services or features which * choose accessibility button in the navigation bar as preferred shortcut. * {@code HARDWARE} for displaying specifying the accessibility services or features which Loading @@ -83,7 +83,7 @@ final class AccessibilityUtil { */ @Retention(RetentionPolicy.SOURCE) @IntDef({ UserShortcutType.DEFAULT, UserShortcutType.EMPTY, UserShortcutType.SOFTWARE, UserShortcutType.HARDWARE, UserShortcutType.TRIPLETAP, Loading @@ -91,7 +91,7 @@ final class AccessibilityUtil { /** Denotes the user shortcut type. */ public @interface UserShortcutType { int DEFAULT = 0; int EMPTY = 0; int SOFTWARE = 1; // 1 << 0 int HARDWARE = 2; // 1 << 1 int TRIPLETAP = 4; // 1 << 2 Loading Loading @@ -323,7 +323,7 @@ final class AccessibilityUtil { */ static int getUserShortcutTypesFromSettings(Context context, @NonNull ComponentName componentName) { int shortcutTypes = UserShortcutType.DEFAULT; int shortcutTypes = UserShortcutType.EMPTY; if (hasValuesInSettings(context, UserShortcutType.SOFTWARE, componentName)) { shortcutTypes |= UserShortcutType.SOFTWARE; } Loading src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +2 −0 Original line number Diff line number Diff line Loading @@ -417,6 +417,8 @@ public class ToggleAccessibilityServicePreferenceFragment extends AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes, mComponentName); mDialog.dismiss(); mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext())); } private void onDenyButtonFromShortcutToggleClicked() { Loading src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +25 −36 Original line number Diff line number Diff line Loading @@ -90,9 +90,9 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference"; private static final String EXTRA_SHORTCUT_TYPE = "shortcut_type"; private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener; private int mUserShortcutType = UserShortcutType.DEFAULT; private int mUserShortcutType = UserShortcutType.EMPTY; // Used to restore the edit dialog status. private int mUserShortcutTypeCache = UserShortcutType.DEFAULT; private int mUserShortcutTypeCache = UserShortcutType.EMPTY; private CheckBox mSoftwareTypeCheckBox; private CheckBox mHardwareTypeCheckBox; Loading Loading @@ -413,18 +413,18 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR); private String mComponentName; private int mUserShortcutType; private int mType; AccessibilityUserShortcutType(String componentName, int userShortcutType) { AccessibilityUserShortcutType(String componentName, int type) { this.mComponentName = componentName; this.mUserShortcutType = userShortcutType; this.mType = type; } AccessibilityUserShortcutType(String flattenedString) { sStringColonSplitter.setString(flattenedString); if (sStringColonSplitter.hasNext()) { this.mComponentName = sStringColonSplitter.next(); this.mUserShortcutType = Integer.parseInt(sStringColonSplitter.next()); this.mType = Integer.parseInt(sStringColonSplitter.next()); } } Loading @@ -436,18 +436,18 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference this.mComponentName = componentName; } int getUserShortcutType() { return mUserShortcutType; int getType() { return mType; } void setUserShortcutType(int userShortcutType) { this.mUserShortcutType = userShortcutType; void setType(int type) { this.mType = type; } String flattenToString() { final StringJoiner joiner = new StringJoiner(String.valueOf(COMPONENT_NAME_SEPARATOR)); joiner.add(mComponentName); joiner.add(String.valueOf(mUserShortcutType)); joiner.add(String.valueOf(mType)); return joiner.toString(); } } Loading @@ -459,7 +459,6 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut); mHardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox); updateAlertDialogCheckState(); updateAlertDialogEnableState(); } private void updateAlertDialogCheckState() { Loading @@ -467,36 +466,28 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference updateCheckStatus(mHardwareTypeCheckBox, UserShortcutType.HARDWARE); } private void updateAlertDialogEnableState() { if (!mSoftwareTypeCheckBox.isChecked()) { mHardwareTypeCheckBox.setEnabled(false); } else if (!mHardwareTypeCheckBox.isChecked()) { mSoftwareTypeCheckBox.setEnabled(false); } else { mSoftwareTypeCheckBox.setEnabled(true); mHardwareTypeCheckBox.setEnabled(true); } } private void updateCheckStatus(CheckBox checkBox, @UserShortcutType int type) { checkBox.setChecked((mUserShortcutTypeCache & type) == type); checkBox.setOnClickListener(v -> { updateUserShortcutType(/* saveChanges= */ false); updateAlertDialogEnableState(); }); } private void updateUserShortcutType(boolean saveChanges) { mUserShortcutTypeCache = UserShortcutType.DEFAULT; mUserShortcutTypeCache = UserShortcutType.EMPTY; if (mSoftwareTypeCheckBox.isChecked()) { mUserShortcutTypeCache |= UserShortcutType.SOFTWARE; } if (mHardwareTypeCheckBox.isChecked()) { mUserShortcutTypeCache |= UserShortcutType.HARDWARE; } if (saveChanges) { final boolean isChanged = (mUserShortcutTypeCache != UserShortcutType.EMPTY); if (isChanged) { setUserShortcutType(getPrefContext(), mUserShortcutTypeCache); } mUserShortcutType = mUserShortcutTypeCache; setUserShortcutType(getPrefContext(), mUserShortcutType); } } Loading Loading @@ -573,7 +564,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference final String str = (String) filtered.toArray()[0]; final AccessibilityUserShortcutType shortcut = new AccessibilityUserShortcutType(str); return shortcut.getUserShortcutType(); return shortcut.getType(); } private void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) { Loading @@ -582,13 +573,11 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference } updateUserShortcutType(/* saveChanges= */ true); if (mShortcutPreference.isChecked()) { AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), mUserShortcutType, mComponentName); AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), ~mUserShortcutType, mComponentName); } mShortcutPreference.setChecked(true); mShortcutPreference.setChecked(mUserShortcutType != UserShortcutType.EMPTY); mShortcutPreference.setSummary( getShortcutTypeSummary(getPrefContext())); } Loading @@ -601,7 +590,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference // Get the user shortcut type from settings provider. mUserShortcutType = AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(), mComponentName); if (mUserShortcutType != UserShortcutType.DEFAULT) { if (mUserShortcutType != UserShortcutType.EMPTY) { setUserShortcutType(getPrefContext(), mUserShortcutType); } else { // Get the user shortcut type from shared_prefs if cannot get from settings provider. Loading @@ -613,7 +602,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference // Restore the user shortcut type. if (savedInstanceState != null && savedInstanceState.containsKey(EXTRA_SHORTCUT_TYPE)) { mUserShortcutTypeCache = savedInstanceState.getInt(EXTRA_SHORTCUT_TYPE, UserShortcutType.DEFAULT); UserShortcutType.EMPTY); } // Initial the shortcut preference. Loading src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +15 −29 Original line number Diff line number Diff line Loading @@ -70,9 +70,9 @@ public class ToggleScreenMagnificationPreferenceFragment extends private static final String EXTRA_SHORTCUT_TYPE = "shortcut_type"; private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference"; private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener; private int mUserShortcutType = UserShortcutType.DEFAULT; private int mUserShortcutType = UserShortcutType.EMPTY; // Used to restore the edit dialog status. private int mUserShortcutTypeCache = UserShortcutType.DEFAULT; private int mUserShortcutTypeCache = UserShortcutType.EMPTY; private CheckBox mSoftwareTypeCheckBox; private CheckBox mHardwareTypeCheckBox; private CheckBox mTripleTapTypeCheckBox; Loading Loading @@ -255,7 +255,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends mTripleTapTypeCheckBox = dialogTripleTapView.findViewById(R.id.checkbox); final View advancedView = dialog.findViewById(R.id.advanced_shortcut); updateAlertDialogCheckState(); updateAlertDialogEnableState(); // Window magnification mode doesn't support advancedView. if (isWindowMagnification(getPrefContext())) { Loading @@ -275,30 +274,15 @@ public class ToggleScreenMagnificationPreferenceFragment extends updateCheckStatus(mTripleTapTypeCheckBox, UserShortcutType.TRIPLETAP); } private void updateAlertDialogEnableState() { if (!mSoftwareTypeCheckBox.isChecked() && !mTripleTapTypeCheckBox.isChecked()) { mHardwareTypeCheckBox.setEnabled(false); } else if (!mHardwareTypeCheckBox.isChecked() && !mTripleTapTypeCheckBox.isChecked()) { mSoftwareTypeCheckBox.setEnabled(false); } else if (!mSoftwareTypeCheckBox.isChecked() && !mHardwareTypeCheckBox.isChecked()) { mTripleTapTypeCheckBox.setEnabled(false); } else { mSoftwareTypeCheckBox.setEnabled(true); mHardwareTypeCheckBox.setEnabled(true); mTripleTapTypeCheckBox.setEnabled(true); } } private void updateCheckStatus(CheckBox checkBox, @UserShortcutType int type) { checkBox.setChecked((mUserShortcutTypeCache & type) == type); checkBox.setOnClickListener(v -> { updateUserShortcutType(/* saveChanges= */ false); updateAlertDialogEnableState(); }); } private void updateUserShortcutType(boolean saveChanges) { mUserShortcutTypeCache = UserShortcutType.DEFAULT; mUserShortcutTypeCache = UserShortcutType.EMPTY; if (mSoftwareTypeCheckBox.isChecked()) { mUserShortcutTypeCache |= UserShortcutType.SOFTWARE; } Loading @@ -308,9 +292,13 @@ public class ToggleScreenMagnificationPreferenceFragment extends if (mTripleTapTypeCheckBox.isChecked()) { mUserShortcutTypeCache |= UserShortcutType.TRIPLETAP; } if (saveChanges) { final boolean isChanged = (mUserShortcutTypeCache != UserShortcutType.EMPTY); if (isChanged) { setUserShortcutType(getPrefContext(), mUserShortcutTypeCache); } mUserShortcutType = mUserShortcutTypeCache; setUserShortcutType(getPrefContext(), mUserShortcutType); } } Loading @@ -336,7 +324,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends return context.getText(R.string.switch_off_text); } final int shortcutType = getUserShortcutType(context, UserShortcutType.DEFAULT); final int shortcutType = getUserShortcutType(context, UserShortcutType.EMPTY); int resId = R.string.accessibility_shortcut_edit_summary_software; if (AccessibilityUtil.isGestureNavigateEnabled(context)) { resId = AccessibilityUtil.isTouchExploreEnabled(context) Loading Loading @@ -381,16 +369,14 @@ public class ToggleScreenMagnificationPreferenceFragment extends final String str = (String) filtered.toArray()[0]; final AccessibilityUserShortcutType shortcut = new AccessibilityUserShortcutType(str); return shortcut.getUserShortcutType(); return shortcut.getType(); } private void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) { updateUserShortcutType(/* saveChanges= */ true); if (mShortcutPreference.isChecked()) { optInAllMagnificationValuesToSettings(getPrefContext(), mUserShortcutType); optOutAllMagnificationValuesFromSettings(getPrefContext(), ~mUserShortcutType); } mShortcutPreference.setChecked(true); mShortcutPreference.setChecked(mUserShortcutType != UserShortcutType.EMPTY); mShortcutPreference.setSummary( getShortcutTypeSummary(getPrefContext())); } Loading Loading @@ -467,7 +453,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends private void updateShortcutPreferenceData() { // Get the user shortcut type from settings provider. mUserShortcutType = getUserShortcutTypeFromSettings(getPrefContext()); if (mUserShortcutType != UserShortcutType.DEFAULT) { if (mUserShortcutType != UserShortcutType.EMPTY) { setUserShortcutType(getPrefContext(), mUserShortcutType); } else { // Get the user shortcut type from shared_prefs if cannot get from settings provider. Loading Loading @@ -626,7 +612,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends } private static int getUserShortcutTypeFromSettings(Context context) { int shortcutTypes = UserShortcutType.DEFAULT; int shortcutTypes = UserShortcutType.EMPTY; if (hasMagnificationValuesInSettings(context, UserShortcutType.SOFTWARE)) { shortcutTypes |= UserShortcutType.SOFTWARE; } Loading Loading
res/layout/accessibility_edit_shortcut_magnification.xml +4 −2 Original line number Diff line number Diff line Loading @@ -44,19 +44,21 @@ android:id="@+id/advanced_shortcut" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeightSmall" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="fitCenter" android:layout_gravity="center" android:contentDescription="@null" android:scaleType="centerCrop" android:src="@drawable/ic_keyboard_arrow_down" /> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:minHeight="?android:attr/listPreferredItemHeightSmall" android:paddingStart="12dp" android:text="@string/accessibility_shortcut_edit_dialog_title_advance" android:textAppearance="?android:attr/textAppearanceListItem" Loading
src/com/android/settings/accessibility/AccessibilityUtil.java +4 −4 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ final class AccessibilityUtil { /** * Annotation for different user shortcut type UI type. * * {@code DEFAULT} for displaying default value. * {@code EMPTY} for displaying default value. * {@code SOFTWARE} for displaying specifying the accessibility services or features which * choose accessibility button in the navigation bar as preferred shortcut. * {@code HARDWARE} for displaying specifying the accessibility services or features which Loading @@ -83,7 +83,7 @@ final class AccessibilityUtil { */ @Retention(RetentionPolicy.SOURCE) @IntDef({ UserShortcutType.DEFAULT, UserShortcutType.EMPTY, UserShortcutType.SOFTWARE, UserShortcutType.HARDWARE, UserShortcutType.TRIPLETAP, Loading @@ -91,7 +91,7 @@ final class AccessibilityUtil { /** Denotes the user shortcut type. */ public @interface UserShortcutType { int DEFAULT = 0; int EMPTY = 0; int SOFTWARE = 1; // 1 << 0 int HARDWARE = 2; // 1 << 1 int TRIPLETAP = 4; // 1 << 2 Loading Loading @@ -323,7 +323,7 @@ final class AccessibilityUtil { */ static int getUserShortcutTypesFromSettings(Context context, @NonNull ComponentName componentName) { int shortcutTypes = UserShortcutType.DEFAULT; int shortcutTypes = UserShortcutType.EMPTY; if (hasValuesInSettings(context, UserShortcutType.SOFTWARE, componentName)) { shortcutTypes |= UserShortcutType.SOFTWARE; } Loading
src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +2 −0 Original line number Diff line number Diff line Loading @@ -417,6 +417,8 @@ public class ToggleAccessibilityServicePreferenceFragment extends AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes, mComponentName); mDialog.dismiss(); mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext())); } private void onDenyButtonFromShortcutToggleClicked() { Loading
src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +25 −36 Original line number Diff line number Diff line Loading @@ -90,9 +90,9 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference"; private static final String EXTRA_SHORTCUT_TYPE = "shortcut_type"; private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener; private int mUserShortcutType = UserShortcutType.DEFAULT; private int mUserShortcutType = UserShortcutType.EMPTY; // Used to restore the edit dialog status. private int mUserShortcutTypeCache = UserShortcutType.DEFAULT; private int mUserShortcutTypeCache = UserShortcutType.EMPTY; private CheckBox mSoftwareTypeCheckBox; private CheckBox mHardwareTypeCheckBox; Loading Loading @@ -413,18 +413,18 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR); private String mComponentName; private int mUserShortcutType; private int mType; AccessibilityUserShortcutType(String componentName, int userShortcutType) { AccessibilityUserShortcutType(String componentName, int type) { this.mComponentName = componentName; this.mUserShortcutType = userShortcutType; this.mType = type; } AccessibilityUserShortcutType(String flattenedString) { sStringColonSplitter.setString(flattenedString); if (sStringColonSplitter.hasNext()) { this.mComponentName = sStringColonSplitter.next(); this.mUserShortcutType = Integer.parseInt(sStringColonSplitter.next()); this.mType = Integer.parseInt(sStringColonSplitter.next()); } } Loading @@ -436,18 +436,18 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference this.mComponentName = componentName; } int getUserShortcutType() { return mUserShortcutType; int getType() { return mType; } void setUserShortcutType(int userShortcutType) { this.mUserShortcutType = userShortcutType; void setType(int type) { this.mType = type; } String flattenToString() { final StringJoiner joiner = new StringJoiner(String.valueOf(COMPONENT_NAME_SEPARATOR)); joiner.add(mComponentName); joiner.add(String.valueOf(mUserShortcutType)); joiner.add(String.valueOf(mType)); return joiner.toString(); } } Loading @@ -459,7 +459,6 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut); mHardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox); updateAlertDialogCheckState(); updateAlertDialogEnableState(); } private void updateAlertDialogCheckState() { Loading @@ -467,36 +466,28 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference updateCheckStatus(mHardwareTypeCheckBox, UserShortcutType.HARDWARE); } private void updateAlertDialogEnableState() { if (!mSoftwareTypeCheckBox.isChecked()) { mHardwareTypeCheckBox.setEnabled(false); } else if (!mHardwareTypeCheckBox.isChecked()) { mSoftwareTypeCheckBox.setEnabled(false); } else { mSoftwareTypeCheckBox.setEnabled(true); mHardwareTypeCheckBox.setEnabled(true); } } private void updateCheckStatus(CheckBox checkBox, @UserShortcutType int type) { checkBox.setChecked((mUserShortcutTypeCache & type) == type); checkBox.setOnClickListener(v -> { updateUserShortcutType(/* saveChanges= */ false); updateAlertDialogEnableState(); }); } private void updateUserShortcutType(boolean saveChanges) { mUserShortcutTypeCache = UserShortcutType.DEFAULT; mUserShortcutTypeCache = UserShortcutType.EMPTY; if (mSoftwareTypeCheckBox.isChecked()) { mUserShortcutTypeCache |= UserShortcutType.SOFTWARE; } if (mHardwareTypeCheckBox.isChecked()) { mUserShortcutTypeCache |= UserShortcutType.HARDWARE; } if (saveChanges) { final boolean isChanged = (mUserShortcutTypeCache != UserShortcutType.EMPTY); if (isChanged) { setUserShortcutType(getPrefContext(), mUserShortcutTypeCache); } mUserShortcutType = mUserShortcutTypeCache; setUserShortcutType(getPrefContext(), mUserShortcutType); } } Loading Loading @@ -573,7 +564,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference final String str = (String) filtered.toArray()[0]; final AccessibilityUserShortcutType shortcut = new AccessibilityUserShortcutType(str); return shortcut.getUserShortcutType(); return shortcut.getType(); } private void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) { Loading @@ -582,13 +573,11 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference } updateUserShortcutType(/* saveChanges= */ true); if (mShortcutPreference.isChecked()) { AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), mUserShortcutType, mComponentName); AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), ~mUserShortcutType, mComponentName); } mShortcutPreference.setChecked(true); mShortcutPreference.setChecked(mUserShortcutType != UserShortcutType.EMPTY); mShortcutPreference.setSummary( getShortcutTypeSummary(getPrefContext())); } Loading @@ -601,7 +590,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference // Get the user shortcut type from settings provider. mUserShortcutType = AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(), mComponentName); if (mUserShortcutType != UserShortcutType.DEFAULT) { if (mUserShortcutType != UserShortcutType.EMPTY) { setUserShortcutType(getPrefContext(), mUserShortcutType); } else { // Get the user shortcut type from shared_prefs if cannot get from settings provider. Loading @@ -613,7 +602,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference // Restore the user shortcut type. if (savedInstanceState != null && savedInstanceState.containsKey(EXTRA_SHORTCUT_TYPE)) { mUserShortcutTypeCache = savedInstanceState.getInt(EXTRA_SHORTCUT_TYPE, UserShortcutType.DEFAULT); UserShortcutType.EMPTY); } // Initial the shortcut preference. Loading
src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +15 −29 Original line number Diff line number Diff line Loading @@ -70,9 +70,9 @@ public class ToggleScreenMagnificationPreferenceFragment extends private static final String EXTRA_SHORTCUT_TYPE = "shortcut_type"; private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference"; private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener; private int mUserShortcutType = UserShortcutType.DEFAULT; private int mUserShortcutType = UserShortcutType.EMPTY; // Used to restore the edit dialog status. private int mUserShortcutTypeCache = UserShortcutType.DEFAULT; private int mUserShortcutTypeCache = UserShortcutType.EMPTY; private CheckBox mSoftwareTypeCheckBox; private CheckBox mHardwareTypeCheckBox; private CheckBox mTripleTapTypeCheckBox; Loading Loading @@ -255,7 +255,6 @@ public class ToggleScreenMagnificationPreferenceFragment extends mTripleTapTypeCheckBox = dialogTripleTapView.findViewById(R.id.checkbox); final View advancedView = dialog.findViewById(R.id.advanced_shortcut); updateAlertDialogCheckState(); updateAlertDialogEnableState(); // Window magnification mode doesn't support advancedView. if (isWindowMagnification(getPrefContext())) { Loading @@ -275,30 +274,15 @@ public class ToggleScreenMagnificationPreferenceFragment extends updateCheckStatus(mTripleTapTypeCheckBox, UserShortcutType.TRIPLETAP); } private void updateAlertDialogEnableState() { if (!mSoftwareTypeCheckBox.isChecked() && !mTripleTapTypeCheckBox.isChecked()) { mHardwareTypeCheckBox.setEnabled(false); } else if (!mHardwareTypeCheckBox.isChecked() && !mTripleTapTypeCheckBox.isChecked()) { mSoftwareTypeCheckBox.setEnabled(false); } else if (!mSoftwareTypeCheckBox.isChecked() && !mHardwareTypeCheckBox.isChecked()) { mTripleTapTypeCheckBox.setEnabled(false); } else { mSoftwareTypeCheckBox.setEnabled(true); mHardwareTypeCheckBox.setEnabled(true); mTripleTapTypeCheckBox.setEnabled(true); } } private void updateCheckStatus(CheckBox checkBox, @UserShortcutType int type) { checkBox.setChecked((mUserShortcutTypeCache & type) == type); checkBox.setOnClickListener(v -> { updateUserShortcutType(/* saveChanges= */ false); updateAlertDialogEnableState(); }); } private void updateUserShortcutType(boolean saveChanges) { mUserShortcutTypeCache = UserShortcutType.DEFAULT; mUserShortcutTypeCache = UserShortcutType.EMPTY; if (mSoftwareTypeCheckBox.isChecked()) { mUserShortcutTypeCache |= UserShortcutType.SOFTWARE; } Loading @@ -308,9 +292,13 @@ public class ToggleScreenMagnificationPreferenceFragment extends if (mTripleTapTypeCheckBox.isChecked()) { mUserShortcutTypeCache |= UserShortcutType.TRIPLETAP; } if (saveChanges) { final boolean isChanged = (mUserShortcutTypeCache != UserShortcutType.EMPTY); if (isChanged) { setUserShortcutType(getPrefContext(), mUserShortcutTypeCache); } mUserShortcutType = mUserShortcutTypeCache; setUserShortcutType(getPrefContext(), mUserShortcutType); } } Loading @@ -336,7 +324,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends return context.getText(R.string.switch_off_text); } final int shortcutType = getUserShortcutType(context, UserShortcutType.DEFAULT); final int shortcutType = getUserShortcutType(context, UserShortcutType.EMPTY); int resId = R.string.accessibility_shortcut_edit_summary_software; if (AccessibilityUtil.isGestureNavigateEnabled(context)) { resId = AccessibilityUtil.isTouchExploreEnabled(context) Loading Loading @@ -381,16 +369,14 @@ public class ToggleScreenMagnificationPreferenceFragment extends final String str = (String) filtered.toArray()[0]; final AccessibilityUserShortcutType shortcut = new AccessibilityUserShortcutType(str); return shortcut.getUserShortcutType(); return shortcut.getType(); } private void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) { updateUserShortcutType(/* saveChanges= */ true); if (mShortcutPreference.isChecked()) { optInAllMagnificationValuesToSettings(getPrefContext(), mUserShortcutType); optOutAllMagnificationValuesFromSettings(getPrefContext(), ~mUserShortcutType); } mShortcutPreference.setChecked(true); mShortcutPreference.setChecked(mUserShortcutType != UserShortcutType.EMPTY); mShortcutPreference.setSummary( getShortcutTypeSummary(getPrefContext())); } Loading Loading @@ -467,7 +453,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends private void updateShortcutPreferenceData() { // Get the user shortcut type from settings provider. mUserShortcutType = getUserShortcutTypeFromSettings(getPrefContext()); if (mUserShortcutType != UserShortcutType.DEFAULT) { if (mUserShortcutType != UserShortcutType.EMPTY) { setUserShortcutType(getPrefContext(), mUserShortcutType); } else { // Get the user shortcut type from shared_prefs if cannot get from settings provider. Loading Loading @@ -626,7 +612,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends } private static int getUserShortcutTypeFromSettings(Context context) { int shortcutTypes = UserShortcutType.DEFAULT; int shortcutTypes = UserShortcutType.EMPTY; if (hasMagnificationValuesInSettings(context, UserShortcutType.SOFTWARE)) { shortcutTypes |= UserShortcutType.SOFTWARE; } Loading