GPS: safe on-device recovery, net-kcal model, poll/watchPosition dedup
- native_root(): pick app root by presence of gps_live/gps_points files. app_data_dir() is the root directly on this Tauri; the old .parent().parent() read the wrong dir, so background (screen-off) points were never imported. - recoverFromFiles: match file->session by id/date, plus session id stamped into the native file name (gps_points_<ms>_s<id>.jsonl) for exact binding (gps_set_session_id -> Kotlin bindSessionIfPending). Proximity dedup +-2.5s, recalc with noDelete (never runs the destructive glitch/>24h filter that once wiped real rides), delete already-imported files. Progress bar UI. - bike kcal is NET (daily balance already books BMR*activityLevel): pedaling = max(physics power/efficiency, MET-net by speed), coasting (power<=0, the bike would roll unpowered) = basal only. Elevation via cumulative hysteresis. recomputeAllStats + "recompute elevation/kcal" menu refresh stored tracks without touching points. - live recording: the native file is the DB source of truth; watchPosition only drives the live marker, so a fix is not stored twice with two timestamps. - track list pagination, SAF local-file picker, tile regions from router.
This commit is contained in:
parent
84a2b786ca
commit
56c2ff4ec7
12 changed files with 854 additions and 190 deletions
10
.gitignore
vendored
10
.gitignore
vendored
|
|
@ -12,3 +12,13 @@ fitotrack_src/
|
|||
fitotrack_v156/
|
||||
fitotrack_*.apk
|
||||
de.tadris.fitness_*.tar.gz
|
||||
|
||||
# Offline map artifacts: raw PNG tiles and packed tile DBs (regenerable, large)
|
||||
data/tiles/
|
||||
tiles_*.db
|
||||
|
||||
# Local DB backups pulled from the phone
|
||||
db_backups/
|
||||
|
||||
# Session-local analysis harnesses, copied DBs, pulled 50Hz sensor dumps (large)
|
||||
test_recovery/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue