Go to file
Billie Ponder b005bb00ae
fix(android): resolve BUG-001 through BUG-005 (#78)
* fix(dashboard): ensure Touring map follows rider and supports recenter (#48)

* fix(social): make shared session telemetry read-only and authoritative (#50)

* fix(social): use recorded telemetry for feed charts and verify GPS badge (#51)

* fix(social): standardize community feed typography and theme colors (#49)

* fix(social): prevent horizontal overflow in GPX export snackbar (#52)

- Wrap GPX export snackbar message Text in Expanded with maxLines: 2 and TextOverflow.ellipsis

- Add ValueKey('gpx_export_button_<id>') for deterministic testing

- Wrap narrow feed header/metric/empty-state Row labels in Flexible to prevent overflow under 320px/360px at 1.5x text scale

- Add BUG-005 widget tests across 320x640, 360x800, and 800x480 viewports at 1.5x text scale

* fix(social): harden share modal, inspector theming, and PR #78 accuracy (#49, #50, #51, #52)

- Require a selected recorded Ride in ShareSessionModal before enabling publish

- Theme ShareSessionModal and FeedTelemetryInspectorModal for Light and Dark modes

- Use LayoutBuilder width for FeedTelemetryInspectorModal scrubber drag/tap

- Route PopupMenuButton export_gpx action through the overflow-safe GPX snackbar

- Enforce telemetrySamples >= 2 when provided to verifyGpsCriteria

* fix(android): remediate map follow smoothness, orientation controls, starting location, and landscape overflow (#79, #80, #81, #52)

* fix(android): stop Pro upsell sheet overflowing in landscape (#52 / BUG-005)

The "Forensic CSV & PDF Export" Pro upsell sheet showed "BOTTOM OVERFLOWED BY 90
PIXELS" in landscape on a Pixel 8a. showProUpgradeSheet built a non-scrolling Column
inside a default modal bottom sheet, which Flutter caps at 9/16 of the screen height
(about 230 dp in landscape) - shorter than the header, description and two actions.

Use isScrollControlled and wrap the content in a SingleChildScrollView so the sheet can
take the full height and never overflows. This also covers every other caller (garage,
add motorcycle, ride detail).

Tests: pro_upgrade_sheet_landscape_test covers 914x411 (Pixel 8a), 800x360 and 780x360
at 1.0x and 1.3x text scale plus NOT NOW dismissal. Verified to fail on the old code
(RenderFlex overflowed 64-144 px) and pass on the fix. Full suite 1700 passed,
flutter analyze clean. Not validated on the physical device yet.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(social): require telemetry evidence, geodesic GPS threshold, and 3 MPH lean gate (#50, #51)

---------

Co-authored-by: Developer <dev@example.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 14:35:33 -04:00
.agents/skills Pre-Motorcycle-Garage-Feature 2026-08-27 03:07:33 -04:00
.continue/mcpServers chore: establish clean-build repair baseline 2026-09-02 19:27:23 -04:00
.github ci(android): upload debug APK on demand and shorten artifact retention (#43) 2026-10-15 03:38:47 -04:00
.token-optimizer/wiki Restore clean build state 2026-09-07 16:38:02 -04:00
.wrangler/cache CHECKPOINT: Phase 2 cloud sync production baseline 2026-08-31 02:57:50 -04:00
android fix(mobile): October 11 Pixel 8a field-test stabilization (navigation, sensors, sync, UI) (#33) 2026-10-12 06:34:32 -04:00
assets feat(mobile): add community social feed, tactical layers, club wall, launch curves, and curvy routes (v1.0.2+102) 2026-09-29 11:50:48 -04:00
backend/motorsignal_api fix: master consolidation fixes for Schema 8, legacy ride sync, performance timer isolation, and sync inspector 2026-10-13 10:24:24 -04:00
cloudflare/motorsignal-r2-worker feat(r2-worker): add authenticated /r2/verify endpoint and HEAD metadata support 2026-10-14 12:43:35 -04:00
docs feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
field_test_export_ride3_unzipped fix(ui): center lean angle gauge & needle alignment across portrait & landscape dashboard layouts 2026-08-29 17:54:35 -04:00
field_test_export_ride4_unzipped fix(ui): center lean angle gauge & needle alignment across portrait & landscape dashboard layouts 2026-08-29 17:54:35 -04:00
field_test_export_unzipped/field_test_session fix(telemetry): stabilize 20Hz clock driver, fix moving time accumulator & prevent derivative spikes 2026-08-28 17:14:31 -04:00
firebase/emulator-tests fix: master consolidation fixes for Schema 8, legacy ride sync, performance timer isolation, and sync inspector 2026-10-13 10:24:24 -04:00
integration_test feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
ios Pre-Motorcycle-Garage-Feature 2026-08-27 03:07:33 -04:00
lib fix(android): resolve BUG-001 through BUG-005 (#78) 2026-10-17 14:35:33 -04:00
linux Restore clean build state 2026-09-07 16:38:02 -04:00
macos feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
patrol_test feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
qa_screenshots docs: update comprehensive platform feature report and qa audit record 2026-10-02 12:40:42 -04:00
ride_logs ride logs 2026-08-29 16:26:51 -04:00
scripts feat(ops): add speedtest, cms persistence, support ticket db storage, and action resiliency (#18) 2026-09-21 10:46:09 -04:00
server/waze_relay Improve ride recording and telemetry workflows 2026-09-08 02:13:03 -04:00
test fix(android): resolve BUG-001 through BUG-005 (#78) 2026-10-17 14:35:33 -04:00
tool fix: use stdout instead of print in image generator 2026-08-31 22:03:42 -04:00
tools fix: master consolidation fixes for Schema 8, legacy ride sync, performance timer isolation, and sync inspector 2026-10-13 10:24:24 -04:00
web Pre-Motorcycle-Garage-Feature 2026-08-27 03:07:33 -04:00
website feat(website): smooth continuous replay camera follow and mobile tile loading (#42) 2026-10-15 01:56:09 -04:00
windows Restore clean build state 2026-09-07 16:38:02 -04:00
.firebaserc fix(website): isolate Firebase configuration for staging and enforce safety guards 2026-10-08 10:50:28 -04:00
.gitattributes feat(ops): add live execution progress tracker, stepper, docked hud, and completion modal (#19) 2026-09-21 11:04:49 -04:00
.gitignore feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
.metadata Pre-Phase-2-Feature-Expansion Backup 2026-08-27 01:26:53 -04:00
AGENTS.md fix: close regression audit findings 2026-09-07 17:57:23 -04:00
CHANGELOG.md release(v1.0.2): maintenance fixes, responsive handling, interactive events, multi-layer map & github sync 2026-08-30 08:17:04 -04:00
GEMINI.md feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
PRODUCT.md docs: update comprehensive platform feature report and qa audit record 2026-10-02 12:40:42 -04:00
README.md feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
analysis_options.yaml Keep tool scripts from failing application analysis 2026-09-01 05:50:50 -04:00
azure-pipelines.yml ci: introduce manual Azure Pipelines Android pilot (#44) 2026-10-15 03:42:45 -04:00
field_test_export.zip fix(telemetry): stabilize 20Hz clock driver, fix moving time accumulator & prevent derivative spikes 2026-08-28 17:14:31 -04:00
field_test_export_ride3.zip fix(ui): center lean angle gauge & needle alignment across portrait & landscape dashboard layouts 2026-08-29 17:54:35 -04:00
field_test_export_ride4.zip fix(ui): center lean angle gauge & needle alignment across portrait & landscape dashboard layouts 2026-08-29 17:54:35 -04:00
firebase.emulator.json fix: harden account deletion lifecycle and cloud cleanup 2026-09-03 16:49:36 -04:00
firebase.json feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
firestore.indexes.json feat(website): add club moderation, stats, and group rides management 2026-10-02 11:07:44 -04:00
firestore.rules fix: master consolidation fixes for Schema 8, legacy ride sync, performance timer isolation, and sync inspector 2026-10-13 10:24:24 -04:00
fix_exceptions.dart Restore clean build state 2026-09-07 16:38:02 -04:00
generate_icon.dart CHECKPOINT: Pre-audit baseline snapshot before field readiness review 2026-08-27 09:28:23 -04:00
pubspec.lock feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
pubspec.yaml feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
release_manifest.json release(v1.0.2): maintenance fixes, responsive handling, interactive events, multi-layer map & github sync 2026-08-30 08:17:04 -04:00
serve_apk.js feat: Evolution UI theme, zero-lag 20Hz speedometer, interactive route preview, and Waze alert relay server 2026-08-28 03:23:23 -04:00
skills-lock.json feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00

README.md

Motorcycle Digital Dashboard 🏍️

A high-performance, dark-themed telemetry and analytics dashboard for motorcycles, built with Flutter.

Features

  • Real-time Telemetry: Uses GPS and IMU sensors to calculate speed, lean angle (bank), and acceleration/braking G-forces.
  • Automatic Ride Recording: Automatically starts tracking when movement is detected and logs your trip.
  • Performance Analysis: Automatically measures 0-60 MPH and 0-100 MPH acceleration times.
  • Ride History & Replay: View past rides, replay telemetry synchronized with a Google Map.
  • Audio Alerts: Text-to-speech alerts for milestones and ride states to keep your eyes on the road.
  • Data Export: Export your ride telemetry to .csv or .gpx for external analysis.

Setup & Building

  1. Ensure you have the Flutter SDK installed.
  2. Clone this repository.
  3. Run flutter pub get to fetch dependencies.
  4. Add your Google Maps API key in android/app/src/main/AndroidManifest.xml (replace YOUR_API_KEY_HERE).
  5. Run flutter run or flutter build apk.

Architecture

  • Framework: Flutter (Material 3).
  • State Management: Riverpod for reactive UI state.
  • Database: Drift (SQLite) for robust, local storage.
  • Sensor Fusion: Complementary filter combining accelerometer and gyroscope for precise lean angles.

Documentation

The active documentation map and dated evidence archive are indexed in docs/README.md.

Disclaimer

This application relies on the accuracy of your smartphone's internal sensors. It should be securely mounted to the motorcycle using a rigid mount. Do not interact with the screen while riding. Ride safely!