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