Group

class Group(val client: Client, libXMTPGroup: FfiConversation, ffiLastMessage: FfiMessage? = null, ffiIsCommitLogForked: Boolean? = null)

Constructors

Link copied to clipboard
constructor(client: Client, libXMTPGroup: FfiConversation, ffiLastMessage: FfiMessage? = null, ffiIsCommitLogForked: Boolean? = null)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val id: String
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Pre-release APIs, grouped under UnstableGroup. The @UnstableApi opt-in is applied once here, so every function on UnstableGroup is covered without a per-function annotation. Call sites must @OptIn(UnstableApi::class); when a function graduates it moves onto Group and the opt-in stops resolving, forcing a migration.

Functions

Link copied to clipboard
suspend fun addAdmin(inboxId: InboxId)
Link copied to clipboard
suspend fun addedByInboxId(): InboxId
Link copied to clipboard
suspend fun addMembers(inboxIds: List<InboxId>): GroupMembershipResult
Link copied to clipboard
Link copied to clipboard
suspend fun addSuperAdmin(inboxId: InboxId)
Link copied to clipboard
suspend fun appData(): String
Link copied to clipboard
Link copied to clipboard
suspend fun consentState(): ConsentState
Link copied to clipboard
suspend fun countMessages(beforeNs: Long? = null, afterNs: Long? = null, deliveryStatus: DecodedMessage.MessageDeliveryStatus = MessageDeliveryStatus.ALL, excludeContentTypes: List<FfiContentType>? = null, excludeSenderInboxIds: List<String>? = null, insertedAfterNs: Long? = null, insertedBeforeNs: Long? = null): Long
Link copied to clipboard
suspend fun creatorInboxId(): InboxId
Link copied to clipboard
suspend fun deleteMessage(messageId: String): String

Delete a message by its ID.

Link copied to clipboard
suspend fun description(): String
Link copied to clipboard
Link copied to clipboard
suspend fun enrichedMessages(limit: Int? = null, beforeNs: Long? = null, afterNs: Long? = null, direction: DecodedMessage.SortDirection = SortDirection.DESCENDING, deliveryStatus: DecodedMessage.MessageDeliveryStatus = MessageDeliveryStatus.ALL, excludeContentTypes: List<FfiContentType>? = null, excludeSenderInboxIds: List<String>? = null, insertedAfterNs: Long? = null, insertedBeforeNs: Long? = null, sortBy: DecodedMessage.SortBy = SortBy.SENT_TIME): List<DecodedMessageV2>

Get messages with enriched metadata automatically included.

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
Link copied to clipboard
suspend fun getHmacKeys(): Keystore.GetConversationHmacKeysResponse
Link copied to clipboard
suspend fun getLastReadTimes(): Map<InboxId, Long>
Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
suspend fun imageUrl(): String
Link copied to clipboard
suspend fun isActive(): Boolean
Link copied to clipboard
suspend fun isAdmin(inboxId: InboxId): Boolean
Link copied to clipboard
suspend fun isCreator(): Boolean
Link copied to clipboard
Link copied to clipboard
suspend fun isSuperAdmin(inboxId: InboxId): Boolean
Link copied to clipboard
suspend fun lastMessage(): DecodedMessage?
Link copied to clipboard
suspend fun leaveGroup()
Link copied to clipboard
suspend fun listAdmins(): List<InboxId>
Link copied to clipboard
suspend fun listSuperAdmins(): List<InboxId>
Link copied to clipboard
suspend fun members(): List<Member>
Link copied to clipboard

Snapshot this group's membership capabilities: the group context's extension types plus, per member inbox and installation, the extension types each advertises.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
suspend fun messageReader(from: DeliveryCursor? = null): MessageReader

Supply a cursor to replay independently of default delivery progress.

Link copied to clipboard
suspend fun messages(limit: Int? = null, beforeNs: Long? = null, afterNs: Long? = null, direction: DecodedMessage.SortDirection = SortDirection.DESCENDING, deliveryStatus: DecodedMessage.MessageDeliveryStatus = MessageDeliveryStatus.ALL, excludeContentTypes: List<FfiContentType>? = null, excludeSenderInboxIds: List<String>? = null, insertedAfterNs: Long? = null, insertedBeforeNs: Long? = null, sortBy: DecodedMessage.SortBy = SortBy.SENT_TIME): List<DecodedMessage>

Get the raw list of messages from this group.

Link copied to clipboard
suspend fun messagesWithReactions(limit: Int? = null, beforeNs: Long? = null, afterNs: Long? = null, direction: DecodedMessage.SortDirection = SortDirection.DESCENDING, deliveryStatus: DecodedMessage.MessageDeliveryStatus = MessageDeliveryStatus.ALL, excludeContentTypes: List<FfiContentType>? = null, excludeSenderInboxIds: List<String>? = null, insertedAfterNs: Long? = null, insertedBeforeNs: Long? = null, sortBy: DecodedMessage.SortBy = SortBy.SENT_TIME): List<DecodedMessage>
Link copied to clipboard
suspend fun name(): String
Link copied to clipboard

Read the effective notification value for this conversation.

Link copied to clipboard
suspend fun pausedForVersion(): String?
Link copied to clipboard
suspend fun peerInboxIds(): List<InboxId>
Link copied to clipboard
Link copied to clipboard
suspend fun permissions(): FfiGroupPermissions
Link copied to clipboard
suspend fun <T> prepareMessage(content: T, options: SendOptions? = null, noSend: Boolean = false): String
suspend fun prepareMessage(encodedContent: EncodedContent, opts: MessageVisibilityOptions = MessageVisibilityOptions(shouldPush = true), noSend: Boolean = false): String

Prepares a message for sending.

Link copied to clipboard
suspend fun processMessage(messageBytes: ByteArray): DecodedMessage?
Link copied to clipboard
suspend fun proposalsEnabled(): Boolean

Whether this group has migrated to AppData-proposal-based metadata updates. false means the group is still on the legacy GroupContextExtensions path. Prefer this semantic bool over scanning membershipCapabilities for the marker extension.

Link copied to clipboard
suspend fun publishMessage(id: String)

Publishes a message that was prepared with noSend = true.

Link copied to clipboard
suspend fun publishMessages()
Link copied to clipboard
suspend fun removeAdmin(inboxId: InboxId)
Link copied to clipboard
suspend fun removeMembers(inboxIds: List<InboxId>)
Link copied to clipboard
suspend fun removeMembersByIdentity(identities: List<PublicIdentity>)
Link copied to clipboard
suspend fun removeSuperAdmin(inboxId: InboxId)
Link copied to clipboard
suspend fun send(text: String): String
suspend fun <T> send(content: T, options: SendOptions? = null): String
suspend fun send(encodedContent: EncodedContent, opts: MessageVisibilityOptions = MessageVisibilityOptions(shouldPush = true)): String
Link copied to clipboard

Override notification rules, or reset the override with Default.

Link copied to clipboard
fun streamMessages(onClose: () -> Unit? = null): Flow<DecodedMessage>

Acknowledges after the direct Flow collector returns. App-added buffering changes this boundary.

Link copied to clipboard
suspend fun sync()
Link copied to clipboard
suspend fun updateAddAdminPermission(newPermissionOption: PermissionOption)
Link copied to clipboard
suspend fun updateAddMemberPermission(newPermissionOption: PermissionOption)
Link copied to clipboard
suspend fun updateAppData(appData: String, expectedAppData: String? = null)

Set the group's opaque appData.

Link copied to clipboard
suspend fun updateConsentState(state: ConsentState)
Link copied to clipboard
suspend fun updateDescription(description: String)
Link copied to clipboard
suspend fun updateDescriptionPermission(newPermissionOption: PermissionOption)
Link copied to clipboard
suspend fun updateDisappearingMessageSettings(disappearingMessageSettings: DisappearingMessageSettings?)
Link copied to clipboard
suspend fun updateImageUrl(imageUrl: String)
Link copied to clipboard
suspend fun updateImageUrlPermission(newPermissionOption: PermissionOption)
Link copied to clipboard
suspend fun updateName(name: String)
Link copied to clipboard
suspend fun updateNamePermission(newPermissionOption: PermissionOption)
Link copied to clipboard
suspend fun updateRemoveAdminPermission(newPermissionOption: PermissionOption)
Link copied to clipboard
suspend fun updateRemoveMemberPermission(newPermissionOption: PermissionOption)