diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index af6500d52b..26d7094f41 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -355,6 +355,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. private static final int REQUEST_BOUNDARY_RETRY = 22; static final int REQUEST_PICK_CONTACT = 23; static final int REQUEST_BUTTONS = 24; + private static final int REQUEST_ASKED_RAW = 25; static final String ACTION_STORE_RAW = BuildConfig.APPLICATION_ID + ".STORE_RAW"; static final String ACTION_DECRYPT = BuildConfig.APPLICATION_ID + ".DECRYPT"; @@ -3307,6 +3308,25 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. } private void onActionRaw() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + boolean raw_asked = prefs.getBoolean("raw_asked", false); + + if (raw_asked) { + _onActionRaw(); + return; + } + + Bundle args = new Bundle(); + args.putString("question", getString(R.string.title_ask_raw)); + args.putString("notagain", "raw_asked"); + + FragmentDialogAsk ask = new FragmentDialogAsk(); + ask.setArguments(args); + ask.setTargetFragment(FragmentMessages.this, REQUEST_ASKED_RAW); + ask.show(getParentFragmentManager(), "messages:raw"); + } + + private void _onActionRaw() { Bundle args = new Bundle(); args.putLongArray("ids", getSelection()); @@ -6043,6 +6063,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. case REQUEST_BUTTONS: adapter.notifyDataSetChanged(); break; + case REQUEST_ASKED_RAW: + _onActionRaw(); + break; } } catch (Throwable ex) { Log.e(ex); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java index 0da59d95f6..d06c670d3d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java @@ -151,6 +151,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc "selected_folders", "move_1_confirmed", "move_n_confirmed", "last_search_senders", "last_search_recipients", "last_search_subject", "last_search_keywords", "last_search_message", "last_search", "identities_asked", "identities_primary_hint", + "raw_asked", "cc_bcc", "inline_image_hint", "compose_reference", "send_dialog", "setup_reminder", "setup_advanced" }; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e41380d675..38e7f839c0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -964,6 +964,7 @@ Help improve FairEmail Send error reports? Error reporting will help improve FairEmail + To forward messages, the raw (original) message needs to be downloaded Please review FairEmail