From 32c1f7a71e85ff1d4cd2754f9e30061659591fb5 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 5 Aug 2018 08:06:10 +0000 Subject: [PATCH] Simplify navigation, refactoring Fixes #15 --- .../java/eu/faircode/email/ActivityView.java | 38 ++++++++++--------- .../eu/faircode/email/FragmentCompose.java | 2 +- .../eu/faircode/email/FragmentMessage.java | 2 +- .../{menu_address.xml => menu_message.xml} | 0 app/src/main/res/menu/menu_view.xml | 10 +++++ app/src/main/res/values/strings.xml | 1 - 6 files changed, 32 insertions(+), 21 deletions(-) rename app/src/main/res/menu/{menu_address.xml => menu_message.xml} (100%) create mode 100644 app/src/main/res/menu/menu_view.xml diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 947ac9500b..df7f12f158 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -38,6 +38,8 @@ import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.util.Log; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -105,9 +107,6 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack public void onItemClick(AdapterView parent, View view, int position, long id) { DrawerItem item = (DrawerItem) parent.getAdapter().getItem(position); switch (item.getId()) { - case R.string.menu_unified: - onMenuUnified(); - break; case R.string.menu_folders: onMenuFolders(); break; @@ -158,6 +157,13 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack lbm.unregisterReceiver(receiver); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.menu_view, menu); + return true; + } + @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); @@ -205,7 +211,13 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack if (drawerToggle.onOptionsItemSelected(item)) return true; - return false; + switch (item.getItemId()) { + case R.id.menu_folders: + onMenuFolders(); + return true; + default: + return false; + } } private void init() { @@ -245,26 +257,14 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack public void updateDrawer() { ArrayAdapterDrawer drawerArray = new ArrayAdapterDrawer(this, R.layout.item_drawer); - drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_unified)); - drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_folders)); drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_setup)); drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_debug)); drawerList.setAdapter(drawerArray); } - private void onMenuUnified() { - Bundle args = new Bundle(); - args.putLong("folder", -1); - - FragmentMessages fragment = new FragmentMessages(); - fragment.setArguments(args); - - FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); - fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("unified"); - fragmentTransaction.commit(); - } - private void onMenuFolders() { + getSupportFragmentManager().popBackStack("unified", 0); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.content_frame, new FragmentFolders()).addToBackStack("folders"); fragmentTransaction.commit(); @@ -380,6 +380,8 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack @Override public void onReceive(Context context, Intent intent) { if (ACTION_VIEW_MESSAGES.equals(intent.getAction())) { + getSupportFragmentManager().popBackStack("unified", 0); + FragmentMessages fragment = new FragmentMessages(); fragment.setArguments(intent.getExtras()); FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index a2101764cf..76583263a0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -218,7 +218,7 @@ public class FragmentCompose extends Fragment { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.menu_address, menu); + inflater.inflate(R.menu.menu_message, menu); super.onCreateOptionsMenu(menu, inflater); } diff --git a/app/src/main/java/eu/faircode/email/FragmentMessage.java b/app/src/main/java/eu/faircode/email/FragmentMessage.java index d0062e07d3..e4cb5a8594 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessage.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessage.java @@ -279,7 +279,7 @@ public class FragmentMessage extends Fragment { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.menu_address, menu); + inflater.inflate(R.menu.menu_message, menu); super.onCreateOptionsMenu(menu, inflater); } diff --git a/app/src/main/res/menu/menu_address.xml b/app/src/main/res/menu/menu_message.xml similarity index 100% rename from app/src/main/res/menu/menu_address.xml rename to app/src/main/res/menu/menu_message.xml diff --git a/app/src/main/res/menu/menu_view.xml b/app/src/main/res/menu/menu_view.xml new file mode 100644 index 0000000000..c868609472 --- /dev/null +++ b/app/src/main/res/menu/menu_view.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3bb5021257..70d98f02ee 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,7 +8,6 @@ %1$d operation(s) pending \'%1$s\' failed - Unified inbox Folders Setup Debug info