Skip to content

Commit e4b5e10

Browse files
committed
do kotlin way of extending proto class
1 parent 3639981 commit e4b5e10

File tree

4 files changed

+16
-11
lines changed

4 files changed

+16
-11
lines changed

library/src/androidTest/java/org/xmtp/android/library/ConversationTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ class ConversationTest {
238238
val tamperedEnvelope = EnvelopeBuilder.buildFromString(
239239
topic = aliceConversation.topic,
240240
timestamp = Date(),
241-
message = MessageBuilder.buildFromMessageV2(v2 = tamperedMessage).toByteArray(),
241+
message = MessageBuilder.buildFromMessageV2(v2 = tamperedMessage.messageV2).toByteArray(),
242242
)
243243
aliceClient.publish(envelopes = listOf(tamperedEnvelope))
244244
val bobConversation = bobClient.conversations.newConversation(
@@ -591,7 +591,7 @@ class ConversationTest {
591591
topic = conversation.topic,
592592
keyMaterial = conversation.keyMaterial!!,
593593
shouldPush = true,
594-
),
594+
).messageV2,
595595
).toByteArray(),
596596
),
597597
)

library/src/androidTest/java/org/xmtp/android/library/MessageTest.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class MessageTest {
9797
val decoded = MessageV2Builder.buildDecode(
9898
id = "",
9999
client = client,
100-
message = message1,
100+
message = message1.messageV2,
101101
keyMaterial = invitationv1.aes256GcmHkdfSha256.keyMaterial.toByteArray(),
102102
topic = invitationv1.topic
103103
)

library/src/main/java/org/xmtp/android/library/ConversationV2.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ data class ConversationV2(
213213
val envelope = EnvelopeBuilder.buildFromString(
214214
topic = topic,
215215
timestamp = Date(),
216-
message = MessageBuilder.buildFromMessageV2(v2 = message).toByteArray(),
216+
message = MessageBuilder.buildFromMessageV2(v2 = message.messageV2).toByteArray(),
217217
)
218218
return envelope.toByteArray()
219219
}
@@ -271,7 +271,7 @@ data class ConversationV2(
271271
val envelope = EnvelopeBuilder.buildFromString(
272272
topic = newTopic,
273273
timestamp = Date(),
274-
message = MessageBuilder.buildFromMessageV2(v2 = message).toByteArray(),
274+
message = MessageBuilder.buildFromMessageV2(v2 = message.messageV2).toByteArray(),
275275
)
276276
return PreparedMessage(listOf(envelope))
277277
}

library/src/main/java/org/xmtp/android/library/messages/MessageV2.kt

+11-6
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,22 @@ import java.util.Date
1717

1818
typealias MessageV2 = org.xmtp.proto.message.contents.MessageOuterClass.MessageV2
1919

20-
class MessageV2Builder {
20+
class MessageV2Builder(val senderHmac: ByteArray? = null, val shouldPush: Boolean = false) {
21+
lateinit var messageV2: MessageV2
22+
2123
companion object {
2224
fun buildFromCipherText(
2325
headerBytes: ByteArray,
2426
ciphertext: CipherText?,
2527
senderHmac: ByteArray?,
2628
shouldPush: Boolean,
27-
): MessageV2 {
28-
return MessageV2.newBuilder().also {
29+
): MessageV2Builder {
30+
val messageBuilder = MessageV2Builder(senderHmac = senderHmac, shouldPush = shouldPush)
31+
messageBuilder.messageV2 = MessageV2.newBuilder().also {
2932
it.headerBytes = headerBytes.toByteString()
3033
it.ciphertext = ciphertext
3134
}.build()
35+
return messageBuilder
3236
}
3337

3438
fun buildDecode(
@@ -125,7 +129,7 @@ class MessageV2Builder {
125129
topic: String,
126130
keyMaterial: ByteArray,
127131
shouldPush: Boolean,
128-
): MessageV2 {
132+
): MessageV2Builder {
129133
val payload = encodedContent.toByteArray()
130134
val date = Date()
131135
val header = MessageHeaderV2Builder.buildFromTopic(topic, date)
@@ -142,9 +146,10 @@ class MessageV2Builder {
142146
(System.currentTimeMillis() / 60 / 60 / 24 / 30).toInt()
143147
val info = "$thirtyDayPeriodsSinceEpoch-${client.address}"
144148
val infoEncoded = info.toByteStringUtf8().toByteArray()
145-
val senderHmac = Crypto.generateHmacSignature(keyMaterial, infoEncoded, headerBytes)
149+
val senderHmacGenerated =
150+
Crypto.generateHmacSignature(keyMaterial, infoEncoded, headerBytes)
146151

147-
return buildFromCipherText(headerBytes, ciphertext, senderHmac, shouldPush)
152+
return buildFromCipherText(headerBytes, ciphertext, senderHmacGenerated, shouldPush)
148153
}
149154
}
150155
}

0 commit comments

Comments
 (0)