Skip to content

Commit 7ce43c1

Browse files
committed
do a rename to messageV3 and tweaks to add message kind to the message
1 parent 354f42a commit 7ce43c1

File tree

6 files changed

+35
-18
lines changed

6 files changed

+35
-18
lines changed

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import android.util.Log
44
import com.google.protobuf.kotlin.toByteString
55
import kotlinx.coroutines.flow.Flow
66
import org.xmtp.android.library.codecs.EncodedContent
7-
import org.xmtp.android.library.libxmtp.Message
7+
import org.xmtp.android.library.libxmtp.MessageV3
88
import org.xmtp.android.library.messages.DecryptedMessage
99
import org.xmtp.android.library.messages.Envelope
1010
import org.xmtp.android.library.messages.PagingInfoSortDirection
@@ -121,7 +121,7 @@ sealed class Conversation {
121121
}
122122
}
123123

124-
fun decode(envelope: Envelope, message: Message? = null): DecodedMessage {
124+
fun decode(envelope: Envelope, message: MessageV3? = null): DecodedMessage {
125125
return when (this) {
126126
is V1 -> conversationV1.decode(envelope)
127127
is V2 -> conversationV2.decodeEnvelope(envelope)
@@ -277,7 +277,7 @@ sealed class Conversation {
277277

278278
fun decrypt(
279279
envelope: Envelope,
280-
message: Message? = null,
280+
message: MessageV3? = null,
281281
): DecryptedMessage {
282282
return when (this) {
283283
is V1 -> conversationV1.decrypt(envelope)

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import kotlinx.coroutines.flow.flow
1212
import kotlinx.coroutines.flow.merge
1313
import org.xmtp.android.library.GRPCApiClient.Companion.makeQueryRequest
1414
import org.xmtp.android.library.GRPCApiClient.Companion.makeSubscribeRequest
15-
import org.xmtp.android.library.libxmtp.Message
15+
import org.xmtp.android.library.libxmtp.MessageV3
1616
import org.xmtp.android.library.messages.DecryptedMessage
1717
import org.xmtp.android.library.messages.Envelope
1818
import org.xmtp.android.library.messages.EnvelopeBuilder
@@ -576,7 +576,7 @@ data class Conversations(
576576
fun streamAllGroupMessages(): Flow<DecodedMessage> = callbackFlow {
577577
val messageCallback = object : FfiMessageCallback {
578578
override fun onMessage(message: FfiMessage) {
579-
trySend(Message(client, message).decode())
579+
trySend(MessageV3(client, message).decode())
580580
}
581581
}
582582
val stream = libXMTPConversations?.streamAllMessages(messageCallback)
@@ -587,7 +587,7 @@ data class Conversations(
587587
fun streamAllGroupDecryptedMessages(): Flow<DecryptedMessage> = callbackFlow {
588588
val messageCallback = object : FfiMessageCallback {
589589
override fun onMessage(message: FfiMessage) {
590-
trySend(Message(client, message).decrypt())
590+
trySend(MessageV3(client, message).decrypt())
591591
}
592592
}
593593
val stream = libXMTPConversations?.streamAllMessages(messageCallback)

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.xmtp.android.library
22

33
import org.xmtp.android.library.codecs.TextCodec
44
import org.xmtp.android.library.codecs.decoded
5+
import org.xmtp.android.library.libxmtp.MessageV3
56
import org.xmtp.proto.message.contents.Content
67
import java.util.Date
78

@@ -11,7 +12,8 @@ data class DecodedMessage(
1112
var topic: String,
1213
var encodedContent: Content.EncodedContent,
1314
var senderAddress: String,
14-
var sent: Date
15+
var sent: Date,
16+
var kind: MessageV3.MessageKind = MessageV3.MessageKind.APPLICATION
1517
) {
1618
companion object {
1719
fun preview(client: Client, topic: String, body: String, senderAddress: String, sent: Date): DecodedMessage {

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

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import kotlinx.coroutines.flow.callbackFlow
66
import org.xmtp.android.library.codecs.ContentCodec
77
import org.xmtp.android.library.codecs.EncodedContent
88
import org.xmtp.android.library.codecs.compress
9-
import org.xmtp.android.library.libxmtp.Message
9+
import org.xmtp.android.library.libxmtp.MessageV3
1010
import org.xmtp.android.library.messages.DecryptedMessage
1111
import org.xmtp.android.library.messages.PagingInfoSortDirection
1212
import org.xmtp.android.library.messages.Topic
@@ -94,7 +94,7 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) {
9494
limit = limit?.toLong()
9595
)
9696
).map {
97-
Message(client, it).decode()
97+
MessageV3(client, it).decode()
9898
}
9999
return when (direction) {
100100
MessageApiOuterClass.SortDirection.SORT_DIRECTION_ASCENDING -> messages
@@ -115,17 +115,17 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) {
115115
limit = limit?.toLong()
116116
)
117117
).map {
118-
Message(client, it).decrypt()
118+
MessageV3(client, it).decrypt()
119119
}
120120
return when (direction) {
121121
MessageApiOuterClass.SortDirection.SORT_DIRECTION_ASCENDING -> messages
122122
else -> messages.reversed()
123123
}
124124
}
125125

126-
suspend fun processMessage(envelopeBytes: ByteArray): Message {
126+
suspend fun processMessage(envelopeBytes: ByteArray): MessageV3 {
127127
val message = libXMTPGroup.processStreamedGroupMessage(envelopeBytes)
128-
return Message(client, message)
128+
return MessageV3(client, message)
129129
}
130130

131131
fun isActive(): Boolean {
@@ -173,7 +173,7 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) {
173173
fun streamMessages(): Flow<DecodedMessage> = callbackFlow {
174174
val messageCallback = object : FfiMessageCallback {
175175
override fun onMessage(message: FfiMessage) {
176-
trySend(Message(client, message).decode())
176+
trySend(MessageV3(client, message).decode())
177177
}
178178
}
179179

@@ -184,7 +184,7 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) {
184184
fun streamDecryptedMessages(): Flow<DecryptedMessage> = callbackFlow {
185185
val messageCallback = object : FfiMessageCallback {
186186
override fun onMessage(message: FfiMessage) {
187-
trySend(Message(client, message).decrypt())
187+
trySend(MessageV3(client, message).decrypt())
188188
}
189189
}
190190

library/src/main/java/org/xmtp/android/library/libxmtp/Message.kt library/src/main/java/org/xmtp/android/library/libxmtp/MessageV3.kt

+16-3
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,15 @@ import org.xmtp.android.library.codecs.EncodedContent
77
import org.xmtp.android.library.messages.DecryptedMessage
88
import org.xmtp.android.library.messages.Topic
99
import org.xmtp.android.library.toHex
10+
import uniffi.xmtpv3.FfiGroupMessageKind
1011
import uniffi.xmtpv3.FfiMessage
1112
import java.util.Date
1213

13-
data class Message(val client: Client, private val libXMTPMessage: FfiMessage) {
14+
data class MessageV3(val client: Client, private val libXMTPMessage: FfiMessage) {
15+
16+
enum class MessageKind {
17+
APPLICATION, MEMBERSHIP_CHANGE
18+
}
1419
val id: ByteArray
1520
get() = libXMTPMessage.id
1621

@@ -23,6 +28,12 @@ data class Message(val client: Client, private val libXMTPMessage: FfiMessage) {
2328
val sentAt: Date
2429
get() = Date(libXMTPMessage.sentAtNs / 1_000_000)
2530

31+
val kind: MessageKind
32+
get() = when (libXMTPMessage.kind) {
33+
FfiGroupMessageKind.APPLICATION -> MessageKind.APPLICATION
34+
FfiGroupMessageKind.MEMBERSHIP_CHANGE -> MessageKind.MEMBERSHIP_CHANGE
35+
}
36+
2637
fun decode(): DecodedMessage {
2738
try {
2839
return DecodedMessage(
@@ -31,7 +42,8 @@ data class Message(val client: Client, private val libXMTPMessage: FfiMessage) {
3142
topic = Topic.groupMessage(convoId.toHex()).description,
3243
encodedContent = EncodedContent.parseFrom(libXMTPMessage.content),
3344
senderAddress = senderAddress,
34-
sent = sentAt
45+
sent = sentAt,
46+
kind = kind
3547
)
3648
} catch (e: Exception) {
3749
throw XMTPException("Error decoding message", e)
@@ -44,7 +56,8 @@ data class Message(val client: Client, private val libXMTPMessage: FfiMessage) {
4456
topic = Topic.groupMessage(convoId.toHex()).description,
4557
encodedContent = decode().encodedContent,
4658
senderAddress = senderAddress,
47-
sentAt = Date()
59+
sentAt = Date(),
60+
kind = kind
4861
)
4962
}
5063
}
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package org.xmtp.android.library.messages
22

33
import org.xmtp.android.library.codecs.EncodedContent
4+
import org.xmtp.android.library.libxmtp.MessageV3
45
import java.util.Date
56

67
data class DecryptedMessage(
78
var id: String,
89
var encodedContent: EncodedContent,
910
var senderAddress: String,
1011
var sentAt: Date,
11-
var topic: String = ""
12+
var topic: String = "",
13+
var kind: MessageV3.MessageKind = MessageV3.MessageKind.APPLICATION
1214
)

0 commit comments

Comments
 (0)