mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-04 16:16:33 +02:00
Added option for fixed nav menu in portrait mode
This commit is contained in:
@@ -177,9 +177,12 @@ 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 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 +
|
||||
Log.i("Orientation=" + config.orientation +
|
||||
" normal=" + normal +
|
||||
" portrait=" + portrait2 + "/" + portrait3 +
|
||||
" landscape=" + landscape + "/" + landscape3);
|
||||
|
||||
int viewId;
|
||||
@@ -230,8 +233,9 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
Log.i("Drawer opened");
|
||||
owner.start();
|
||||
|
||||
if (normal && landscape3 &&
|
||||
config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||
if (normal &&
|
||||
((portrait3 && config.orientation == Configuration.ORIENTATION_PORTRAIT) ||
|
||||
(landscape3 && config.orientation == Configuration.ORIENTATION_LANDSCAPE))) {
|
||||
drawerLayout.setDrawerLockMode(LOCK_MODE_LOCKED_OPEN);
|
||||
childContent.setPaddingRelative(childDrawer.getLayoutParams().width, 0, 0, 0);
|
||||
}
|
||||
@@ -246,8 +250,9 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
else
|
||||
owner.stop();
|
||||
|
||||
if (normal && landscape3 &&
|
||||
config.orientation == Configuration.ORIENTATION_LANDSCAPE)
|
||||
if (normal &&
|
||||
((portrait3 && config.orientation == Configuration.ORIENTATION_PORTRAIT) ||
|
||||
(landscape3 && config.orientation == Configuration.ORIENTATION_LANDSCAPE)))
|
||||
childContent.setPaddingRelative(
|
||||
Math.round(slideOffset * childDrawer.getLayoutParams().width), 0, 0, 0);
|
||||
}
|
||||
@@ -258,7 +263,11 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
|
||||
int drawerWidth;
|
||||
DisplayMetrics dm = getResources().getDisplayMetrics();
|
||||
if (viewId != R.layout.activity_view_landscape_split || !landscape3) {
|
||||
if (viewId == R.layout.activity_view_landscape_split && landscape3)
|
||||
drawerWidth = Helper.dp2pixels(this, 300);
|
||||
else if (viewId != R.layout.activity_view_landscape_split && portrait3)
|
||||
drawerWidth = Math.min(Helper.dp2pixels(this, 300), dm.widthPixels / 2);
|
||||
else {
|
||||
int actionBarHeight;
|
||||
TypedValue tv = new TypedValue();
|
||||
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
|
||||
@@ -269,8 +278,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
int screenWidth = Math.min(dm.widthPixels, dm.heightPixels);
|
||||
int dp320 = Helper.dp2pixels(this, 320);
|
||||
drawerWidth = Math.min(screenWidth - actionBarHeight, dp320);
|
||||
} else
|
||||
drawerWidth = Helper.dp2pixels(this, 300);
|
||||
}
|
||||
|
||||
ViewGroup.LayoutParams lparam = drawerContainer.getLayoutParams();
|
||||
lparam.width = drawerWidth;
|
||||
|
||||
@@ -51,10 +51,12 @@ public class DrawerLayoutEx extends DrawerLayout {
|
||||
void setup(Configuration config, View drawerContainer, ActionBarDrawerToggle drawerToggle) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
boolean normal = config.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_NORMAL);
|
||||
boolean portrait3 = prefs.getBoolean("portrait3", false);
|
||||
boolean landscape3 = prefs.getBoolean("landscape3", true);
|
||||
|
||||
if (normal && landscape3 &&
|
||||
config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||
if (normal &&
|
||||
((portrait3 && config.orientation == Configuration.ORIENTATION_PORTRAIT) ||
|
||||
(landscape3 && config.orientation == Configuration.ORIENTATION_LANDSCAPE))) {
|
||||
setScrimColor(Color.TRANSPARENT);
|
||||
openDrawer(drawerContainer, false);
|
||||
drawerToggle.onDrawerOpened(drawerContainer);
|
||||
|
||||
@@ -108,7 +108,7 @@ public class FragmentOptions extends FragmentBase {
|
||||
"subscriptions",
|
||||
"check_authentication", "check_reply_domain", "check_mx", "check_blocklist",
|
||||
"send_pending",
|
||||
"portrait2", "landscape", "landscape3", "nav_count", "startup",
|
||||
"portrait2", "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",
|
||||
|
||||
@@ -68,6 +68,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
private SwitchCompat swDateBold;
|
||||
private SwitchCompat swNavBarColorize;
|
||||
private SwitchCompat swPortrait2;
|
||||
private SwitchCompat swPortrait3;
|
||||
private SwitchCompat swLandscape;
|
||||
private SwitchCompat swLandscape3;
|
||||
private SwitchCompat swNavMessageCount;
|
||||
@@ -154,7 +155,8 @@ 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", "landscape", "landscape3", "nav_count",
|
||||
"date", "date_bold", "navbar_colorize",
|
||||
"portrait2", "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",
|
||||
@@ -190,6 +192,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);
|
||||
swPortrait3 = view.findViewById(R.id.swPortrait3);
|
||||
swLandscape = view.findViewById(R.id.swLandscape);
|
||||
swLandscape3 = view.findViewById(R.id.swLandscape3);
|
||||
swNavMessageCount = view.findViewById(R.id.swNavMessageCount);
|
||||
@@ -359,6 +362,13 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
}
|
||||
});
|
||||
|
||||
swPortrait3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
prefs.edit().putBoolean("portrait3", checked).apply();
|
||||
}
|
||||
});
|
||||
|
||||
swLandscape.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
@@ -1023,6 +1033,8 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
swDateBold.setEnabled(swDate.isChecked());
|
||||
swNavBarColorize.setChecked(prefs.getBoolean("navbar_colorize", false));
|
||||
swPortrait2.setChecked(prefs.getBoolean("portrait2", false));
|
||||
swPortrait3.setChecked(prefs.getBoolean("portrait3", false));
|
||||
swPortrait3.setEnabled(normal);
|
||||
swLandscape.setChecked(prefs.getBoolean("landscape", true));
|
||||
swLandscape.setEnabled(normal);
|
||||
swLandscape3.setChecked(prefs.getBoolean("landscape3", true));
|
||||
|
||||
Reference in New Issue
Block a user