mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-08-08 06:17:37 +01:00
Update shouldIngore for edit and decryption error messages.
This commit is contained in:
committed by
Cody Henthorne
parent
6210d1b397
commit
5041057bab
@@ -53,6 +53,7 @@ import org.whispersystems.signalservice.api.push.DistributionId
|
||||
import org.whispersystems.signalservice.api.push.SignalServiceAddress
|
||||
import org.whispersystems.signalservice.internal.push.CallMessage
|
||||
import org.whispersystems.signalservice.internal.push.Content
|
||||
import org.whispersystems.signalservice.internal.push.DataMessage
|
||||
import org.whispersystems.signalservice.internal.push.Envelope
|
||||
import org.whispersystems.signalservice.internal.push.GroupContextV2
|
||||
import org.whispersystems.signalservice.internal.push.TypingMessage
|
||||
@@ -148,25 +149,16 @@ open class MessageContentProcessor(private val context: Context) {
|
||||
@Throws(BadGroupIdException::class)
|
||||
private fun shouldIgnore(content: Content, senderRecipient: Recipient, threadRecipient: Recipient): Boolean {
|
||||
if (content.dataMessage != null) {
|
||||
val message = content.dataMessage!!
|
||||
return if (threadRecipient.isGroup && threadRecipient.isBlocked) {
|
||||
true
|
||||
} else if (threadRecipient.isGroup) {
|
||||
if (threadRecipient.isUnknownGroup) {
|
||||
return senderRecipient.isBlocked
|
||||
}
|
||||
|
||||
val isTextMessage = message.body != null
|
||||
val isMediaMessage = message.isMediaMessage
|
||||
val isExpireMessage = message.isExpirationUpdate
|
||||
val isGv2Update = message.hasSignedGroupChange
|
||||
val isContentMessage = !isGv2Update && !isExpireMessage && (isTextMessage || isMediaMessage)
|
||||
val isGroupActive = threadRecipient.isActiveGroup
|
||||
|
||||
isContentMessage && !isGroupActive || senderRecipient.isBlocked && !isGv2Update
|
||||
return shouldIgnoreDataMessage(content.dataMessage!!, senderRecipient, threadRecipient)
|
||||
} else if (content.editMessage != null) {
|
||||
val editDataMessage = content.editMessage!!.dataMessage
|
||||
return if (editDataMessage != null) {
|
||||
shouldIgnoreDataMessage(editDataMessage, senderRecipient, threadRecipient)
|
||||
} else {
|
||||
senderRecipient.isBlocked
|
||||
}
|
||||
} else if (content.decryptionErrorMessage != null) {
|
||||
return senderRecipient.isBlocked
|
||||
} else if (content.callMessage != null) {
|
||||
return senderRecipient.isBlocked
|
||||
} else if (content.typingMessage != null) {
|
||||
@@ -194,6 +186,27 @@ open class MessageContentProcessor(private val context: Context) {
|
||||
return false
|
||||
}
|
||||
|
||||
private fun shouldIgnoreDataMessage(message: DataMessage, senderRecipient: Recipient, threadRecipient: Recipient): Boolean {
|
||||
return if (threadRecipient.isGroup && threadRecipient.isBlocked) {
|
||||
true
|
||||
} else if (threadRecipient.isGroup) {
|
||||
if (threadRecipient.isUnknownGroup) {
|
||||
return senderRecipient.isBlocked
|
||||
}
|
||||
|
||||
val isTextMessage = message.body != null
|
||||
val isMediaMessage = message.isMediaMessage
|
||||
val isExpireMessage = message.isExpirationUpdate
|
||||
val isGv2Update = message.hasSignedGroupChange
|
||||
val isContentMessage = !isGv2Update && !isExpireMessage && (isTextMessage || isMediaMessage)
|
||||
val isGroupActive = threadRecipient.isActiveGroup
|
||||
|
||||
isContentMessage && !isGroupActive || senderRecipient.isBlocked && !isGv2Update
|
||||
} else {
|
||||
senderRecipient.isBlocked
|
||||
}
|
||||
}
|
||||
|
||||
@Throws(BadGroupIdException::class)
|
||||
private fun handlePendingRetry(pending: PendingRetryReceiptModel?, timestamp: Long, destination: Recipient): Long {
|
||||
var receivedTime = System.currentTimeMillis()
|
||||
|
||||
Reference in New Issue
Block a user