From 54aea5a25484f2cd26d1cda2506564b0ec20e477 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 15 Feb 2022 10:17:38 +0100 Subject: [PATCH] Use cursor for FTS --- app/src/main/java/eu/faircode/email/DaoMessage.java | 2 +- app/src/main/java/eu/faircode/email/WorkerFts.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 411b63ecec..3da76991d7 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -330,7 +330,7 @@ public interface DaoMessage { " AND NOT fts" + " AND folder.type <> '" + EntityFolder.OUTBOX + "'" + " ORDER BY message.received") - List getMessageFts(); + Cursor getMessageFts(); @Query("SELECT message.id, account, thread, (:find IS NULL" + " OR (:senders AND `from` LIKE :find COLLATE NOCASE)" + // no index diff --git a/app/src/main/java/eu/faircode/email/WorkerFts.java b/app/src/main/java/eu/faircode/email/WorkerFts.java index 3377173992..6e1d96cb90 100644 --- a/app/src/main/java/eu/faircode/email/WorkerFts.java +++ b/app/src/main/java/eu/faircode/email/WorkerFts.java @@ -23,6 +23,7 @@ import static android.os.Process.THREAD_PRIORITY_BACKGROUND; import android.content.Context; import android.content.SharedPreferences; +import android.database.Cursor; import androidx.annotation.NonNull; import androidx.preference.PreferenceManager; @@ -66,8 +67,10 @@ public class WorkerFts extends Worker { SQLiteDatabase sdb = FtsDbHelper.getInstance(context); - for (long id : db.message().getMessageFts()) + Cursor cursor = db.message().getMessageFts(); + while (cursor != null && cursor.moveToNext()) try { + long id = cursor.getLong(0); Log.i("FTS index=" + id); ids.add(id);