diff --git a/app/src/main/java/eu/faircode/email/DaoFolder.java b/app/src/main/java/eu/faircode/email/DaoFolder.java index 91dffb88d2..14ad0edcda 100644 --- a/app/src/main/java/eu/faircode/email/DaoFolder.java +++ b/app/src/main/java/eu/faircode/email/DaoFolder.java @@ -120,13 +120,6 @@ public interface DaoFolder { " GROUP BY folder.id") LiveData> liveNavigation(); - @Query("SELECT folder.* FROM folder" + - " JOIN account ON account.id = folder.account" + - " WHERE account.synchronize" + - " AND account.`primary`" + - " AND folder.type = '" + EntityFolder.DRAFTS + "'") - LiveData livePrimaryDrafts(); - @Query("SELECT COUNT(id) FROM folder" + " WHERE sync_state = 'syncing'" + " AND folder.type <> '" + EntityFolder.OUTBOX + "'") diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index bbd6542483..24b604d0f2 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -286,13 +286,25 @@ public class FragmentSetup extends FragmentBase { btnInbox.setEnabled(done); prefs.edit().putBoolean("has_accounts", done).apply(); - } - }); - db.folder().livePrimaryDrafts().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(EntityFolder draft) { - tvNoPrimaryDrafts.setVisibility(draft == null ? View.VISIBLE : View.GONE); + if (done) + new SimpleTask() { + @Override + protected EntityFolder onExecute(Context context, Bundle args) { + DB db = DB.getInstance(context); + return db.folder().getPrimaryDrafts(); + } + + @Override + protected void onExecuted(Bundle args, EntityFolder drafts) { + tvNoPrimaryDrafts.setVisibility(drafts == null ? View.VISIBLE : View.GONE); + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(getFragmentManager(), ex); + } + }.execute(FragmentSetup.this, new Bundle(), "setup:drafts"); } });