Skip to content

feat: add collage layout for 2-3 collection attachments (4/7) - #3176

Open
DeveloperBlue wants to merge 38 commits into
BlueBubblesApp:masterfrom
DeveloperBlue:developerblue/collections/collage
Open

feat: add collage layout for 2-3 collection attachments (4/7)#3176
DeveloperBlue wants to merge 38 commits into
BlueBubblesApp:masterfrom
DeveloperBlue:developerblue/collections/collage

Conversation

@DeveloperBlue

@DeveloperBlue DeveloperBlue commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Adds the iMessage vertical overlapping collage layout for multi-attachment messages with 2-3 attachments.

Built on top of #3175 (collection building blocks) and continues toward #3147 / #3122.

  • New CollectionGroupCollage - overlapping cards with horizontal stagger, vertical overlap, and light tilt
  • Route iOS 2-3 attachments to collage layout; 4+ still use the fan stack
  • Swipe-to-reply per collage card; reply chevron beside the fixed card frame
  • Bugfix: redacted mode leaking contact name / message content in the reply-to input box
  • Docs: collections/ routing table + collage ownership notes
2-Item Collage 3-Item Collage Swipe-to-Reply
3-item collage example 3-item collage example
swipe_to_reply.mp4

Changes (commit-by-commit)

  1. CollectionGroupCollage - vertical overlapping collage widget (stagger, overlap, tilt, download wrap)
  2. Route 2–3 → collage - MediaCollectionLayout + resolveMediaCollectionLayout; MessagePartContent switches collage vs stack
  3. Swipe-to-reply on collage cards - collage-local _CollageSwipeCard / SwipeToReplyWrapper
  4. Reaction tail split - standard tails on collage cards; inside-tail remains on stack cards
  5. iOS stagger polish - author-flush first card for bare 2-ups; subject / 3+ keep first card staggered in
  6. Docs - collage layout + routing table in collections/CLAUDE.md
  7. Redacted mode reply preview - hide contact name + message content in ReplyHolder when redacted mode is on
Per-file changes

collections/collection_group_collage.dart

New collage layout: sized/overlapped cards, iOS tilt, stagger rules, download wrap, per-card swipe-to-reply.

collections/collection_attachment_card.dart

Reaction tail type: inside for stack, standard for collage (and future grid).

message_part_content.dart

iOS media collections resolve collage vs stack; pass canSwipeToReply into collage only.

helpers/types/constants.dart / helpers/ui/message_widget_helpers.dart

MediaCollectionLayout + resolveMediaCollectionLayout (iOS collage 2–3 / stack 4+; non-iOS grid reserved).

collections/CLAUDE.md

Routing table and collage ownership notes.

text_field/reply_holder.dart

Pass redaction flags into getNotificationText; resolve sender display name via HandleState / fake name when contact info is hidden.

Partially addresses #3122 and #2605 and lays groundwork for #2812

…ttachments (swipe-to-reply, popover, reply preview)
@DeveloperBlue
DeveloperBlue force-pushed the developerblue/collections/collage branch from 172913d to 52d93b2 Compare August 10, 2026 05:35
@DeveloperBlue DeveloperBlue changed the title feat: add collage layout for 2-3 collection attachments (4/6) feat: add collage layout for 2-3 collection attachments (4/7) Aug 10, 2026
@DeveloperBlue
DeveloperBlue force-pushed the developerblue/collections/collage branch 2 times, most recently from 6d7f947 to 52d93b2 Compare August 15, 2026 08:14
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