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

Commit eae4c1f6 authored by Michael Bestas's avatar Michael Bestas
Browse files

Backup: Don't hardcode ignored backup transports

* Allow extending the ignored backup transport list
  by moving it to an overlay
* Set config_ignored_backup_transports to override

Change-Id: If4ccad0acac708cac272f791392f9ac827a7491f
parent 1733186f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -24,4 +24,8 @@
         3 = right side
    -->
    <integer name="config_fingerprintSensorLocation">0</integer>

    <string-array name="config_ignored_backup_transports" translatable="false">
        <item>com.android.localtransport/.LocalTransport</item>
    </string-array>
</resources>
+15 −1
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ import android.os.UserHandle;
import android.util.Log;
import androidx.annotation.Nullable;

import com.android.settings.R;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -38,12 +40,24 @@ class TransportHelper {
    private final IBackupManager mBackupManager = IBackupManager.Stub.asInterface(
        ServiceManager.getService(Context.BACKUP_SERVICE));

    private Context mContext;

    TransportHelper(Context context) {
        mContext = context;
    }

    List<Transport> getTransports() {
        String[] backupTransports = getBackupTransports();
        if (backupTransports == null) return Collections.emptyList();
        ArrayList<Transport> transports = new ArrayList<>(backupTransports.length);
        String[] ignoredTransports = mContext.getResources().getStringArray(
                R.array.config_ignored_backup_transports);
        for (String name : getBackupTransports()) {
            if (name.endsWith("LocalTransport")) continue; // don't list debug-only LocalTransport
            boolean ignored = false;
            for (String ignoredTransport : ignoredTransports) {
                if (name.equals(ignoredTransport)) ignored = true;
            }
            if (ignored) continue;
            CharSequence label = getLabelFromBackupTransport(name);
            if (label == null || label.length() == 0) label = name;
            Transport transport = new Transport(name, label, getSummaryFromBackupTransport(name));
+2 −1
Original line number Diff line number Diff line
@@ -28,11 +28,12 @@ public class TransportPreferenceController extends AbstractPreferenceController
    }

    private final OnTransportChangedListener listener;
    private final TransportHelper transportHelper = new TransportHelper();
    private final TransportHelper transportHelper;

    public TransportPreferenceController(Context context, OnTransportChangedListener listener) {
        super(context);
        this.listener = listener;
        transportHelper = new TransportHelper(context);
    }

    @Override