diff --git a/library/src/main/java/org/xmtp/android/library/ConversationV2.kt b/library/src/main/java/org/xmtp/android/library/ConversationV2.kt index a0c46fbf..8242c764 100644 --- a/library/src/main/java/org/xmtp/android/library/ConversationV2.kt +++ b/library/src/main/java/org/xmtp/android/library/ConversationV2.kt @@ -250,6 +250,7 @@ data class ConversationV2( topic = topic, keyMaterial = keyMaterial, codec = codec, + shouldPush = options?.shouldPush ) val newTopic = if (options?.ephemeral == true) ephemeralTopic else topic diff --git a/library/src/main/java/org/xmtp/android/library/SendOptions.kt b/library/src/main/java/org/xmtp/android/library/SendOptions.kt index 313c4ae3..fb66f5dc 100644 --- a/library/src/main/java/org/xmtp/android/library/SendOptions.kt +++ b/library/src/main/java/org/xmtp/android/library/SendOptions.kt @@ -5,5 +5,6 @@ import org.xmtp.proto.message.contents.Content data class SendOptions( var compression: EncodedContentCompression? = null, var contentType: Content.ContentTypeId? = null, - var ephemeral: Boolean = false + var ephemeral: Boolean = false, + var shouldPush: Boolean? = null ) diff --git a/library/src/main/java/org/xmtp/android/library/messages/DecryptedMessage.kt b/library/src/main/java/org/xmtp/android/library/messages/DecryptedMessage.kt index c2b2d4ef..a2a661c7 100644 --- a/library/src/main/java/org/xmtp/android/library/messages/DecryptedMessage.kt +++ b/library/src/main/java/org/xmtp/android/library/messages/DecryptedMessage.kt @@ -8,5 +8,6 @@ data class DecryptedMessage( var encodedContent: EncodedContent, var senderAddress: String, var sentAt: Date, - var topic: String = "" + var topic: String = "", + var shouldPush: Boolean? ) diff --git a/library/src/main/java/org/xmtp/android/library/messages/MessageV2.kt b/library/src/main/java/org/xmtp/android/library/messages/MessageV2.kt index 913adc8d..991f82c4 100644 --- a/library/src/main/java/org/xmtp/android/library/messages/MessageV2.kt +++ b/library/src/main/java/org/xmtp/android/library/messages/MessageV2.kt @@ -138,6 +138,7 @@ class MessageV2Builder(val senderHmac: ByteArray? = null, val shouldPush: Boolea topic: String, keyMaterial: ByteArray, codec: Codec, + shouldPush: Boolean? = null ): MessageV2Builder { val payload = encodedContent.toByteArray() val date = Date() @@ -160,12 +161,13 @@ class MessageV2Builder(val senderHmac: ByteArray? = null, val shouldPush: Boolea Crypto.deriveKey(keyMaterial, ByteArray(0), infoEncoded), headerBytes ) + val calculatedShouldPush = shouldPush ?: shouldPush(codec = codec, content = codec.decode(encodedContent)) return buildFromCipherText( headerBytes, ciphertext, senderHmacGenerated, - shouldPush(codec = codec, content = codec.decode(encodedContent)), + calculatedShouldPush, ) } }