Skip to content

Commit 4e62ae7

Browse files
committed
add group permissions
1 parent fc383d4 commit 4e62ae7

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

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

+10
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import org.xmtp.android.library.codecs.ReactionSchema
1717
import org.xmtp.android.library.messages.PrivateKey
1818
import org.xmtp.android.library.messages.PrivateKeyBuilder
1919
import org.xmtp.android.library.messages.walletAddress
20+
import uniffi.xmtpv3.GroupPermissions
2021

2122
@RunWith(AndroidJUnit4::class)
2223
class GroupTest {
@@ -62,6 +63,15 @@ class GroupTest {
6263
assert(group.id.isNotEmpty())
6364
}
6465

66+
@Test
67+
fun testCanCreateAGroupWithAdminPermissions() {
68+
val group = boClient.conversations.newGroup(
69+
listOf(alix.walletAddress),
70+
permissions = GroupPermissions.GROUP_CREATOR_IS_ADMIN
71+
)
72+
assert(group.id.isNotEmpty())
73+
}
74+
6575
@Test
6676
fun testCanListGroupMembers() {
6777
val group = boClient.conversations.newGroup(

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

+6-2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import uniffi.xmtpv3.FfiConversationCallback
3939
import uniffi.xmtpv3.FfiConversations
4040
import uniffi.xmtpv3.FfiGroup
4141
import uniffi.xmtpv3.FfiListConversationsOptions
42+
import uniffi.xmtpv3.GroupPermissions
4243
import java.util.Date
4344
import kotlin.time.Duration.Companion.nanoseconds
4445
import kotlin.time.DurationUnit
@@ -91,7 +92,10 @@ data class Conversations(
9192
)
9293
}
9394

94-
fun newGroup(accountAddresses: List<String>): Group {
95+
fun newGroup(
96+
accountAddresses: List<String>,
97+
permissions: GroupPermissions = GroupPermissions.EVERYONE_IS_ADMIN,
98+
): Group {
9599
if (accountAddresses.isEmpty()) {
96100
throw XMTPException("Cannot start an empty group chat.")
97101
}
@@ -105,7 +109,7 @@ data class Conversations(
105109
}
106110

107111
val group = runBlocking {
108-
libXMTPConversations?.createGroup(accountAddresses, permissions = null)
112+
libXMTPConversations?.createGroup(accountAddresses, permissions = permissions)
109113
?: throw XMTPException("Client does not support Groups")
110114
}
111115
return Group(client, group)

0 commit comments

Comments
 (0)