From d9375b9ed45f0bd7d7a8b8a91c7fd97dcb1da238 Mon Sep 17 00:00:00 2001 From: Arne Date: Sun, 1 Sep 2024 09:25:52 +0200 Subject: [PATCH] Apply monocles database backend --- .../persistance/DatabaseBackend.java | 136 +++++++++--------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java index 653cd295b..3c9d60328 100644 --- a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java @@ -225,85 +225,85 @@ public class DatabaseBackend extends SQLiteOpenHelper { return instance; } - protected void cheogramMigrate(SQLiteDatabase db) { + protected void monoclesMigrate(SQLiteDatabase db) { db.beginTransaction(); try { - Cursor cursor = db.rawQuery("PRAGMA cheogram.user_version", null); + Cursor cursor = db.rawQuery("PRAGMA monocles.user_version", null); cursor.moveToNext(); - int cheogramVersion = cursor.getInt(0); + int monoclesVersion = cursor.getInt(0); cursor.close(); - if(cheogramVersion < 1) { + if(monoclesVersion < 1) { // No cross-DB foreign keys unfortunately db.execSQL( - "CREATE TABLE cheogram." + Message.TABLENAME + "(" + + "CREATE TABLE monocles." + Message.TABLENAME + "(" + Message.UUID + " TEXT PRIMARY KEY, " + "subject TEXT" + ")" ); - db.execSQL("PRAGMA cheogram.user_version = 1"); + db.execSQL("PRAGMA monocles.user_version = 1"); } - if(cheogramVersion < 2) { + if(monoclesVersion < 2) { db.execSQL( - "ALTER TABLE cheogram." + Message.TABLENAME + " " + + "ALTER TABLE monocles." + Message.TABLENAME + " " + "ADD COLUMN oobUri TEXT" ); db.execSQL( - "ALTER TABLE cheogram." + Message.TABLENAME + " " + + "ALTER TABLE monocles." + Message.TABLENAME + " " + "ADD COLUMN fileParams TEXT" ); - db.execSQL("PRAGMA cheogram.user_version = 2"); + db.execSQL("PRAGMA monocles.user_version = 2"); } - if(cheogramVersion < 3) { + if(monoclesVersion < 3) { db.execSQL( - "ALTER TABLE cheogram." + Message.TABLENAME + " " + + "ALTER TABLE monocles." + Message.TABLENAME + " " + "ADD COLUMN payloads TEXT" ); - db.execSQL("PRAGMA cheogram.user_version = 3"); + db.execSQL("PRAGMA monocles.user_version = 3"); } - if(cheogramVersion < 4) { + if(monoclesVersion < 4) { db.execSQL( - "CREATE TABLE cheogram.cids (" + + "CREATE TABLE monocles.cids (" + "cid TEXT NOT NULL PRIMARY KEY," + "path TEXT NOT NULL" + ")" ); - db.execSQL("PRAGMA cheogram.user_version = 4"); + db.execSQL("PRAGMA monocles.user_version = 4"); } - if(cheogramVersion < 5) { + if(monoclesVersion < 5) { db.execSQL( - "ALTER TABLE cheogram." + Message.TABLENAME + " " + + "ALTER TABLE monocles." + Message.TABLENAME + " " + "ADD COLUMN timeReceived NUMBER" ); - db.execSQL("CREATE INDEX cheogram.message_time_received_index ON " + Message.TABLENAME + " (timeReceived)"); - db.execSQL("PRAGMA cheogram.user_version = 5"); + db.execSQL("CREATE INDEX monocles.message_time_received_index ON " + Message.TABLENAME + " (timeReceived)"); + db.execSQL("PRAGMA monocles.user_version = 5"); } - if(cheogramVersion < 6) { + if(monoclesVersion < 6) { db.execSQL( - "CREATE TABLE cheogram.blocked_media (" + + "CREATE TABLE monocles.blocked_media (" + "cid TEXT NOT NULL PRIMARY KEY" + ")" ); - db.execSQL("PRAGMA cheogram.user_version = 6"); + db.execSQL("PRAGMA monocles.user_version = 6"); } - if(cheogramVersion < 7) { + if(monoclesVersion < 7) { db.execSQL( - "ALTER TABLE cheogram.cids " + + "ALTER TABLE monocles.cids " + "ADD COLUMN url TEXT" ); - db.execSQL("PRAGMA cheogram.user_version = 7"); + db.execSQL("PRAGMA monocles.user_version = 7"); } - if(cheogramVersion < 8) { + if(monoclesVersion < 8) { db.execSQL( - "CREATE TABLE cheogram.webxdc_updates (" + + "CREATE TABLE monocles.webxdc_updates (" + "serial INTEGER PRIMARY KEY AUTOINCREMENT, " + Message.CONVERSATION + " TEXT NOT NULL, " + "sender TEXT NOT NULL, " + @@ -315,22 +315,22 @@ public class DatabaseBackend extends SQLiteOpenHelper { "payload TEXT" + ")" ); - db.execSQL("CREATE INDEX cheogram.webxdc_index ON webxdc_updates (" + Message.CONVERSATION + ", thread)"); - db.execSQL("PRAGMA cheogram.user_version = 8"); + db.execSQL("CREATE INDEX monocles.webxdc_index ON webxdc_updates (" + Message.CONVERSATION + ", thread)"); + db.execSQL("PRAGMA monocles.user_version = 8"); } - if(cheogramVersion < 9) { + if(monoclesVersion < 9) { db.execSQL( - "ALTER TABLE cheogram.webxdc_updates " + + "ALTER TABLE monocles.webxdc_updates " + "ADD COLUMN message_id TEXT" ); - db.execSQL("CREATE UNIQUE INDEX cheogram.webxdc_message_id_index ON webxdc_updates (" + Message.CONVERSATION + ", message_id)"); - db.execSQL("PRAGMA cheogram.user_version = 9"); + db.execSQL("CREATE UNIQUE INDEX monocles.webxdc_message_id_index ON webxdc_updates (" + Message.CONVERSATION + ", message_id)"); + db.execSQL("PRAGMA monocles.user_version = 9"); } - if(cheogramVersion < 10) { + if(monoclesVersion < 10) { db.execSQL( - "CREATE TABLE cheogram.muted_participants (" + + "CREATE TABLE monocles.muted_participants (" + "muc_jid TEXT NOT NULL, " + "occupant_id TEXT NOT NULL, " + "nick TEXT NOT NULL," + @@ -338,29 +338,29 @@ public class DatabaseBackend extends SQLiteOpenHelper { ")" ); db.execSQL( - "ALTER TABLE cheogram." + Message.TABLENAME + " " + + "ALTER TABLE monocles." + Message.TABLENAME + " " + "ADD COLUMN occupant_id TEXT" ); - db.execSQL("PRAGMA cheogram.user_version = 10"); + db.execSQL("PRAGMA monocles.user_version = 10"); } - if(cheogramVersion < 11) { + if(monoclesVersion < 11) { if (Build.VERSION.SDK_INT >= 34) { db.execSQL( - "ALTER TABLE cheogram.muted_participants " + + "ALTER TABLE monocles.muted_participants " + "DROP COLUMN nick" ); } else { - db.execSQL("DROP TABLE cheogram.muted_participants"); + db.execSQL("DROP TABLE monocles.muted_participants"); db.execSQL( - "CREATE TABLE cheogram.muted_participants (" + + "CREATE TABLE monocles.muted_participants (" + "muc_jid TEXT NOT NULL, " + "occupant_id TEXT NOT NULL, " + "PRIMARY KEY (muc_jid, occupant_id)" + ")" ); } - db.execSQL("PRAGMA cheogram.user_version = 11"); + db.execSQL("PRAGMA monocles.user_version = 11"); } db.setTransactionSuccessful(); @@ -373,8 +373,8 @@ public class DatabaseBackend extends SQLiteOpenHelper { public void onConfigure(SQLiteDatabase db) { db.execSQL("PRAGMA foreign_keys=ON"); db.rawQuery("PRAGMA secure_delete=ON", null).close(); - db.execSQL("ATTACH DATABASE ? AS cheogram", new Object[]{context.getDatabasePath("cheogram").getPath()}); - cheogramMigrate(db); + db.execSQL("ATTACH DATABASE ? AS monocles", new Object[]{context.getDatabasePath("monocles").getPath()}); + monoclesMigrate(db); } @Override @@ -848,7 +848,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { if (cid == null) return null; SQLiteDatabase db = this.getReadableDatabase(); - Cursor cursor = db.query("cheogram.cids", new String[]{"path"}, "cid=?", new String[]{cid.toString()}, null, null, null); + Cursor cursor = db.query("monocles.cids", new String[]{"path"}, "cid=?", new String[]{cid.toString()}, null, null, null); DownloadableFile f = null; if (cursor.moveToNext()) { f = new DownloadableFile(cursor.getString(0)); @@ -859,7 +859,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { public String getUrlForCid(Cid cid) { SQLiteDatabase db = this.getReadableDatabase(); - Cursor cursor = db.query("cheogram.cids", new String[]{"url"}, "cid=?", new String[]{cid.toString()}, null, null, null); + Cursor cursor = db.query("monocles.cids", new String[]{"url"}, "cid=?", new String[]{cid.toString()}, null, null, null); String url = null; if (cursor.moveToNext()) { url = cursor.getString(0); @@ -878,8 +878,8 @@ public class DatabaseBackend extends SQLiteOpenHelper { cv.put("cid", cid.toString()); if (file != null) cv.put("path", file.getAbsolutePath()); if (url != null) cv.put("url", url); - if (db.update("cheogram.cids", cv, "cid=?", new String[]{cid.toString()}) < 1) { - db.insertWithOnConflict("cheogram.cids", null, cv, SQLiteDatabase.CONFLICT_REPLACE); + if (db.update("monocles.cids", cv, "cid=?", new String[]{cid.toString()}) < 1) { + db.insertWithOnConflict("monocles.cids", null, cv, SQLiteDatabase.CONFLICT_REPLACE); } } @@ -887,12 +887,12 @@ public class DatabaseBackend extends SQLiteOpenHelper { SQLiteDatabase db = this.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put("cid", cid.toString()); - db.insertWithOnConflict("cheogram.blocked_media", null, cv, SQLiteDatabase.CONFLICT_REPLACE); + db.insertWithOnConflict("monocles.blocked_media", null, cv, SQLiteDatabase.CONFLICT_REPLACE); } public boolean isBlockedMedia(Cid cid) { SQLiteDatabase db = this.getReadableDatabase(); - Cursor cursor = db.query("cheogram.blocked_media", new String[]{"count(*)"}, "cid=?", new String[]{cid.toString()}, null, null, null); + Cursor cursor = db.query("monocles.blocked_media", new String[]{"count(*)"}, "cid=?", new String[]{cid.toString()}, null, null, null); boolean is = false; if (cursor.moveToNext()) { is = cursor.getInt(0) > 0; @@ -903,13 +903,13 @@ public class DatabaseBackend extends SQLiteOpenHelper { public void clearBlockedMedia() { SQLiteDatabase db = this.getWritableDatabase(); - db.execSQL("DELETE FROM cheogram.blocked_media"); + db.execSQL("DELETE FROM monocles.blocked_media"); } public Multimap loadMutedMucUsers() { Multimap result = HashMultimap.create(); SQLiteDatabase db = this.getReadableDatabase(); - Cursor cursor = db.query("cheogram.muted_participants", new String[]{"muc_jid", "occupant_id"}, null, null, null, null, null); + Cursor cursor = db.query("monocles.muted_participants", new String[]{"muc_jid", "occupant_id"}, null, null, null, null, null); while (cursor.moveToNext()) { result.put(cursor.getString(0), cursor.getString(1)); } @@ -924,7 +924,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { ContentValues cv = new ContentValues(); cv.put("muc_jid", user.getMuc().toString()); cv.put("occupant_id", user.getOccupantId()); - db.insertWithOnConflict("cheogram.muted_participants", null, cv, SQLiteDatabase.CONFLICT_REPLACE); + db.insertWithOnConflict("monocles.muted_participants", null, cv, SQLiteDatabase.CONFLICT_REPLACE); return true; } @@ -935,14 +935,14 @@ public class DatabaseBackend extends SQLiteOpenHelper { SQLiteDatabase db = this.getWritableDatabase(); String where = "muc_jid=? AND occupant_id=?"; String[] whereArgs = {user.getMuc().toString(), user.getOccupantId()}; - db.delete("cheogram.muted_participants", where, whereArgs); + db.delete("monocles.muted_participants", where, whereArgs); return true; } public void insertWebxdcUpdate(final WebxdcUpdate update) { SQLiteDatabase db = this.getWritableDatabase(); - db.insertWithOnConflict("cheogram.webxdc_updates", null, update.getContentValues(), SQLiteDatabase.CONFLICT_IGNORE); + db.insertWithOnConflict("monocles.webxdc_updates", null, update.getContentValues(), SQLiteDatabase.CONFLICT_IGNORE); } public WebxdcUpdate findLastWebxdcUpdate(Message message) { @@ -953,7 +953,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { SQLiteDatabase db = this.getReadableDatabase(); String[] selectionArgs = {message.getConversation().getUuid(), message.getThread().getContent()}; - Cursor cursor = db.query("cheogram.webxdc_updates", null, + Cursor cursor = db.query("monocles.webxdc_updates", null, Message.CONVERSATION + "=? AND thread=?", selectionArgs, null, null, "serial ASC"); WebxdcUpdate update = null; @@ -967,7 +967,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { public List findWebxdcUpdates(Message message, long serial) { SQLiteDatabase db = this.getReadableDatabase(); String[] selectionArgs = {message.getConversation().getUuid(), message.getThread().getContent(), String.valueOf(serial)}; - Cursor cursor = db.query("cheogram.webxdc_updates", null, + Cursor cursor = db.query("monocles.webxdc_updates", null, Message.CONVERSATION + "=? AND thread=? AND serial>?", selectionArgs, null, null, "serial ASC"); long maxSerial = 0; @@ -993,7 +993,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { public void createMessage(Message message) { SQLiteDatabase db = this.getWritableDatabase(); db.insert(Message.TABLENAME, null, message.getContentValues()); - db.insert("cheogram." + Message.TABLENAME, null, message.getCheogramContentValues()); + db.insert("monocles." + Message.TABLENAME, null, message.getmonoclesContentValues()); } public void createAccount(Account account) { @@ -1099,7 +1099,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { Cursor cursor; cursor = db.rawQuery( "SELECT * FROM " + Message.TABLENAME + " " + - "LEFT JOIN cheogram." + Message.TABLENAME + + "LEFT JOIN monocles." + Message.TABLENAME + " USING (" + Message.UUID + ")" + "WHERE " + Message.UUID + "=?", new String[]{uuid} @@ -1135,7 +1135,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { Cursor cursor; cursor = db.rawQuery( "SELECT * FROM " + Message.TABLENAME + " " + - "LEFT JOIN cheogram." + Message.TABLENAME + + "LEFT JOIN monocles." + Message.TABLENAME + " USING (" + Message.UUID + ")" + "WHERE " + Message.UUID + " IN (" + TextUtils.join(",", template) + ") OR " + Message.SERVER_MSG_ID + " IN (" + TextUtils.join(",", template) + ") OR " + Message.REMOTE_MSG_ID + " IN (" + TextUtils.join(",", template) + ")", params.toArray(new String[0]) @@ -1163,7 +1163,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { String[] selectionArgs = {conversation.getUuid()}; cursor = db.rawQuery( "SELECT * FROM " + Message.TABLENAME + " " + - "LEFT JOIN cheogram." + Message.TABLENAME + + "LEFT JOIN monocles." + Message.TABLENAME + " USING (" + Message.UUID + ")" + " WHERE " + Message.UUID + " IN (" + "SELECT " + Message.UUID + " FROM " + Message.TABLENAME + @@ -1178,7 +1178,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { Long.toString(timestamp)}; cursor = db.rawQuery( "SELECT * FROM " + Message.TABLENAME + " " + - "LEFT JOIN cheogram." + Message.TABLENAME + + "LEFT JOIN monocles." + Message.TABLENAME + " USING (" + Message.UUID + ")" + " WHERE " + Message.UUID + " IN (" + "SELECT " + Message.UUID + " FROM " + Message.TABLENAME + @@ -1419,14 +1419,14 @@ public class DatabaseBackend extends SQLiteOpenHelper { contentValues.remove(Message.BODY); } return db.update(Message.TABLENAME, message.getContentValues(), Message.UUID + "=?", args) == 1 && - db.update("cheogram." + Message.TABLENAME, message.getCheogramContentValues(), Message.UUID + "=?", args) == 1; + db.update("monocles." + Message.TABLENAME, message.getmonoclesContentValues(), Message.UUID + "=?", args) == 1; } public boolean updateMessage(Message message, String uuid) { SQLiteDatabase db = this.getWritableDatabase(); String[] args = {uuid}; return db.update(Message.TABLENAME, message.getContentValues(), Message.UUID + "=?", args) == 1 && - db.update("cheogram." + Message.TABLENAME, message.getCheogramContentValues(), Message.UUID + "=?", args) == 1; + db.update("monocles." + Message.TABLENAME, message.getmonoclesContentValues(), Message.UUID + "=?", args) == 1; } @@ -1434,7 +1434,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { SQLiteDatabase db = this.getWritableDatabase(); String[] args = {uuid}; return db.delete(Message.TABLENAME, Message.UUID + "=?", args) == 1 && - db.delete("cheogram." + Message.TABLENAME, Message.UUID + "=?", args) == 1; + db.delete("monocles." + Message.TABLENAME, Message.UUID + "=?", args) == 1; } public void readRoster(Roster roster) { @@ -1476,7 +1476,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { db.beginTransaction(); final String[] args = {conversation.getUuid()}; int num = db.delete(Message.TABLENAME, Message.CONVERSATION + "=?", args); - db.delete("cheogram.webxdc_updates", Message.CONVERSATION + "=?", args); + db.delete("monocles.webxdc_updates", Message.CONVERSATION + "=?", args); db.setTransactionSuccessful(); db.endTransaction(); Log.d(Config.LOGTAG, "deleted " + num + " messages for " + conversation.getJid().asBareJid() + " in " + (SystemClock.elapsedRealtime() - start) + "ms"); @@ -1487,7 +1487,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { SQLiteDatabase db = this.getReadableDatabase(); db.beginTransaction(); db.delete(Message.TABLENAME, "timeSent