Fix member not having access to old messages (#831)

pull/1710/head
SessionHero01 5 months ago committed by GitHub
parent a21d283ae4
commit f977caa1ed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -293,6 +293,11 @@ class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(
val lastHash = database.insertOrUpdate(lastMessageHashValueTable2, row, query, arrayOf( snode.toString(), publicKey, namespace.toString() )) val lastHash = database.insertOrUpdate(lastMessageHashValueTable2, row, query, arrayOf( snode.toString(), publicKey, namespace.toString() ))
} }
override fun clearLastMessageHashes(publicKey: String) {
databaseHelper.writableDatabase
.delete(lastMessageHashValueTable2, "${Companion.publicKey} = ?", arrayOf(publicKey))
}
override fun clearAllLastMessageHashes() { override fun clearAllLastMessageHashes() {
val database = databaseHelper.writableDatabase val database = databaseHelper.writableDatabase
database.delete(lastMessageHashValueTable2, null, null) database.delete(lastMessageHashValueTable2, null, null)
@ -319,6 +324,11 @@ class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(
database.insertOrUpdate(receivedMessageHashValuesTable, row, query, arrayOf( publicKey, namespace.toString() )) database.insertOrUpdate(receivedMessageHashValuesTable, row, query, arrayOf( publicKey, namespace.toString() ))
} }
override fun clearReceivedMessageHashValues(publicKey: String) {
databaseHelper.writableDatabase
.delete(receivedMessageHashValuesTable, "${Companion.publicKey} = ?", arrayOf(publicKey))
}
override fun clearReceivedMessageHashValues() { override fun clearReceivedMessageHashValues() {
val database = databaseHelper.writableDatabase val database = databaseHelper.writableDatabase
database.delete(receivedMessageHashValuesTable, null, null) database.delete(receivedMessageHashValuesTable, null, null)

@ -56,6 +56,7 @@ import org.session.libsignal.utilities.AccountId
import org.session.libsignal.utilities.Base64 import org.session.libsignal.utilities.Base64
import org.session.libsignal.utilities.Log import org.session.libsignal.utilities.Log
import org.session.libsignal.utilities.Namespace import org.session.libsignal.utilities.Namespace
import org.thoughtcrime.securesms.database.LokiAPIDatabase
import org.thoughtcrime.securesms.database.LokiMessageDatabase import org.thoughtcrime.securesms.database.LokiMessageDatabase
import org.thoughtcrime.securesms.database.MmsSmsDatabase import org.thoughtcrime.securesms.database.MmsSmsDatabase
import org.thoughtcrime.securesms.database.ThreadDatabase import org.thoughtcrime.securesms.database.ThreadDatabase
@ -79,6 +80,7 @@ class GroupManagerV2Impl @Inject constructor(
@ApplicationContext val application: Context, @ApplicationContext val application: Context,
private val clock: SnodeClock, private val clock: SnodeClock,
private val messageDataProvider: MessageDataProvider, private val messageDataProvider: MessageDataProvider,
private val lokiAPIDatabase: LokiAPIDatabase,
) : GroupManagerV2 { ) : GroupManagerV2 {
private val dispatcher = Dispatchers.Default private val dispatcher = Dispatchers.Default
@ -472,6 +474,8 @@ class GroupManagerV2Impl @Inject constructor(
storage.getThreadId(Address.fromSerialized(groupId.hexString)) storage.getThreadId(Address.fromSerialized(groupId.hexString))
?.let(storage::deleteConversation) ?.let(storage::deleteConversation)
configFactory.removeGroup(groupId) configFactory.removeGroup(groupId)
lokiAPIDatabase.clearLastMessageHashes(groupId.hexString)
lokiAPIDatabase.clearReceivedMessageHashValues(groupId.hexString)
} }
} }

@ -17,9 +17,11 @@ interface LokiAPIDatabaseProtocol {
fun setSwarm(publicKey: String, newValue: Set<Snode>) fun setSwarm(publicKey: String, newValue: Set<Snode>)
fun getLastMessageHashValue(snode: Snode, publicKey: String, namespace: Int): String? fun getLastMessageHashValue(snode: Snode, publicKey: String, namespace: Int): String?
fun setLastMessageHashValue(snode: Snode, publicKey: String, newValue: String, namespace: Int) fun setLastMessageHashValue(snode: Snode, publicKey: String, newValue: String, namespace: Int)
fun clearLastMessageHashes(publicKey: String)
fun clearAllLastMessageHashes() fun clearAllLastMessageHashes()
fun getReceivedMessageHashValues(publicKey: String, namespace: Int): Set<String>? fun getReceivedMessageHashValues(publicKey: String, namespace: Int): Set<String>?
fun setReceivedMessageHashValues(publicKey: String, newValue: Set<String>, namespace: Int) fun setReceivedMessageHashValues(publicKey: String, newValue: Set<String>, namespace: Int)
fun clearReceivedMessageHashValues(publicKey: String)
fun clearReceivedMessageHashValues() fun clearReceivedMessageHashValues()
fun getAuthToken(server: String): String? fun getAuthToken(server: String): String?
fun setAuthToken(server: String, newValue: String?) fun setAuthToken(server: String, newValue: String?)

Loading…
Cancel
Save