Rearranged nav options

This commit is contained in:
M66B 2021-08-12 08:12:19 +02:00
parent effa8809a9
commit a55230f36b
2 changed files with 93 additions and 55 deletions

View File

@ -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);
grpOptions.setVisibility(nav_expanded ? View.VISIBLE : View.GONE);
// Accounts
ibExpanderAccount = drawerContainer.findViewById(R.id.ibExpanderAccount);
rvAccount = drawerContainer.findViewById(R.id.rvAccount);
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))

View File

@ -8,17 +8,6 @@
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/selectableItemBackgroundBorderless"
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"
@ -26,10 +15,47 @@
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_expander"
android:padding="6dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/expander_hor" />
<ImageButton
android:id="@+id/ibPin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_pin"
android:padding="6dp"
app:layout_constraintStart_toEndOf="@id/ibExpanderNav"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/pin" />
<ImageButton
android:id="@+id/ibSettings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_setup"
android:padding="6dp"
app:layout_constraintStart_toEndOf="@id/ibPin"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/twotone_settings_24" />
<View
android:id="@+id/vSeparatorOptions"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ibExpanderNav" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpOptions"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="ibPin,ibSettings" />
<ImageButton
android:id="@+id/ibExpanderAccount"
android:layout_width="0dp"
@ -38,7 +64,7 @@
android:contentDescription="@string/title_legend_expander"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ibExpanderNav"
app:layout_constraintTop_toBottomOf="@id/vSeparatorOptions"
app:srcCompat="@drawable/expander" />
<androidx.recyclerview.widget.RecyclerView