Merge "DO NOT MERGE show correct backup status" into mnc-dev
diff --git a/src/com/android/settings/backup/ToggleBackupSettingFragment.java b/src/com/android/settings/backup/ToggleBackupSettingFragment.java
index e30266f..bc85bf3 100644
--- a/src/com/android/settings/backup/ToggleBackupSettingFragment.java
+++ b/src/com/android/settings/backup/ToggleBackupSettingFragment.java
@@ -26,7 +26,7 @@
* disable it.
*/
public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
- implements DialogInterface.OnClickListener {
+ implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener {
private static final String TAG = "ToggleBackupSettingFragment";
private static final String BACKUP_TOGGLE = "toggle_backup";
@@ -40,6 +40,8 @@
private Dialog mConfirmDialog;
+ private boolean mWaitingForConfirmationDialog = false;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -105,9 +107,9 @@
ToggleSwitch toggleSwitch, boolean checked) {
if (!checked) {
// Don't change Switch status until user makes choice in dialog
- // so return false here.
+ // so return true here.
showEraseBackupDialog();
- return false;
+ return true;
} else {
setBackupEnabled(true);
mSwitchBar.setCheckedInternal(true);
@@ -132,10 +134,21 @@
public void onClick(DialogInterface dialog, int which) {
// Accept turning off backup
if (which == DialogInterface.BUTTON_POSITIVE) {
+ mWaitingForConfirmationDialog = false;
setBackupEnabled(false);
mSwitchBar.setCheckedInternal(false);
} else if (which == DialogInterface.BUTTON_NEGATIVE) {
// Reject turning off backup
+ mWaitingForConfirmationDialog = false;
+ setBackupEnabled(true);
+ mSwitchBar.setCheckedInternal(true);
+ }
+ }
+
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ if (mWaitingForConfirmationDialog) {
+ // dismiss turning off backup
setBackupEnabled(true);
mSwitchBar.setCheckedInternal(true);
}
@@ -143,11 +156,15 @@
private void showEraseBackupDialog() {
CharSequence msg = getResources().getText(R.string.fullbackup_erase_dialog_message);
+
+ mWaitingForConfirmationDialog = true;
+
// TODO: DialogFragment?
mConfirmDialog = new AlertDialog.Builder(getActivity()).setMessage(msg)
.setTitle(R.string.backup_erase_dialog_title)
.setPositiveButton(android.R.string.ok, this)
.setNegativeButton(android.R.string.cancel, this)
+ .setOnDismissListener(this)
.show();
}