Rearranged nav options

pull/203/head
M66B 4 years ago
parent effa8809a9
commit a55230f36b

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

@ -8,6 +8,17 @@
android:focusable="true" android:focusable="true"
android:focusableInTouchMode="true"> android:focusableInTouchMode="true">
<ImageButton
android:id="@+id/ibExpanderNav"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_expander"
android:padding="6dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/expander_hor" />
<ImageButton <ImageButton
android:id="@+id/ibPin" android:id="@+id/ibPin"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -15,20 +26,35 @@
android:background="?android:attr/selectableItemBackgroundBorderless" android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_pin" android:contentDescription="@string/title_pin"
android:padding="6dp" android:padding="6dp"
app:layout_constraintEnd_toStartOf="@+id/ibExpanderNav" app:layout_constraintStart_toEndOf="@id/ibExpanderNav"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/pin" /> app:srcCompat="@drawable/pin" />
<ImageButton <ImageButton
android:id="@+id/ibExpanderNav" android:id="@+id/ibSettings"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackgroundBorderless" android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_expander" android:contentDescription="@string/title_setup"
android:padding="6dp" android:padding="6dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/ibPin"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/expander_hor" /> 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 <ImageButton
android:id="@+id/ibExpanderAccount" android:id="@+id/ibExpanderAccount"
@ -38,7 +64,7 @@
android:contentDescription="@string/title_legend_expander" android:contentDescription="@string/title_legend_expander"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ibExpanderNav" app:layout_constraintTop_toBottomOf="@id/vSeparatorOptions"
app:srcCompat="@drawable/expander" /> app:srcCompat="@drawable/expander" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView

Loading…
Cancel
Save