Skip to content

Add configurable double-tap actions and shared reaction entrance - #6364

Open
notwafel wants to merge 2 commits into
signalapp:mainfrom
notwafel:feature/double-tap-to-react
Open

notwafel wants to merge 2 commits into
signalapp:mainfrom
notwafel:feature/double-tap-to-react

Conversation

@notwafel

@notwafel notwafel commented Oct 9, 2026

Copy link
Copy Markdown

Changes:

  1. Added Chats settings for double-tap on others' messages (React / Reply / Off, default React) and own messages (Edit / Reply / Off, default Edit)
  2. Added CVItemViewModelImpl.doubleTapAction and wired double-tap to react / reply / edit
  3. Quick react uses the first emoji from the user's reaction bar (ReactionManager.preferredQuickReactionEmoji)
  4. Added toggles (default on) to allow/disallow double-tap React on stickers and photos/videos
  5. When a double-tap action applies, deferred single-tap so a fast double-tap reacts instead of opening media or sticker pack details; slow/single taps keep normal behavior
  6. Added a shared local-reaction entrance for every local add (picker / context menu / double-tap); removes skip the animation

First time contributor checklist

Contributor checklist

  • My commits are rebased on the latest main branch
  • My commits are in nice logical chunks
  • My contribution is fully baked and is ready to be merged as is
  • I have tested my contribution on these devices:
  • iPhone 18 Pro Simulator (iOS 27.0)
  • iPhone 17 Simulator (iOS 27.0)
  • iPhone 13 mini Simulator (iOS 27.0)

Description

Configurable double-tap shortcuts in Chats settings, optional quick-react on stickers/photos, deferred single-tap so fast double-tap can react on media/stickers, and a shared entrance animation for every local reaction add.

@notwafel
notwafel marked this pull request as draft October 10, 2026 17:36
@notwafel

Copy link
Copy Markdown
Author

I have a new version of the settings and animations for adding/removing reactions on my PC, e.g. when someone reacts/unreacts to my message. I’ve submitted a pull request to draw because I need to test it thoroughly.

@notwafel
notwafel force-pushed the feature/double-tap-to-react branch 2 times, most recently from da2229b to 6a3bd97 Compare October 10, 2026 22:54
**Changes:**
1. Chats settings: double-tap for others' messages (React / Reply / Off, default React) and own messages (Edit / Reply / Off, default Edit)
2. Double-tap resolves via CVItemViewModelImpl.doubleTapAction (react / reply / edit)
3. Quick react uses the first emoji from the user's reaction bar
4. Optional toggles (default on): double-tap React on stickers and on photos/videos
5. When a double-tap action applies, single-tap on media/stickers is deferred so a fast double-tap reacts instead of opening the viewer or sticker pack details
6. Local reaction adds (picker / context menu / double-tap) go through one shared entrance path; removes skip the animation

Tested:
* iPhone 18 Pro Simulator (iOS 27.0)
* iPhone 17 Simulator (iOS 27.0)
* iPhone 13 mini Simulator (iOS 27.0)
@notwafel
notwafel force-pushed the feature/double-tap-to-react branch from 6a3bd97 to ec6945d Compare October 10, 2026 23:02
**Changes:**
1. Reaction add/remove reloads the cell with old→new frame animation so height expands or collapses
2. Local add: pill stays hidden until its size is stable, then shows and animates the emoji in
3. Remote add: short scale/fade entrance
4. Scroll continuity during reaction layout uses targetContentOffset so nearby messages don't jump
5. Suppresses reload crossfade on reaction reloads so ManualLayout does not ghost text
@notwafel
notwafel force-pushed the feature/double-tap-to-react branch from ec6945d to cad5201 Compare October 10, 2026 23:04
@notwafel
notwafel marked this pull request as ready for review October 10, 2026 23:09
@notwafel

Copy link
Copy Markdown
Author

;d

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