diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java b/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java index 68d56342..4d9690c2 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Activities/BackupActivity.java @@ -188,6 +188,23 @@ public class BackupActivity extends BaseActivity { replace = v.findViewById(R.id.backup_replace); + if (! settings.getNewBackupFormatDialogShown()) { + showNewBackupInfo(); + } + } + + private void showNewBackupInfo() { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.backup_new_format_dialog_title) + .setMessage(R.string.backup_new_format_dialog_msg) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + settings.setNewBackupFormatDialogShown(true); + } + }) + .create() + .show(); } // End with a result diff --git a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java index d1af3396..59743436 100644 --- a/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java +++ b/app/src/main/java/org/shadowice/flocke/andotp/Utilities/Settings.java @@ -493,6 +493,14 @@ public class Settings { setBoolean(R.string.settings_key_last_used_dialog_shown, value); } + public boolean getNewBackupFormatDialogShown() { + return getBoolean(R.string.settings_key_new_backup_format_dialog_shown, false); + } + + public void setNewBackupFormatDialogShown(boolean value) { + setBoolean(R.string.settings_key_new_backup_format_dialog_shown, value); + } + public boolean getAndroidBackupServiceEnabled() { return getBoolean(R.string.settings_key_enable_android_backup_service, true); } diff --git a/app/src/main/res/values/settings.xml b/app/src/main/res/values/settings.xml index ecc40cf5..ee21c34f 100644 --- a/app/src/main/res/values/settings.xml +++ b/app/src/main/res/values/settings.xml @@ -36,6 +36,7 @@ pref_openpgp_key_encrypt pref_openpgp_key_sign pref_openpgp_verify + pref_new_backup_dialog_shown pref_security_backup_warning_shown pref_sort_mode diff --git a/app/src/main/res/values/strings_backup.xml b/app/src/main/res/values/strings_backup.xml index 33fcacf3..c33b8456 100644 --- a/app/src/main/res/values/strings_backup.xml +++ b/app/src/main/res/values/strings_backup.xml @@ -21,7 +21,8 @@ Backup all accounts in an OpenPGP-encrypted JSON file Restore accounts from a plain-text JSON file Restore accounts from a password-protected JSON file - Restore accounts from a password-protected JSON file using the old, insecure encryption + Restore accounts from a password-protected JSON file + created with an andOTP version lower than 0.6.3 Restore accounts from an OpenPGP-encrypted JSON file Failed to load the backup password from the Settings, @@ -63,6 +64,12 @@ Password/PIN based encryption not supported with broadcast backup + New encryption method + Since version 0.6.3 of andOTP, a new and improved + encryption method is used for password-protected backups. The old backups can still be + imported, but it is highly recommended to create new backups with the improved + encryption.\n\nThis message will not be shown again. + Automatic backup failed Automatic backup successful