From 834e84273bfc5f737d886e68048018d93a7afd4e Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 27 Jul 2019 20:09:12 +0200 Subject: [PATCH] Added select all for search results --- app/src/main/java/eu/faircode/email/DaoMessage.java | 12 +++++++----- .../java/eu/faircode/email/FragmentMessages.java | 8 ++++++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index ad96041caa..5640f6e1a9 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -201,13 +201,15 @@ public interface DaoMessage { List getMessageIdsByFolder(Long folder); @Query("SELECT message.id" + - " FROM folder" + - " JOIN message ON message.folder = folder.id" + - " WHERE CASE WHEN :folder IS NULL THEN folder.unified ELSE folder.id = :folder END" + + " FROM message" + + " JOIN folder ON folder.id = message.folder" + + " WHERE ((:search AND ui_found)" + + " OR (NOT :search AND :folder IS NULL AND folder.unified)" + + " OR (NOT :search AND folder.id = :folder))" + " AND ui_hide = 0" + - " AND (ui_snoozed IS NULL OR :snoozed)" + + " AND (:snoozed OR ui_snoozed IS NULL)" + " ORDER BY message.received DESC") - List getMessageAll(Long folder, boolean snoozed); + List getMessageIds(Long folder, boolean search, boolean snoozed); @Query("SELECT id" + " FROM message" + diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 14cb192034..2d8d320929 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -2445,7 +2445,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. menu.findItem(R.id.menu_compact).setChecked(prefs.getBoolean("compact", false)); menu.findItem(R.id.menu_select_all).setVisible(!outbox && - (viewType == AdapterMessage.ViewType.UNIFIED || viewType == AdapterMessage.ViewType.FOLDER)); + (viewType == AdapterMessage.ViewType.UNIFIED || + viewType == AdapterMessage.ViewType.FOLDER || + viewType == AdapterMessage.ViewType.SEARCH)); super.onPrepareOptionsMenu(menu); } @@ -2610,16 +2612,18 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. Bundle args = new Bundle(); args.putLong("id", folder); + args.putBoolean("search", viewType == AdapterMessage.ViewType.SEARCH); args.putBoolean("snoozed", snoozed); new SimpleTask>() { @Override protected List onExecute(Context context, Bundle args) { long id = args.getLong("id"); + boolean search = args.getBoolean("search"); boolean snoozed = args.getBoolean("snoozed"); DB db = DB.getInstance(context); - return db.message().getMessageAll(id < 0 ? null : id, snoozed); + return db.message().getMessageIds(id < 0 ? null : id, search, snoozed); } @Override