Add "Manage backup data" item to "Backup & Reset" settings.

This patch uses new IBackupManager API. Item's label is taken from
getDataManagementLabel and Item's action is taken from getDataManagementIntent.
If getDataManagementIntent is null (or backup service is unresponsive)
the item is not displayed.

Change-Id: I19cbf7fa625fccff751f923aa41b7d64ccb6c1d3
This commit is contained in:
Vladislav Kuzkokov
2016-01-25 17:51:55 +01:00
parent a16852480f
commit ddb953fb73
2 changed files with 23 additions and 0 deletions

View File

@@ -33,6 +33,11 @@
<intent android:action="dummy" />
</PreferenceScreen>
<PreferenceScreen
android:key="data_management"
android:persistent="false">
</PreferenceScreen>
<SwitchPreference
android:key="auto_restore"
android:title="@string/auto_restore_title"

View File

@@ -56,6 +56,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements Index
private static final String BACKUP_DATA = "backup_data";
private static final String AUTO_RESTORE = "auto_restore";
private static final String CONFIGURE_ACCOUNT = "configure_account";
private static final String DATA_MANAGEMENT = "data_management";
private static final String BACKUP_INACTIVE = "backup_inactive";
private static final String NETWORK_RESET = "network_reset";
private static final String FACTORY_RESET = "factory_reset";
@@ -64,6 +65,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements Index
private PreferenceScreen mBackup;
private SwitchPreference mAutoRestore;
private PreferenceScreen mConfigure;
private PreferenceScreen mManageData;
private boolean mEnabled;
@Override
@@ -92,6 +94,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements Index
mAutoRestore.setOnPreferenceChangeListener(preferenceChangeListener);
mConfigure = (PreferenceScreen) screen.findPreference(CONFIGURE_ACCOUNT);
mManageData = (PreferenceScreen) screen.findPreference(DATA_MANAGEMENT);
Set<String> keysToRemove = new HashSet<>();
getNonVisibleKeys(getActivity(), keysToRemove);
@@ -146,11 +149,15 @@ public class PrivacySettings extends SettingsPreferenceFragment implements Index
boolean backupEnabled = false;
Intent configIntent = null;
String configSummary = null;
Intent manageIntent = null;
String manageLabel = null;
try {
backupEnabled = mBackupManager.isBackupEnabled();
String transport = mBackupManager.getCurrentTransport();
configIntent = mBackupManager.getConfigurationIntent(transport);
configSummary = mBackupManager.getDestinationString(transport);
manageIntent = mBackupManager.getDataManagementIntent(transport);
manageLabel = mBackupManager.getDataManagementLabel(transport);
mBackup.setSummary(backupEnabled
? R.string.accessibility_feature_state_on
@@ -169,6 +176,17 @@ public class PrivacySettings extends SettingsPreferenceFragment implements Index
mConfigure.setIntent(configIntent);
setConfigureSummary(configSummary);
final boolean manageEnabled = (manageIntent != null) && backupEnabled;
if (manageEnabled) {
mManageData.setIntent(manageIntent);
if (manageLabel != null) {
mManageData.setTitle(manageLabel);
}
} else {
// Hide the item if data management intent is not supported by transport.
getPreferenceScreen().removePreference(mManageData);
}
RestrictedPreference networkResetPref = (RestrictedPreference) findPreference(
NETWORK_RESET);
if (networkResetPref != null) {