diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 0fa74bbf85..9711de15e8 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -173,6 +173,13 @@ public interface DaoMessage { " ORDER BY message.received DESC") List getMessageByFolder(long folder); + @Query("SELECT id" + + " FROM message" + + " WHERE folder IN (:folders)" + + " AND NOT ui_hide" + + " ORDER BY message.received DESC") + List getMessageByFolders(List folders); + @Query("SELECT *" + " FROM message" + " WHERE account = :account" + diff --git a/app/src/main/java/eu/faircode/email/ViewModelBrowse.java b/app/src/main/java/eu/faircode/email/ViewModelBrowse.java index 5fc2e5e3c1..924aeff5f9 100644 --- a/app/src/main/java/eu/faircode/email/ViewModelBrowse.java +++ b/app/src/main/java/eu/faircode/email/ViewModelBrowse.java @@ -105,9 +105,10 @@ public class ViewModelBrowse extends ViewModel { db.beginTransaction(); if (state.messages == null) { - state.messages = new ArrayList<>(); + List fids = new ArrayList<>(); for (EntityFolder folder : folders) - state.messages.addAll(db.message().getMessageByFolder(folder.id)); + fids.add(folder.id); + state.messages = db.message().getMessageByFolders(fids); Log.i("Messages=" + state.messages.size()); }