diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 8df7ca9155..35ec743e4b 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -779,6 +779,33 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB private void init() { Bundle args = new Bundle(); + if ("inbox".equals(startup)) { + new SimpleTask() { + @Override + protected EntityFolder onExecute(Context context, Bundle args) throws Throwable { + DB db = DB.getInstance(context); + return db.folder().getFolderPrimary(EntityFolder.INBOX); + } + + @Override + protected void onExecuted(Bundle args, EntityFolder inbox) { + FragmentBase fragment = new FragmentMessages(); + if (inbox != null) { + args.putLong("account", inbox.account); + args.putLong("folder", inbox.id); + } + fragment.setArguments(args); + setFragment(fragment); + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Log.unexpectedError(getSupportFragmentManager(), ex); + } + }.execute(this, new Bundle(), "primary"); + return; + } + FragmentBase fragment; switch (startup) { case "accounts": @@ -798,7 +825,10 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB } fragment.setArguments(args); + setFragment(fragment); + } + private void setFragment(Fragment fragment) { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fm.beginTransaction(); for (Fragment existing : fm.getFragments()) diff --git a/app/src/main/java/eu/faircode/email/DaoFolder.java b/app/src/main/java/eu/faircode/email/DaoFolder.java index 44dc34a55d..6517d2d24b 100644 --- a/app/src/main/java/eu/faircode/email/DaoFolder.java +++ b/app/src/main/java/eu/faircode/email/DaoFolder.java @@ -245,8 +245,8 @@ public interface DaoFolder { " JOIN account ON account.id = folder.account" + " WHERE account.synchronize" + " AND account.`primary`" + - " AND type = '" + EntityFolder.DRAFTS + "'") - EntityFolder getPrimaryDrafts(); + " AND type = :type") + EntityFolder getFolderPrimary(String type); @Query("SELECT * FROM folder WHERE type = '" + EntityFolder.OUTBOX + "'") EntityFolder getOutbox(); diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogIdentity.java b/app/src/main/java/eu/faircode/email/FragmentDialogIdentity.java index 78fae01323..6c13eddbb2 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogIdentity.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogIdentity.java @@ -267,7 +267,7 @@ public class FragmentDialogIdentity extends FragmentDialogBase { DB db = DB.getInstance(context); if (account < 0) - return db.folder().getPrimaryDrafts(); + return db.folder().getFolderPrimary(EntityFolder.DRAFTS); else return db.folder().getFolderByType(account, EntityFolder.DRAFTS); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3e0ff75f0b..04f66c83d9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2551,6 +2551,7 @@ folders primary accounts + inbox @@ -2558,6 +2559,7 @@ Unified folders Primary account folders Accounts + Primary inbox