DO NOT MERGE show correct backup status

show correct backup status after dismissing are-you-sure dialog
for turnning off backup and restore in settings

Change-Id: I31c4106cab58f84b77568356188e5ce49ca3430b
(cherry picked from commit f833588dae)
This commit is contained in:
Sean Francis-Lyon
2015-05-20 18:30:00 -07:00
parent 51eec32afa
commit 8452a62216

View File

@@ -26,7 +26,7 @@ import com.android.settings.widget.ToggleSwitch;
* 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 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
private Dialog mConfirmDialog;
private boolean mWaitingForConfirmationDialog = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -105,9 +107,9 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
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 class ToggleBackupSettingFragment extends SettingsPreferenceFragment
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 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
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();
}