Merge "Show empty options in shortcut chooser dialog if shortPreference is unchecked." into rvc-dev
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index c55c9a2..9bf4cf8 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -83,6 +83,8 @@
     protected CharSequence mPackageName;
     protected Uri mImageUri;
     protected CharSequence mHtmlDescription;
+    // Used to restore the edit dialog status.
+    protected int mUserShortcutTypeCache = UserShortcutType.EMPTY;
     private static final String DRAWABLE_FOLDER = "drawable";
     protected static final String KEY_USE_SERVICE_PREFERENCE = "use_service";
     protected static final String KEY_GENERAL_CATEGORY = "general_categories";
@@ -91,8 +93,6 @@
     private static final String EXTRA_SHORTCUT_TYPE = "shortcut_type";
     private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
     private int mUserShortcutType = UserShortcutType.EMPTY;
-    // Used to restore the edit dialog status.
-    private int mUserShortcutTypeCache = UserShortcutType.EMPTY;
     private CheckBox mSoftwareTypeCheckBox;
     private CheckBox mHardwareTypeCheckBox;
 
@@ -473,8 +473,10 @@
     }
 
     private void updateAlertDialogCheckState() {
-        updateCheckStatus(mSoftwareTypeCheckBox, UserShortcutType.SOFTWARE);
-        updateCheckStatus(mHardwareTypeCheckBox, UserShortcutType.HARDWARE);
+        if (mUserShortcutTypeCache != UserShortcutType.EMPTY) {
+            updateCheckStatus(mSoftwareTypeCheckBox, UserShortcutType.SOFTWARE);
+            updateCheckStatus(mHardwareTypeCheckBox, UserShortcutType.HARDWARE);
+        }
     }
 
     private void updateCheckStatus(CheckBox checkBox, @UserShortcutType int type) {
@@ -658,7 +660,10 @@
 
     @Override
     public void onSettingsClicked(ShortcutPreference preference) {
-        mUserShortcutTypeCache = getUserShortcutType(getPrefContext(), UserShortcutType.SOFTWARE);
+        // Do not restore shortcut in shortcut chooser dialog when shortcutPreference is turned off.
+        mUserShortcutTypeCache = mShortcutPreference.isChecked()
+                ? getUserShortcutType(getPrefContext(), UserShortcutType.SOFTWARE)
+                : UserShortcutType.EMPTY;
     }
 
     private void createFooterPreference(CharSequence title) {
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index 5573746..a9667bb 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -71,8 +71,6 @@
     private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
     private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
     private int mUserShortcutType = UserShortcutType.EMPTY;
-    // Used to restore the edit dialog status.
-    private int mUserShortcutTypeCache = UserShortcutType.EMPTY;
     private CheckBox mSoftwareTypeCheckBox;
     private CheckBox mHardwareTypeCheckBox;
     private CheckBox mTripleTapTypeCheckBox;
@@ -283,9 +281,11 @@
     }
 
     private void updateAlertDialogCheckState() {
-        updateCheckStatus(mSoftwareTypeCheckBox, UserShortcutType.SOFTWARE);
-        updateCheckStatus(mHardwareTypeCheckBox, UserShortcutType.HARDWARE);
-        updateCheckStatus(mTripleTapTypeCheckBox, UserShortcutType.TRIPLETAP);
+        if (mUserShortcutTypeCache != UserShortcutType.EMPTY) {
+            updateCheckStatus(mSoftwareTypeCheckBox, UserShortcutType.SOFTWARE);
+            updateCheckStatus(mHardwareTypeCheckBox, UserShortcutType.HARDWARE);
+            updateCheckStatus(mTripleTapTypeCheckBox, UserShortcutType.TRIPLETAP);
+        }
     }
 
     private void updateCheckStatus(CheckBox checkBox, @UserShortcutType int type) {
@@ -457,7 +457,10 @@
 
     @Override
     public void onSettingsClicked(ShortcutPreference preference) {
-        mUserShortcutTypeCache = getUserShortcutType(getPrefContext(), UserShortcutType.SOFTWARE);
+        // Do not restore shortcut in shortcut chooser dialog when shortcutPreference is turned off.
+        mUserShortcutTypeCache = mShortcutPreference.isChecked()
+                ? getUserShortcutType(getPrefContext(), UserShortcutType.SOFTWARE)
+                : UserShortcutType.EMPTY;
         showDialog(DialogEnums.MAGNIFICATION_EDIT_SHORTCUT);
     }