Skip to content

Keep save panes visible and persist theme choice - #331

Merged
woahitsraj merged 1 commit into
mainfrom
rajan/fix-android-side-by-side-save-display
Sep 15, 2026
Merged

woahitsraj merged 1 commit into
mainfrom
rajan/fix-android-side-by-side-save-display

Conversation

@woahitsraj

@woahitsraj woahitsraj commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • Keep the original save visibly rendered when a second save opens beside it in the Android Boxes view.
  • Persist explicit theme choices and restore them before hydration.
  • Use prefers-color-scheme when the user has not chosen a theme.
  • Add Android and Playwright regression coverage for both behaviors.

Testing

  • pnpm typecheck
  • pnpm lint
  • pnpm test:unit -- --run, 454 tests passed
  • PKSX_E2E_PORT=4175 pnpm exec playwright test --project=chromium src/routes/boxes-two-save.e2e.ts
  • PKSX_E2E_PORT=4178 pnpm exec playwright test --project=chromium src/routes/settings.e2e.ts, 9 tests passed
  • PKSX_E2E_PORT=4177 pnpm exec playwright test --project=chromium src/routes/responsive-contract.e2e.ts --grep "large caps and representative surfaces"
  • API 36 ControllerNavigationTest#openingSecondSaveKeepsOriginalPanePainted

Closes #178

Acceptance criteria

  • Opening a second save side by side on Android leaves the original save visibly rendered and selectable.
  • An explicit theme choice persists after the document or native WebView is recreated.
  • With no explicit choice, the app uses prefers-color-scheme and resolves the theme before first paint.

Evidence

Android-width side-by-side saves

How verified: imported real Emerald and Pokémon X saves at 640 × 360, opened Emerald in Boxes, then opened X beside it. Emerald remains visibly rendered in the first pane.

Both save panes remain rendered

android-two-save-flow.mp4

The API 36 instrumentation test also samples the rendered pixels in the original pane after the second save opens.

Persisted theme override

How verified: selected Dark in Settings, reloaded the document to model native WebView recreation, and observed Settings render dark immediately after reload.

Dark theme after reload

dark-theme-persists.mp4

The Settings Playwright coverage additionally verifies the system dark preference when no override exists, then verifies that an explicit light override wins after reload.

- Fix two-pane layout rendering and add Android coverage
- Persist and restore theme preference across reloads
@github-actions

Copy link
Copy Markdown

Cloudflare preview

Environment Link
This pull request Open preview
Staging staging.pksx.app

Updated for commit 6b3e1a0. View workflow run.

@woahitsraj
woahitsraj merged commit e3de4f5 into main Sep 15, 2026
11 checks passed
@woahitsraj
woahitsraj deleted the rajan/fix-android-side-by-side-save-display branch September 15, 2026 08:00
@woahitsraj woahitsraj changed the title Keep both saves painted in side-by-side Boxes view Keep save panes visible and persist theme choice Sep 15, 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.

Theme choice is lost on every reload and ignores prefers-color-scheme

1 participant