mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 13:08:46 +00:00
Limit body ranges processed on received messages.
This commit is contained in:
committed by
Greyson Parrelli
parent
a7e5ab1a6a
commit
866408f673
@@ -110,6 +110,8 @@ import kotlin.time.Duration.Companion.seconds
|
||||
|
||||
object DataMessageProcessor {
|
||||
|
||||
private const val BODY_RANGE_PROCESSING_LIMIT = 250
|
||||
|
||||
fun process(
|
||||
context: Context,
|
||||
senderRecipient: Recipient,
|
||||
@@ -834,10 +836,10 @@ object DataMessageProcessor {
|
||||
val quote: QuoteModel? = getValidatedQuote(context, envelope.timestamp, message)
|
||||
val contacts: List<Contact> = getContacts(message)
|
||||
val linkPreviews: List<LinkPreview> = getLinkPreviews(message.previewList, message.body ?: "", false)
|
||||
val mentions: List<Mention> = getMentions(message.bodyRangesList)
|
||||
val mentions: List<Mention> = getMentions(message.bodyRangesList.take(BODY_RANGE_PROCESSING_LIMIT))
|
||||
val sticker: Attachment? = getStickerAttachment(envelope.timestamp, message)
|
||||
val attachments: List<Attachment> = message.attachmentsList.toPointersWithinLimit()
|
||||
val messageRanges: BodyRangeList? = if (message.bodyRangesCount > 0) message.bodyRangesList.filter { it.hasStyle() }.toList().toBodyRangeList() else null
|
||||
val messageRanges: BodyRangeList? = if (message.bodyRangesCount > 0) message.bodyRangesList.asSequence().take(BODY_RANGE_PROCESSING_LIMIT).filter { it.hasStyle() }.toList().toBodyRangeList() else null
|
||||
|
||||
handlePossibleExpirationUpdate(envelope, metadata, senderRecipient.id, threadRecipient, groupId, message.expireTimer.seconds, receivedTime)
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ object MessageRangesTransformer : ColumnTransformer {
|
||||
return if (messageRangesData != null) {
|
||||
val ranges = BodyRangeList.parseFrom(messageRangesData)
|
||||
ranges.rangesList
|
||||
.take(5)
|
||||
.map { range ->
|
||||
val mention = range.hasMentionUuid()
|
||||
val style = range.hasStyle()
|
||||
@@ -34,6 +35,13 @@ object MessageRangesTransformer : ColumnTransformer {
|
||||
|
||||
rangeString
|
||||
}.joinToString("<br>")
|
||||
.let {
|
||||
if (ranges.rangesCount > 5) {
|
||||
it + "<br>" + "Not showing an additional ${ranges.rangesCount - 5} body ranges."
|
||||
} else {
|
||||
it
|
||||
}
|
||||
}
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user