Disappearing messages job update

This commit is contained in:
charles
2022-12-21 12:14:56 +11:00
parent 304bf42c0d
commit 92b30739f0
9 changed files with 31 additions and 10 deletions

View File

@@ -206,6 +206,12 @@ class DatabaseAttachmentProvider(context: Context, helper: SQLCipherOpenHelper)
return messageDB.getMessageServerHashes(messageIDs)
}
override fun getMessageTimestampForServerHash(serverHash: String): Long? {
return DatabaseComponent.get(context).lokiMessageDatabase().getMessageIdForServerHash(serverHash)?.let {
DatabaseComponent.get(context).mmsSmsDatabase().getMessage(it)?.timestamp
}
}
override fun getDatabaseAttachment(attachmentId: Long): DatabaseAttachment? {
val attachmentDatabase = DatabaseComponent.get(context).attachmentDatabase()
return attachmentDatabase.getAttachment(AttachmentId(attachmentId, 0))

View File

@@ -197,4 +197,9 @@ class LokiMessageDatabase(context: Context, helper: SQLCipherOpenHelper) : Datab
database.update(messageThreadMappingTable, contentValues, "$threadID = ?", arrayOf(legacyThreadId.toString()))
}
fun getMessageIdForServerHash(serverHash: String): Long? {
return readableDatabase.get(messageHashTable, "$serverHash = ?", arrayOf(serverHash)) { cursor ->
cursor.getLong(messageID)
}
}
}

View File

@@ -81,6 +81,12 @@ public class MmsSmsDatabase extends Database {
super(context, databaseHelper);
}
public @Nullable MessageRecord getMessage(long messageId) {
try (Cursor cursor = queryTables(PROJECTION, MmsSmsColumns.ID + " = " + messageId, null, null)) {
return readerFor(cursor).getNext();
}
}
public @Nullable MessageRecord getMessageForTimestamp(long timestamp) {
try (Cursor cursor = queryTables(PROJECTION, MmsSmsColumns.NORMALIZED_DATE_SENT + " = " + timestamp, null, null)) {
MmsSmsDatabase.Reader reader = readerFor(cursor);

View File

@@ -990,7 +990,7 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
val smsDb = DatabaseComponent.get(context).smsDatabase()
smsDb.readerFor(smsDb.expirationNotStartedMessages).use { reader ->
while (reader.next != null) {
if (reader.current.id in messageIds) {
if (messageIds.isEmpty() || reader.current.id in messageIds) {
expiringMessages.add(reader.current.id to reader.current.expiresIn)
}
}
@@ -998,7 +998,7 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
val mmsDb = DatabaseComponent.get(context).mmsDatabase()
mmsDb.expireNotStartedMessages.use { reader ->
while (reader.next != null) {
if (reader.current.id in messageIds) {
if (messageIds.isEmpty() || reader.current.id in messageIds) {
expiringMessages.add(reader.current.id to reader.current.expiresIn)
}
}