Skip to content

feat(chat): in-app alert for reactions and boosts on your messages - #1857

Merged
bmc08gt merged 6 commits into
code/cashfrom
feat/in-app-reaction-alerts
Oct 26, 2026
Merged

bmc08gt merged 6 commits into
code/cashfrom
feat/in-app-reaction-alerts

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Shows a banner while the app is open when someone reacts to or boosts one of your messages. It reads ReactionUpdate from the event stream in EventStreamDelegate; no contract change. Spec: docs/specs/in-app-reaction-alerts.md in code-payments/flipcash-client-orchestrator#64. iOS counterpart: code-payments/code-ios-app#1134.

When it shows. A reaction or boost on a message you sent, by someone other than you, while the app is in the foreground. Removals never show. If the message is on screen in the open chat the banner is skipped; scrolled off, it reads "This chat ↓"; anywhere else it names the chat.

Boost amount. BOOSTED carries the actor's running total on that emoji, and ReactionState.Confirmed keeps no per-actor totals for other people, so a side table fed by stream updates holds the last total per actor. The first boost after launch shows the full total.

Own queue. The banner has its own ReactionAlertController and ReactionAlertHost instead of extending SessionToastController, which writes bill toasts into BillState and replaces rather than merges. Several reactions merge into one banner with stacked avatars.

Banner, not cutout. The first commits grew a pill out of the display cutout. 98c47b674 replaces it with the glass banner iOS ended up with, so both apps look the same: Haze blur under a dark grey tint, chat name / title / quoted message, emoji or green boost amount on the right, the reactor's photo with the initial as fallback, haptics on landing. 49f3dfe3f lifts the tint so the card sits slightly lighter than the app, as the iOS glass does.

A debug-only trigger fires a sample reaction, stack or boost for emulator recordings.

@bmc08gt bmc08gt self-assigned this Oct 26, 2026
… photo

Replace the camera-cutout pill with a blurred dark card under the status
bar, matching iOS: fade and unblur with a spring settle, swipe up to
dismiss, haptics on landing. Resolve the actor's name and photo from the
profile cache before falling back to Someone.

Add a debug-only broadcast receiver that fires canned reaction, boost and stack alerts.
The black backing plus a 55% black tint drew the card at about 12 over a
25 background. iOS's tinted glass sits slightly lighter, about 30 over 24.
A near-black grey tint at 60% now lands at 30-32 over 25.
@bmc08gt
bmc08gt force-pushed the feat/in-app-reaction-alerts branch from 338bfea to 49f3dfe Compare October 26, 2026 13:55
@github-actions github-actions Bot added the type: feature New functionality label Oct 26, 2026
The banner set font size and weight by hand and carried its own white,
dim-white and green colours. Text now uses the caption, textSmall and
textLarge styles with textMain, textSecondary and success; the avatar
stack overlap and ring use the dimens grid and thickBorder.
@bmc08gt
bmc08gt merged commit ee9b1bb into code/cash Oct 26, 2026
5 checks passed
bmc08gt added a commit that referenced this pull request Oct 26, 2026
* commit '5f2549710405c4215ac47fc972e0c3d22f4e8dfb':
  feat(history): show boosted reactions in transaction history (#1858)
  feat(chat): in-app alert for reactions and boosts on your messages (#1857)
  feat(chat): tap-to-show photo viewer chrome with react, reply, save and forward (#1854)

# Conflicts:
#	apps/flipcash/features/messenger/src/main/kotlin/com/flipcash/app/messenger/internal/screens/MessengerScreen.kt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature New functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant