Cleanup expiring message manager

This commit is contained in:
charles
2022-12-09 13:51:44 +11:00
parent d70bfe5614
commit a4e64187f1
6 changed files with 34 additions and 39 deletions

View File

@@ -45,6 +45,7 @@ import org.session.libsignal.crypto.ecc.DjbECPublicKey
import org.session.libsignal.crypto.ecc.ECKeyPair
import org.session.libsignal.messages.SignalServiceGroup
import org.session.libsignal.protos.SignalServiceProtos
import org.session.libsignal.protos.SignalServiceProtos.Content.ExpirationType
import org.session.libsignal.utilities.Base64
import org.session.libsignal.utilities.IdPrefix
import org.session.libsignal.utilities.Log
@@ -156,11 +157,14 @@ fun MessageReceiver.cancelTypingIndicatorsIfNeeded(senderPublicKey: String) {
}
private fun MessageReceiver.handleExpirationTimerUpdate(message: ExpirationTimerUpdate) {
if (message.duration!! > 0) {
SSKEnvironment.shared.messageExpirationManager.setExpirationTimer(message)
} else {
SSKEnvironment.shared.messageExpirationManager.disableExpirationTimer(message)
if (ExpirationConfiguration.isNewConfigEnabled) return
val recipient = Recipient.from(MessagingModuleConfiguration.shared.context, Address.fromSerialized(message.sender!!), false)
val type = when {
recipient.isLocalNumber -> ExpirationType.DELETE_AFTER_READ
recipient.isContactRecipient || recipient.isGroupRecipient -> ExpirationType.DELETE_AFTER_SEND
else -> null
}
SSKEnvironment.shared.messageExpirationManager.setExpirationTimer(message, type)
}
private fun MessageReceiver.handleDataExtractionNotification(message: DataExtractionNotification) {

View File

@@ -3,8 +3,8 @@ package org.session.libsession.utilities
import android.content.Context
import org.session.libsession.messaging.messages.control.ExpirationTimerUpdate
import org.session.libsession.messaging.sending_receiving.notifications.MessageNotifier
import org.session.libsession.utilities.Address
import org.session.libsession.utilities.recipients.Recipient
import org.session.libsignal.protos.SignalServiceProtos.Content.ExpirationType
class SSKEnvironment(
val typingIndicators: TypingIndicatorsProtocol,
@@ -37,8 +37,7 @@ class SSKEnvironment(
}
interface MessageExpirationManagerProtocol {
fun setExpirationTimer(message: ExpirationTimerUpdate)
fun disableExpirationTimer(message: ExpirationTimerUpdate)
fun setExpirationTimer(message: ExpirationTimerUpdate, type: ExpirationType?)
fun startAnyExpiration(timestamp: Long, author: String)
}