diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index f312e6d839..025a8717e1 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -39,7 +39,7 @@ public class FragmentOptions extends FragmentBase { static String[] OPTIONS_RESTART = new String[]{ "subscriptions", - "startup", "cards", "date", "threading", "highlight_unread", + "startup", "cards", "date", "threading", "indentation", "highlight_unread", "avatars", "generated_icons", "identicons", "circular", "name_email", "distinguish_contacts", "authentication", "subject_top", "subject_italic", "subject_ellipsize", diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java index 704bb17183..eac0b11ff8 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java @@ -48,6 +48,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer private SwitchCompat swCards; private SwitchCompat swDate; private SwitchCompat swThreading; + private SwitchCompat swIndentation; private SwitchCompat swHighlightUnread; private SwitchCompat swAvatars; private SwitchCompat swGeneratedIcons; @@ -75,7 +76,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer private SwitchCompat swActionbar; private final static String[] RESET_OPTIONS = new String[]{ - "theme", "startup", "cards", "date", "threading", "highlight_unread", + "theme", "startup", "cards", "date", "threading", "indentation", "highlight_unread", "avatars", "generated_icons", "identicons", "circular", "name_email", "distinguish_contacts", "authentication", "subject_top", "subject_italic", "subject_ellipsize", "flags", "flags_background", "preview", "preview_italic", "addresses", "attachments_alt", @@ -98,6 +99,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer swCards = view.findViewById(R.id.swCards); swDate = view.findViewById(R.id.swDate); swThreading = view.findViewById(R.id.swThreading); + swIndentation = view.findViewById(R.id.swIndentation); swHighlightUnread = view.findViewById(R.id.swHighlightUnread); swAvatars = view.findViewById(R.id.swAvatars); swGeneratedIcons = view.findViewById(R.id.swGeneratedIcons); @@ -171,6 +173,13 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer } }); + swIndentation.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("indentation", checked).apply(); + } + }); + swHighlightUnread.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -410,6 +419,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer swCards.setChecked(prefs.getBoolean("cards", true)); swDate.setChecked(prefs.getBoolean("date", true)); swThreading.setChecked(prefs.getBoolean("threading", true)); + swIndentation.setChecked(prefs.getBoolean("indentation", true)); swHighlightUnread.setChecked(prefs.getBoolean("highlight_unread", false)); swAvatars.setChecked(prefs.getBoolean("avatars", true)); swGeneratedIcons.setChecked(prefs.getBoolean("generated_icons", true)); diff --git a/app/src/main/java/eu/faircode/email/ViewCardOptional.java b/app/src/main/java/eu/faircode/email/ViewCardOptional.java index 8c3bff5e55..54c46bf1de 100644 --- a/app/src/main/java/eu/faircode/email/ViewCardOptional.java +++ b/app/src/main/java/eu/faircode/email/ViewCardOptional.java @@ -34,6 +34,7 @@ public class ViewCardOptional extends CardView { private boolean cards; private boolean compact; private boolean threading; + private boolean indentation; private int margin; private int ident; private Integer color = null; @@ -58,6 +59,7 @@ public class ViewCardOptional extends CardView { cards = prefs.getBoolean("cards", true); compact = prefs.getBoolean("compact", false); threading = prefs.getBoolean("threading", true); + indentation = prefs.getBoolean("indentation", true); margin = Helper.dp2pixels(context, compact ? 3 : 6); ident = Helper.dp2pixels(context, 12 + (compact ? 3 : 6)); @@ -94,7 +96,7 @@ public class ViewCardOptional extends CardView { } public void setOutgoing(boolean outgoing) { - if (cards && threading) { + if (cards && threading && indentation) { ViewGroup.MarginLayoutParams lparam = (ViewGroup.MarginLayoutParams) getLayoutParams(); lparam.setMarginStart(outgoing ? margin : ident); lparam.setMarginEnd(outgoing ? ident : margin); diff --git a/app/src/main/res/layout/fragment_options_display.xml b/app/src/main/res/layout/fragment_options_display.xml index e3cc28ca56..8d334d8df1 100644 --- a/app/src/main/res/layout/fragment_options_display.xml +++ b/app/src/main/res/layout/fragment_options_display.xml @@ -116,6 +116,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/swThreading" /> + + Show cards Group by date Conversation threading + Left/right indent received/sent messages in conversations Highlight unread messages Distinguish messages from known and unknown contacts Show contact photos