Keep SwitchPreference status until user makes choice in confirmation dialog.

Bug: 17062433
Change-Id: I2c52be1921e1eefa3b2b2868cc526675c9215a41
This commit is contained in:
arete
2014-08-15 12:04:48 -07:00
committed by Di Wu
parent e3bced2cda
commit 300e920f66
2 changed files with 7 additions and 2 deletions

View File

@@ -113,11 +113,13 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
boolean result = false; boolean result = false;
if (preference == mBackup) { if (preference == mBackup) {
if (nextValue == false) { if (nextValue == false) {
// Don't change Switch status until user makes choice in dialog
// so return false here.
showEraseBackupDialog(); showEraseBackupDialog();
} else { } else {
setBackupEnabled(true); setBackupEnabled(true);
result = true;
} }
result = true;
} else if (preference == mAutoRestore) { } else if (preference == mAutoRestore) {
try { try {
mBackupManager.setAutoRestore(nextValue); mBackupManager.setAutoRestore(nextValue);

View File

@@ -592,6 +592,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
@Override @Override
public boolean onPreferenceChange(Preference preference, Object value) { public boolean onPreferenceChange(Preference preference, Object value) {
boolean result = true;
final String key = preference.getKey(); final String key = preference.getKey();
final LockPatternUtils lockPatternUtils = mChooseLockSettingsHelper.utils(); final LockPatternUtils lockPatternUtils = mChooseLockSettingsHelper.utils();
if (KEY_LOCK_AFTER_TIMEOUT.equals(key)) { if (KEY_LOCK_AFTER_TIMEOUT.equals(key)) {
@@ -636,11 +637,13 @@ public class SecuritySettings extends SettingsPreferenceFragment
if ((Boolean) value) { if ((Boolean) value) {
mToggleAppInstallation.setChecked(false); mToggleAppInstallation.setChecked(false);
warnAppInstallation(); warnAppInstallation();
// Don't change Switch status until user makes choice in dialog, so return false.
result = false;
} else { } else {
setNonMarketAppsAllowed(false); setNonMarketAppsAllowed(false);
} }
} }
return true; return result;
} }
@Override @Override