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

pull/1710/head
SessionHero01 4 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() ))
}
override fun clearLastMessageHashes(publicKey: String) {
databaseHelper.writableDatabase
.delete(lastMessageHashValueTable2, "${Companion.publicKey} = ?", arrayOf(publicKey))
}
override fun clearAllLastMessageHashes() {
val database = databaseHelper.writableDatabase
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() ))
}
override fun clearReceivedMessageHashValues(publicKey: String) {
databaseHelper.writableDatabase
.delete(receivedMessageHashValuesTable, "${Companion.publicKey} = ?", arrayOf(publicKey))
}
override fun clearReceivedMessageHashValues() {
val database = databaseHelper.writableDatabase
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.Log
import org.session.libsignal.utilities.Namespace
import org.thoughtcrime.securesms.database.LokiAPIDatabase
import org.thoughtcrime.securesms.database.LokiMessageDatabase
import org.thoughtcrime.securesms.database.MmsSmsDatabase
import org.thoughtcrime.securesms.database.ThreadDatabase
@ -79,6 +80,7 @@ class GroupManagerV2Impl @Inject constructor(
@ApplicationContext val application: Context,
private val clock: SnodeClock,
private val messageDataProvider: MessageDataProvider,
private val lokiAPIDatabase: LokiAPIDatabase,
) : GroupManagerV2 {
private val dispatcher = Dispatchers.Default
@ -472,6 +474,8 @@ class GroupManagerV2Impl @Inject constructor(
storage.getThreadId(Address.fromSerialized(groupId.hexString))
?.let(storage::deleteConversation)
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 getLastMessageHashValue(snode: Snode, publicKey: String, namespace: Int): String?
fun setLastMessageHashValue(snode: Snode, publicKey: String, newValue: String, namespace: Int)
fun clearLastMessageHashes(publicKey: String)
fun clearAllLastMessageHashes()
fun getReceivedMessageHashValues(publicKey: String, namespace: Int): Set<String>?
fun setReceivedMessageHashValues(publicKey: String, newValue: Set<String>, namespace: Int)
fun clearReceivedMessageHashValues(publicKey: String)
fun clearReceivedMessageHashValues()
fun getAuthToken(server: String): String?
fun setAuthToken(server: String, newValue: String?)

Loading…
Cancel
Save