feat(android): upload all + per-file retry (Phase 28.3 complete)
This commit is contained in:
@@ -2021,7 +2021,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.4–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).**
|
||||
@@ -2046,12 +2046,16 @@ 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)**
|
||||
**28.3 — Cellular upload ✅ DONE (2026-08-15)**
|
||||
- `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.
|
||||
- `DownloadsScreen`: per-file upload status + inline progress bar; in-app test file generator;
|
||||
"Upload all" button (queues all pending files); per-file "Retry" button (tracks failed
|
||||
uploads via `failedUploads` StateFlow).
|
||||
- **Pending:** real-device verification of the upload path end-to-end (chunk 0 through the Pi
|
||||
NAT + Cloudflare still needs confirming on the owner's Pixel).
|
||||
|
||||
#### Why native (not web, not PWA)
|
||||
Revives the phone-relay goal (Phase 11/12) properly this time. The Phase 11 update proved
|
||||
|
||||
Reference in New Issue
Block a user