summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/PrivacySettings.java
diff options
context:
space:
mode:
authorarete <arete@google.com>2014-08-12 16:33:52 -0700
committerDi Wu <arete@google.com>2014-08-14 19:57:50 +0000
commitce543836cea5887484026837f0a4181dca04a733 (patch)
tree0ef97be6a206122e95b2704ab0a714ed6e860e6d /src/com/android/settings/PrivacySettings.java
parentd83b3c2a39e4716b4a4276b8b8ce0db2b9a62b9e (diff)
downloadpackages_apps_Settings-ce543836cea5887484026837f0a4181dca04a733.zip
packages_apps_Settings-ce543836cea5887484026837f0a4181dca04a733.tar.gz
packages_apps_Settings-ce543836cea5887484026837f0a4181dca04a733.tar.bz2
Change checkboxes to switches in "Settings->Backup&Reset"
Change-Id: I92b5d0051b717c66bc456a0864c3068b13112dd3 Bug: 16982604
Diffstat (limited to 'src/com/android/settings/PrivacySettings.java')
-rw-r--r--src/com/android/settings/PrivacySettings.java75
1 files changed, 46 insertions, 29 deletions
diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java
index aac7638..95a81d1 100644
--- a/src/com/android/settings/PrivacySettings.java
+++ b/src/com/android/settings/PrivacySettings.java
@@ -27,9 +27,10 @@ import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserManager;
-import android.preference.CheckBoxPreference;
import android.preference.Preference;
+import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceScreen;
+import android.preference.SwitchPreference;
import android.provider.Settings;
/**
@@ -46,8 +47,8 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
private static final String CONFIGURE_ACCOUNT = "configure_account";
private static final String PERSONAL_DATA_CATEGORY = "personal_data_category";
private IBackupManager mBackupManager;
- private CheckBoxPreference mBackup;
- private CheckBoxPreference mAutoRestore;
+ private SwitchPreference mBackup;
+ private SwitchPreference mAutoRestore;
private Dialog mConfirmDialog;
private PreferenceScreen mConfigure;
@@ -63,8 +64,12 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
mBackupManager = IBackupManager.Stub.asInterface(
ServiceManager.getService(Context.BACKUP_SERVICE));
- mBackup = (CheckBoxPreference) screen.findPreference(BACKUP_DATA);
- mAutoRestore = (CheckBoxPreference) screen.findPreference(AUTO_RESTORE);
+ mBackup = (SwitchPreference) screen.findPreference(BACKUP_DATA);
+ mBackup.setOnPreferenceChangeListener(preferenceChangeListener);
+
+ mAutoRestore = (SwitchPreference) screen.findPreference(AUTO_RESTORE);
+ mAutoRestore.setOnPreferenceChangeListener(preferenceChangeListener);
+
mConfigure = (PreferenceScreen) screen.findPreference(CONFIGURE_ACCOUNT);
if (UserManager.get(getActivity()).hasUserRestriction(
@@ -98,29 +103,34 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
super.onStop();
}
- @Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
- Preference preference) {
- if (preference == mBackup) {
- if (!mBackup.isChecked()) {
- showEraseBackupDialog();
- } else {
- setBackupEnabled(true);
+ private OnPreferenceChangeListener preferenceChangeListener = new OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (!(preference instanceof SwitchPreference)) {
+ return true;
}
- } else if (preference == mAutoRestore) {
- boolean curState = mAutoRestore.isChecked();
- try {
- mBackupManager.setAutoRestore(curState);
- } catch (RemoteException e) {
- mAutoRestore.setChecked(!curState);
+ boolean nextValue = (Boolean) newValue;
+ boolean result = false;
+ if (preference == mBackup) {
+ if (nextValue == false) {
+ showEraseBackupDialog();
+ } else {
+ setBackupEnabled(true);
+ }
+ result = true;
+ } else if (preference == mAutoRestore) {
+ try {
+ mBackupManager.setAutoRestore(nextValue);
+ result = true;
+ } catch (RemoteException e) {
+ mAutoRestore.setChecked(!nextValue);
+ }
}
+ return result;
}
- return super.onPreferenceTreeClick(preferenceScreen, preference);
- }
+ };
private void showEraseBackupDialog() {
- mBackup.setChecked(true);
-
mDialogType = DIALOG_ERASE_BACKUP;
CharSequence msg = getResources().getText(R.string.backup_erase_dialog_message);
// TODO: DialogFragment?
@@ -159,7 +169,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
mConfigure.setEnabled(configureEnabled);
mConfigure.setIntent(configIntent);
setConfigureSummary(configSummary);
-}
+ }
private void setConfigureSummary(String summary) {
if (summary != null) {
@@ -179,13 +189,20 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
}
}
+ @Override
public void onClick(DialogInterface dialog, int which) {
- if (which == DialogInterface.BUTTON_POSITIVE) {
- //updateProviders();
- if (mDialogType == DIALOG_ERASE_BACKUP) {
+ // Dialog is triggered before Switch status change, that means marking the Switch to
+ // true in showEraseBackupDialog() method will be override by following status change.
+ // So we do manual switching here due to users' response.
+ if (mDialogType == DIALOG_ERASE_BACKUP) {
+ // Accept turning off backup
+ if (which == DialogInterface.BUTTON_POSITIVE) {
setBackupEnabled(false);
- updateConfigureSummary();
+ } else if (which == DialogInterface.BUTTON_NEGATIVE) {
+ // Reject turning off backup
+ setBackupEnabled(true);
}
+ updateConfigureSummary();
}
mDialogType = 0;
}
@@ -214,4 +231,4 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
protected int getHelpResource() {
return R.string.help_url_backup_reset;
}
-}
+} \ No newline at end of file