From 47bf65194c2b1cb3831c2184ae160ddad8788518 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 19 Oct 2019 13:51:16 +0200 Subject: [PATCH] Added option to disable two column mode --- .../java/eu/faircode/email/ActivityView.java | 12 +++++++++++- .../eu/faircode/email/FragmentOptions.java | 2 +- .../faircode/email/FragmentOptionsDisplay.java | 18 +++++++++++++++++- .../activity_view_landscape.xml} | 0 ...ity_view.xml => activity_view_portrait.xml} | 0 .../res/layout/fragment_options_display.xml | 14 +++++++++++++- app/src/main/res/values/strings.xml | 1 + 7 files changed, 43 insertions(+), 4 deletions(-) rename app/src/main/res/{layout-w600dp-land/activity_view.xml => layout/activity_view_landscape.xml} (100%) rename app/src/main/res/layout/{activity_view.xml => activity_view_portrait.xml} (100%) diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index b23afd5a7e..378de4f981 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -78,6 +78,8 @@ import java.util.List; import javax.net.ssl.HttpsURLConnection; +import static android.content.res.Configuration.ORIENTATION_PORTRAIT; + public class ActivityView extends ActivityBilling implements FragmentManager.OnBackStackChangedListener { private String startup; @@ -133,7 +135,15 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); startup = prefs.getString("startup", "unified"); - view = LayoutInflater.from(this).inflate(R.layout.activity_view, null); + Configuration config = getResources().getConfiguration(); + boolean normal = config.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_NORMAL); + boolean landscape = prefs.getBoolean("landscape", true); + Log.i("Orientation=" + config.orientation + " normal=" + normal + " landscape=" + landscape); + + view = LayoutInflater.from(this).inflate( + config.orientation == ORIENTATION_PORTRAIT || !normal || !landscape + ? R.layout.activity_view_portrait + : R.layout.activity_view_landscape, null); setContentView(view); getSupportActionBar().setDisplayHomeAsUpEnabled(true); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index 5772c46acd..105ec10c84 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", "indentation", "highlight_unread", + "landscape", "startup", "cards", "date", "threading", "indentation", "highlight_unread", "avatars", "generated_icons", "identicons", "circular", "saturation", "brightness", "threshold", "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 1df9d4c9ea..94db0ad28e 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java @@ -22,6 +22,7 @@ package eu.faircode.email; import android.app.Dialog; import android.content.Context; import android.content.SharedPreferences; +import android.content.res.Configuration; import android.graphics.Bitmap; import android.os.Bundle; import android.view.LayoutInflater; @@ -48,6 +49,7 @@ import androidx.preference.PreferenceManager; public class FragmentOptionsDisplay extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener { private Button btnTheme; + private SwitchCompat swLandscape; private Spinner spStartup; private SwitchCompat swCards; private SwitchCompat swDate; @@ -86,7 +88,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer private SwitchCompat swActionbar; private final static String[] RESET_OPTIONS = new String[]{ - "theme", "startup", "cards", "date", "threading", "indentation", "highlight_unread", + "theme", "landscape", "startup", "cards", "date", "threading", "indentation", "highlight_unread", "avatars", "generated_icons", "identicons", "circular", "saturation", "brightness", "threshold", "name_email", "distinguish_contacts", "authentication", "subject_top", "subject_italic", "subject_ellipsize", @@ -106,6 +108,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer // Get controls btnTheme = view.findViewById(R.id.btnTheme); + swLandscape = view.findViewById(R.id.swLandscape); spStartup = view.findViewById(R.id.spStartup); swCards = view.findViewById(R.id.swCards); swDate = view.findViewById(R.id.swDate); @@ -155,6 +158,13 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer } }); + swLandscape.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("landscape", checked).apply(); + } + }); + spStartup.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView adapterView, View view, int position, long id) { @@ -486,6 +496,12 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer private void setOptions() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + boolean normal = getResources().getConfiguration() + .isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_NORMAL); + + swLandscape.setChecked(prefs.getBoolean("landscape", true)); + swLandscape.setEnabled(normal); + String startup = prefs.getString("startup", "unified"); String[] startupValues = getResources().getStringArray(R.array.startupValues); for (int pos = 0; pos < startupValues.length; pos++) diff --git a/app/src/main/res/layout-w600dp-land/activity_view.xml b/app/src/main/res/layout/activity_view_landscape.xml similarity index 100% rename from app/src/main/res/layout-w600dp-land/activity_view.xml rename to app/src/main/res/layout/activity_view_landscape.xml diff --git a/app/src/main/res/layout/activity_view.xml b/app/src/main/res/layout/activity_view_portrait.xml similarity index 100% rename from app/src/main/res/layout/activity_view.xml rename to app/src/main/res/layout/activity_view_portrait.xml diff --git a/app/src/main/res/layout/fragment_options_display.xml b/app/src/main/res/layout/fragment_options_display.xml index b5b7eb6e21..398f80ff39 100644 --- a/app/src/main/res/layout/fragment_options_display.xml +++ b/app/src/main/res/layout/fragment_options_display.xml @@ -35,6 +35,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tvLayoutHint" /> + + + app:layout_constraintTop_toBottomOf="@id/swLandscape" /> Roam like at home Manage connectivity + Use two columns in landscape mode Show on start screen Show cards Group by date