Skip to content

Commit fc78da9

Browse files
committed
add new group admin functions
1 parent 867d1dc commit fc78da9

File tree

1 file changed

+17
-0
lines changed
  • library/src/main/java/org/xmtp/android/library

1 file changed

+17
-0
lines changed

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

+17
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ import org.xmtp.android.library.messages.DecryptedMessage
1212
import org.xmtp.android.library.messages.PagingInfoSortDirection
1313
import org.xmtp.proto.message.api.v1.MessageApiOuterClass
1414
import uniffi.xmtpv3.FfiGroup
15+
import uniffi.xmtpv3.FfiGroupMetadata
1516
import uniffi.xmtpv3.FfiListMessagesOptions
1617
import uniffi.xmtpv3.FfiMessage
1718
import uniffi.xmtpv3.FfiMessageCallback
19+
import uniffi.xmtpv3.GroupPermissions
1820
import java.lang.Exception
1921
import java.util.Date
2022
import kotlin.time.Duration.Companion.nanoseconds
@@ -27,6 +29,9 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) {
2729
val createdAt: Date
2830
get() = Date(libXMTPGroup.createdAtNs() / 1_000_000)
2931

32+
private val metadata: FfiGroupMetadata
33+
get() = libXMTPGroup.groupMetadata()
34+
3035
fun send(text: String): String {
3136
return send(prepareMessage(content = text, options = null))
3237
}
@@ -133,6 +138,18 @@ class Group(val client: Client, private val libXMTPGroup: FfiGroup) {
133138
return libXMTPGroup.isActive()
134139
}
135140

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+
136153
fun addMembers(addresses: List<String>) {
137154
try {
138155
runBlocking { libXMTPGroup.addMembers(addresses) }

0 commit comments

Comments
 (0)