Skip to content

Commit eb10536

Browse files
committed
use new updated codec
1 parent eb4f963 commit eb10536

File tree

6 files changed

+59
-58
lines changed

6 files changed

+59
-58
lines changed

library/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ dependencies {
8686
implementation 'org.web3j:crypto:5.0.0'
8787
implementation "net.java.dev.jna:jna:5.14.0@aar"
8888
api 'com.google.protobuf:protobuf-kotlin-lite:3.22.3'
89-
api 'org.xmtp:proto-kotlin:3.51.0'
89+
api 'org.xmtp:proto-kotlin:3.61.1'
9090

9191
testImplementation 'junit:junit:4.13.2'
9292
androidTestImplementation 'app.cash.turbine:turbine:0.12.1'

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

+6-6
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ import org.xmtp.android.library.messages.MessageDeliveryStatus
2222
import org.xmtp.android.library.messages.PrivateKey
2323
import org.xmtp.android.library.messages.PrivateKeyBuilder
2424
import org.xmtp.android.library.messages.walletAddress
25-
import uniffi.xmtpv3.org.xmtp.android.library.codecs.ContentTypeGroupMembershipChange
26-
import uniffi.xmtpv3.org.xmtp.android.library.codecs.GroupMembershipChangeCodec
25+
import uniffi.xmtpv3.org.xmtp.android.library.codecs.ContentTypeGroupUpdated
2726
import uniffi.xmtpv3.org.xmtp.android.library.codecs.GroupMembershipChanges
27+
import uniffi.xmtpv3.org.xmtp.android.library.codecs.GroupUpdatedCodec
2828

2929
@RunWith(AndroidJUnit4::class)
3030
class GroupTest {
@@ -458,7 +458,7 @@ class GroupTest {
458458

459459
@Test
460460
fun testCanStreamGroupMessages() = kotlinx.coroutines.test.runTest {
461-
Client.register(codec = GroupMembershipChangeCodec())
461+
Client.register(codec = GroupUpdatedCodec())
462462
val membershipChange = GroupMembershipChanges.newBuilder().build()
463463

464464
val group = boClient.conversations.newGroup(listOf(alix.walletAddress.lowercase()))
@@ -469,7 +469,7 @@ class GroupTest {
469469
assertEquals("hi", awaitItem().body)
470470
alixGroup.send(
471471
content = membershipChange,
472-
options = SendOptions(contentType = ContentTypeGroupMembershipChange),
472+
options = SendOptions(contentType = ContentTypeGroupUpdated),
473473
)
474474
alixGroup.send("hi again")
475475
assertEquals("hi again", awaitItem().body)
@@ -537,7 +537,7 @@ class GroupTest {
537537

538538
@Test
539539
fun testCanStreamAllDecryptedGroupMessages() = kotlinx.coroutines.test.runTest {
540-
Client.register(codec = GroupMembershipChangeCodec())
540+
Client.register(codec = GroupUpdatedCodec())
541541
val membershipChange = GroupMembershipChanges.newBuilder().build()
542542
val group = caroClient.conversations.newGroup(listOf(alix.walletAddress))
543543
alixClient.conversations.syncGroups()
@@ -557,7 +557,7 @@ class GroupTest {
557557
group.send("hi 1")
558558
group.send(
559559
content = membershipChange,
560-
options = SendOptions(contentType = ContentTypeGroupMembershipChange),
560+
options = SendOptions(contentType = ContentTypeGroupUpdated),
561561
)
562562
group.send("hi 2")
563563

library/src/androidTest/java/org/xmtp/android/library/GroupMembershipChangeTest.kt library/src/androidTest/java/org/xmtp/android/library/GroupUpdatedTest.kt

+13-13
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ import org.junit.runner.RunWith
1111
import org.xmtp.android.library.messages.PrivateKey
1212
import org.xmtp.android.library.messages.PrivateKeyBuilder
1313
import org.xmtp.android.library.messages.walletAddress
14-
import uniffi.xmtpv3.org.xmtp.android.library.codecs.ContentTypeGroupMembershipChange
15-
import uniffi.xmtpv3.org.xmtp.android.library.codecs.GroupMembershipChangeCodec
14+
import uniffi.xmtpv3.org.xmtp.android.library.codecs.ContentTypeGroupUpdated
1615
import uniffi.xmtpv3.org.xmtp.android.library.codecs.GroupMembershipChanges
16+
import uniffi.xmtpv3.org.xmtp.android.library.codecs.GroupUpdatedCodec
1717

1818
@RunWith(AndroidJUnit4::class)
19-
class GroupMembershipChangeTest {
19+
class GroupUpdatedTest {
2020
lateinit var alixWallet: PrivateKeyBuilder
2121
lateinit var boWallet: PrivateKeyBuilder
2222
lateinit var alix: PrivateKey
@@ -52,7 +52,7 @@ class GroupMembershipChangeTest {
5252

5353
@Test
5454
fun testCanAddMembers() {
55-
Client.register(codec = GroupMembershipChangeCodec())
55+
Client.register(codec = GroupUpdatedCodec())
5656

5757
val group = runBlocking {
5858
alixClient.conversations.newGroup(
@@ -66,15 +66,15 @@ class GroupMembershipChangeTest {
6666
assertEquals(messages.size, 1)
6767
val content: GroupMembershipChanges? = messages.first().content()
6868
assertEquals(
69-
listOf(bo.walletAddress.lowercase(), caro.walletAddress.lowercase()).sorted(),
70-
content?.membersAddedList?.map { it.accountAddress.lowercase() }?.sorted()
69+
listOf(boClient.inboxId.lowercase(), caroClient.inboxId.lowercase()).sorted(),
70+
content?.addedInboxesList?.map { it.inboxId.lowercase() }?.sorted()
7171
)
72-
assert(content?.membersRemovedList.isNullOrEmpty())
72+
assert(content?.removedInboxesList.isNullOrEmpty())
7373
}
7474

7575
@Test
7676
fun testCanRemoveMembers() {
77-
Client.register(codec = GroupMembershipChangeCodec())
77+
Client.register(codec = GroupUpdatedCodec())
7878

7979
val group = runBlocking {
8080
alixClient.conversations.newGroup(
@@ -94,15 +94,15 @@ class GroupMembershipChangeTest {
9494
val content: GroupMembershipChanges? = updatedMessages.first().content()
9595

9696
assertEquals(
97-
listOf(caro.walletAddress.lowercase()),
98-
content?.membersRemovedList?.map { it.accountAddress.lowercase() }?.sorted()
97+
listOf(caroClient.inboxId.lowercase()),
98+
content?.removedInboxesList?.map { it.inboxId.lowercase() }?.sorted()
9999
)
100-
assert(content?.membersAddedList.isNullOrEmpty())
100+
assert(content?.addedInboxesList.isNullOrEmpty())
101101
}
102102

103103
@Test
104104
fun testRemovesInvalidMessageKind() {
105-
Client.register(codec = GroupMembershipChangeCodec())
105+
Client.register(codec = GroupUpdatedCodec())
106106

107107
val membershipChange = GroupMembershipChanges.newBuilder().build()
108108

@@ -120,7 +120,7 @@ class GroupMembershipChangeTest {
120120
runBlocking {
121121
group.send(
122122
content = membershipChange,
123-
options = SendOptions(contentType = ContentTypeGroupMembershipChange),
123+
options = SendOptions(contentType = ContentTypeGroupUpdated),
124124
)
125125
group.sync()
126126
}

library/src/main/java/org/xmtp/android/library/codecs/GroupMembershipChangeCodec.kt

-36
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package uniffi.xmtpv3.org.xmtp.android.library.codecs
2+
3+
import org.xmtp.android.library.codecs.ContentCodec
4+
import org.xmtp.android.library.codecs.ContentTypeId
5+
import org.xmtp.android.library.codecs.ContentTypeIdBuilder
6+
import org.xmtp.android.library.codecs.EncodedContent
7+
import org.xmtp.proto.mls.message.contents.TranscriptMessages.GroupUpdated
8+
9+
typealias GroupMembershipChanges = org.xmtp.proto.mls.message.contents.TranscriptMessages.GroupUpdated
10+
11+
val ContentTypeGroupUpdated = ContentTypeIdBuilder.builderFromAuthorityId(
12+
"xmtp.org",
13+
"group_updated",
14+
versionMajor = 1,
15+
versionMinor = 0,
16+
)
17+
18+
data class GroupUpdatedCodec(override var contentType: ContentTypeId = ContentTypeGroupUpdated) :
19+
ContentCodec<GroupUpdated> {
20+
21+
override fun encode(content: GroupUpdated): EncodedContent {
22+
return EncodedContent.newBuilder().also {
23+
it.type = ContentTypeGroupUpdated
24+
it.content = content.toByteString()
25+
}.build()
26+
}
27+
28+
override fun decode(content: EncodedContent): GroupUpdated {
29+
return GroupMembershipChanges.parseFrom(content.content)
30+
}
31+
32+
override fun fallback(content: GroupUpdated): String? {
33+
return null
34+
}
35+
36+
override fun shouldPush(content: GroupUpdated): Boolean = false
37+
}

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import org.xmtp.android.library.toHex
1212
import uniffi.xmtpv3.FfiDeliveryStatus
1313
import uniffi.xmtpv3.FfiGroupMessageKind
1414
import uniffi.xmtpv3.FfiMessage
15-
import uniffi.xmtpv3.org.xmtp.android.library.codecs.ContentTypeGroupMembershipChange
15+
import uniffi.xmtpv3.org.xmtp.android.library.codecs.ContentTypeGroupUpdated
1616
import java.util.Date
1717

1818
data class MessageV3(val client: Client, private val libXMTPMessage: FfiMessage) {
@@ -47,7 +47,7 @@ data class MessageV3(val client: Client, private val libXMTPMessage: FfiMessage)
4747
sent = sentAt,
4848
deliveryStatus = deliveryStatus
4949
)
50-
if (decodedMessage.encodedContent.type == ContentTypeGroupMembershipChange && libXMTPMessage.kind != FfiGroupMessageKind.MEMBERSHIP_CHANGE) {
50+
if (decodedMessage.encodedContent.type == ContentTypeGroupUpdated && libXMTPMessage.kind != FfiGroupMessageKind.MEMBERSHIP_CHANGE) {
5151
throw XMTPException("Error decoding group membership change")
5252
}
5353
return decodedMessage

0 commit comments

Comments
 (0)