diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index dc8b53380f..d1346cca7d 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -2144,8 +2144,13 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB } private void onViewMessages(Intent intent) { + boolean unified = intent.getBooleanExtra("unified", false); if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) - getSupportFragmentManager().popBackStack("messages", FragmentManager.POP_BACK_STACK_INCLUSIVE); + if (unified && "unified".equals(startup)) { + getSupportFragmentManager().popBackStack("unified", 0); + return; + } else + getSupportFragmentManager().popBackStack("messages", FragmentManager.POP_BACK_STACK_INCLUSIVE); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); boolean foldernav = prefs.getBoolean("foldernav", false); @@ -2167,7 +2172,8 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB fragment.setArguments(args); FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); - fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("messages"); + fragmentTransaction.replace(R.id.content_frame, fragment) + .addToBackStack(unified ? "unified" : "messages"); fragmentTransaction.commit(); } diff --git a/app/src/main/java/eu/faircode/email/AdapterNavUnified.java b/app/src/main/java/eu/faircode/email/AdapterNavUnified.java index 5a15ec7c6e..0ad63f4a2c 100644 --- a/app/src/main/java/eu/faircode/email/AdapterNavUnified.java +++ b/app/src/main/java/eu/faircode/email/AdapterNavUnified.java @@ -159,14 +159,11 @@ public class AdapterNavUnified extends RecyclerView.Adapter 1) + else if (folder.folders > 1 || folder.type == null) lbm.sendBroadcast( new Intent(ActivityView.ACTION_VIEW_MESSAGES) - .putExtra("type", folder.type)); + .putExtra("type", folder.type) + .putExtra("unified", folder.type == null)); else { Bundle args = new Bundle(); args.putString("type", folder.type); diff --git a/app/src/main/java/eu/faircode/email/FragmentAccounts.java b/app/src/main/java/eu/faircode/email/FragmentAccounts.java index ef5b5e84f7..ebb56a4249 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccounts.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccounts.java @@ -399,12 +399,10 @@ public class FragmentAccounts extends FragmentBase { } private void onMenuUnified() { - FragmentMessages fragment = new FragmentMessages(); - fragment.setArguments(new Bundle()); - - FragmentTransaction fragmentTransaction = getParentFragmentManager().beginTransaction(); - fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("messages"); - fragmentTransaction.commit(); + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext()); + lbm.sendBroadcast( + new Intent(ActivityView.ACTION_VIEW_MESSAGES) + .putExtra("unified", true)); } private void onMenuOutbox() { diff --git a/app/src/main/java/eu/faircode/email/FragmentFolders.java b/app/src/main/java/eu/faircode/email/FragmentFolders.java index f315a25e1e..31c8c5b2b0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentFolders.java +++ b/app/src/main/java/eu/faircode/email/FragmentFolders.java @@ -760,12 +760,10 @@ public class FragmentFolders extends FragmentBase { } private void onMenuUnified() { - FragmentMessages fragment = new FragmentMessages(); - fragment.setArguments(new Bundle()); - - FragmentTransaction fragmentTransaction = getParentFragmentManager().beginTransaction(); - fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("messages"); - fragmentTransaction.commit(); + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext()); + lbm.sendBroadcast( + new Intent(ActivityView.ACTION_VIEW_MESSAGES) + .putExtra("unified", true)); } private void onMenuOutbox() {