From fa8472468b6dd72a4ddc4de138a1bf1aee68f97f Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 17 Sep 2021 15:28:55 +0200 Subject: [PATCH] Added option to truncate sender --- .../eu/faircode/email/AdapterMessage.java | 31 +++++-- .../eu/faircode/email/FragmentOptions.java | 5 +- .../email/FragmentOptionsDisplay.java | 69 ++++++++++---- .../res/layout/fragment_options_display.xml | 91 ++++++++++++++----- app/src/main/res/values/strings.xml | 12 ++- 5 files changed, 154 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index ea560602d9..6ebb1863c4 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -265,6 +265,7 @@ public class AdapterMessage extends RecyclerView.Adapter 1) - tvFrom.setSingleLine(true); - boolean full = "full".equals(subject_ellipsize); - if (full ? tvSubject.getMaxLines() == 1 : tvSubject.getMaxLines() > 1) - tvSubject.setSingleLine(!full); + if ("full".equals(sender_ellipsize) + ? tvFrom.getMaxLines() == 1 + : tvFrom.getMaxLines() > 1) + tvFrom.setSingleLine(!"full".equals(sender_ellipsize)); + + if ("full".equals(subject_ellipsize) + ? tvSubject.getMaxLines() == 1 + : tvSubject.getMaxLines() > 1) + tvSubject.setSingleLine(!"full".equals(subject_ellipsize)); } tvPreview.setVisibility( @@ -5846,6 +5862,7 @@ public class AdapterMessage extends RecyclerView.Adapter adapterView, View view, int position, long id) { @@ -709,16 +710,24 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer } }); - spFontSizeSubject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + spSenderEllipsize.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView adapterView, View view, int position, long id) { - int[] values = getResources().getIntArray(R.array.fontSizeValues); - prefs.edit().putInt("font_size_subject", values[position]).apply(); + String[] values = getResources().getStringArray(R.array.ellipsizeValues); + prefs.edit().putString("sender_ellipsize", values[position]).apply(); } @Override public void onNothingSelected(AdapterView parent) { - prefs.edit().remove("font_size_subject").apply(); + prefs.edit().remove("sender_ellipsize").apply(); + } + }); + + swSubjectTop.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("subject_top", checked).apply(); + WidgetUnified.updateData(getContext()); } }); @@ -737,6 +746,19 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer } }); + spFontSizeSubject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int position, long id) { + int[] values = getResources().getIntArray(R.array.fontSizeValues); + prefs.edit().putInt("font_size_subject", values[position]).apply(); + } + + @Override + public void onNothingSelected(AdapterView parent) { + prefs.edit().remove("font_size_subject").apply(); + } + }); + spSubjectEllipsize.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView adapterView, View view, int position, long id) { @@ -1097,9 +1119,13 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer swOnlyContact.setChecked(prefs.getBoolean("only_contact", false)); swDistinguishContacts.setChecked(prefs.getBoolean("distinguish_contacts", false)); swShowRecipients.setChecked(prefs.getBoolean("show_recipients", false)); + swSubjectTop.setChecked(prefs.getBoolean("subject_top", false)); + swSubjectItalic.setChecked(prefs.getBoolean("subject_italic", true)); + swHighlightSubject.setChecked(prefs.getBoolean("highlight_subject", false)); int[] fontSizeValues = getResources().getIntArray(R.array.fontSizeValues); + String[] ellipsizeValues = getResources().getStringArray(R.array.ellipsizeValues); int font_size_sender = prefs.getInt("font_size_sender", -1); for (int pos = 0; pos < fontSizeValues.length; pos++) @@ -1115,11 +1141,14 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer break; } - swSubjectItalic.setChecked(prefs.getBoolean("subject_italic", true)); - swHighlightSubject.setChecked(prefs.getBoolean("highlight_subject", false)); + String sender_ellipsize = prefs.getString("sender_ellipsize", "end"); + for (int pos = 0; pos < startupValues.length; pos++) + if (ellipsizeValues[pos].equals(sender_ellipsize)) { + spSenderEllipsize.setSelection(pos); + break; + } String subject_ellipsize = prefs.getString("subject_ellipsize", "full"); - String[] ellipsizeValues = getResources().getStringArray(R.array.ellipsizeValues); for (int pos = 0; pos < startupValues.length; pos++) if (ellipsizeValues[pos].equals(subject_ellipsize)) { spSubjectEllipsize.setSelection(pos); diff --git a/app/src/main/res/layout/fragment_options_display.xml b/app/src/main/res/layout/fragment_options_display.xml index 4c43a2de17..51f1b4dd3d 100644 --- a/app/src/main/res/layout/fragment_options_display.xml +++ b/app/src/main/res/layout/fragment_options_display.xml @@ -892,17 +892,6 @@ app:layout_constraintTop_toBottomOf="@id/swDistinguishContacts" app:switchPadding="12dp" /> - - + app:layout_constraintTop_toBottomOf="@id/swShowRecipients" /> + app:layout_constraintTop_toBottomOf="@id/tvSenderEllipsize" /> + + + + + + + + + + Show number of unread messages in conversations Left/right indent received/sent messages in conversations Highlight unread messages - Highlight subject Show color stripe Show contact photos Show Gravatars @@ -441,16 +440,23 @@ Saturation: %1$s %% Brightness: %1$s %% Threshold letter color: %1$s %% + Show names and email addresses Prefer a contact name over a sent name Display contact names only Underline the sender when the sender is known as local \'to\' contact Show recipients in message header Text size sender - Text size subject + If needed, shorten the sender + Show subject above sender Show subject in italics - When needed, shorten the subject + Highlight subject + Text size subject + If needed, shorten the subject + + Compact mode only + Highlight color Show keywords in message header Show Gmail labels in message header