From b9a81bdd7553d4d10bdb8382506529298f63b2dd Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Thu, 17 Feb 2022 13:04:50 +0100 Subject: [PATCH] Always allow D2D transfers in backup agent --- .../java/com/beemdevelopment/aegis/AegisBackupAgent.java | 9 +++++++-- app/src/main/res/values/strings.xml | 7 ++++--- app/src/main/res/xml/preferences_backups.xml | 4 ++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/AegisBackupAgent.java b/app/src/main/java/com/beemdevelopment/aegis/AegisBackupAgent.java index deb8cc68..1a55396b 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/AegisBackupAgent.java +++ b/app/src/main/java/com/beemdevelopment/aegis/AegisBackupAgent.java @@ -18,7 +18,7 @@ import java.io.IOException; import java.io.InputStream; public class AegisBackupAgent extends BackupAgent { - private static final String TAG = BackupAgent.class.getSimpleName(); + private static final String TAG = AegisBackupAgent.class.getSimpleName(); private Preferences _prefs; @@ -34,7 +34,12 @@ public class AegisBackupAgent extends BackupAgent { Build.VERSION.SDK_INT >= Build.VERSION_CODES.P ? data.getTransportFlags() : -1, Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? data.getQuota() : -1)); - if (!_prefs.isAndroidBackupsEnabled()) { + boolean isD2D = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P + && (data.getTransportFlags() & FLAG_DEVICE_TO_DEVICE_TRANSFER) == FLAG_DEVICE_TO_DEVICE_TRANSFER; + + if (isD2D) { + Log.i(TAG, "onFullBackup(): allowing D2D transfer"); + } else if (!_prefs.isAndroidBackupsEnabled()) { Log.i(TAG, "onFullBackup() skipped: Android backups disabled in preferences"); return; } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1c30e727..a29f47e6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -33,7 +33,7 @@ Import & Export Import backups of Aegis or other authenticator apps. Create manual exports of your Aegis vault. Backups - Set up automatic backups to a location of your choosing or enable participation in Android\'s backup system. + Set up automatic backups to a location of your choosing or enable participation in Android\'s cloud backup system. Icon packs Manage and import icon packs Theme @@ -49,8 +49,9 @@ Manage the list of keys that can decrypt the vault Import from file Import tokens from a file - Participate in Android\'s backup system - Allow Android\'s backup system to include Aegis\' vault in its backups. This is only supported for encrypted vaults. + Android cloud backups + Allow Android\'s cloud backup system to include Aegis\' vault in its backups. This is only supported for encrypted vaults. + Device-to-device (D2D) backups are always allowed, regardless of the setting above Automatically back up the vault Automatically create backups of the vault on external storage when changes are made. This is only supported for encrypted vaults. Directory for backup files diff --git a/app/src/main/res/xml/preferences_backups.xml b/app/src/main/res/xml/preferences_backups.xml index c258e64d..3ec41ac3 100644 --- a/app/src/main/res/xml/preferences_backups.xml +++ b/app/src/main/res/xml/preferences_backups.xml @@ -35,5 +35,9 @@ android:title="@string/pref_android_backups_title" android:summary="@string/pref_android_backups_summary" app:iconSpaceReserved="false"/> +