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