From f3d13efc9009ef8cacfb4259f7e2d9caa60a3645 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 8 Oct 2023 17:07:03 +0200 Subject: [PATCH] Added optiont to disabling printing of block quotes --- .../faircode/email/FragmentDialogPrint.java | 21 +++++++++++++++++++ .../faircode/email/FragmentOptionsMisc.java | 2 +- app/src/main/res/layout/dialog_print.xml | 15 ++++++++++++- app/src/main/res/values/strings.xml | 1 + 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogPrint.java b/app/src/main/java/eu/faircode/email/FragmentDialogPrint.java index 61da4b7920..2c1f8e7f5e 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogPrint.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogPrint.java @@ -77,6 +77,7 @@ public class FragmentDialogPrint extends FragmentDialogBase { View dview = LayoutInflater.from(context).inflate(R.layout.dialog_print, null); CheckBox cbHeader = dview.findViewById(R.id.cbHeader); CheckBox cbImages = dview.findViewById(R.id.cbImages); + CheckBox cbBlockQuotes = dview.findViewById(R.id.cbBlockQuotes); CheckBox cbNotAgain = dview.findViewById(R.id.cbNotAgain); cbHeader.setChecked(prefs.getBoolean("print_html_header", true)); @@ -95,6 +96,14 @@ public class FragmentDialogPrint extends FragmentDialogBase { } }); + cbBlockQuotes.setChecked(prefs.getBoolean("print_html_block_quotes", true)); + cbBlockQuotes.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + prefs.edit().putBoolean("print_html_block_quotes", isChecked).apply(); + } + }); + cbNotAgain.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { @@ -128,9 +137,11 @@ public class FragmentDialogPrint extends FragmentDialogBase { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); boolean print_html_header = prefs.getBoolean("print_html_header", true); boolean print_html_images = prefs.getBoolean("print_html_images", true); + boolean print_html_block_quotes = prefs.getBoolean("print_html_block_quotes", true); args.putBoolean("print_html_header", print_html_header); args.putBoolean("print_html_images", print_html_images); + args.putBoolean("print_html_block_quotes", print_html_block_quotes); new SimpleTask() { @Override @@ -139,6 +150,7 @@ public class FragmentDialogPrint extends FragmentDialogBase { boolean headers = args.getBoolean("headers"); boolean print_html_header = args.getBoolean("print_html_header"); boolean print_html_images = args.getBoolean("print_html_images"); + boolean print_html_block_quotes = args.getBoolean("print_html_block_quotes"); CharSequence selected = args.getCharSequence("selected"); boolean draft = args.getBoolean("draft"); @@ -172,6 +184,15 @@ public class FragmentDialogPrint extends FragmentDialogBase { if (message.isPlainOnly() && monospaced_pre) HtmlHelper.restorePre(document); + if (!print_html_block_quotes) + for (Element bq : document.select("blockquote")) { + String style = bq.attr("style"); + bq.attr("style", HtmlHelper.mergeStyles(style, + "border: none !important;" + + "margin-left: 0; margin-right: 0;" + + "padding-left: 0; padding-right: 0;")); + } + HtmlHelper.markText(document); HtmlHelper.embedInlineImages(context, id, document, true); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java index 140f9b1ce6..9564307071 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java @@ -323,7 +323,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc "crash_reports_asked", "review_asked", "review_later", "why", "reply_hint", "html_always_images", "open_full_confirmed", "open_amp_confirmed", "ask_images", "ask_html", - "print_html_confirmed", "print_html_header", "print_html_images", + "print_html_confirmed", "print_html_header", "print_html_images", "print_html_block_quotes", "reformatted_hint", "selected_folders", "move_1_confirmed", "move_n_confirmed", "last_search_senders", "last_search_recipients", "last_search_subject", "last_search_keywords", "last_search_message", diff --git a/app/src/main/res/layout/dialog_print.xml b/app/src/main/res/layout/dialog_print.xml index f31f29bec1..35f6af01aa 100644 --- a/app/src/main/res/layout/dialog_print.xml +++ b/app/src/main/res/layout/dialog_print.xml @@ -38,6 +38,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="12dp" + android:checked="true" android:text="@string/title_print_header" android:textAppearance="@style/TextAppearance.AppCompat.Medium" app:layout_constraintStart_toStartOf="parent" @@ -48,6 +49,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="12dp" + android:checked="true" android:text="@string/title_print_images" android:textAppearance="@style/TextAppearance.AppCompat.Medium" app:layout_constraintStart_toStartOf="parent" @@ -64,6 +66,17 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/cbImages" /> + + + app:layout_constraintTop_toBottomOf="@id/cbBlockQuotes" /> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a0bf080d03..1d39711c55 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1420,6 +1420,7 @@ Print header Print images Downloading images might take some time + Print block quotes Show headers Share as HTML Save raw message