From 8dcfea85f89d49fb93e1704ffc81ab4ba0beea87 Mon Sep 17 00:00:00 2001 From: kele-leanes Date: Mon, 19 Feb 2024 17:40:44 -0300 Subject: [PATCH 1/3] Add shouldPush property to SendOptions --- library/src/main/java/org/xmtp/android/library/SendOptions.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 313c4ae35..fb66f5dc1 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 ) From edfa01bf7eadc1ff3016968c7857d0193458318b Mon Sep 17 00:00:00 2001 From: kele-leanes Date: Mon, 19 Feb 2024 17:41:09 -0300 Subject: [PATCH 2/3] Add shouldPush property to DecryptedMessage class --- .../java/org/xmtp/android/library/messages/DecryptedMessage.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 c2b2d4ef5..a2a661c75 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? ) From 01eca2482959980c8f97a7d28a7721ab78001b3f Mon Sep 17 00:00:00 2001 From: kele-leanes Date: Mon, 19 Feb 2024 17:41:16 -0300 Subject: [PATCH 3/3] Add shouldPush parameter to ConversationV2 and MessageV2Builder --- .../src/main/java/org/xmtp/android/library/ConversationV2.kt | 1 + .../main/java/org/xmtp/android/library/messages/MessageV2.kt | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) 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 a0c46fbfe..8242c7641 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/messages/MessageV2.kt b/library/src/main/java/org/xmtp/android/library/messages/MessageV2.kt index 913adc8d8..991f82c47 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, ) } }