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.
|
* disable it.
|
||||||
*/
|
*/
|
||||||
public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
|
public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
|
||||||
implements DialogInterface.OnClickListener {
|
implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener {
|
||||||
private static final String TAG = "ToggleBackupSettingFragment";
|
private static final String TAG = "ToggleBackupSettingFragment";
|
||||||
|
|
||||||
private static final String BACKUP_TOGGLE = "toggle_backup";
|
private static final String BACKUP_TOGGLE = "toggle_backup";
|
||||||
@@ -40,6 +40,8 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
private Dialog mConfirmDialog;
|
private Dialog mConfirmDialog;
|
||||||
|
|
||||||
|
private boolean mWaitingForConfirmationDialog = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -105,9 +107,9 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
|
|||||||
ToggleSwitch toggleSwitch, boolean checked) {
|
ToggleSwitch toggleSwitch, boolean checked) {
|
||||||
if (!checked) {
|
if (!checked) {
|
||||||
// Don't change Switch status until user makes choice in dialog
|
// Don't change Switch status until user makes choice in dialog
|
||||||
// so return false here.
|
// so return true here.
|
||||||
showEraseBackupDialog();
|
showEraseBackupDialog();
|
||||||
return false;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
setBackupEnabled(true);
|
setBackupEnabled(true);
|
||||||
mSwitchBar.setCheckedInternal(true);
|
mSwitchBar.setCheckedInternal(true);
|
||||||
@@ -132,10 +134,21 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
|
|||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
// Accept turning off backup
|
// Accept turning off backup
|
||||||
if (which == DialogInterface.BUTTON_POSITIVE) {
|
if (which == DialogInterface.BUTTON_POSITIVE) {
|
||||||
|
mWaitingForConfirmationDialog = false;
|
||||||
setBackupEnabled(false);
|
setBackupEnabled(false);
|
||||||
mSwitchBar.setCheckedInternal(false);
|
mSwitchBar.setCheckedInternal(false);
|
||||||
} else if (which == DialogInterface.BUTTON_NEGATIVE) {
|
} else if (which == DialogInterface.BUTTON_NEGATIVE) {
|
||||||
// Reject turning off backup
|
// 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);
|
setBackupEnabled(true);
|
||||||
mSwitchBar.setCheckedInternal(true);
|
mSwitchBar.setCheckedInternal(true);
|
||||||
}
|
}
|
||||||
@@ -143,11 +156,15 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
private void showEraseBackupDialog() {
|
private void showEraseBackupDialog() {
|
||||||
CharSequence msg = getResources().getText(R.string.fullbackup_erase_dialog_message);
|
CharSequence msg = getResources().getText(R.string.fullbackup_erase_dialog_message);
|
||||||
|
|
||||||
|
mWaitingForConfirmationDialog = true;
|
||||||
|
|
||||||
// TODO: DialogFragment?
|
// TODO: DialogFragment?
|
||||||
mConfirmDialog = new AlertDialog.Builder(getActivity()).setMessage(msg)
|
mConfirmDialog = new AlertDialog.Builder(getActivity()).setMessage(msg)
|
||||||
.setTitle(R.string.backup_erase_dialog_title)
|
.setTitle(R.string.backup_erase_dialog_title)
|
||||||
.setPositiveButton(android.R.string.ok, this)
|
.setPositiveButton(android.R.string.ok, this)
|
||||||
.setNegativeButton(android.R.string.cancel, this)
|
.setNegativeButton(android.R.string.cancel, this)
|
||||||
|
.setOnDismissListener(this)
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user