summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/PrivacySettings.java
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2010-12-08 18:46:38 -0800
committerChristopher Tate <ctate@google.com>2010-12-09 12:58:34 -0800
commitdf6a7e55ccffd4a8b17780ee07b9f11988b98aaa (patch)
tree5314e513c98877493a2d032bc99347cf161fd7a9 /src/com/android/settings/PrivacySettings.java
parent1c7e49ba670ad70822d34234e3677fef53e94569 (diff)
downloadpackages_apps_Settings-df6a7e55ccffd4a8b17780ee07b9f11988b98aaa.zip
packages_apps_Settings-df6a7e55ccffd4a8b17780ee07b9f11988b98aaa.tar.gz
packages_apps_Settings-df6a7e55ccffd4a8b17780ee07b9f11988b98aaa.tar.bz2
Add backup configuration action to Privacy settings
Settings now queries the backup manager for a configuration Intent and text descriptive of the state of the currently-active transport. These are used by a new Intent PreferenceScreen within the backup section of the Privacy settings UI. When touched, the Configure item launches the Intent supplied by the transport; when no such Intent is available, the item is disabled. The summary text describing the current backup state is also supplied by the transport. Bug: 2753632 Change-Id: I3d8fb3d4b08a2b6fa8d3ad8f9e02a66430948423
Diffstat (limited to 'src/com/android/settings/PrivacySettings.java')
-rw-r--r--src/com/android/settings/PrivacySettings.java36
1 files changed, 30 insertions, 6 deletions
diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java
index 3f62f19..4132507 100644
--- a/src/com/android/settings/PrivacySettings.java
+++ b/src/com/android/settings/PrivacySettings.java
@@ -22,6 +22,7 @@ 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.RemoteException;
import android.os.ServiceManager;
@@ -41,9 +42,12 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
private static final String BACKUP_CATEGORY = "backup_category";
private static final String BACKUP_DATA = "backup_data";
private static final String AUTO_RESTORE = "auto_restore";
+ private static final String CONFIGURE_TRANSPORT = "configure_transport";
+ private IBackupManager mBackupManager;
private CheckBoxPreference mBackup;
private CheckBoxPreference mAutoRestore;
private Dialog mConfirmDialog;
+ private PreferenceScreen mConfigure;
private static final int DIALOG_ERASE_BACKUP = 2;
private int mDialogType;
@@ -54,8 +58,12 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
addPreferencesFromResource(R.xml.privacy_settings);
final PreferenceScreen screen = getPreferenceScreen();
+ mBackupManager = IBackupManager.Stub.asInterface(
+ ServiceManager.getService(Context.BACKUP_SERVICE));
+
mBackup = (CheckBoxPreference) screen.findPreference(BACKUP_DATA);
mAutoRestore = (CheckBoxPreference) screen.findPreference(AUTO_RESTORE);
+ mConfigure = (PreferenceScreen) screen.findPreference(CONFIGURE_TRANSPORT);
// Vendor specific
if (getActivity().getPackageManager().
@@ -121,13 +129,31 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
private void updateToggles() {
ContentResolver res = getContentResolver();
- final boolean backupEnabled = Settings.Secure.getInt(res,
- Settings.Secure.BACKUP_ENABLED, 0) == 1;
+ boolean backupEnabled = false;
+ Intent configIntent = null;
+ String configSummary = null;
+ try {
+ backupEnabled = mBackupManager.isBackupEnabled();
+ String transport = mBackupManager.getCurrentTransport();
+ configIntent = mBackupManager.getConfigurationIntent(transport);
+ configSummary = mBackupManager.getDestinationString(transport);
+ } 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);
mAutoRestore.setEnabled(backupEnabled);
+
+ mConfigure.setEnabled(configIntent != null);
+ mConfigure.setIntent(configIntent);
+ if (configSummary != null) {
+ mConfigure.setSummary(configSummary);
+ } else {
+ mConfigure.setSummary(R.string.backup_configure_transport_default_summary);
+ }
}
public void onClick(DialogInterface dialog, int which) {
@@ -151,11 +177,9 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
* @param enable whether to enable backup
*/
private void setBackupEnabled(boolean enable) {
- IBackupManager bm = IBackupManager.Stub.asInterface(
- ServiceManager.getService(Context.BACKUP_SERVICE));
- if (bm != null) {
+ if (mBackupManager != null) {
try {
- bm.setBackupEnabled(enable);
+ mBackupManager.setBackupEnabled(enable);
} catch (RemoteException e) {
mBackup.setChecked(!enable);
mAutoRestore.setEnabled(!enable);