Allow the user to change the BackupTransport

Set the following config overlays to activate this feature:

* config_backup_settings_intent to settings://com.android.settings.backup.transport
* config_backup_settings_label to some user-facing label
  e.g. Change backup provider
* config_ignored_backup_transports to hide transports from the list

Co-authored-by: Michael Bestas <mkbestas@lineageos.org>
Co-authored-by: Michael W <baddaemon87@gmail.com>
Change-Id: I080d96e2c34045a0e61f3fa1b839f463550f2028
diff --git a/src/com/android/settings/backup/BackupSettingsPreferenceController.java b/src/com/android/settings/backup/BackupSettingsPreferenceController.java
index 4e0e3b4..3208ae4 100644
--- a/src/com/android/settings/backup/BackupSettingsPreferenceController.java
+++ b/src/com/android/settings/backup/BackupSettingsPreferenceController.java
@@ -30,24 +30,24 @@
         implements PreferenceControllerMixin {
     private static final String BACKUP_SETTINGS = "backup_settings";
     private static final  String MANUFACTURER_SETTINGS = "manufacturer_backup";
-    private Intent mBackupSettingsIntent;
-    private CharSequence mBackupSettingsTitle;
-    private String mBackupSettingsSummary;
+    private final BackupSettingsHelper settingsHelper;
     private Intent mManufacturerIntent;
     private String mManufacturerLabel;
 
     public BackupSettingsPreferenceController(Context context) {
         super(context);
-        BackupSettingsHelper settingsHelper = new BackupSettingsHelper(context);
-        mBackupSettingsIntent = settingsHelper.getIntentForBackupSettings();
-        mBackupSettingsTitle = settingsHelper.getLabelForBackupSettings();
-        mBackupSettingsSummary = settingsHelper.getSummaryForBackupSettings();
+        settingsHelper = new BackupSettingsHelper(context);
         mManufacturerIntent = settingsHelper.getIntentProvidedByManufacturer();
         mManufacturerLabel = settingsHelper.getLabelProvidedByManufacturer();
     }
 
     @Override
     public void displayPreference(PreferenceScreen screen) {
+        // we don't get these in the constructor, so we can get updates for them later
+        Intent mBackupSettingsIntent = settingsHelper.getIntentForBackupSettings();
+        CharSequence mBackupSettingsTitle = settingsHelper.getLabelForBackupSettings();
+        String mBackupSettingsSummary = settingsHelper.getSummaryForBackupSettings();
+
         Preference backupSettings = screen.findPreference(BACKUP_SETTINGS);
         Preference manufacturerSettings = screen.findPreference(MANUFACTURER_SETTINGS);
         backupSettings.setIntent(mBackupSettingsIntent);