Skip to content

Persistent in-list day separator and aligned bubble grouping - #53

Open
kerdx wants to merge 1 commit into
LucentW:mainfrom
kerdx:feat/chat-day-separator
Open

kerdx wants to merge 1 commit into
LucentW:mainfrom
kerdx:feat/chat-day-separator

Conversation

@kerdx

@kerdx kerdx commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Chat timeline improvements following motd's MessageList design (Telegram-style grouping + day dividers).

  • New persistent day chip (DaySeparatorRow reusing DateChip: Oggi/Ieri/date) drawn inside the row that opens a new day — never a separate item, so indexes, keys and jump math don't shift. Shown on message and presence-burst rows, in both Bubbles and IRC-line modes
  • Shared pure helpers in ChatTimeline.kt: isSameDay() + continuesMessageGroup() (same sender, 5-min window kept, breaks on system/chat change, /me ACTION boundary, or day change)
  • tight grouping now uses the shared predicate (plus the existing unread-divider guard)

Tests: 4 new unit tests in ChatTimelineTest (14 total, all passing). Verified: testDebugUnitTest green, assembleDebug builds.

@kerdx kerdx changed the title Persistent in-list day separator and motd-aligned bubble grouping Persistent in-list day separator and aligned bubble grouping Sep 17, 2026
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