Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddb953fb authored by Vladislav Kuzkokov's avatar Vladislav Kuzkokov
Browse files

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
parent a1685248
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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"
+18 −0
Original line number Diff line number Diff line
@@ -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) {