diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogDownloadAttachments.java b/app/src/main/java/eu/faircode/email/FragmentDialogDownloadAttachments.java
index 4168b012bc..e7e6681b5f 100644
--- a/app/src/main/java/eu/faircode/email/FragmentDialogDownloadAttachments.java
+++ b/app/src/main/java/eu/faircode/email/FragmentDialogDownloadAttachments.java
@@ -4,6 +4,7 @@ import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
@@ -12,6 +13,8 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
import android.widget.ProgressBar;
import android.widget.TextView;
@@ -20,6 +23,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.Observer;
+import androidx.preference.PreferenceManager;
import java.text.NumberFormat;
import java.util.ArrayList;
@@ -36,14 +40,24 @@ public class FragmentDialogDownloadAttachments extends FragmentDialogBase {
long[] download = args.getLongArray("download");
Intent intent = args.getParcelable("intent");
+ if (savedInstanceState == null)
+ remaining = Helper.fromLongArray(download);
+ else {
+ long[] r = savedInstanceState.getLongArray("fair:remaining");
+ remaining = (r == null ? new ArrayList<>() : Helper.fromLongArray(r));
+ }
+
final Context context = getContext();
+
+ NumberFormat NF = NumberFormat.getNumberInstance();
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+
View dview = LayoutInflater.from(context).inflate(R.layout.dialog_download_attachments, null);
TextView tvRemark = dview.findViewById(R.id.tvRemark);
Button btnDownload = dview.findViewById(R.id.btnDownload);
ProgressBar pbDownloaded = dview.findViewById(R.id.pbDownloaded);
TextView tvRemaining = dview.findViewById(R.id.tvRemaining);
-
- NumberFormat NF = NumberFormat.getNumberInstance();
+ CheckBox cbNotAgain = dview.findViewById(R.id.cbNotAgain);
btnDownload.setOnClickListener(new View.OnClickListener() {
@Override
@@ -110,12 +124,12 @@ public class FragmentDialogDownloadAttachments extends FragmentDialogBase {
}
});
- if (savedInstanceState == null)
- remaining = Helper.fromLongArray(download);
- else {
- long[] r = savedInstanceState.getLongArray("fair:remaining");
- remaining = (r == null ? new ArrayList<>() : Helper.fromLongArray(r));
- }
+ cbNotAgain.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ prefs.edit().putBoolean("attachments_asked", isChecked).apply();
+ }
+ });
pbDownloaded.setMax(download.length);
pbDownloaded.setProgress(download.length - remaining.size());
diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java
index 99fa7ab4ac..9a544f8798 100644
--- a/app/src/main/java/eu/faircode/email/FragmentMessages.java
+++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java
@@ -4052,6 +4052,13 @@ public class FragmentMessages extends FragmentBase
.putExtra("reference", message.id)
.putExtra("selected", selected);
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ boolean attachments_asked = prefs.getBoolean("attachments_asked", false);
+ if (attachments_asked) {
+ startActivity(reply);
+ return;
+ }
+
if ("reply".equals(action) || "reply_all".equals(action) ||
"forward".equals(action) ||
"resend".equals(action) ||
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
index ab3df9d96d..dbbb882e11 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
@@ -317,6 +317,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",
"identities_asked", "identities_primary_hint",
+ "attachments_asked",
"raw_asked", "all_read_asked", "delete_asked",
"cc_bcc", "inline_image_hint", "compose_reference", "send_dialog",
"setup_reminder", "was_ignoring", "setup_advanced",
diff --git a/app/src/main/res/layout/dialog_download_attachments.xml b/app/src/main/res/layout/dialog_download_attachments.xml
index eaf9609738..203dfa72ef 100644
--- a/app/src/main/res/layout/dialog_download_attachments.xml
+++ b/app/src/main/res/layout/dialog_download_attachments.xml
@@ -66,6 +66,16 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/pbDownloaded" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/cbNotAgain" />