Skip to content

feat(mobile): add adaptive tablet workspace - #7675

Open
rclod wants to merge 5 commits into
block:mainfrom
rclod:feat/ipad-adaptive-workspace
Open

rclod wants to merge 5 commits into
block:mainfrom
rclod:feat/ipad-adaptive-workspace

Conversation

@rclod

@rclod rclod commented Sep 16, 2026

Copy link
Copy Markdown

Summary

Buzz now fills iPad windows and uses a persistent tablet workspace when the available window is both wide and tall enough. Channels and DMs stay visible beside Activity, Search, and the selected detail, while narrow Split View windows and wide landscape phones keep the existing compact navigation.

Physical-device testing found three follow-up gaps that are now covered: rotating an open phone-style channel into landscape hands it back to the persistent workspace, opening a thread uses a third pane instead of replacing the channel, and the detail surface meets the iPad screen edges without desktop-window corner rounding. Every thread entry point uses the same pane-aware navigation path, including message taps, reply actions, media replies, nested threads, and deep links.

The window contract checks the shortest side as well as width, so a 932×430 phone cannot be mistaken for a tablet. Split Activity navigation also treats every explicit row tap as a new target, which lets a grouped conversation reopen at a newly unread message without replacing the persistent Inbox list.

This is a current-main rebuild of the layout direction started by @klopez4212 in #4274. That branch no longer has a mergeable history and does not allow maintainer edits; this PR keeps the focused tablet workspace and the review regressions rather than carrying its unrelated changes forward.

Related issue

Fixes #7454.
Replaces #4274, with credit to its original author and design work.

Testing

  • flutter analyze --no-pub
  • flutter test --no-pub --dart-define=BUZZ_PUSH_GATEWAY_URL=https://push.example — 2,239 passed, 4 skipped on the original tablet-workspace head
  • Added widget regressions for edge-to-edge geometry, compact-route rotation handoff, and pane-aware thread selection; the updated head is running through GitHub CI
  • Info.plist parsed successfully; Debug, Profile, and Release all target device families 1,2
  • Current tablet widget tree captured at 1366×1024 to verify the persistent sidebar and split Activity surface

Native iPad simulator execution is not available on this Linux/arm64 host. The follow-up layout was validated from physical-device screenshots; the updated build still needs one OTA confirmation on the iPad for rotation and thread-pane interaction.

Before

Buzz centered in an iPhone-sized frame on iPad

After

Adaptive tablet workspace with persistent navigation and split Activity detail

Signed-off-by: rclod <3385524+rclod@users.noreply.github.com>
@rclod
rclod requested a review from a team as a code owner September 16, 2026 02:10
@github-actions

github-actions Bot commented Sep 16, 2026

Copy link
Copy Markdown

🔐 Codex Security Review

Status: review required for the current range.

The current range is 6dfd145cde4bf0d45091de1cc5e6c7e3462d5703...6d64c330169a2c019473d0f8192147ab60f7eb57.
A new review must complete for this exact range. When manual authorization
is required, a Block organization member must comment exactly
@buzz-security-review 6d64c330169a2c019473d0f8192147ab60f7eb57 to authorize a new review.
Any previous review applies only to its recorded range.

Signed-off-by: rclod <3385524+rclod@users.noreply.github.com>
rclod and others added 3 commits September 16, 2026 16:19
Signed-off-by: rclod <3385524+rclod@users.noreply.github.com>
…workspace

Signed-off-by: rclod <3385524+rclod@users.noreply.github.com>
The tablet workspace part file references ThreadDetailPage, but
home_page.dart only imported thread_detail_target.dart, so the branch
failed to compile. The new pane test also used a const constructor with a
non-const channel fixture.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: rclod <3385524+rclod@users.noreply.github.com>
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.

Add a native adaptive layout for iPad

1 participant