diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java
index 2b71515b1a..81a8b73961 100644
--- a/app/src/main/java/eu/faircode/email/ActivityView.java
+++ b/app/src/main/java/eu/faircode/email/ActivityView.java
@@ -54,6 +54,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AlertDialog;
+import androidx.constraintlayout.widget.Group;
import androidx.core.app.NotificationCompat;
import androidx.core.widget.NestedScrollView;
import androidx.fragment.app.Fragment;
@@ -102,8 +103,9 @@ 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 ibPin;
+ private ImageButton ibSettings;
private ImageButton ibExpanderAccount;
private RecyclerView rvAccount;
private ImageButton ibExpanderUnified;
@@ -114,6 +116,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
private RecyclerView rvMenu;
private ImageButton ibExpanderExtra;
private RecyclerView rvMenuExtra;
+ private Group grpOptions;
private AdapterNavAccount adapterNavAccount;
private AdapterNavUnified adapterNavUnified;
@@ -267,12 +270,52 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
drawerLayout.addDrawerListener(drawerToggle);
drawerContainer = findViewById(R.id.drawer_container);
+ ibExpanderNav = drawerContainer.findViewById(R.id.ibExpanderNav);
+ ibPin = drawerContainer.findViewById(R.id.ibPin);
+ ibSettings = drawerContainer.findViewById(R.id.ibSettings);
+ grpOptions = drawerContainer.findViewById(R.id.grpOptions);
+ ibExpanderAccount = drawerContainer.findViewById(R.id.ibExpanderAccount);
+ rvAccount = drawerContainer.findViewById(R.id.rvAccount);
+ ibExpanderUnified = drawerContainer.findViewById(R.id.ibExpanderUnified);
+ rvUnified = drawerContainer.findViewById(R.id.rvUnified);
+ ibExpanderFolder = drawerContainer.findViewById(R.id.ibExpanderFolder);
+ rvFolder = drawerContainer.findViewById(R.id.rvFolder);
+ ibExpanderMenu = drawerContainer.findViewById(R.id.ibExpanderMenu);
+ rvMenu = drawerContainer.findViewById(R.id.rvMenu);
+ ibExpanderExtra = drawerContainer.findViewById(R.id.ibExpanderExtra);
+ rvMenuExtra = drawerContainer.findViewById(R.id.rvMenuExtra);
ViewGroup.LayoutParams lparam = drawerContainer.getLayoutParams();
lparam.width = getDrawerWidth();
drawerContainer.setLayoutParams(lparam);
- ibPin = drawerContainer.findViewById(R.id.ibPin);
+ // Navigation expander
+ ibExpanderNav.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ nav_expanded = !nav_expanded;
+ prefs.edit().putBoolean("nav_expanded", nav_expanded).apply();
+
+ 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);
+
+ grpOptions.setVisibility(nav_expanded ? View.VISIBLE : View.GONE);
+ ibExpanderNav.setImageLevel(nav_expanded ? 0 : 1);
+
+ adapterNavAccount.setExpanded(nav_expanded);
+ adapterNavUnified.setExpanded(nav_expanded);
+ adapterNavFolder.setExpanded(nav_expanded);
+ adapterNavMenu.setExpanded(nav_expanded);
+ adapterNavMenuExtra.setExpanded(nav_expanded);
+ }
+ });
+ ibExpanderNav.setImageLevel(nav_expanded ? 0 : 1);
+
+ // Navigation pinning
ibPin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -297,39 +340,21 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
}
});
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() {
+ ibSettings.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- nav_expanded = !nav_expanded;
- prefs.edit().putBoolean("nav_expanded", nav_expanded).apply();
-
- 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.setVisibility(nav_expanded ? View.VISIBLE : View.GONE);
- ibExpanderNav.setImageLevel(nav_expanded ? 0 : 1);
-
- adapterNavAccount.setExpanded(nav_expanded);
- adapterNavUnified.setExpanded(nav_expanded);
- adapterNavFolder.setExpanded(nav_expanded);
- adapterNavMenu.setExpanded(nav_expanded);
- adapterNavMenuExtra.setExpanded(nav_expanded);
+ Intent privacy = new Intent(v.getContext(), ActivitySetup.class)
+ .setAction("display")
+ .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .putExtra("tab", "display");
+ v.getContext().startActivity(privacy);
}
});
- ibExpanderNav.setImageLevel(nav_expanded ? 0 : 1);
- // Accounts
- ibExpanderAccount = drawerContainer.findViewById(R.id.ibExpanderAccount);
+ grpOptions.setVisibility(nav_expanded ? View.VISIBLE : View.GONE);
- rvAccount = drawerContainer.findViewById(R.id.rvAccount);
+ // Accounts
rvAccount.setLayoutManager(new LinearLayoutManager(this));
adapterNavAccount = new AdapterNavAccount(this, this);
rvAccount.setAdapter(adapterNavAccount);
@@ -349,9 +374,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
});
// Unified system folders
- ibExpanderUnified = drawerContainer.findViewById(R.id.ibExpanderUnified);
-
- rvUnified = drawerContainer.findViewById(R.id.rvUnified);
rvUnified.setLayoutManager(new LinearLayoutManager(this));
adapterNavUnified = new AdapterNavUnified(this, this);
rvUnified.setAdapter(adapterNavUnified);
@@ -371,9 +393,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
});
// Navigation folders
- ibExpanderFolder = drawerContainer.findViewById(R.id.ibExpanderFolder);
-
- rvFolder = drawerContainer.findViewById(R.id.rvFolder);
rvFolder.setLayoutManager(new LinearLayoutManager(this));
adapterNavFolder = new AdapterNavFolder(this, this);
rvFolder.setAdapter(adapterNavFolder);
@@ -393,9 +412,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
});
// Menus
- ibExpanderMenu = drawerContainer.findViewById(R.id.ibExpanderMenu);
-
- rvMenu = drawerContainer.findViewById(R.id.rvMenu);
rvMenu.setLayoutManager(new LinearLayoutManager(this));
adapterNavMenu = new AdapterNavMenu(this, this);
rvMenu.setAdapter(adapterNavMenu);
@@ -415,9 +431,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
});
// Extra menus
- ibExpanderExtra = drawerContainer.findViewById(R.id.ibExpanderExtra);
-
- rvMenuExtra = drawerContainer.findViewById(R.id.rvMenuExtra);
LinearLayoutManager llm = new LinearLayoutManager(this);
rvMenuExtra.setLayoutManager(llm);
adapterNavMenuExtra = new AdapterNavMenu(this, this);
@@ -804,8 +817,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
if (nav_pinned) {
int maxWidth = dm.widthPixels - Helper.dp2pixels(this, 300);
return Math.min(Helper.dp2pixels(this, 300), maxWidth);
- }
- else {
+ } else {
int actionBarHeight;
TypedValue tv = new TypedValue();
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
diff --git a/app/src/main/res/layout/include_nav.xml b/app/src/main/res/layout/include_nav.xml
index 9186299948..931966fb03 100644
--- a/app/src/main/res/layout/include_nav.xml
+++ b/app/src/main/res/layout/include_nav.xml
@@ -8,6 +8,17 @@
android:focusable="true"
android:focusableInTouchMode="true">
+
+
+ app:srcCompat="@drawable/twotone_settings_24" />
+
+
+
+