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:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user