Keep SwitchPreference status until user makes choice in confirmation dialog.
Bug: 17062433
Change-Id: I2c52be1921e1eefa3b2b2868cc526675c9215a41
diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java
index 95a81d1..1236c48 100644
--- a/src/com/android/settings/PrivacySettings.java
+++ b/src/com/android/settings/PrivacySettings.java
@@ -113,11 +113,13 @@
boolean result = false;
if (preference == mBackup) {
if (nextValue == false) {
+ // Don't change Switch status until user makes choice in dialog
+ // so return false here.
showEraseBackupDialog();
} else {
setBackupEnabled(true);
+ result = true;
}
- result = true;
} else if (preference == mAutoRestore) {
try {
mBackupManager.setAutoRestore(nextValue);
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index f2a0bbb..d3a290b 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -592,6 +592,7 @@
@Override
public boolean onPreferenceChange(Preference preference, Object value) {
+ boolean result = true;
final String key = preference.getKey();
final LockPatternUtils lockPatternUtils = mChooseLockSettingsHelper.utils();
if (KEY_LOCK_AFTER_TIMEOUT.equals(key)) {
@@ -636,11 +637,13 @@
if ((Boolean) value) {
mToggleAppInstallation.setChecked(false);
warnAppInstallation();
+ // Don't change Switch status until user makes choice in dialog, so return false.
+ result = false;
} else {
setNonMarketAppsAllowed(false);
}
}
- return true;
+ return result;
}
@Override