GroupChange

data class GroupChange(editor: JsonAddress?, revision: Int?, newMembers: List<GroupMember>, deleteMembers: List<JsonAddress>, modifyMemberRoles: List<GroupMember>, modifiedProfileKeys: List<GroupMember>, newPendingMembers: List<GroupPendingMember>, deletePendingMembers: List<JsonAddress>, promotePendingMembers: List<GroupMember>, newBannedMembers: List<BannedGroupMember>, newUnbannedMembers: List<BannedGroupMember>, newTitle: String?, newAvatar: Boolean?, newTimer: Int?, newAccessControl: GroupAccessControl?, newRequestingMembers: List<GroupRequestingMember>, deleteRequestingMembers: List<JsonAddress>, promoteRequestingMembers: List<GroupMember>, newInviteLinkPassword: Boolean?, newDescription: String?, newIsAnnouncementGroup: String?)

Represents a group change made by a user. This can also represent request link invites. Only the fields relevant to the group change performed will be set. Note that in signald, group changes are currently only received from incoming messages from a message subscription.

Constructors

Link copied to clipboard
fun GroupChange(editor: JsonAddress? = null, revision: Int? = null, newMembers: List<GroupMember> = emptyList(), deleteMembers: List<JsonAddress> = emptyList(), modifyMemberRoles: List<GroupMember> = emptyList(), modifiedProfileKeys: List<GroupMember> = emptyList(), newPendingMembers: List<GroupPendingMember> = emptyList(), deletePendingMembers: List<JsonAddress> = emptyList(), promotePendingMembers: List<GroupMember> = emptyList(), newBannedMembers: List<BannedGroupMember> = emptyList(), newUnbannedMembers: List<BannedGroupMember> = emptyList(), newTitle: String? = null, newAvatar: Boolean? = null, newTimer: Int? = null, newAccessControl: GroupAccessControl? = null, newRequestingMembers: List<GroupRequestingMember> = emptyList(), deleteRequestingMembers: List<JsonAddress> = emptyList(), promoteRequestingMembers: List<GroupMember> = emptyList(), newInviteLinkPassword: Boolean? = null, newDescription: String? = null, newIsAnnouncementGroup: String? = null)

Properties

Link copied to clipboard
val deleteMembers: List<JsonAddress>

Represents users that have been removed from the group. This can be from admins removing users, or users choosing to leave the group

Link copied to clipboard
val deletePendingMembers: List<JsonAddress>
Link copied to clipboard
val deleteRequestingMembers: List<JsonAddress>
Link copied to clipboard
val editor: JsonAddress? = null

The user that made the change.

Link copied to clipboard
val modifiedProfileKeys: List<GroupMember>

Represents users that have rotated their profile key. Note that signald currently does not expose profile keys to clients. The joined revision property will always be 0 in this list.

Link copied to clipboard
val modifyMemberRoles: List<GroupMember>

Represents users with their new, modified role.

Link copied to clipboard
val newAccessControl: GroupAccessControl? = null

If not null, then this group change modified one of the access controls. Some of the properties in here will be null.

Link copied to clipboard
val newAvatar: Boolean? = null

Whether this group change changed the avatar.

Link copied to clipboard
val newBannedMembers: List<BannedGroupMember>
Link copied to clipboard
val newDescription: String? = null
Link copied to clipboard
val newInviteLinkPassword: Boolean? = null

Whether this group change involved resetting the group invite link.

Link copied to clipboard
val newIsAnnouncementGroup: String? = null

Whether this change affected the announcement group setting. Possible values are UNKNOWN, ENABLED or DISABLED

Link copied to clipboard
val newMembers: List<GroupMember>

Represents users have been added to the group. This can be from group members adding users, or a users joining via a group link that required no approval.

Link copied to clipboard
val newPendingMembers: List<GroupPendingMember>

Represents a user that has been invited to the group by another user.

Link copied to clipboard
val newRequestingMembers: List<GroupRequestingMember>

Represents users that have requested to join the group via the group link. Note that members requesting to join might not necessarily have the list of users in the group, so they won't be able to send a peer-to-peer group update message to inform users of their request to join. Other users in the group may inform us that the revision has increased, but the members requesting access will have to be obtained from the server instead (which signald will handle). For now, a get_group request has to be made to get the users that have requested to join the group.

Link copied to clipboard
val newTimer: Int? = null

New disappearing messages timer value.

Link copied to clipboard
val newTitle: String? = null
Link copied to clipboard
val newUnbannedMembers: List<BannedGroupMember>
Link copied to clipboard
val promotePendingMembers: List<GroupMember>
Link copied to clipboard
val promoteRequestingMembers: List<GroupMember>
Link copied to clipboard
val revision: Int? = null

The group revision that this change brings the group to.