Skip to content

fix(chat): apply speaker rules to the composer, replies and reactions - #1631

Merged
bmc08gt merged 2 commits into
feat/share-profile-widgetfrom
fix/chat-speaker-rules
Sep 30, 2026
Merged

bmc08gt merged 2 commits into
feat/share-profile-widgetfrom
fix/chat-speaker-rules

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Android never evaluated a chat's speaker rules. A member could type into a chat with a never speaker rule, or one whose minimum balance they don't meet, and reply to or react to anything in it. iOS already blocks this through ConversationGate.

Stacked on #1628, which added canSpeak and ChatRuleRequirement.Never for the share-profile widget. This applies the same check everywhere else.

  • Composer: a member who can't speak gets SpeakerGateBar in place of the composer, with no input, attach or send. For never it reads "Only Flipcash can send messages" on a Haze pill, using the chat screen's existing hazeState and the composer field's ultraThin material (design node 10588:1969). Balance and staff requirements use the iOS panel copy. Viewers outside the group still get the Join gate.
  • Actions: Reply and reactions on text, cash and widget messages follow canSpeak. Copy, Report, and Edit/Delete on your own messages are unchanged.
  • Which requirement is shown: the first unmet minimum balance, else the first unmet rule, as on iOS. never blocks staff too.
  • DMs have no rules and are unaffected.

SpeakerGateBarScreenshotTest renders the never panel with the blur off, because Robolectric can't compile the Haze shader. It checks layout and copy, not the blur.

A reply draft saved before someone loses speaking rights stays stored; the panel just stops it being sent.

Correction: the DM speaker-rule fix and the pill's #1E1E1E fill (e8b561b3d) were pushed after this PR merged, so they are not in it. On code/cash, DMs still get no speaker block and the welcome DM still shows "Send a Tip". They are being re-landed in a follow-up PR.

A member the chat's speaker rules keep from speaking now gets a read-only
panel in place of the composer, and loses Reply and reactions on every
message, not only widgets. Own-message Edit and Delete, Copy and Report are
unchanged. Direct messages have no rules and are unaffected.
@bmc08gt
bmc08gt force-pushed the fix/chat-speaker-rules branch from 98c3487 to c1ca6fb Compare September 30, 2026 17:15
@bmc08gt
bmc08gt removed this pull request from stack #1632 September 30, 2026 17:15
@bmc08gt
bmc08gt added this pull request to stack #1633 September 30, 2026 17:15
@bmc08gt
bmc08gt merged commit 8c89128 into code/cash Sep 30, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant