From edf06c15033133112dc7bbf9e6da1954de23c6f8 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 4 Dec 2021 17:42:52 +0100 Subject: [PATCH] Allow override width and fit to width --- .../eu/faircode/email/AdapterMessage.java | 5 +-- .../email/FragmentOptionsDisplay.java | 2 -- .../java/eu/faircode/email/HtmlHelper.java | 34 +++++++++---------- .../res/layout/fragment_options_display.xml | 2 -- 4 files changed, 20 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 21047630e3..db3214924c 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -2612,7 +2612,8 @@ public class AdapterMessage extends RecyclerView.Adapter sheets = diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java index 5553ea26da..9a4e8fd4a9 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java @@ -900,7 +900,6 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { prefs.edit().putBoolean("overview_mode", checked).apply(); - swOverrideWidth.setEnabled(!checked); } }); @@ -1224,7 +1223,6 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer swOverviewMode.setChecked(prefs.getBoolean("overview_mode", false)); swOverrideWidth.setChecked(prefs.getBoolean("override_width", false)); - swOverrideWidth.setEnabled(!swOverviewMode.isChecked()); swContrast.setChecked(prefs.getBoolean("contrast", false)); swMonospaced.setChecked(prefs.getBoolean("monospaced", false)); diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index b38c7ee8b3..b4700120d7 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -36,7 +36,6 @@ import android.os.Build; import android.text.Html; import android.text.Layout; import android.text.Spannable; -import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextDirectionHeuristics; @@ -2068,23 +2067,24 @@ public class HtmlHelper { Log.i(document.head().html()); } - static void overrideWidth(Document document, boolean overview_mode) { - if (!overview_mode) { - for (Element e : document.select("*")) { - String width = e.attr("width"); - if (TextUtils.isEmpty(width)) - continue; - e.attr("style", mergeStyles( - e.attr("style"), - "width: " + width)); - e.removeAttr("width"); - } - - for (Element e : document.body().children()) - e.attr("style", mergeStyles( - e.attr("style"), - "min-width: 0 !important; max-width: 100% !important;")); + static void overrideWidth(Document document) { + List tags = new ArrayList<>(); + for (Element e : document.select("*")) { + String tag = e.tagName(); + if ("img".equals(tag)) + continue; + if (tags.contains(tag)) + continue; + tags.add(tag); } + + StringBuilder sb = new StringBuilder(); + sb.append(""); + + document.select("head").append(sb.toString()); } static String getLanguage(Context context, String subject, String text) { diff --git a/app/src/main/res/layout/fragment_options_display.xml b/app/src/main/res/layout/fragment_options_display.xml index e67d556e6c..468c24ccdb 100644 --- a/app/src/main/res/layout/fragment_options_display.xml +++ b/app/src/main/res/layout/fragment_options_display.xml @@ -1352,7 +1352,6 @@ android:id="@+id/swOverrideWidth" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="12dp" android:layout_marginTop="12dp" android:text="@string/title_advanced_override_width" app:layout_constraintEnd_toEndOf="parent" @@ -1364,7 +1363,6 @@ android:id="@+id/tvOverrideWidthHint" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="12dp" android:layout_marginEnd="48dp" android:text="@string/title_advanced_override_width_hint" android:textAppearance="@style/TextAppearance.AppCompat.Small"