Skip to content

feat(call): Send call reactions from hand gestures and add Center Stage - #2791

Draft
karlitschek wants to merge 2 commits into
feat/haptics-reactions-widgets-call-adaptationfrom
feat/call-gesture-reactions
Draft

karlitschek wants to merge 2 commits into
feat/haptics-reactions-widgets-call-adaptationfrom
feat/call-gesture-reactions

Conversation

@karlitschek

Copy link
Copy Markdown
Member

On iOS 17+, the system recognizes hand gestures in front of the camera and renders an effect into the video, which only people watching the video noticed. The matching call reaction is now sent as well, so everyone sees it:

Gesture effect Call reaction
thumbs up / down 馃憤 / 馃憥
heart 鉂わ笍
balloons, confetti, fireworks 馃帀
lasers 馃ぉ
rain 馃槬
  • Only sent when the server allows the reaction, while the camera is enabled, at most every 2 seconds
  • Gestures are on by default (NSCameraReactionEffectGesturesEnabledDefault), users can turn them off in the Video Effects of Control Center
  • Camera formats supporting reactions and Center Stage are preferred over others with the same resolution
  • On devices with Center Stage (e.g. iPad), the call menu gets a Center Stage toggle (cooperative mode, so Control Center still works)

Notes

Testing

  • App and all extensions build for the simulator (Xcode 27.1)
  • New unit test UnitGestureReactionsTest
  • The combined branch with all features also builds in Release for generic/platform=iOS (iPhone, iPad, Mac "Designed for iPad") and for watchOS hardware
  • Not yet tried by hand with a real account and device, hence the draft.

馃 Generated with Claude Code

karlitschek and others added 2 commits October 25, 2026 21:13
On iOS 17 and later, the system recognizes hand gestures in front of
the camera (thumbs up, two hands forming a heart, a peace sign, ...)
and renders an effect into the video. Until now only people seeing
the video noticed. The matching call reaction is now sent as well, so
it shows up for everyone, like a reaction picked from the menu:

  馃憤 thumbs up, 馃憥 thumbs down, 鉂わ笍 heart, 馃帀 balloons/confetti/
  fireworks, 馃ぉ lasers, 馃槬 rain

Reactions are only sent when the server allows them, while the camera
is enabled, and at most every two seconds. Gestures are enabled by
default (NSCameraReactionEffectGesturesEnabledDefault) and can be
turned off by the user in the Video Effects of Control Center. When
picking a camera format, formats supporting reactions and Center Stage
are preferred over others with the same resolution.

On devices with Center Stage (e.g. iPad), the call menu gets a Center
Stage toggle. The cooperative control mode is used, so it can still be
changed in Control Center as well.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant