diff --git a/res/values/strings.xml b/res/values/strings.xml index 3f21881ca..d928ca08f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -677,6 +677,7 @@ Backup Back Up Chats to External Storage A backup helps you to set up a new installation on this or on another device.\n\nThe backup will contain all messages, contacts and chats and your end-to-end Autocrypt setup. Keep the backup file in a safe place or delete it as soon as possible. + Backup all accounts Start Backup Backup written successfully to \"%1$s\". Manage Keys diff --git a/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java index e823f41e9..2d807d537 100644 --- a/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java +++ b/src/org/thoughtcrime/securesms/preferences/ChatsPreferenceFragment.java @@ -265,6 +265,13 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment { } private void performBackup() { + View gl = View.inflate(getActivity(), R.layout.dialog_with_checkbox, null); + CheckBox confirmCheckbox = gl.findViewById(R.id.dialog_checkbox); + TextView msg = gl.findViewById(R.id.dialog_message); + + msg.setText(getString(R.string.pref_backup_export_explain)); + confirmCheckbox.setText(R.string.pref_backup_export_all); + Permissions.with(getActivity()) .request(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE) // READ_EXTERNAL_STORAGE required to read folder contents and to generate backup names .alwaysGrantOnSdk30() @@ -273,9 +280,15 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment { .onAllGranted(() -> { new AlertDialog.Builder(getActivity()) .setTitle(R.string.pref_backup) - .setMessage(R.string.pref_backup_export_explain) + .setView(gl) .setNegativeButton(android.R.string.cancel, null) - .setPositiveButton(R.string.pref_backup_export_start_button, (dialogInterface, i) -> startImex(DcContext.DC_IMEX_EXPORT_BACKUP)) + .setPositiveButton(R.string.pref_backup_export_start_button, (dialogInterface, i) -> { + if (confirmCheckbox.isChecked()) { + // TODO: backup all accounts + } else { + startImex(DcContext.DC_IMEX_EXPORT_BACKUP); + } + }) .show(); }) .execute();