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:
@@ -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();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user