diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 6bda85daf4..d8014e05ae 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -177,16 +177,18 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB Configuration config = getResources().getConfiguration(); final boolean normal = config.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_NORMAL); final boolean portrait2 = prefs.getBoolean("portrait2", false); + final boolean portrait2c = prefs.getBoolean("portrait2c", false); final boolean portrait3 = prefs.getBoolean("portrait3", false); final boolean landscape = prefs.getBoolean("landscape", true); final boolean landscape3 = prefs.getBoolean("landscape3", true); - Log.i("Orientation=" + config.orientation + - " normal=" + normal + - " portrait=" + portrait2 + "/" + portrait3 + - " landscape=" + landscape + "/" + landscape3); + Log.i("Orientation=" + config.orientation + " normal=" + normal + + " portrait 2=" + portrait2 + " 2c=" + portrait2c + " nav=" + portrait3 + + " landscape 2=" + landscape + " nav=" + landscape3); int viewId; - if (config.orientation == ORIENTATION_PORTRAIT || !normal || !landscape) + if (config.orientation == ORIENTATION_PORTRAIT && portrait2c) + viewId = R.layout.activity_view_landscape_split; + else if (config.orientation == ORIENTATION_PORTRAIT || !(normal && landscape)) viewId = (portrait2 ? R.layout.activity_view_portrait_split : R.layout.activity_view_portrait); else viewId = R.layout.activity_view_landscape_split; diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index 423ada91dd..c7e6750021 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -108,7 +108,7 @@ public class FragmentOptions extends FragmentBase { "subscriptions", "check_authentication", "check_reply_domain", "check_mx", "check_blocklist", "send_pending", - "portrait2", "portrait3", "landscape", "landscape3", "nav_count", "startup", + "portrait2", "portrait2c", "portrait3", "landscape", "landscape3", "nav_count", "startup", "cards", "beige", "tabular_card_bg", "shadow_unread", "indentation", "date", "date_bold", "threading", "threading_unread", "highlight_unread", "highlight_color", "color_stripe", diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java index abac80993f..a4b36dc276 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java @@ -68,6 +68,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer private SwitchCompat swDateBold; private SwitchCompat swNavBarColorize; private SwitchCompat swPortrait2; + private SwitchCompat swPortrait2c; private SwitchCompat swPortrait3; private SwitchCompat swLandscape; private SwitchCompat swLandscape3; @@ -156,7 +157,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer private final static String[] RESET_OPTIONS = new String[]{ "theme", "startup", "cards", "beige", "tabular_card_bg", "shadow_unread", "date", "date_bold", "navbar_colorize", - "portrait2", "portrait3", "landscape", "landscape3", "nav_count", + "portrait2", "portrait2c", "portrait3", "landscape", "landscape3", "nav_count", "threading", "threading_unread", "indentation", "seekbar", "actionbar", "actionbar_color", "highlight_unread", "highlight_color", "color_stripe", "avatars", "bimi", "gravatars", "favicons", "generated_icons", "identicons", "circular", "saturation", "brightness", "threshold", @@ -192,6 +193,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer swDateBold = view.findViewById(R.id.swDateBold); swNavBarColorize = view.findViewById(R.id.swNavBarColorize); swPortrait2 = view.findViewById(R.id.swPortrait2); + swPortrait2c = view.findViewById(R.id.swPortrait2c); swPortrait3 = view.findViewById(R.id.swPortrait3); swLandscape = view.findViewById(R.id.swLandscape); swLandscape3 = view.findViewById(R.id.swLandscape3); @@ -359,6 +361,17 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { prefs.edit().putBoolean("portrait2", checked).apply(); + if (checked) + prefs.edit().putBoolean("portrait2c", false).apply(); + } + }); + + swPortrait2c.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("portrait2c", checked).apply(); + if (checked) + prefs.edit().putBoolean("portrait2", false).apply(); } }); @@ -1033,6 +1046,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer swDateBold.setEnabled(swDate.isChecked()); swNavBarColorize.setChecked(prefs.getBoolean("navbar_colorize", false)); swPortrait2.setChecked(prefs.getBoolean("portrait2", false)); + swPortrait2c.setChecked(prefs.getBoolean("portrait2c", false) && !swPortrait2.isChecked()); swPortrait3.setChecked(prefs.getBoolean("portrait3", false)); swPortrait3.setEnabled(normal); swLandscape.setChecked(prefs.getBoolean("landscape", true)); diff --git a/app/src/main/res/layout/fragment_options_display.xml b/app/src/main/res/layout/fragment_options_display.xml index 8569d253c6..982351a14d 100644 --- a/app/src/main/res/layout/fragment_options_display.xml +++ b/app/src/main/res/layout/fragment_options_display.xml @@ -254,6 +254,29 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/swPortrait2" /> + + + + Debug Use two rows in portrait mode + Use two columns in portrait mode Show navigation menu in portrait mode by default Use two columns in landscape mode Show navigation menu in landscape mode by default