Mathieu Moran
5a5df2b323
feat: APK distribution pipeline — server hosting + Pi auto-update + /app routes
2026-08-15 20:52:38 -04:00
Mathieu Moran
5039b90bc6
feat(android): release signing + R8-verified signed APK (Phase 28.8)
2026-08-15 20:44:45 -04:00
Mathieu Moran
ce7c7c63b4
docs: note system back handling in trip replay
2026-08-15 20:38:32 -04:00
Mathieu Moran
699ce16dab
feat(android): UI redesign — light web-matching theme, dark top bar + bottom nav (Phase 28.7)
2026-08-15 20:18:53 -04:00
Mathieu Moran
0cb89596b0
feat(android): remote portal access — login, stats, trips, dashcam (Phase 28.6)
2026-08-15 20:11:26 -04:00
Mathieu Moran
a40fced666
feat(android): trip history list + route replay map (Phase 28.5)
2026-08-15 19:51:06 -04:00
Mathieu Moran
cadde5aeee
feat(android): live dashboard screen (Phase 28.4)
2026-08-15 19:40:47 -04:00
Mathieu Moran
b6f8416b5c
feat(android): upload all + per-file retry (Phase 28.3 complete)
2026-08-15 19:32:05 -04:00
Mathieu Moran
2e8e42a165
android: byte-level upload progress + debug logging; document 28.3
...
- UploadWorker: ProgressRequestBody (okio ForwardingSink) tracks real bytes
sent including already-received chunks, instead of chunk count
- Robust chunk reads (loop skip/read) + Log.d/Log.e debug logging
- DashcamViewModel: upload state/progress debug logging
- android/plan.md + PLAN.md: 28.3 marked in progress with built items
2026-08-12 19:00:00 -04:00
Mathieu Moran
7a6c1750c9
docs: update Phase 28.1/28.2 status in PLAN.md + android/plan.md
...
- PLAN.md: Phase 28 header now shows 28.1 ✅ , 28.2 ✅ , 28.3–28.7 pending
- PLAN.md: added 28.1 gate-pass + 28.2 dashcam browser/download summaries
- android/plan.md: 28.2 rewritten from NOT STARTED to DONE with real
implementation details (PiApi, DashcamScreen, DashcamViewModel,
WorkManager DownloadWorker, Coil thumbnails, bottom nav)
2026-08-12 02:29:22 -04:00
Mathieu Moran
22bbee3b30
feat: Phase 28.2 — dashcam video browser + WiFi download
...
- DashcamScreen: LazyColumn of imported Pi videos with thumbnails (Coil),
file size, date, upload status, converting progress
- DashcamViewModel: Retrofit-backed video list + download to phone storage
+ delete local copy
- PiApi extended: listVideos, getVideoFile (streaming), getThumbnail, deleteVideo
- DTOs: VideoListResponse, VideoFile, ConvertProgress
- Bottom nav: Dashcam tab + Test tab
- Verified: video list loads from real Pi over yaris 911 hotspot
2026-08-12 01:14:20 -04:00
Mathieu Moran
8d64b1e8b0
feat: Phase 28.1.2 — dual-network binding + OkHttp clients
...
- NetworkBinder: discovers Pi hotspot WiFi (no-internet) and cellular networks
via ConnectivityManager, creates per-network socket-bound OkHttpClients
- DualNetworkTestScreen: real OkHttp calls to 10.42.0.1/api/gps/status and
yaris.ceaf.dev/health, simultaneous "Test Both" gate button
- MainActivity: discovers networks at startup, passes bound clients to screen
- Retrofit interfaces (PiApi, ServerApi) + DTOs (GpsStatus, HealthResponse)
- Uncommented OkHttp/Retrofit/kotlinx-serialization deps in build.gradle.kts
2026-08-12 00:34:41 -04:00
Mathieu Moran
f1c83a2ee7
init: android project scaffold (Phase 28.1)
...
- Kotlin DSL build with version catalog (AGP 8.7, Kotlin 2.1, Compose BOM 2025.01)
- app module: Compose + Material 3, dark theme, network security config
- DualNetworkTestScreen — Phase 28.1 gate screen (buttons wired in 28.1.2)
- YarisApp, MainActivity, YarisOBDTheme
- ProGuard rules for Retrofit/OkHttp/Kotlinx Serialization/Coil/MapLibre/Room
- cleartext allowed for 10.42.0.1 + yaris.local
- gradle wrapper properties (needs Android Studio to generate wrapper jar)
2026-08-12 00:26:54 -04:00
Mathieu Moran
79222c8bb5
fix: disabling sync via settings page no longer returns spurious error 400
2026-08-12 00:02:54 -04:00