Update Backup/reset UI
BUG: 20489775 Change-Id: I2c97fdf240ddd3e9f0a518478d5da91b91abe394
This commit is contained in:
@@ -16,12 +16,9 @@
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.app.backup.IBackupManager;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Process;
|
||||
@@ -49,8 +46,7 @@ import java.util.Set;
|
||||
/**
|
||||
* Gesture lock pattern settings.
|
||||
*/
|
||||
public class PrivacySettings extends SettingsPreferenceFragment implements
|
||||
DialogInterface.OnClickListener, Indexable {
|
||||
public class PrivacySettings extends SettingsPreferenceFragment implements Indexable {
|
||||
|
||||
// Vendor specific
|
||||
private static final String GSETTINGS_PROVIDER = "com.google.settings";
|
||||
@@ -61,15 +57,11 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
||||
private static final String FACTORY_RESET = "factory_reset";
|
||||
private static final String TAG = "PrivacySettings";
|
||||
private IBackupManager mBackupManager;
|
||||
private SwitchPreference mBackup;
|
||||
private PreferenceScreen mBackup;
|
||||
private SwitchPreference mAutoRestore;
|
||||
private Dialog mConfirmDialog;
|
||||
private PreferenceScreen mConfigure;
|
||||
private boolean mEnabled;
|
||||
|
||||
private static final int DIALOG_ERASE_BACKUP = 2;
|
||||
private int mDialogType;
|
||||
|
||||
@Override
|
||||
protected int getMetricsCategory() {
|
||||
return MetricsLogger.PRIVACY;
|
||||
@@ -89,8 +81,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
||||
mBackupManager = IBackupManager.Stub.asInterface(
|
||||
ServiceManager.getService(Context.BACKUP_SERVICE));
|
||||
|
||||
mBackup = (SwitchPreference) screen.findPreference(BACKUP_DATA);
|
||||
mBackup.setOnPreferenceChangeListener(preferenceChangeListener);
|
||||
mBackup = (PreferenceScreen) screen.findPreference(BACKUP_DATA);
|
||||
|
||||
mAutoRestore = (SwitchPreference) screen.findPreference(AUTO_RESTORE);
|
||||
mAutoRestore.setOnPreferenceChangeListener(preferenceChangeListener);
|
||||
@@ -120,16 +111,6 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
if (mConfirmDialog != null && mConfirmDialog.isShowing()) {
|
||||
mConfirmDialog.dismiss();
|
||||
}
|
||||
mConfirmDialog = null;
|
||||
mDialogType = 0;
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
private OnPreferenceChangeListener preferenceChangeListener = new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
@@ -138,16 +119,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
||||
}
|
||||
boolean nextValue = (Boolean) newValue;
|
||||
boolean result = false;
|
||||
if (preference == mBackup) {
|
||||
if (nextValue == false) {
|
||||
// Don't change Switch status until user makes choice in dialog
|
||||
// so return false here.
|
||||
showEraseBackupDialog();
|
||||
} else {
|
||||
setBackupEnabled(true);
|
||||
result = true;
|
||||
}
|
||||
} else if (preference == mAutoRestore) {
|
||||
if (preference == mAutoRestore) {
|
||||
try {
|
||||
mBackupManager.setAutoRestore(nextValue);
|
||||
result = true;
|
||||
@@ -159,19 +131,9 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
||||
}
|
||||
};
|
||||
|
||||
private void showEraseBackupDialog() {
|
||||
mDialogType = DIALOG_ERASE_BACKUP;
|
||||
CharSequence msg = getResources().getText(R.string.backup_erase_dialog_message);
|
||||
// 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)
|
||||
.show();
|
||||
}
|
||||
|
||||
/*
|
||||
* Creates toggles for each available location provider
|
||||
* Creates toggles for each backup/reset preference.
|
||||
*/
|
||||
private void updateToggles() {
|
||||
ContentResolver res = getContentResolver();
|
||||
@@ -184,11 +146,14 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
||||
String transport = mBackupManager.getCurrentTransport();
|
||||
configIntent = mBackupManager.getConfigurationIntent(transport);
|
||||
configSummary = mBackupManager.getDestinationString(transport);
|
||||
|
||||
mBackup.setSummary(backupEnabled
|
||||
? R.string.accessibility_feature_state_on
|
||||
: R.string.accessibility_feature_state_off);
|
||||
} catch (RemoteException e) {
|
||||
// leave it 'false' and disable the UI; there's no backup manager
|
||||
mBackup.setEnabled(false);
|
||||
}
|
||||
mBackup.setChecked(backupEnabled);
|
||||
|
||||
mAutoRestore.setChecked(Settings.Secure.getInt(res,
|
||||
Settings.Secure.BACKUP_AUTO_RESTORE, 1) == 1);
|
||||
@@ -208,54 +173,6 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
||||
}
|
||||
}
|
||||
|
||||
private void updateConfigureSummary() {
|
||||
try {
|
||||
String transport = mBackupManager.getCurrentTransport();
|
||||
String summary = mBackupManager.getDestinationString(transport);
|
||||
setConfigureSummary(summary);
|
||||
} catch (RemoteException e) {
|
||||
// Not much we can do here
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
// 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);
|
||||
} else if (which == DialogInterface.BUTTON_NEGATIVE) {
|
||||
// Reject turning off backup
|
||||
setBackupEnabled(true);
|
||||
}
|
||||
updateConfigureSummary();
|
||||
}
|
||||
mDialogType = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Informs the BackupManager of a change in backup state - if backup is disabled,
|
||||
* the data on the server will be erased.
|
||||
* @param enable whether to enable backup
|
||||
*/
|
||||
private void setBackupEnabled(boolean enable) {
|
||||
if (mBackupManager != null) {
|
||||
try {
|
||||
mBackupManager.setBackupEnabled(enable);
|
||||
} catch (RemoteException e) {
|
||||
mBackup.setChecked(!enable);
|
||||
mAutoRestore.setEnabled(!enable);
|
||||
return;
|
||||
}
|
||||
}
|
||||
mBackup.setChecked(enable);
|
||||
mAutoRestore.setEnabled(enable);
|
||||
mConfigure.setEnabled(enable);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getHelpResource() {
|
||||
return R.string.help_url_backup_reset;
|
||||
|
Reference in New Issue
Block a user