Skip to content

Replace the More tab with Quick Launch and customisable Favourites#397

Open
Quaii wants to merge 10 commits into
ryanbr:mainfrom
Quaii:quick-launch-panel
Open

Replace the More tab with Quick Launch and customisable Favourites#397
Quaii wants to merge 10 commits into
ryanbr:mainfrom
Quaii:quick-launch-panel

Conversation

@Quaii

@Quaii Quaii commented Jul 13, 2026

Copy link
Copy Markdown

What this PR does

This PR replaces the fully functional More tab on iOS and Android with a Quick Launch panel integrated directly into the navigation bar.

Although the More tab provided access to the app's different features, it felt more like a conventional settings page than a place for discovering and launching distinct parts of the app. Quick Launch makes those destinations immediately accessible from the primary navigation.

The available destinations are organized into horizontally paged categories. This can require more sideways navigation than scrolling through the previous More list, so the first page is a customizable Favourites grid. Users can add, remove, and rearrange the features they use most often for direct access.

The PR also:

  • Preserves access to all destinations previously available through the More tab.
  • Provides matching Quick Launch and Favourites implementations for iOS and Android.
  • Adds localized accessibility labels, Dynamic Type and Android font-scaling support, and Reduce Motion behavior.
  • Uses StrandDesign on Apple platforms and the corresponding Compose design-system tokens on Android.
  • Removes the redundant Settings/quick-action button from the Today page because Settings is available through Quick Launch and included in Favourites by default.
  • Removes the obsolete More-section preference storage and its associated tests.
  • Splits the Quick Launch implementations into focused files under 500 lines.

Type of change

  • New feature
  • Refactor / cleanup
  • Documentation

How it was tested

  • Built the NOOPiOS Debug configuration successfully for the iOS Simulator.
  • Built the Strand Debug configuration successfully for macOS.
  • Installed and launched the compiled app on an iPhone 16e simulator.
  • Manually tested Quick Launch opening, closing, paging, and outside-tap dismissal on iOS.
  • Verified that controls behind the open panel cannot be activated.
  • Manually tested entering and leaving Favourites edit mode, removing items, dragging items, and swapping occupied slots.
  • Verified that all 25 destinations from the former More tab remain mapped to Quick Launch.
  • Confirmed that Settings remains directly accessible and is included in the default Favourites layout.
  • Ran ./gradlew :app:assembleFullDebug :app:testFullDebugUnitTest successfully.
  • All 2,567 Android unit tests passed with no skips or failures.
  • All Swift Packages CI checks passed, including StrandDesign.
  • Android was built and unit-tested but was not manually tested on an Android device or emulator.
  • No BLE, protocol, or analytics behavior was changed.

Checklist

  • Swift package tests pass for any package I touched (swift test in Packages/<name>)
  • Android unit tests pass if I touched android/ (./gradlew testFullDebugUnitTest)
  • No new build warnings introduced
  • UI changes use only design-system tokens — no hardcoded colors, fonts, or spacing
  • No hardcoded hex frame bytes; protocol facts live in the schema / decoders
  • Follows the conventions in docs/CONTRIBUTING.md
  • I did not commit generated output (Strand.xcodeproj/) or any secrets/keystores

Showcase

https://streamable.com/u0g1ib

@Quaii Quaii changed the title iOS Quick Launch Replace the iOS More tab with Quick Launch and customisable Favourites Jul 13, 2026
@Quaii Quaii mentioned this pull request Jul 13, 2026
9 tasks

@tigercraft4 tigercraft4 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review (external, non-blocking). The iOS More-tab replacement itself looks sound. One inline note on scope/description accuracy below.

Comment thread android/app/src/main/java/com/noop/ui/QuickLaunchModel.kt
@Quaii Quaii changed the title Replace the iOS More tab with Quick Launch and customisable Favourites Replace the More tab with Quick Launch and customisable Favourites Jul 13, 2026
@Quaii
Quaii force-pushed the quick-launch-panel branch from cecf442 to e4f09cf Compare July 16, 2026 09:38
@digitalerdude

Copy link
Copy Markdown

Heads-up: part of the i18n coverage failure here is stale and not this PR's fault — the AppChangelog.kt 9.0.1 literal was fixed on main by #514 after this check last ran, and it just hasn't re-triggered since (base-branch changes don't retrigger pull_request workflows). #524 proposes fixing that class of false failure generally.

That said, the log also shows real, PR-introduced gaps that #514 doesn't touch — QuickLaunchFavourites.kt hardcoded literals/tags and the missing quick_launch_* keys in values-es/values-fr, plus an unrelated 'Floating glass' literal in Components.swift. Those will still need fixing in this PR's own diff regardless of #524.

@Quaii

Quaii commented Jul 18, 2026

Copy link
Copy Markdown
Author

Heads-up: part of the i18n coverage failure here is stale and not this PR's fault — the AppChangelog.kt 9.0.1 literal was fixed on main by #514 after this check last ran, and it just hasn't re-triggered since (base-branch changes don't retrigger pull_request workflows). #524 proposes fixing that class of false failure generally.

That said, the log also shows real, PR-introduced gaps that #514 doesn't touch — QuickLaunchFavourites.kt hardcoded literals/tags and the missing quick_launch_* keys in values-es/values-fr, plus an unrelated 'Floating glass' literal in Components.swift. Those will still need fixing in this PR's own diff regardless of #524.

I Resolved all the named issues

@Quaii
Quaii force-pushed the quick-launch-panel branch from bacfc00 to ee9d341 Compare July 20, 2026 10:01
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.

3 participants