From b38fe1e8f0a9a1aa479b4a61f65f61ae78db6665 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sun, 11 Nov 2018 13:51:15 +0100 Subject: implement message deletion fixed #208 --- .../messenger/persistance/DatabaseBackend.java | 32 ++++++++++++---------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'src/main/java/de/pixart/messenger/persistance') diff --git a/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java b/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java index dac626718..b4de5cd92 100644 --- a/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java +++ b/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java @@ -60,7 +60,7 @@ import rocks.xmpp.addr.Jid; public class DatabaseBackend extends SQLiteOpenHelper { public static final String DATABASE_NAME = "history"; - public static final int DATABASE_VERSION = 43; // = Conversations DATABASE_VERSION + 1 + public static final int DATABASE_VERSION = 44; // = Conversations DATABASE_VERSION + 2 private static DatabaseBackend instance = null; private static String CREATE_CONTATCS_STATEMENT = "create table " @@ -228,6 +228,7 @@ public class DatabaseBackend extends SQLiteOpenHelper { + Message.CARBON + " INTEGER, " + Message.EDITED + " TEXT, " + Message.READ + " NUMBER DEFAULT 1, " + + Message.DELETED + " NUMBER DEFAULT 0, " + Message.OOB + " INTEGER, " + Message.ERROR_MESSAGE + " TEXT," + Message.READ_BY_MARKERS + " TEXT," @@ -527,9 +528,13 @@ public class DatabaseBackend extends SQLiteOpenHelper { db.execSQL(COPY_PREEXISTING_ENTRIES); } - if (oldVersion < 42 && newVersion >= 42) { + if (oldVersion < 43 && newVersion >= 43) { db.execSQL("DROP TRIGGER IF EXISTS after_message_delete"); } + + if (oldVersion < 44 && newVersion >= 44) { + db.execSQL("ALTER TABLE " + Message.TABLENAME + " ADD COLUMN " + Message.DELETED + " NUMBER DEFAULT 0"); + } } private void canonicalizeJids(SQLiteDatabase db) { @@ -716,21 +721,19 @@ public class DatabaseBackend extends SQLiteOpenHelper { return getMessages(conversations, limit, -1); } - public ArrayList getMessages(Conversation conversation, int limit, - long timestamp) { + public ArrayList getMessages(Conversation conversation, int limit, long timestamp) { ArrayList list = new ArrayList<>(); SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor; if (timestamp == -1) { - String[] selectionArgs = {conversation.getUuid()}; + String[] selectionArgs = {conversation.getUuid(), "1"}; cursor = db.query(Message.TABLENAME, null, Message.CONVERSATION - + "=?", selectionArgs, null, null, Message.TIME_SENT + + "=? and " + Message.DELETED + "