Skip to content

feat(mobile): harden unread badges and float tabs#1298

Merged
wesbillman merged 2 commits into
mainfrom
pinky/mobile-cleanups-unread-parity
Jun 26, 2026
Merged

feat(mobile): harden unread badges and float tabs#1298
wesbillman merged 2 commits into
mainfrom
pinky/mobile-cleanups-unread-parity

Conversation

@wesbillman

@wesbillman wesbillman commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Replace the mobile bottom NavigationBar with a compact floating/glass tab bar and keep page FABs clear of the floating surface.
  • Hide Pulse from the mobile tab bar for now so Home / Activity / Search align with the requested cleanup.
  • Port mobile unread badge computation to a desktop-style observed unread event projection.
  • Add read-marker helpers for channel/thread/message scopes and update channel/thread open behavior to mark the right scope read.
  • Add focused unread badge coverage for self-events, forced unread, thread/message markers, high-priority fallback, and read-state readiness.

Screenshots

Light Dark
compact floating tab bar light compact floating tab bar dark

Validation

  • flutter analyze lib/features/home/home_page.dart lib/features/channels/channel_detail_page.dart lib/features/channels/channels_page.dart lib/features/channels/channels_provider.dart lib/features/channels/read_state/read_state_format.dart lib/features/channels/thread_detail_page.dart lib/features/channels/unread_badge/should_notify_for_event.dart lib/features/channels/unread_badge/unread_badge_provider.dart lib/features/channels/unread_badge/observed_unread_event.dart test/features/channels/unread_badge/unread_badge_provider_test.dart
  • flutter test test/features/channels/unread_badge/unread_badge_provider_test.dart
  • flutter test test/features/channels/channels_provider_test.dart
  • flutter test test/features/channels/channel_detail_page_test.dart
  • git diff --check
  • Ran on iPhone 17 Pro simulator and captured light/dark screenshots above.

Notes

flutter run still prints the existing Target native_assets required define SdkRoot but it was not provided warning, but the app launches and renders in the simulator.

wesbillman and others added 2 commits June 25, 2026 18:23
Port mobile unread badge computation to the observed-event model used by desktop so read markers can clear channel, thread, and individual message scopes correctly.

Replace the Material bottom navigation with a compact floating tab bar and keep page FABs clear of the floating surface.

Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Add a PR markdown checker for Buzz relay media URLs and run it from the screenshot posting helper when a body template is supplied. Document the mobile simulator screenshot path so PR images are hosted before being linked.

Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
@wesbillman wesbillman merged commit 59b2159 into main Jun 26, 2026
25 checks passed
@wesbillman wesbillman deleted the pinky/mobile-cleanups-unread-parity branch June 26, 2026 00:40
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