From 9931a551bc5a9473d273a3475302c57c0c31926b Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 12 Aug 2021 20:00:52 +0200 Subject: [PATCH] Split hide/settings nav actions --- .../java/eu/faircode/email/ActivityView.java | 59 +++++++++------ .../eu/faircode/email/FragmentContacts.java | 2 +- .../eu/faircode/email/FragmentOptions.java | 4 +- app/src/main/res/layout/include_nav.xml | 26 +++++-- app/src/main/res/menu/popup_nav.xml | 74 ------------------- 5 files changed, 58 insertions(+), 107 deletions(-) delete mode 100644 app/src/main/res/menu/popup_nav.xml diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index a3d86eb2ee..47c950642e 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -33,16 +33,22 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; +import android.content.res.ColorStateList; import android.content.res.Configuration; import android.graphics.Color; import android.graphics.Rect; +import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; +import android.text.SpannableString; import android.text.TextUtils; +import android.text.style.RelativeSizeSpan; +import android.text.style.StyleSpan; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.LayoutInflater; +import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -107,6 +113,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB private NestedScrollView drawerContainer; private ImageButton ibExpanderNav; private ImageButton ibPin; + private ImageButton ibHide; private ImageButton ibSettings; private ImageButton ibFetchMore; private ImageButton ibSync; @@ -278,6 +285,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB drawerContainer = findViewById(R.id.drawer_container); ibExpanderNav = drawerContainer.findViewById(R.id.ibExpanderNav); ibPin = drawerContainer.findViewById(R.id.ibPin); + ibHide = drawerContainer.findViewById(R.id.ibHide); ibSettings = drawerContainer.findViewById(R.id.ibSettings); ibFetchMore = drawerContainer.findViewById(R.id.ibFetchMore); ibSync = drawerContainer.findViewById(R.id.ibSync); @@ -326,39 +334,44 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB }); ibPin.setImageLevel(nav_pinned ? 1 : 0); + ibHide.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + View dview = LayoutInflater.from(ActivityView.this).inflate(R.layout.dialog_nav_options, null); + new AlertDialog.Builder(ActivityView.this) + .setView(dview) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + prefs.edit().putBoolean("nav_options", false).apply(); + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); + } + }); + // Navigation settings ibSettings.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(ActivityView.this, owner, ibSettings); - popupMenu.inflate(R.menu.popup_nav); + + for (int i = 0; i < FragmentOptions.PAGE_TITLES.length; i++) + popupMenu.getMenu() + .add(Menu.NONE, i, i, FragmentOptions.PAGE_TITLES[i]) + .setIcon(FragmentOptions.PAGE_ICONS[i]); + popupMenu.insertIcons(ActivityView.this); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { - int itemId = item.getItemId(); - if (itemId == R.id.menu_hide) { - View dview = LayoutInflater.from(ActivityView.this).inflate(R.layout.dialog_nav_options, null); - new AlertDialog.Builder(ActivityView.this) - .setView(dview) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - prefs.edit().putBoolean("nav_options", false).apply(); - } - }) - .setNegativeButton(android.R.string.cancel, null) - .show(); - return true; - } else if (itemId != R.id.menu_settings) { - String tab = FragmentOptions.TAB_LABELS.get(item.getOrder()); - startActivity(new Intent(ActivityView.this, ActivitySetup.class) - .setAction(tab) - .putExtra("tab", tab)); - return true; - } - return false; + String tab = FragmentOptions.TAB_LABELS.get(item.getOrder()); + startActivity(new Intent(ActivityView.this, ActivitySetup.class) + .setAction(tab) + .putExtra("tab", tab)); + return true; } }); diff --git a/app/src/main/java/eu/faircode/email/FragmentContacts.java b/app/src/main/java/eu/faircode/email/FragmentContacts.java index 9e20038377..6eb6b44810 100644 --- a/app/src/main/java/eu/faircode/email/FragmentContacts.java +++ b/app/src/main/java/eu/faircode/email/FragmentContacts.java @@ -172,7 +172,7 @@ public class FragmentContacts extends FragmentBase { final TextView tvMessage = dview.findViewById(R.id.tvMessage); CheckBox cbNotAgain = dview.findViewById(R.id.cbNotAgain); - tvMessage.setText(getText(R.string.title_delete_contacts)); + tvMessage.setText(getString(R.string.title_delete_contacts)); cbNotAgain.setVisibility(View.GONE); return new AlertDialog.Builder(getContext()) diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index ead0ada756..a7df91171d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -81,7 +81,7 @@ public class FragmentOptions extends FragmentBase { R.layout.fragment_options_misc }; - private static final int[] PAGE_TITLES = { + static final int[] PAGE_TITLES = { R.string.title_advanced_section_main, R.string.title_advanced_section_synchronize, R.string.title_advanced_section_send, @@ -94,7 +94,7 @@ public class FragmentOptions extends FragmentBase { R.string.title_advanced_section_misc }; - private static final int[] PAGE_ICONS = { + static final int[] PAGE_ICONS = { R.drawable.twotone_home_24, R.drawable.twotone_sync_24, R.drawable.twotone_send_24, diff --git a/app/src/main/res/layout/include_nav.xml b/app/src/main/res/layout/include_nav.xml index 118fc2f2bb..42ab92409d 100644 --- a/app/src/main/res/layout/include_nav.xml +++ b/app/src/main/res/layout/include_nav.xml @@ -31,6 +31,18 @@ app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/pin" /> + + @@ -67,6 +79,12 @@ app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/twotone_sync_24" /> + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - -