diff --git a/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java b/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java index 3cc162bc5f..9b5523c9b3 100644 --- a/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java +++ b/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java @@ -189,10 +189,8 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback match(SQLiteDatabase db, Long folder, String search) { + static List match(SQLiteDatabase db, Long folder, String search) { Log.i("FTS folder=" + folder + " search=" + search); List result = new ArrayList<>(); try (Cursor cursor = db.query( @@ -106,7 +104,7 @@ public class FtsDbHelper extends SQLiteOpenHelper { return result; } - Cursor getIds(SQLiteDatabase db) { + static Cursor getIds(SQLiteDatabase db) { return db.query( "message", new String[]{"rowid"}, null, null, diff --git a/app/src/main/java/eu/faircode/email/WorkerCleanup.java b/app/src/main/java/eu/faircode/email/WorkerCleanup.java index 23c0849731..8e53c6a2b2 100644 --- a/app/src/main/java/eu/faircode/email/WorkerCleanup.java +++ b/app/src/main/java/eu/faircode/email/WorkerCleanup.java @@ -195,17 +195,15 @@ public class WorkerCleanup extends Worker { Log.i("Cleanup FTS"); int fts = 0; - FtsDbHelper ftsDb = new FtsDbHelper(context); - try (SQLiteDatabase sdb = ftsDb.getWritableDatabase()) { - try (Cursor cursor = ftsDb.getIds(sdb)) { - while (cursor.moveToNext()) { - long rowid = cursor.getLong(0); - EntityMessage message = db.message().getMessage(rowid); - if (message == null) { - Log.i("Deleting rowid" + rowid); - ftsDb.delete(sdb, rowid); - fts++; - } + SQLiteDatabase sdb = FtsDbHelper.getInstance(context); + try (Cursor cursor = FtsDbHelper.getIds(sdb)) { + while (cursor.moveToNext()) { + long rowid = cursor.getLong(0); + EntityMessage message = db.message().getMessage(rowid); + if (message == null) { + Log.i("Deleting rowid" + rowid); + FtsDbHelper.delete(sdb, rowid); + fts++; } } } diff --git a/app/src/main/java/eu/faircode/email/WorkerFts.java b/app/src/main/java/eu/faircode/email/WorkerFts.java index 19b63cf8cf..3bc45f947d 100644 --- a/app/src/main/java/eu/faircode/email/WorkerFts.java +++ b/app/src/main/java/eu/faircode/email/WorkerFts.java @@ -55,24 +55,23 @@ public class WorkerFts extends Worker { Log.i("FTS index"); int indexed = 0; - FtsDbHelper ftsDb = new FtsDbHelper(getApplicationContext()); - try (SQLiteDatabase sdb = ftsDb.getWritableDatabase()) { - DB db = DB.getInstance(getApplicationContext()); - try (Cursor cursor = db.message().getMessageFts()) { - while (cursor.moveToNext()) { - EntityMessage message = db.message().getMessage(cursor.getLong(0)); - if (message != null) - try { - Log.i("FTS index=" + message.id); - File file = message.getFile(getApplicationContext()); - String html = Helper.readText(file); - ftsDb.insert(sdb, message, HtmlHelper.getText(html)); - db.message().setMessageFts(message.id, true); - indexed++; - } catch (Throwable ex) { - Log.e(ex); - } - } + DB db = DB.getInstance(getApplicationContext()); + SQLiteDatabase sdb = FtsDbHelper.getInstance(getApplicationContext()); + try (Cursor cursor = db.message().getMessageFts()) { + while (cursor.moveToNext()) { + EntityMessage message = db.message().getMessage(cursor.getLong(0)); + if (message != null) + try { + Log.i("FTS index=" + message.id); + File file = message.getFile(getApplicationContext()); + String html = Helper.readText(file); + String text = HtmlHelper.getText(html); + FtsDbHelper.insert(sdb, message, text); + db.message().setMessageFts(message.id, true); + indexed++; + } catch (Throwable ex) { + Log.e(ex); + } } }