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" />