mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-09 18:43:23 +02:00
Added inline nav menu pinning
This commit is contained in:
@@ -34,6 +34,7 @@ import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
@@ -87,7 +88,11 @@ import javax.net.ssl.HttpsURLConnection;
|
||||
|
||||
public class ActivityView extends ActivityBilling implements FragmentManager.OnBackStackChangedListener {
|
||||
private String startup;
|
||||
private boolean nav_pinned;
|
||||
private boolean nav_expanded;
|
||||
private int colorDrawerScrim;
|
||||
|
||||
private int layoutId;
|
||||
private View view;
|
||||
|
||||
private View content_separator;
|
||||
@@ -97,6 +102,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
private DrawerLayoutEx drawerLayout;
|
||||
private ActionBarDrawerToggle drawerToggle;
|
||||
private NestedScrollView drawerContainer;
|
||||
private ImageButton ibPin;
|
||||
private ImageButton ibExpanderNav;
|
||||
private ImageButton ibExpanderAccount;
|
||||
private RecyclerView rvAccount;
|
||||
@@ -109,8 +115,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
private ImageButton ibExpanderExtra;
|
||||
private RecyclerView rvMenuExtra;
|
||||
|
||||
private boolean nav_fixed;
|
||||
private boolean expanded;
|
||||
private AdapterNavAccount adapterNavAccount;
|
||||
private AdapterNavUnified adapterNavUnified;
|
||||
private AdapterNavFolder adapterNavFolder;
|
||||
@@ -174,27 +178,28 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
if (savedInstanceState != null)
|
||||
searching = savedInstanceState.getBoolean("fair:searching");
|
||||
|
||||
colorDrawerScrim = Helper.resolveColor(this, R.attr.colorDrawerScrim);
|
||||
|
||||
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
startup = prefs.getString("startup", "unified");
|
||||
nav_pinned = getDrawerPinned();
|
||||
nav_expanded = prefs.getBoolean("nav_expanded", true);
|
||||
|
||||
Configuration config = getResources().getConfiguration();
|
||||
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);
|
||||
boolean portrait2 = prefs.getBoolean("portrait2", false);
|
||||
boolean portrait2c = prefs.getBoolean("portrait2c", false);
|
||||
boolean landscape = prefs.getBoolean("landscape", true);
|
||||
Log.i("Orientation=" + config.orientation +
|
||||
" portrait 2=" + portrait2 + " 2c=" + portrait2c + " nav=" + portrait3 +
|
||||
" landscape 2=" + landscape + " nav=" + landscape3);
|
||||
" portrait rows=" + portrait2 + " cols=" + portrait2c + " landscape cols=" + landscape);
|
||||
|
||||
int viewId;
|
||||
if (config.orientation == ORIENTATION_PORTRAIT && portrait2c)
|
||||
viewId = R.layout.activity_view_landscape_split;
|
||||
layoutId = R.layout.activity_view_landscape_split;
|
||||
else if (config.orientation == ORIENTATION_PORTRAIT || !landscape)
|
||||
viewId = (portrait2 ? R.layout.activity_view_portrait_split : R.layout.activity_view_portrait);
|
||||
layoutId = (portrait2 ? R.layout.activity_view_portrait_split : R.layout.activity_view_portrait);
|
||||
else
|
||||
viewId = R.layout.activity_view_landscape_split;
|
||||
view = LayoutInflater.from(this).inflate(viewId, null);
|
||||
layoutId = R.layout.activity_view_landscape_split;
|
||||
|
||||
view = LayoutInflater.from(this).inflate(layoutId, null);
|
||||
setContentView(view);
|
||||
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
@@ -237,10 +242,10 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
Log.i("Drawer opened");
|
||||
owner.start();
|
||||
|
||||
if (((portrait3 && config.orientation == Configuration.ORIENTATION_PORTRAIT) ||
|
||||
(landscape3 && config.orientation == Configuration.ORIENTATION_LANDSCAPE))) {
|
||||
if (nav_pinned) {
|
||||
drawerLayout.setDrawerLockMode(LOCK_MODE_LOCKED_OPEN);
|
||||
childContent.setPaddingRelative(childDrawer.getLayoutParams().width, 0, 0, 0);
|
||||
int padding = childDrawer.getLayoutParams().width;
|
||||
childContent.setPaddingRelative(padding, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -253,69 +258,73 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
else
|
||||
owner.stop();
|
||||
|
||||
if (((portrait3 && config.orientation == Configuration.ORIENTATION_PORTRAIT) ||
|
||||
(landscape3 && config.orientation == Configuration.ORIENTATION_LANDSCAPE)))
|
||||
childContent.setPaddingRelative(
|
||||
Math.round(slideOffset * childDrawer.getLayoutParams().width), 0, 0, 0);
|
||||
if (nav_pinned) {
|
||||
int padding = Math.round(slideOffset * childDrawer.getLayoutParams().width);
|
||||
childContent.setPaddingRelative(padding, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
};
|
||||
drawerLayout.addDrawerListener(drawerToggle);
|
||||
|
||||
drawerContainer = findViewById(R.id.drawer_container);
|
||||
|
||||
int drawerWidth;
|
||||
DisplayMetrics dm = getResources().getDisplayMetrics();
|
||||
if (viewId == R.layout.activity_view_landscape_split && landscape3) {
|
||||
drawerWidth = Helper.dp2pixels(this, 300);
|
||||
nav_fixed = true;
|
||||
} else if (viewId != R.layout.activity_view_landscape_split && portrait3) {
|
||||
drawerWidth = Math.min(Helper.dp2pixels(this, 300), dm.widthPixels / 2);
|
||||
nav_fixed = true;
|
||||
} else {
|
||||
int actionBarHeight;
|
||||
TypedValue tv = new TypedValue();
|
||||
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
|
||||
actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, dm);
|
||||
else
|
||||
actionBarHeight = Helper.dp2pixels(this, 56);
|
||||
|
||||
int screenWidth = Math.min(dm.widthPixels, dm.heightPixels);
|
||||
int dp320 = Helper.dp2pixels(this, 320);
|
||||
drawerWidth = Math.min(screenWidth - actionBarHeight, dp320);
|
||||
}
|
||||
|
||||
int dp48 = Helper.dp2pixels(this, 48);
|
||||
expanded = (!nav_fixed || prefs.getBoolean("nav_expanded", true));
|
||||
|
||||
ViewGroup.LayoutParams lparam = drawerContainer.getLayoutParams();
|
||||
lparam.width = (expanded ? drawerWidth : dp48);
|
||||
lparam.width = getDrawerWidth();
|
||||
drawerContainer.setLayoutParams(lparam);
|
||||
|
||||
ibPin = drawerContainer.findViewById(R.id.ibPin);
|
||||
ibPin.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
nav_pinned = !nav_pinned;
|
||||
if (config.orientation == ORIENTATION_PORTRAIT)
|
||||
prefs.edit().putBoolean("portrait3", nav_pinned).apply();
|
||||
else
|
||||
prefs.edit().putBoolean("landscape3", nav_pinned).apply();
|
||||
|
||||
drawerLayout.setDrawerLockMode(nav_pinned ? LOCK_MODE_LOCKED_OPEN : LOCK_MODE_UNLOCKED);
|
||||
drawerLayout.setScrimColor(nav_pinned ? Color.TRANSPARENT : colorDrawerScrim);
|
||||
drawerLayout.openDrawer(drawerContainer, false);
|
||||
|
||||
ViewGroup.LayoutParams lparam = drawerContainer.getLayoutParams();
|
||||
lparam.width = getDrawerWidth();
|
||||
drawerContainer.setLayoutParams(lparam);
|
||||
|
||||
int padding = (nav_pinned ? childDrawer.getLayoutParams().width : 0);
|
||||
childContent.setPaddingRelative(padding, 0, 0, 0);
|
||||
|
||||
ibPin.setImageLevel(nav_pinned ? 1 : 0);
|
||||
}
|
||||
});
|
||||
ibPin.setImageLevel(nav_pinned ? 1 : 0);
|
||||
ibPin.setVisibility(nav_expanded ? View.VISIBLE : View.GONE);
|
||||
|
||||
// Navigation expander
|
||||
ibExpanderNav = drawerContainer.findViewById(R.id.ibExpanderNav);
|
||||
ibExpanderNav.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
expanded = !expanded;
|
||||
prefs.edit().putBoolean("nav_expanded", expanded).apply();
|
||||
nav_expanded = !nav_expanded;
|
||||
prefs.edit().putBoolean("nav_expanded", nav_expanded).apply();
|
||||
|
||||
lparam.width = (expanded ? drawerWidth : dp48);
|
||||
ViewGroup.LayoutParams lparam = drawerContainer.getLayoutParams();
|
||||
lparam.width = getDrawerWidth();
|
||||
drawerContainer.setLayoutParams(lparam);
|
||||
|
||||
if (nav_fixed)
|
||||
childContent.setPaddingRelative(childDrawer.getLayoutParams().width, 0, 0, 0);
|
||||
int padding = (nav_pinned ? childDrawer.getLayoutParams().width : 0);
|
||||
childContent.setPaddingRelative(padding, 0, 0, 0);
|
||||
|
||||
ibExpanderNav.setImageLevel(expanded ? 0 : 1);
|
||||
ibPin.setVisibility(nav_expanded ? View.VISIBLE : View.GONE);
|
||||
ibExpanderNav.setImageLevel(nav_expanded ? 0 : 1);
|
||||
|
||||
adapterNavAccount.setExpanded(expanded);
|
||||
adapterNavUnified.setExpanded(expanded);
|
||||
adapterNavFolder.setExpanded(expanded);
|
||||
adapterNavMenu.setExpanded(expanded);
|
||||
adapterNavMenuExtra.setExpanded(expanded);
|
||||
adapterNavAccount.setExpanded(nav_expanded);
|
||||
adapterNavUnified.setExpanded(nav_expanded);
|
||||
adapterNavFolder.setExpanded(nav_expanded);
|
||||
adapterNavMenu.setExpanded(nav_expanded);
|
||||
adapterNavMenuExtra.setExpanded(nav_expanded);
|
||||
}
|
||||
});
|
||||
ibExpanderNav.setImageLevel(expanded ? 0 : 1);
|
||||
ibExpanderNav.setVisibility(nav_fixed ? View.VISIBLE : View.GONE);
|
||||
ibExpanderNav.setImageLevel(nav_expanded ? 0 : 1);
|
||||
|
||||
// Accounts
|
||||
ibExpanderAccount = drawerContainer.findViewById(R.id.ibExpanderAccount);
|
||||
@@ -560,7 +569,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
}
|
||||
}));
|
||||
|
||||
adapterNavMenu.set(menus, expanded);
|
||||
adapterNavMenu.set(menus, nav_expanded);
|
||||
|
||||
// Collapsible menus
|
||||
|
||||
@@ -663,7 +672,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
}
|
||||
}).setExternal(true));
|
||||
|
||||
adapterNavMenuExtra.set(extra, expanded);
|
||||
adapterNavMenuExtra.set(extra, nav_expanded);
|
||||
|
||||
// Live data
|
||||
|
||||
@@ -674,7 +683,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
public void onChanged(@Nullable List<TupleAccountEx> accounts) {
|
||||
if (accounts == null)
|
||||
accounts = new ArrayList<>();
|
||||
adapterNavAccount.set(accounts, expanded);
|
||||
adapterNavAccount.set(accounts, nav_expanded);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -683,7 +692,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
public void onChanged(List<TupleFolderUnified> folders) {
|
||||
if (folders == null)
|
||||
folders = new ArrayList<>();
|
||||
adapterNavUnified.set(folders, expanded);
|
||||
adapterNavUnified.set(folders, nav_expanded);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -692,7 +701,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
public void onChanged(List<TupleFolderNav> folders) {
|
||||
if (folders == null)
|
||||
folders = new ArrayList<>();
|
||||
adapterNavFolder.set(folders, expanded);
|
||||
adapterNavFolder.set(folders, nav_expanded);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -708,7 +717,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
Log.i("Drawer start");
|
||||
owner.start();
|
||||
|
||||
drawerLayout.setup(getResources().getConfiguration(), drawerContainer, drawerToggle);
|
||||
setupDrawer();
|
||||
drawerToggle.syncState();
|
||||
}
|
||||
|
||||
@@ -762,14 +771,58 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
drawerLayout.setup(newConfig, drawerContainer, drawerToggle);
|
||||
nav_pinned = getDrawerPinned();
|
||||
setupDrawer();
|
||||
drawerToggle.onConfigurationChanged(newConfig);
|
||||
}
|
||||
|
||||
private void setupDrawer() {
|
||||
if (nav_pinned) {
|
||||
drawerLayout.setScrimColor(Color.TRANSPARENT);
|
||||
drawerLayout.openDrawer(drawerContainer, false);
|
||||
drawerToggle.onDrawerOpened(drawerContainer);
|
||||
} else {
|
||||
drawerLayout.setScrimColor(colorDrawerScrim);
|
||||
drawerLayout.closeDrawer(drawerContainer, false);
|
||||
drawerToggle.onDrawerClosed(drawerContainer);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean getDrawerPinned() {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
boolean portrait3 = prefs.getBoolean("portrait3", false);
|
||||
boolean landscape3 = prefs.getBoolean("landscape3", true);
|
||||
Configuration config = getResources().getConfiguration();
|
||||
return (config.orientation == ORIENTATION_PORTRAIT ? portrait3 : landscape3);
|
||||
}
|
||||
|
||||
private int getDrawerWidth() {
|
||||
if (!nav_expanded)
|
||||
return Helper.dp2pixels(this, 48);
|
||||
|
||||
DisplayMetrics dm = getResources().getDisplayMetrics();
|
||||
if (layoutId == R.layout.activity_view_landscape_split && nav_pinned)
|
||||
return Helper.dp2pixels(this, 300);
|
||||
else if (layoutId != R.layout.activity_view_landscape_split && nav_pinned)
|
||||
return 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))
|
||||
actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, dm);
|
||||
else
|
||||
actionBarHeight = Helper.dp2pixels(this, 56);
|
||||
|
||||
int screenWidth = Math.min(dm.widthPixels, dm.heightPixels);
|
||||
int dp320 = Helper.dp2pixels(this, 320);
|
||||
return Math.min(screenWidth - actionBarHeight, dp320);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
int count = getSupportFragmentManager().getBackStackEntryCount();
|
||||
if (!nav_fixed &&
|
||||
if (!nav_pinned &&
|
||||
drawerLayout.isDrawerOpen(drawerContainer) &&
|
||||
(!drawerLayout.isLocked(drawerContainer) || count == 1))
|
||||
drawerLayout.closeDrawer(drawerContainer);
|
||||
|
||||
@@ -20,9 +20,6 @@ package eu.faircode.email;
|
||||
*/
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Rect;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.Gravity;
|
||||
@@ -31,9 +28,7 @@ import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.ActionBarDrawerToggle;
|
||||
import androidx.drawerlayout.widget.DrawerLayout;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
public class DrawerLayoutEx extends DrawerLayout {
|
||||
public DrawerLayoutEx(@NonNull Context context) {
|
||||
@@ -48,28 +43,11 @@ public class DrawerLayoutEx extends DrawerLayout {
|
||||
super(context, attrs, defStyle);
|
||||
}
|
||||
|
||||
void setup(Configuration config, View drawerContainer, ActionBarDrawerToggle drawerToggle) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
boolean portrait3 = prefs.getBoolean("portrait3", false);
|
||||
boolean landscape3 = prefs.getBoolean("landscape3", true);
|
||||
|
||||
if (((portrait3 && config.orientation == Configuration.ORIENTATION_PORTRAIT) ||
|
||||
(landscape3 && config.orientation == Configuration.ORIENTATION_LANDSCAPE))) {
|
||||
setScrimColor(Color.TRANSPARENT);
|
||||
openDrawer(drawerContainer, false);
|
||||
drawerToggle.onDrawerOpened(drawerContainer);
|
||||
} else {
|
||||
setScrimColor(Helper.resolveColor(getContext(), R.attr.colorDrawerScrim));
|
||||
closeDrawer(drawerContainer, false);
|
||||
drawerToggle.onDrawerClosed(drawerContainer);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isLocked(View view) {
|
||||
return (getDrawerLockMode(view) != LOCK_MODE_UNLOCKED);
|
||||
}
|
||||
|
||||
public boolean isLocked() {
|
||||
private boolean isLocked() {
|
||||
return (getDrawerLockMode(Gravity.LEFT) == LOCK_MODE_LOCKED_OPEN ||
|
||||
getDrawerLockMode(Gravity.RIGHT) == LOCK_MODE_LOCKED_OPEN);
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ public class FragmentOptions extends FragmentBase {
|
||||
"subscriptions",
|
||||
"check_authentication", "check_reply_domain", "check_mx", "check_blocklist",
|
||||
"send_pending",
|
||||
"portrait2", "portrait2c", "portrait3", "landscape", "landscape3", "nav_count", "startup",
|
||||
"portrait2", "portrait2c", "landscape", "nav_count", "startup",
|
||||
"cards", "beige", "tabular_card_bg", "shadow_unread",
|
||||
"indentation", "date", "date_bold", "threading", "threading_unread",
|
||||
"highlight_unread", "highlight_color", "color_stripe",
|
||||
|
||||
@@ -22,7 +22,6 @@ package eu.faircode.email;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
@@ -69,9 +68,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
private SwitchCompat swNavBarColorize;
|
||||
private SwitchCompat swPortrait2;
|
||||
private SwitchCompat swPortrait2c;
|
||||
private SwitchCompat swPortrait3;
|
||||
private SwitchCompat swLandscape;
|
||||
private SwitchCompat swLandscape3;
|
||||
private SwitchCompat swNavMessageCount;
|
||||
|
||||
private SwitchCompat swThreading;
|
||||
@@ -157,7 +154,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", "portrait2c", "portrait3", "landscape", "landscape3", "nav_count",
|
||||
"portrait2", "portrait2c", "landscape", "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",
|
||||
@@ -194,9 +191,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
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);
|
||||
swNavMessageCount = view.findViewById(R.id.swNavMessageCount);
|
||||
|
||||
swThreading = view.findViewById(R.id.swThreading);
|
||||
@@ -375,13 +370,6 @@ 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) {
|
||||
@@ -389,13 +377,6 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
}
|
||||
});
|
||||
|
||||
swLandscape3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
prefs.edit().putBoolean("landscape3", checked).apply();
|
||||
}
|
||||
});
|
||||
|
||||
swNavMessageCount.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
@@ -1044,9 +1025,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
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));
|
||||
swLandscape.setChecked(prefs.getBoolean("landscape", true));
|
||||
swLandscape3.setChecked(prefs.getBoolean("landscape3", true));
|
||||
swNavMessageCount.setChecked(prefs.getBoolean("nav_count", false));
|
||||
|
||||
swThreading.setChecked(prefs.getBoolean("threading", true));
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M16,9V4l1,0c0.55,0 1,-0.45 1,-1v0c0,-0.55 -0.45,-1 -1,-1H7C6.45,2 6,2.45 6,3v0c0,0.55 0.45,1 1,1l1,0v5c0,1.66 -1.34,3 -3,3h0v2h5.97v7l1,1l1,-1v-7H19v-2h0C17.34,12 16,10.66 16,9z"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/pin.xml
Normal file
9
app/src/main/res/drawable/pin.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:drawable="@drawable/twotone_push_pin_24"
|
||||
android:maxLevel="0" />
|
||||
<item
|
||||
android:drawable="@drawable/twotone_push_pin_90_24"
|
||||
android:maxLevel="1" />
|
||||
</level-list>
|
||||
15
app/src/main/res/drawable/twotone_push_pin_24.xml
Normal file
15
app/src/main/res/drawable/twotone_push_pin_24.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M14,4h-4v5c0,1.1 -0.35,2.14 -1,3h6c-0.63,-0.84 -1,-1.88 -1,-3V4z"
|
||||
android:strokeAlpha="0.3"
|
||||
android:fillAlpha="0.3"/>
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M19,12c-1.66,0 -3,-1.34 -3,-3V4l1,0c0,0 0,0 0,0c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1H7C6.45,2 6,2.45 6,3s0.45,1 1,1c0,0 0,0 0,0l1,0v5c0,1.66 -1.34,3 -3,3v2h5.97v7l1,1l1,-1v-7H19L19,12C19,12 19,12 19,12zM9,12c0.65,-0.86 1,-1.9 1,-3V4h4v5c0,1.12 0.37,2.16 1,3H9z"/>
|
||||
</vector>
|
||||
20
app/src/main/res/drawable/twotone_push_pin_90_24.xml
Normal file
20
app/src/main/res/drawable/twotone_push_pin_90_24.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<group
|
||||
android:pivotX="12.0"
|
||||
android:pivotY="12.0"
|
||||
android:rotation="90">
|
||||
<path
|
||||
android:fillAlpha="0.3"
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M14,4h-4v5c0,1.1 -0.35,2.14 -1,3h6c-0.63,-0.84 -1,-1.88 -1,-3V4z"
|
||||
android:strokeAlpha="0.3" />
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M19,12c-1.66,0 -3,-1.34 -3,-3V4l1,0c0,0 0,0 0,0c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1H7C6.45,2 6,2.45 6,3s0.45,1 1,1c0,0 0,0 0,0l1,0v5c0,1.66 -1.34,3 -3,3v2h5.97v7l1,1l1,-1v-7H19L19,12C19,12 19,12 19,12zM9,12c0.65,-0.86 1,-1.9 1,-3V4h4v5c0,1.12 0.37,2.16 1,3H9z" />
|
||||
</group>
|
||||
</vector>
|
||||
@@ -218,7 +218,7 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:drawableEnd="@drawable/baseline_push_pin_24"
|
||||
android:drawableEnd="@drawable/twotone_push_pin_24"
|
||||
android:drawablePadding="6dp"
|
||||
android:text="@string/title_pin"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||
|
||||
@@ -265,7 +265,7 @@
|
||||
android:padding="12dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivEncrypted"
|
||||
app:srcCompat="@drawable/baseline_push_pin_24" />
|
||||
app:srcCompat="@drawable/twotone_push_pin_24" />
|
||||
|
||||
<eu.faircode.email.FixedTextView
|
||||
android:id="@+id/tvClassified"
|
||||
|
||||
@@ -294,18 +294,6 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/swPortrait2c" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/swPortrait3"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/title_advanced_default_nav"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvPortrait2cHint"
|
||||
app:switchPadding="12dp" />
|
||||
|
||||
<eu.faircode.email.FixedTextView
|
||||
android:id="@+id/tvLandscape"
|
||||
android:layout_width="0dp"
|
||||
@@ -317,7 +305,7 @@
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/swPortrait3" />
|
||||
app:layout_constraintTop_toBottomOf="@id/tvPortrait2cHint" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/swLandscape"
|
||||
@@ -345,19 +333,6 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/swLandscape" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/swLandscape3"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:checked="true"
|
||||
android:text="@string/title_advanced_default_nav"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvLandscapeHint"
|
||||
app:switchPadding="12dp" />
|
||||
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/swNavMessageCount"
|
||||
android:layout_width="0dp"
|
||||
@@ -366,7 +341,7 @@
|
||||
android:text="@string/title_advanced_nav_message_count"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/swLandscape3"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvLandscapeHint"
|
||||
app:switchPadding="12dp" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
||||
app:layout_constraintStart_toEndOf="@id/ivFound"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
||||
app:srcCompat="@drawable/baseline_push_pin_24" />
|
||||
app:srcCompat="@drawable/twotone_push_pin_24" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/ibSnoozed"
|
||||
|
||||
@@ -270,7 +270,7 @@
|
||||
android:padding="6dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:tooltipText="@string/title_pin"
|
||||
app:srcCompat="@drawable/baseline_push_pin_24"
|
||||
app:srcCompat="@drawable/twotone_push_pin_24"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
<ImageButton
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
||||
app:layout_constraintStart_toEndOf="@id/ivFound"
|
||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
||||
app:srcCompat="@drawable/baseline_push_pin_24" />
|
||||
app:srcCompat="@drawable/twotone_push_pin_24" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/ibSnoozed"
|
||||
|
||||
@@ -8,12 +8,24 @@
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/ibPin"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:contentDescription="@string/title_pin"
|
||||
android:padding="6dp"
|
||||
app:layout_constraintEnd_toStartOf="@+id/ibExpanderNav"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/pin" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/ibExpanderNav"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:contentDescription="@string/title_legend_expander"
|
||||
android:padding="6dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/expander_hor" />
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_pin"
|
||||
android:icon="@drawable/baseline_push_pin_24"
|
||||
android:icon="@drawable/twotone_push_pin_24"
|
||||
android:title="@string/title_pin" />
|
||||
|
||||
<item
|
||||
|
||||
Reference in New Issue
Block a user