diff options
author | Christopher Tate <ctate@google.com> | 2010-12-08 18:46:38 -0800 |
---|---|---|
committer | Christopher Tate <ctate@google.com> | 2010-12-09 12:58:34 -0800 |
commit | df6a7e55ccffd4a8b17780ee07b9f11988b98aaa (patch) | |
tree | 5314e513c98877493a2d032bc99347cf161fd7a9 /src/com | |
parent | 1c7e49ba670ad70822d34234e3677fef53e94569 (diff) | |
download | packages_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')
-rw-r--r-- | src/com/android/settings/PrivacySettings.java | 36 |
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); |