diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt index de6d09ce87..30bb756fd7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt @@ -3246,8 +3246,6 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat if (message.isSecure) { type = type or (MessageTypes.SECURE_MESSAGE_BIT or MessageTypes.PUSH_MESSAGE_BIT) - } else if (message.isEndSession) { - type = type or MessageTypes.END_SESSION_BIT } if (message.isIdentityVerified) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/IndividualSendJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/IndividualSendJob.kt index 2d3cbcde7b..bf72123ed5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/IndividualSendJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/IndividualSendJob.kt @@ -283,7 +283,6 @@ class IndividualSendJob private constructor(parameters: Parameters, private val .withPreviews(previews) .withGiftBadge(giftBadge) .asExpirationUpdate(message.isExpirationUpdate) - .asEndSessionMessage(message.isEndSession) .withPayment(payment) .withBodyRanges(bodyRanges) .withPollCreate(pollCreate) diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt index 6505b898c2..595f21be9e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt @@ -25,7 +25,6 @@ import org.thoughtcrime.securesms.attachments.DatabaseAttachment import org.thoughtcrime.securesms.attachments.TombstoneAttachment import org.thoughtcrime.securesms.components.emoji.EmojiUtil import org.thoughtcrime.securesms.contactshare.Contact -import org.thoughtcrime.securesms.crypto.SecurityEvent import org.thoughtcrime.securesms.database.AttachmentTable import org.thoughtcrime.securesms.database.CallLinkTable import org.thoughtcrime.securesms.database.CallTable @@ -83,7 +82,6 @@ import org.thoughtcrime.securesms.messages.SignalServiceProtoUtil.groupMasterKey import org.thoughtcrime.securesms.messages.SignalServiceProtoUtil.hasGroupContext import org.thoughtcrime.securesms.messages.SignalServiceProtoUtil.hasRemoteDelete import org.thoughtcrime.securesms.messages.SignalServiceProtoUtil.isEmptyGroupV2Message -import org.thoughtcrime.securesms.messages.SignalServiceProtoUtil.isEndSession import org.thoughtcrime.securesms.messages.SignalServiceProtoUtil.isExpirationUpdate import org.thoughtcrime.securesms.messages.SignalServiceProtoUtil.isGroupV2Update import org.thoughtcrime.securesms.messages.SignalServiceProtoUtil.isMediaMessage @@ -234,7 +232,6 @@ object SyncMessageProcessor { var threadId: Long = -1 when { - dataMessage.isEndSession -> threadId = handleSynchronizeSentEndSessionMessage(context, sent, envelope.clientTimestamp!!) dataMessage.isGroupV2Update -> { handleSynchronizeSentGv2Update(context, envelope, sent) threadId = SignalDatabase.threads.getOrCreateThreadIdFor(getSyncMessageDestination(sent)) @@ -669,30 +666,6 @@ object SyncMessageProcessor { SignalDatabase.groupReceipts.setUnidentified(unidentifiedStatus, messageId) } - @Throws(MmsException::class) - private fun handleSynchronizeSentEndSessionMessage(context: Context, sent: Sent, envelopeTimestamp: Long): Long { - log(envelopeTimestamp, "Synchronize end session message.") - - val recipient: Recipient = getSyncMessageDestination(sent) - val outgoingEndSessionMessage: OutgoingMessage = OutgoingMessage.endSessionMessage(recipient, sent.timestamp!!) - val threadId: Long = SignalDatabase.threads.getOrCreateThreadIdFor(recipient) - - if (!recipient.isGroup) { - AppDependencies.protocolStore.aci().deleteAllSessions(recipient.requireServiceId().toString()) - SecurityEvent.broadcastSecurityUpdateEvent(context) - val messageId = SignalDatabase.messages.insertMessageOutbox( - outgoingEndSessionMessage, - threadId, - false, - null - ).messageId - - SignalDatabase.messages.markAsSent(messageId, true) - } - - return threadId - } - @Throws(IOException::class, GroupChangeBusyException::class) private fun handleSynchronizeSentGv2Update(context: Context, envelope: Envelope, sent: Sent) { log(envelope.clientTimestamp!!, "Synchronize sent GV2 update for message with timestamp " + sent.timestamp!!) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/OutgoingMessage.kt b/app/src/main/java/org/thoughtcrime/securesms/mms/OutgoingMessage.kt index 096cb64c7e..e4f8526abd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/OutgoingMessage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/OutgoingMessage.kt @@ -50,7 +50,6 @@ data class OutgoingMessage( val isUrgent: Boolean = true, val networkFailures: Set = emptySet(), val identityKeyMismatches: Set = emptySet(), - val isEndSession: Boolean = false, val isIdentityVerified: Boolean = false, val isIdentityDefault: Boolean = false, val scheduledDate: Long = -1, @@ -403,21 +402,6 @@ data class OutgoingMessage( ) } - /** - * A legacy message that represented that the user manually reset the session. We don't send these anymore, and could probably get rid of them, - * but it doesn't hurt to support receiving them in sync messages. - */ - @JvmStatic - fun endSessionMessage(threadRecipient: Recipient, sentTimeMillis: Long): OutgoingMessage { - return OutgoingMessage( - threadRecipient = threadRecipient, - sentTimeMillis = sentTimeMillis, - isEndSession = true, - isUrgent = false, - isSecure = true - ) - } - @JvmStatic fun reportSpamMessage(threadRecipient: Recipient, sentTimeMillis: Long, expiresIn: Long): OutgoingMessage { return OutgoingMessage( diff --git a/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java b/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java index 81a88485fa..a575426307 100644 --- a/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java +++ b/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java @@ -1056,10 +1056,6 @@ public class SignalServiceMessageSender { builder.groupV2(createGroupContent(message.getGroupContext().get())); } - if (message.isEndSession()) { - builder.flags(DataMessage.Flags.END_SESSION.getValue()); - } - if (message.isExpirationUpdate()) { builder.flags(DataMessage.Flags.EXPIRATION_TIMER_UPDATE.getValue()); } diff --git a/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceDataMessage.kt b/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceDataMessage.kt index 75919ec457..0730c74f7f 100644 --- a/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceDataMessage.kt +++ b/lib/libsignal-service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceDataMessage.kt @@ -24,7 +24,6 @@ import org.whispersystems.signalservice.internal.push.DataMessage.Quote as Quote * @param groupContext The group information (or null if none). * @param attachments The attachments (or null if none). * @param body The message contents. - * @param isEndSession Flag indicating whether this message should close a session. * @param expiresInSeconds Number of seconds in which the message should disappear after being seen. */ class SignalServiceDataMessage private constructor( @@ -32,7 +31,6 @@ class SignalServiceDataMessage private constructor( val groupContext: Optional, val attachments: Optional>, val body: Optional, - val isEndSession: Boolean, val expiresInSeconds: Int, val expireTimerVersion: Int, val isExpirationUpdate: Boolean, @@ -89,7 +87,6 @@ class SignalServiceDataMessage private constructor( private var groupV2: SignalServiceGroupV2? = null private val attachments: MutableList = LinkedList() private var body: String? = null - private var endSession: Boolean = false private var expiresInSeconds: Int = 0 private var expireTimerVersion: Int = 1 private var expirationUpdate: Boolean = false @@ -135,12 +132,6 @@ class SignalServiceDataMessage private constructor( return this } - @JvmOverloads - fun asEndSessionMessage(endSession: Boolean = true): Builder { - this.endSession = endSession - return this - } - @JvmOverloads fun asExpirationUpdate(expirationUpdate: Boolean = true): Builder { this.expirationUpdate = expirationUpdate @@ -277,7 +268,6 @@ class SignalServiceDataMessage private constructor( groupContext = groupV2.asOptional(), attachments = attachments.asOptional(), body = body.emptyIfStringEmpty(), - isEndSession = endSession, expiresInSeconds = expiresInSeconds, expireTimerVersion = expireTimerVersion, isExpirationUpdate = expirationUpdate,