Make type a mandatory param on IncomingMessage.

This commit is contained in:
Greyson Parrelli
2023-10-25 10:23:48 -07:00
committed by Nicholas Tinsley
parent c0fed1498e
commit 617369dbc0
12 changed files with 43 additions and 20 deletions

View File

@@ -9,6 +9,7 @@ import org.junit.runner.RunWith
import org.signal.core.util.ThreadUtil
import org.thoughtcrime.securesms.attachments.PointerAttachment
import org.thoughtcrime.securesms.conversation.v2.ConversationActivity
import org.thoughtcrime.securesms.database.MessageType
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.mms.IncomingMessage
import org.thoughtcrime.securesms.mms.OutgoingMessage
@@ -65,6 +66,7 @@ class ConversationItemPreviewer {
}
val message = IncomingMessage(
type = MessageType.NORMAL,
from = other.id,
body = body,
sentTimeMillis = System.currentTimeMillis(),
@@ -84,6 +86,7 @@ class ConversationItemPreviewer {
}
val message = IncomingMessage(
type = MessageType.NORMAL,
from = other.id,
body = body,
sentTimeMillis = System.currentTimeMillis(),

View File

@@ -74,6 +74,7 @@ class MmsTableTest_stories {
MmsHelper.insert(
IncomingMessage(
type = MessageType.NORMAL,
from = sender,
sentTimeMillis = 2,
serverTimeMillis = 2,
@@ -96,6 +97,7 @@ class MmsTableTest_stories {
val sender = recipients[0]
val messageId = MmsHelper.insert(
IncomingMessage(
type = MessageType.NORMAL,
from = sender,
sentTimeMillis = 2,
serverTimeMillis = 2,
@@ -123,6 +125,7 @@ class MmsTableTest_stories {
val messageIds = recipients.take(5).map {
MmsHelper.insert(
IncomingMessage(
type = MessageType.NORMAL,
from = it,
sentTimeMillis = 2,
serverTimeMillis = 2,
@@ -155,6 +158,7 @@ class MmsTableTest_stories {
Thread.sleep(5)
MmsHelper.insert(
IncomingMessage(
type = MessageType.NORMAL,
from = recipients[it],
sentTimeMillis = System.currentTimeMillis(),
serverTimeMillis = 2,
@@ -169,6 +173,7 @@ class MmsTableTest_stories {
Thread.sleep(5)
MmsHelper.insert(
IncomingMessage(
type = MessageType.NORMAL,
from = recipients[it],
sentTimeMillis = System.currentTimeMillis(),
serverTimeMillis = 2,
@@ -214,6 +219,7 @@ class MmsTableTest_stories {
// GIVEN
MmsHelper.insert(
IncomingMessage(
type = MessageType.NORMAL,
from = recipients[0],
sentTimeMillis = 200,
serverTimeMillis = 2,
@@ -322,6 +328,7 @@ class MmsTableTest_stories {
MmsHelper.insert(
IncomingMessage(
type = MessageType.NORMAL,
from = myStory.id,
sentTimeMillis = 201,
serverTimeMillis = 201,

View File

@@ -949,6 +949,7 @@ class RecipientTableTest_getAndPossiblyMerge {
private fun smsMessage(sender: RecipientId, time: Long = 0, body: String = "", groupId: Optional<GroupId> = Optional.empty()): IncomingMessage {
return IncomingMessage(
type = MessageType.NORMAL,
from = sender,
sentTimeMillis = time,
serverTimeMillis = time,
@@ -961,6 +962,7 @@ class RecipientTableTest_getAndPossiblyMerge {
private fun mmsMessage(sender: RecipientId, time: Long = 0, body: String = "", groupId: Optional<GroupId> = Optional.empty()): IncomingMessage {
return IncomingMessage(
type = MessageType.NORMAL,
from = sender,
groupId = groupId.orNull(),
body = body,

View File

@@ -273,6 +273,7 @@ class SmsDatabaseTest_collapseJoinRequestEventsIfPossible {
private fun smsMessage(sender: RecipientId, body: String? = ""): IncomingMessage {
wallClock++
return IncomingMessage(
type = MessageType.NORMAL,
from = sender,
sentTimeMillis = wallClock,
serverTimeMillis = wallClock,

View File

@@ -2449,7 +2449,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
retrieved.type == MessageType.IDENTITY_VERIFIED ||
retrieved.type == MessageType.IDENTITY_UPDATE
val read = silent || retrieved.isExpirationUpdate
val read = silent || retrieved.type == MessageType.EXPIRATION_UPDATE
val contentValues = contentValuesOf(
DATE_SENT to retrieved.sentTimeMillis,
@@ -2460,7 +2460,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
MMS_MESSAGE_TYPE to PduHeaders.MESSAGE_TYPE_RETRIEVE_CONF,
THREAD_ID to threadId,
MMS_STATUS to MmsStatus.DOWNLOAD_INITIALIZED,
DATE_RECEIVED to if (retrieved.isPushMessage) retrieved.receivedTimeMillis else generatePduCompatTimestamp(retrieved.receivedTimeMillis),
DATE_RECEIVED to retrieved.receivedTimeMillis,
SMS_SUBSCRIPTION_ID to retrieved.subscriptionId,
EXPIRES_IN to retrieved.expiresIn,
VIEW_ONCE to if (retrieved.isViewOnce) 1 else 0,

View File

@@ -313,15 +313,14 @@ object DataMessageProcessor {
try {
val mediaMessage = IncomingMessage(
type = MessageType.EXPIRATION_UPDATE,
from = senderRecipientId,
sentTimeMillis = envelope.timestamp!! - if (sideEffect) 1 else 0,
serverTimeMillis = envelope.serverTimestamp!!,
receivedTimeMillis = receivedTime,
expiresIn = expiresIn.inWholeMilliseconds,
isExpirationUpdate = true,
isUnidentified = metadata.sealedSender,
serverGuid = envelope.serverGuid,
isPushMessage = true
serverGuid = envelope.serverGuid
)
val insertResult: InsertResult? = SignalDatabase.messages.insertMessageInbox(mediaMessage, -1).orNull()
@@ -413,6 +412,7 @@ object DataMessageProcessor {
}
val mediaMessage = IncomingMessage(
type = MessageType.NORMAL,
from = senderRecipientId,
sentTimeMillis = envelope.timestamp!!,
serverTimeMillis = envelope.serverTimestamp!!,
@@ -642,7 +642,6 @@ object DataMessageProcessor {
expiresIn = message.expireTimerDuration.inWholeMilliseconds,
isUnidentified = metadata.sealedSender,
serverGuid = envelope.serverGuid,
isPushMessage = true,
type = MessageType.PAYMENTS_NOTIFICATION
)
@@ -746,6 +745,7 @@ object DataMessageProcessor {
val bodyRanges: BodyRangeList? = message.bodyRanges.filter { it.mentionAci == null }.toList().toBodyRangeList()
val mediaMessage = IncomingMessage(
type = MessageType.NORMAL,
from = senderRecipient.id,
sentTimeMillis = envelope.timestamp!!,
serverTimeMillis = envelope.serverTimestamp!!,
@@ -814,6 +814,7 @@ object DataMessageProcessor {
val insertResult: InsertResult? = try {
val mediaMessage = IncomingMessage(
type = MessageType.NORMAL,
from = senderRecipient.id,
sentTimeMillis = envelope.timestamp!!,
serverTimeMillis = envelope.serverTimestamp!!,
@@ -870,6 +871,7 @@ object DataMessageProcessor {
handlePossibleExpirationUpdate(envelope, metadata, senderRecipient.id, threadRecipient, groupId, message.expireTimerDuration, receivedTime)
val mediaMessage = IncomingMessage(
type = MessageType.NORMAL,
from = senderRecipient.id,
sentTimeMillis = envelope.timestamp!!,
serverTimeMillis = envelope.serverTimestamp!!,
@@ -885,8 +887,7 @@ object DataMessageProcessor {
linkPreviews = linkPreviews,
mentions = mentions,
serverGuid = envelope.serverGuid,
messageRanges = messageRanges,
isPushMessage = true
messageRanges = messageRanges
)
insertResult = SignalDatabase.messages.insertMessageInbox(mediaMessage, -1).orNull()
@@ -952,6 +953,7 @@ object DataMessageProcessor {
notifyTypingStoppedFromIncomingMessage(context, senderRecipient, threadRecipient.id, metadata.sourceDeviceId)
val textMessage = IncomingMessage(
type = MessageType.NORMAL,
from = senderRecipient.id,
sentTimeMillis = envelope.timestamp!!,
serverTimeMillis = envelope.serverTimestamp!!,
@@ -1027,6 +1029,7 @@ object DataMessageProcessor {
private fun insertPlaceholder(sender: RecipientId, timestamp: Long, groupId: GroupId?): InsertResult? {
val textMessage = IncomingMessage(
type = MessageType.NORMAL,
from = sender,
sentTimeMillis = timestamp,
serverTimeMillis = -1,

View File

@@ -4,6 +4,7 @@ import android.content.Context
import org.signal.core.util.concurrent.SignalExecutors
import org.signal.core.util.orNull
import org.thoughtcrime.securesms.database.MessageTable.InsertResult
import org.thoughtcrime.securesms.database.MessageType
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord
import org.thoughtcrime.securesms.database.model.MessageId
@@ -140,6 +141,7 @@ object EditMessageProcessor {
MediaUtil.SlideType.LONG_TEXT == MediaUtil.getSlideTypeFromContentType(it.contentType)
}
val mediaMessage = IncomingMessage(
type = MessageType.NORMAL,
from = senderRecipientId,
sentTimeMillis = message.timestamp!!,
serverTimeMillis = envelope.serverTimestamp!!,
@@ -155,8 +157,7 @@ object EditMessageProcessor {
linkPreviews = DataMessageProcessor.getLinkPreviews(message.preview, message.body ?: "", false),
mentions = DataMessageProcessor.getMentions(message.bodyRanges),
serverGuid = envelope.serverGuid,
messageRanges = messageRanges,
isPushMessage = true
messageRanges = messageRanges
)
val insertResult = SignalDatabase.messages.insertEditMessageInbox(mediaMessage, targetMessage).orNull()
@@ -180,6 +181,7 @@ object EditMessageProcessor {
targetMessage: MediaMmsMessageRecord
): InsertResult? {
val textMessage = IncomingMessage(
type = MessageType.NORMAL,
from = senderRecipientId,
sentTimeMillis = envelope.timestamp!!,
serverTimeMillis = envelope.timestamp!!,

View File

@@ -8,6 +8,7 @@ import org.signal.libsignal.protocol.SignalProtocolAddress
import org.signal.libsignal.protocol.ecc.ECPublicKey
import org.signal.libsignal.protocol.message.DecryptionErrorMessage
import org.signal.libsignal.zkgroup.groups.GroupSecretParams
import org.thoughtcrime.securesms.database.MessageType
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.database.model.GroupRecord
import org.thoughtcrime.securesms.database.model.MessageLogEntry
@@ -296,6 +297,7 @@ open class MessageContentProcessor(private val context: Context) {
private fun insertErrorMessage(context: Context, sender: Recipient, timestamp: Long, groupId: Optional<GroupId>, marker: (Long) -> Unit) {
val textMessage = IncomingMessage(
type = MessageType.NORMAL,
from = sender.id,
sentTimeMillis = timestamp,
serverTimeMillis = -1,

View File

@@ -4,6 +4,7 @@ import android.graphics.Color
import org.signal.core.util.Base64
import org.signal.core.util.orNull
import org.thoughtcrime.securesms.database.MessageTable.InsertResult
import org.thoughtcrime.securesms.database.MessageType
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.database.model.StoryType
import org.thoughtcrime.securesms.database.model.databaseprotos.ChatColor
@@ -59,6 +60,7 @@ object StoryMessageProcessor {
}
val mediaMessage = IncomingMessage(
type = MessageType.NORMAL,
from = senderRecipient.id,
sentTimeMillis = envelope.timestamp!!,
serverTimeMillis = envelope.serverTimestamp!!,

View File

@@ -14,20 +14,19 @@ import org.thoughtcrime.securesms.linkpreview.LinkPreview
import org.thoughtcrime.securesms.recipients.RecipientId
class IncomingMessage(
val type: MessageType,
val from: RecipientId,
val groupId: GroupId? = null,
val groupContext: MessageGroupContext? = null,
val body: String? = null,
val isPushMessage: Boolean = false,
val storyType: StoryType = StoryType.NONE,
val parentStoryId: ParentStoryId? = null,
val isStoryReaction: Boolean = false,
val sentTimeMillis: Long,
val serverTimeMillis: Long,
val receivedTimeMillis: Long,
val groupId: GroupId? = null,
val groupContext: MessageGroupContext? = null,
val body: String? = null,
val storyType: StoryType = StoryType.NONE,
val parentStoryId: ParentStoryId? = null,
val isStoryReaction: Boolean = false,
val subscriptionId: Int = -1,
val expiresIn: Long = 0,
val isExpirationUpdate: Boolean = false,
val quote: QuoteModel? = null,
val isUnidentified: Boolean = false,
val isViewOnce: Boolean = false,
@@ -37,8 +36,7 @@ class IncomingMessage(
sharedContacts: List<Contact> = emptyList(),
linkPreviews: List<LinkPreview> = emptyList(),
mentions: List<Mention> = emptyList(),
val giftBadge: GiftBadge? = null,
val type: MessageType = MessageType.NORMAL
val giftBadge: GiftBadge? = null
) {
val attachments: List<Attachment> = ArrayList(attachments)

View File

@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.releasechannel
import org.thoughtcrime.securesms.attachments.PointerAttachment
import org.thoughtcrime.securesms.database.MessageTable
import org.thoughtcrime.securesms.database.MessageType
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.database.model.StoryType
import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList
@@ -61,6 +62,7 @@ object ReleaseChannel {
}
val message = IncomingMessage(
type = MessageType.NORMAL,
from = recipientId,
sentTimeMillis = System.currentTimeMillis(),
serverTimeMillis = System.currentTimeMillis(),

View File

@@ -31,6 +31,7 @@ object TestSms {
threadId: Long = 1
): Long {
val message = IncomingMessage(
type = MessageType.NORMAL,
from = sender,
sentTimeMillis = sentTimestampMillis,
serverTimeMillis = serverTimestampMillis,