mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-22 00:43:26 +02:00
Added option to truncate sender
This commit is contained in:
@@ -265,6 +265,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
private Float font_size_subject;
|
||||
private boolean subject_top;
|
||||
private boolean subject_italic;
|
||||
private String sender_ellipsize;
|
||||
private String subject_ellipsize;
|
||||
|
||||
private boolean keywords_header;
|
||||
@@ -659,8 +660,19 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
ibHelp = itemView.findViewById(R.id.ibHelp);
|
||||
|
||||
if (tvFrom != null) {
|
||||
if (compact)
|
||||
tvFrom.setSingleLine(true);
|
||||
if (compact) {
|
||||
boolean full = "full".equals(sender_ellipsize);
|
||||
tvFrom.setSingleLine(!full);
|
||||
|
||||
if ("start".equals(sender_ellipsize))
|
||||
tvFrom.setEllipsize(TextUtils.TruncateAt.START);
|
||||
else if ("end".equals(sender_ellipsize))
|
||||
tvFrom.setEllipsize(TextUtils.TruncateAt.END);
|
||||
else if ("middle".equals(sender_ellipsize))
|
||||
tvFrom.setEllipsize(TextUtils.TruncateAt.MIDDLE);
|
||||
else
|
||||
tvFrom.setEllipsize(null);
|
||||
}
|
||||
}
|
||||
|
||||
if (tvSubject != null) {
|
||||
@@ -1419,11 +1431,15 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
|
||||
private void clearExpanded(TupleMessageEx message) {
|
||||
if (compact) {
|
||||
if (tvFrom.getMaxLines() > 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<AdapterMessage.ViewHold
|
||||
font_size_subject = Helper.getTextSize(context, fz_subject);
|
||||
|
||||
this.subject_italic = prefs.getBoolean("subject_italic", true);
|
||||
this.sender_ellipsize = prefs.getString("sender_ellipsize", "end");
|
||||
this.subject_ellipsize = prefs.getString("subject_ellipsize", "full");
|
||||
this.keywords_header = prefs.getBoolean("keywords_header", false);
|
||||
this.labels_header = prefs.getBoolean("labels_header", true);
|
||||
|
||||
@@ -130,9 +130,10 @@ public class FragmentOptions extends FragmentBase {
|
||||
"indentation", "date", "date_fixed", "date_bold", "threading", "threading_unread",
|
||||
"highlight_unread", "highlight_color", "color_stripe",
|
||||
"avatars", "bimi", "gravatars", "favicons", "generated_icons", "identicons", "circular", "saturation", "brightness", "threshold",
|
||||
"email_format", "prefer_contact", "only_contact", "distinguish_contacts", "show_recipients",
|
||||
"authentication", "authentication_indicator",
|
||||
"subject_top", "font_size_sender", "font_size_subject", "subject_italic", "highlight_subject", "subject_ellipsize",
|
||||
"email_format", "prefer_contact", "only_contact", "distinguish_contacts", "show_recipients",
|
||||
"font_size_sender", "sender_ellipsize",
|
||||
"subject_top", "subject_italic", "highlight_subject", "font_size_subject", "subject_ellipsize",
|
||||
"keywords_header", "labels_header", "flags", "flags_background", "preview", "preview_italic", "preview_lines",
|
||||
"message_zoom", "overview_mode", "addresses", "button_extra", "attachments_alt", "thumbnails",
|
||||
"contrast", "monospaced", "monospaced_pre",
|
||||
|
||||
@@ -104,17 +104,21 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
private SeekBar sbBrightness;
|
||||
private TextView tvThreshold;
|
||||
private SeekBar sbThreshold;
|
||||
|
||||
private Spinner spNameEmail;
|
||||
private SwitchCompat swPreferContact;
|
||||
private SwitchCompat swOnlyContact;
|
||||
private SwitchCompat swDistinguishContacts;
|
||||
private SwitchCompat swShowRecipients;
|
||||
private SwitchCompat swSubjectTop;
|
||||
private Spinner spFontSizeSender;
|
||||
private Spinner spFontSizeSubject;
|
||||
private Spinner spSenderEllipsize;
|
||||
|
||||
private SwitchCompat swSubjectTop;
|
||||
private SwitchCompat swSubjectItalic;
|
||||
private SwitchCompat swHighlightSubject;
|
||||
private Spinner spFontSizeSubject;
|
||||
private Spinner spSubjectEllipsize;
|
||||
|
||||
private SwitchCompat swKeywords;
|
||||
private SwitchCompat swLabels;
|
||||
private SwitchCompat swFlags;
|
||||
@@ -161,7 +165,8 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
"highlight_unread", "highlight_color", "color_stripe",
|
||||
"avatars", "bimi", "gravatars", "favicons", "generated_icons", "identicons", "circular", "saturation", "brightness", "threshold",
|
||||
"email_format", "prefer_contact", "only_contact", "distinguish_contacts", "show_recipients",
|
||||
"subject_top", "font_size_sender", "font_size_subject", "subject_italic", "highlight_subject", "subject_ellipsize",
|
||||
"font_size_sender", "sender_ellipsize",
|
||||
"subject_top", "subject_italic", "highlight_subject", "font_size_subject", "subject_ellipsize",
|
||||
"keywords_header", "labels_header", "flags", "flags_background",
|
||||
"preview", "preview_italic", "preview_lines",
|
||||
"addresses",
|
||||
@@ -229,17 +234,21 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
sbBrightness = view.findViewById(R.id.sbBrightness);
|
||||
tvThreshold = view.findViewById(R.id.tvThreshold);
|
||||
sbThreshold = view.findViewById(R.id.sbThreshold);
|
||||
|
||||
spNameEmail = view.findViewById(R.id.spNameEmail);
|
||||
swPreferContact = view.findViewById(R.id.swPreferContact);
|
||||
swOnlyContact = view.findViewById(R.id.swOnlyContact);
|
||||
swDistinguishContacts = view.findViewById(R.id.swDistinguishContacts);
|
||||
swShowRecipients = view.findViewById(R.id.swShowRecipients);
|
||||
swSubjectTop = view.findViewById(R.id.swSubjectTop);
|
||||
spFontSizeSender = view.findViewById(R.id.spFontSizeSender);
|
||||
spFontSizeSubject = view.findViewById(R.id.spFontSizeSubject);
|
||||
spSenderEllipsize = view.findViewById(R.id.spSenderEllipsize);
|
||||
|
||||
swSubjectTop = view.findViewById(R.id.swSubjectTop);
|
||||
swSubjectItalic = view.findViewById(R.id.swSubjectItalic);
|
||||
swHighlightSubject = view.findViewById(R.id.swHighlightSubject);
|
||||
spFontSizeSubject = view.findViewById(R.id.spFontSizeSubject);
|
||||
spSubjectEllipsize = view.findViewById(R.id.spSubjectEllipsize);
|
||||
|
||||
swKeywords = view.findViewById(R.id.swKeywords);
|
||||
swLabels = view.findViewById(R.id.swLabels);
|
||||
swFlags = view.findViewById(R.id.swFlags);
|
||||
@@ -688,14 +697,6 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
}
|
||||
});
|
||||
|
||||
swSubjectTop.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
prefs.edit().putBoolean("subject_top", checked).apply();
|
||||
WidgetUnified.updateData(getContext());
|
||||
}
|
||||
});
|
||||
|
||||
spFontSizeSender.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> 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);
|
||||
|
||||
Reference in New Issue
Block a user