Added option to always skip downloading attachments

pull/215/head
M66B 1 year ago
parent 106d4ee083
commit daae3d79a9

@ -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());

@ -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) ||

@ -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",

@ -66,6 +66,16 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/pbDownloaded" />
<CheckBox
android:id="@+id/cbNotAgain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_no_ask_again"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvRemaining" />
<TextView
android:id="@+id/tvNoInternet"
android:layout_width="wrap_content"
@ -79,6 +89,6 @@
android:textColor="?attr/colorWarning"
app:drawableTint="?attr/colorWarning"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvRemaining" />
app:layout_constraintTop_toBottomOf="@id/cbNotAgain" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

Loading…
Cancel
Save