From ddb953fb730fd0c0645561cb237cba0199a89534 Mon Sep 17 00:00:00 2001 From: Vladislav Kuzkokov Date: Mon, 25 Jan 2016 17:51:55 +0100 Subject: [PATCH] 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 --- res/xml/privacy_settings.xml | 5 +++++ src/com/android/settings/PrivacySettings.java | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/res/xml/privacy_settings.xml b/res/xml/privacy_settings.xml index f67c837fd50..5e8d4a3d35b 100644 --- a/res/xml/privacy_settings.xml +++ b/res/xml/privacy_settings.xml @@ -33,6 +33,11 @@ + + + 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) {