forked from upstream-mirrors/quik
1c08c0dc20
Prepares the send-reactions feature for public release by cutting the per-reaction SMS size and removing duplicated swipe-action code. Payload (EmojiReactionRepositoryImpl): - Stop re-embedding the replied-to text in the hidden payload; it already shows in the visible fallback line. The reaction target is resolved by sender address + timestamp, and the text-fallback matcher now recovers the quote from the visible line. - Encode the payload at 3 bits per invisible char (8-symbol alphabet) instead of 1, and word-cap the visible quote. A reaction's invisible run drops from ~1,200 chars (~10-20 SMS segments) to ~83 (1-2 segments). Deduplication: - Extract SwipeItemTouchCallback base; ConversationItemTouchCallback and MessageItemTouchCallback become thin subclasses (removes dead fields). - Extract BaseSwipeActionsPresenter and share SwipeActionsView/State; delete the cloned MessageSwipeActions View/State. Centralize the message swipe-action icon map. - Merge the two near-identical reaction-send streams in ComposeViewModel. Minor: enumerate the full emoji set off the main thread in EmojiPicker; reuse a single Handler for the reaction pulse in MessagesAdapter. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>