mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-08-28 12:04:11 +00:00
core, ui: relay reject rejoin (#6978)
This commit is contained in:
@@ -322,3 +322,11 @@ Key sections: group profile, group link, member list with roles, group preferenc
|
||||
| `MemberSupportChatView.kt` | Member support chat (scoped context) |
|
||||
| `MemberSupportView.kt` | Support chat list for moderators |
|
||||
| `WelcomeMessageView.kt` | Group welcome message editor |
|
||||
| `ChannelRelaysView.kt` | Channel relay list. Owner-only Add relay entry opens `AddGroupRelayView` with `existingRelayIds = groupRelays.mapNotNull { it.userChatRelay.chatRelayId }.toSet()` — every relay currently in `groupRelays` is excluded regardless of `relayStatus`, mirroring the backend `APIAddGroupRelays` gate. Long-press menu offers Remove relay for relays that can be removed. |
|
||||
| `AddGroupRelayView.kt` | Sheet to pick relays to add to a channel |
|
||||
|
||||
### Relay Rejection Surface
|
||||
|
||||
When a relay operator runs `/leave #channel`, the relay sends `x.grp.relay.reject` over the owner-relay direct contact channel. Owner-side handling: the corresponding `GroupRelay.relayStatus` transitions `RSInvited → RSRejected`; the relay's `GroupMember.memberStatus` is set to `MemLeft` so the owner UI renders the rejected relay identically to one that explicitly ran `/leave` (`MemRejected` is reserved for the knocking-admission flow). In `GroupMemberInfoView`, an additional "Status: rejected by relay operator" `InfoRow` appears when `groupRelay?.relayStatus == RelayStatus.RsRejected`. The status is final on the owner side — clearable only by the relay operator running `/group allow #<channel>`, which has no owner-facing event.
|
||||
|
||||
The `RelayStatusIndicator` composable in `AddChannelView.kt` renders `RsRejected` with a red dot and "rejected" text, matching the `connFailed`/`removed` rendering.
|
||||
|
||||
Reference in New Issue
Block a user