Fix bug #2987804 (Provide a better UI for selecting the Backup account)

- make the "Backup account" toggle follow the state of "Back up my data"
- reset Backup account in preferences if needed

Change-Id: Ifdffb9d268a062f6f5ec617bca82699cc46e2b3a
This commit is contained in:
Fabrice Di Meglio
2011-01-09 19:56:51 -08:00
parent 7da8cae44b
commit 70bc797a92

View File

@@ -50,7 +50,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
private PreferenceScreen mConfigure;
private static final int DIALOG_ERASE_BACKUP = 2;
private int mDialogType;
private int mDialogType;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -73,6 +73,14 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
updateToggles();
}
@Override
public void onResume() {
super.onResume();
// Refresh UI
updateToggles();
}
@Override
public void onStop() {
if (mConfirmDialog != null && mConfirmDialog.isShowing()) {
@@ -105,7 +113,6 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
}
}
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
@@ -147,25 +154,36 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
Settings.Secure.BACKUP_AUTO_RESTORE, 1) == 1);
mAutoRestore.setEnabled(backupEnabled);
mConfigure.setEnabled(configIntent != null);
final boolean configureEnabled = (configIntent != null) && backupEnabled;
mConfigure.setEnabled(configureEnabled);
mConfigure.setIntent(configIntent);
if (configSummary != null) {
mConfigure.setSummary(configSummary);
setConfigureSummary(configSummary);
}
private void setConfigureSummary(String summary) {
if (summary != null) {
mConfigure.setSummary(summary);
} else {
mConfigure.setSummary(R.string.backup_configure_account_default_summary);
}
}
private void updateConfigureSummary() {
try {
String transport = mBackupManager.getCurrentTransport();
String summary = mBackupManager.getDestinationString(transport);
setConfigureSummary(summary);
} catch (RemoteException e) {
// Not much we can do here
}
}
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
//updateProviders();
if (mDialogType == DIALOG_ERASE_BACKUP) {
setBackupEnabled(false);
}
} else {
if (mDialogType == DIALOG_ERASE_BACKUP) {
mBackup.setChecked(true);
mAutoRestore.setEnabled(true);
updateConfigureSummary();
}
}
mDialogType = 0;
@@ -188,5 +206,6 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
}
mBackup.setChecked(enable);
mAutoRestore.setEnabled(enable);
mConfigure.setEnabled(enable);
}
}