Added options for minimum screen size for multi column mode

pull/194/merge
M66B 3 years ago
parent 0971cdc322
commit 18c82598c3

@ -213,11 +213,21 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
Configuration config = getResources().getConfiguration();
boolean portrait2 = prefs.getBoolean("portrait2", false);
boolean portrait2c = prefs.getBoolean("portrait2c", false);
int portrait_min_size = prefs.getInt("portrait_min_size", 0);
boolean landscape = prefs.getBoolean("landscape", true);
Log.i("Orientation=" + config.orientation +
" portrait rows=" + portrait2 + " cols=" + portrait2c + " landscape cols=" + landscape);
if (config.orientation == ORIENTATION_PORTRAIT && portrait2c)
int landscape_min_size = prefs.getInt("landscape_min_size", 0);
int layout = (config.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK);
Log.i("Orientation=" + config.orientation + " layout=" + layout +
" portrait rows=" + portrait2 + " cols=" + portrait2c + " min=" + portrait_min_size +
" landscape cols=" + landscape + " min=" + landscape);
// 1=small, 2=normal, 3=large, 4=xlarge
if (layout > 0)
layout--;
if (layout < (config.orientation == ORIENTATION_PORTRAIT ? portrait_min_size : landscape_min_size))
layoutId = R.layout.activity_view_portrait;
else if (config.orientation == ORIENTATION_PORTRAIT && portrait2c)
layoutId = R.layout.activity_view_landscape_split;
else if (config.orientation == ORIENTATION_PORTRAIT || !landscape)
layoutId = (portrait2 ? R.layout.activity_view_portrait_split : R.layout.activity_view_portrait);

@ -126,7 +126,8 @@ public class FragmentOptions extends FragmentBase {
"check_authentication", "check_reply_domain", "check_mx", "check_blocklist",
"send_pending",
"startup", "cards", "beige", "tabular_card_bg", "shadow_unread", "shadow_highlight",
"portrait2", "portrait2c", "landscape", "nav_count", "nav_unseen_drafts", "navbar_colorize",
"portrait2", "portrait2c", "portrait_min_size", "landscape", "landscape_min_size",
"nav_count", "nav_unseen_drafts", "navbar_colorize",
"indentation", "date", "date_fixed", "date_bold", "threading", "threading_unread",
"highlight_unread", "highlight_color", "color_stripe", "color_stripe_wide",
"avatars", "bimi", "gravatars", "favicons", "generated_icons", "identicons", "circular", "saturation", "brightness", "threshold",

@ -70,7 +70,9 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
private SwitchCompat swNavBarColorize;
private SwitchCompat swPortrait2;
private SwitchCompat swPortrait2c;
private Spinner spPortraitMinSize;
private SwitchCompat swLandscape;
private Spinner spLandscapeMinSize;
private SwitchCompat swNavOptions;
private SwitchCompat swNavMessageCount;
private SwitchCompat swNavUnseenDrafts;
@ -203,7 +205,9 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
swDateBold = view.findViewById(R.id.swDateBold);
swPortrait2 = view.findViewById(R.id.swPortrait2);
swPortrait2c = view.findViewById(R.id.swPortrait2c);
spPortraitMinSize = view.findViewById(R.id.spPortraitMinSize);
swLandscape = view.findViewById(R.id.swLandscape);
spLandscapeMinSize = view.findViewById(R.id.spLandscapeMinSize);
swNavOptions = view.findViewById(R.id.swNavOptions);
swNavMessageCount = view.findViewById(R.id.swNavMessageCount);
swNavUnseenDrafts = view.findViewById(R.id.swNavUnseenDrafts);
@ -404,6 +408,18 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
}
});
spPortraitMinSize.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
prefs.edit().putInt("portrait_min_size", position).apply();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
prefs.edit().remove("portrait_min_size").apply();
}
});
swLandscape.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@ -411,6 +427,18 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
}
});
spLandscapeMinSize.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
prefs.edit().putInt("landscape_min_size", position).apply();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
prefs.edit().remove("landscape_min_size").apply();
}
});
swNavOptions.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@ -1114,7 +1142,9 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
swDateBold.setEnabled(swDate.isChecked() || swDateFixed.isChecked());
swPortrait2.setChecked(prefs.getBoolean("portrait2", false));
swPortrait2c.setChecked(prefs.getBoolean("portrait2c", false) && !swPortrait2.isChecked());
spPortraitMinSize.setSelection(prefs.getInt("portrait_min_size", 0));
swLandscape.setChecked(prefs.getBoolean("landscape", true));
spLandscapeMinSize.setSelection(prefs.getInt("landscape_min_size", 0));
swNavOptions.setChecked(prefs.getBoolean("nav_options", true));
swNavMessageCount.setChecked(prefs.getBoolean("nav_count", false));
swNavUnseenDrafts.setChecked(prefs.getBoolean("nav_unseen_drafts", false));

@ -294,6 +294,44 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swPortrait2c" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvPortraitMinSize"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="48dp"
android:text="@string/title_advanced_min_screen_size"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorPrimary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPortrait2cHint" />
<Spinner
android:id="@+id/spPortraitMinSize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="6dp"
android:entries="@array/minScreenSizes"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPortraitMinSize" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvPortraitSplitMinHint"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="6dp"
android:layout_marginEnd="48dp"
android:text="@string/title_advanced_split_min_hint"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/spPortraitMinSize" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvLandscape"
android:layout_width="0dp"
@ -305,7 +343,7 @@
android:textColor="?android:attr/textColorPrimary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPortrait2cHint" />
app:layout_constraintTop_toBottomOf="@id/tvPortraitSplitMinHint" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swLandscape"
@ -333,6 +371,44 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swLandscape" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvLandscapeMinSize"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="48dp"
android:text="@string/title_advanced_min_screen_size"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorPrimary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvLandscapeHint" />
<Spinner
android:id="@+id/spLandscapeMinSize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="6dp"
android:entries="@array/minScreenSizes"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvLandscapeMinSize" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvLandscapeSplitMinHint"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="6dp"
android:layout_marginEnd="48dp"
android:text="@string/title_advanced_split_min_hint"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/spLandscapeMinSize" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swNavOptions"
android:layout_width="0dp"
@ -341,7 +417,7 @@
android:text="@string/title_advanced_nav_options"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvLandscapeHint"
app:layout_constraintTop_toBottomOf="@id/tvLandscapeSplitMinHint"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat

@ -429,6 +429,7 @@
<string name="title_advanced_landscape">Landscape mode</string>
<string name="title_advanced_two_row">Use two rows</string>
<string name="title_advanced_two_col">Use two columns</string>
<string name="title_advanced_min_screen_size">Minimum screen size for splitting the screen</string>
<string name="title_advanced_nav_options">Show navigation menu options</string>
<string name="title_advanced_nav_pin">Pin navigation menu</string>
<string name="title_advanced_nav_hide_title">Hide navigation menu options?</string>
@ -746,6 +747,7 @@
<string name="title_advanced_date_hint">Messages are only grouped by date if they are sorted by time</string>
<string name="title_advanced_navbar_colorize_hint">Whether this works depends on the Android version and variant</string>
<string name="title_advanced_split_hint">This will split the screen into parts</string>
<string name="title_advanced_split_min_hint">This is a condition intended for foldable devices</string>
<string name="title_advanced_threading_hint">Group messages related to each other</string>
<string name="title_advanced_highlight_hint">The accent color of the theme will be used for highlighting</string>
<string name="title_advanced_gravatars_hint">There might be a privacy risk</string>
@ -2144,6 +2146,13 @@
<item>AES-256</item>
</string-array>
<string-array name="minScreenSizes">
<item>Small</item>
<item>Medium</item>
<item>Large</item>
<item>Extra large</item>
</string-array>
<string name="fingerprint" translatable="false">17BA15C1AF55D925F98B99CEA4375D4CDF4C174B</string>
<string name="fingerprint_amazon" translatable="false">200D0AA43A8ADBC7BB8237023C1553F4753CA7D2</string>
<string name="public_key" translatable="false">MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtFbxEbzL8u5accPGgBw/XdyiSS5BBE6ZQ9ELpKyJ/OQN+kdYniCAOw3lsQ/GuJScy4Y2HobqbBgLL8GLHG+Yu2EHC9dLjA3v2Mc25vvnfn86BsrpQvz1poN2n+roTBdq09FWbtebJ8m0hDBVmtfRi7RhTKIL4No3kodLhksdnucKjcFheubebWKgpmvbmw7NwuELhaZmyhw8WTtnQ4rZPMhjY1JJZgzwNExXgD7zzg4pJPkuQlfkuRkkvBpHpi3C7VDnYjrBlLHngI4wv3wxQBVwJqlvAT9PmX8dOVnTsWWdJdLQBZVWphuqVY54kjBIovN+o8w03WjsV9QiOQq+XwIDAQAB</string>

Loading…
Cancel
Save