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
This commit is contained in:
@@ -1994,7 +1994,7 @@ tracked in FEATURES.md.
|
||||
2. **FEAT-02** — QR / claim-code device pairing flow (medium)
|
||||
3. **FEAT-04** — Replace SIM868 2G GSM with 4G LTE modem (large)
|
||||
|
||||
### Phase 28: Native Android companion app — 🚧 IN PROGRESS (28.1 ✅, 28.2 ✅, 28.3–28.7 pending)
|
||||
### Phase 28: Native Android companion app — 🚧 IN PROGRESS (28.1 ✅, 28.2 ✅, 28.3 🚧, 28.4–28.7 pending)
|
||||
**Renumbered from former Phase 26 on 2026-08-10 to make room for the road-test bug-fix phase.
|
||||
Renumbered to Phase 28 on 2026-08-11 to make room for Phase 27 feature additions. Planning
|
||||
completed 2026-08-11. Detailed implementation plan in [android/plan.md](android/plan.md).**
|
||||
@@ -2019,6 +2019,13 @@ completed 2026-08-11. Detailed implementation plan in [android/plan.md](android/
|
||||
- Bottom nav: Dashcam tab + Test tab.
|
||||
- **Verified:** video list loads from real Pi over "yaris 911" hotspot on the owner's Pixel.
|
||||
|
||||
**28.3 — Cellular upload 🚧 IN PROGRESS (2026-08-12)**
|
||||
- `ServerApi.kt`: Retrofit chunked-upload endpoints (`/api/v1/dashcam/upload/status` + `.../chunk`).
|
||||
- `UploadWorker.kt`: WorkManager foreground worker — SHA256 → `/status` check → 40MB chunks,
|
||||
skipping already-received chunks. Byte-level progress via okio `ForwardingSink` (real bytes
|
||||
sent, not chunk count), debug logging, robust chunk reads, re-upload guard.
|
||||
- `DownloadsScreen`: per-file upload status + inline progress bar; in-app test file generator.
|
||||
|
||||
#### Why native (not web, not PWA)
|
||||
Revives the phone-relay goal (Phase 11/12) properly this time. The Phase 11 update proved
|
||||
conclusively that a browser page **cannot** hold a WiFi connection to the Pi's no-internet
|
||||
|
||||
Reference in New Issue
Block a user