@@ -12,9 +12,11 @@ import org.xmtp.android.library.messages.DecryptedMessage
12
12
import org.xmtp.android.library.messages.PagingInfoSortDirection
13
13
import org.xmtp.proto.message.api.v1.MessageApiOuterClass
14
14
import uniffi.xmtpv3.FfiGroup
15
+ import uniffi.xmtpv3.FfiGroupMetadata
15
16
import uniffi.xmtpv3.FfiListMessagesOptions
16
17
import uniffi.xmtpv3.FfiMessage
17
18
import uniffi.xmtpv3.FfiMessageCallback
19
+ import uniffi.xmtpv3.GroupPermissions
18
20
import java.lang.Exception
19
21
import java.util.Date
20
22
import kotlin.time.Duration.Companion.nanoseconds
@@ -27,6 +29,9 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) {
27
29
val createdAt: Date
28
30
get() = Date (libXMTPGroup.createdAtNs() / 1_000_000 )
29
31
32
+ private val metadata: FfiGroupMetadata
33
+ get() = libXMTPGroup.groupMetadata()
34
+
30
35
fun send (text : String ): String {
31
36
return send(prepareMessage(content = text, options = null ))
32
37
}
@@ -133,6 +138,18 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) {
133
138
return libXMTPGroup.isActive()
134
139
}
135
140
141
+ fun permissionLevel (): GroupPermissions {
142
+ return metadata.policyType()
143
+ }
144
+
145
+ fun isAdmin (): Boolean {
146
+ return metadata.creatorAccountAddress().lowercase() == client.address.lowercase()
147
+ }
148
+
149
+ fun adminAddress (): String {
150
+ return metadata.creatorAccountAddress()
151
+ }
152
+
136
153
fun addMembers (addresses : List <String >) {
137
154
try {
138
155
runBlocking { libXMTPGroup.addMembers(addresses) }
0 commit comments