Skip to content

Ya/fix nimo nav#3265

Draft
aisraelov wants to merge 7 commits into
devfrom
ya/fix-nimo-nav
Draft

Ya/fix nimo nav#3265
aisraelov wants to merge 7 commits into
devfrom
ya/fix-nimo-nav

Conversation

@aisraelov

@aisraelov aisraelov commented Jun 27, 2026

Copy link
Copy Markdown
Member

Summary by cubic

Improved Nimo navigation HUD and pairing reliability on Android and iOS, and fixed iOS audio by switching to the system Opus decoder. Mentra Maps now respects the Android 3‑button navbar; Cloud V2 defaults to debug.

  • New Features

    • Nimo (Android/iOS): Parse the combined nav HUD string into dedicated widgets (arrow, instruction, tip, status); auto‑enter the nav app; send 160×160 mini‑maps.
    • Performance: Coalesce identical HUD frames; cache 48×48 arrow bitmaps so the icon updates only on turn changes.
    • Helpers: Widget/image helpers and protocol constants for nav widgets and the info struct.
  • Bug Fixes

    • iOS Audio: Use AudioToolbox Opus decoder with OpusHead cookie and 48 kHz→16 kHz downsampling to fix decode failures and silence.
    • iOS Pairing: Discover system‑connected Nimo via retrieveConnectedPeripherals, match nameless UART‑service adverts, and auto‑connect after Settings pairing; app pairing now completes on the BLE connection (added Nimo to classic flow).
    • Navigation: Removed arrow flicker, ignored blank HUD pushes, and reset HUD state on app changes.
    • Android UI: Consume --mentra-safe-bottom in Drawer, RunningDrawer, Toast, right‑rail, and search results so Maps clears the 3‑button navbar; bump miniapp to 1.1.8. Requires re‑bundling Maps assets.
    • Misc: Disable head‑up display and cloud head‑up events; add iOS setTime handshake retry; Nimo is no longer super‑mode only; default Cloud V2 URLs to debug.

Written for commit 9e2fcde. Summary will update on new commits.

Review in cubic

yash and others added 7 commits June 26, 2026 18:12
Revert the host-side webviewFillsNavBar hack (LocalMiniappView +
miniappGlobals back to dev). Padding every local miniapp's <body> both
double-counted the inset for the miniapps that already handle it via
useSafeArea(), and did nothing for Maps — whose bottom UI is
position:fixed, which body padding never moves. So it neither fixed Maps
nor was safe for the others.

Fix Maps itself, the way the other miniapps do: consume the
host-injected --mentra-safe-bottom inset on the bottom-anchored overlay
UI so it clears the Android 3-button nav bar, while the Mapbox canvas
stays full-bleed under the bars.

- Drawer / NavigationRunningDrawer: pad the OUTER fixed wrapper by the
  inset (not the measured card, so peek/drag math is unchanged).
- NavMap right-rail: anchor above the inset as well as the drawer.
- Toast + search-results list: lift/pad by the inset.
- Bump miniapp version 1.1.7 -> 1.1.8.

NOTE: the bundled zip in mobile/assets/miniapps/ must be repacked
(mentra-miniapp release, with PUBLIC_MAPBOX_TOKEN / PUBLIC_MAP_NAV_VIEWER
set) and bundledMiniapps regenerated for this to ship at runtime.
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