Clear group messages whenever it's destroyed (#882)

pull/1709/head
SessionHero01 3 months ago committed by GitHub
parent c04e4559b3
commit 388a7a2f8c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1489,8 +1489,10 @@ open class Storage @Inject constructor(
// this deletes all *from* thread, not deleting the actual thread
smsDatabase.deleteMessagesFrom(threadID, fromUser.serialize())
mmsDatabase.deleteMessagesFrom(threadID, fromUser.serialize())
threadDb.update(threadID, false)
}
threadDb.update(threadID, false)
return true
}

@ -4,10 +4,13 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.filterIsInstance
import kotlinx.coroutines.launch
import org.session.libsession.database.StorageProtocol
import org.session.libsession.utilities.Address
import org.session.libsession.utilities.ConfigFactoryProtocol
import org.session.libsession.utilities.ConfigUpdateNotification
import org.session.libsession.utilities.waitUntilGroupConfigsPushed
import org.session.libsignal.utilities.Log
import org.thoughtcrime.securesms.database.Storage
import javax.inject.Inject
import javax.inject.Singleton
@ -18,6 +21,7 @@ import javax.inject.Singleton
@Singleton
class DestroyedGroupSync @Inject constructor(
private val configFactory: ConfigFactoryProtocol,
private val storage: StorageProtocol,
) {
private var job: Job? = null
@ -46,6 +50,11 @@ class DestroyedGroupSync @Inject constructor(
configs.userGroups.set(group.copy(destroyed = true))
}
}
// Also clear all messages in the group
storage.getThreadId(Address.fromSerialized(update.groupId.hexString))?.let { threadId ->
storage.clearMessages(threadId)
}
}
}
}

Loading…
Cancel
Save