feat(mobile): editable activity title for local activities

Adds edits_json column (migration v3) to store user overrides separately
from detail_json so Option A server re-extraction never clobbers them.

- Tap the title in the detail screen to edit (local activities only, shown
  with a ✎ hint). Saves on keyboard dismiss via onEndEditing.
- Cards and search display user_title ?? title.
- Raw upload: user_title sent to server -> sidecar written so web UI shows
  the correct title (server re-extracts from FIT, which has Karoo's title).
- BAS upload: detail.title overridden before sending, no sidecar needed.
This commit is contained in:
Davide Scaini
2026-04-27 15:20:19 +02:00
parent 090d4bd8dc
commit 946da685e5
6 changed files with 81 additions and 18 deletions
+9
View File
@@ -35,4 +35,13 @@ export async function migrateDb(db: SQLiteDatabase): Promise<void> {
} catch {
// Column already exists — migration already ran, ignore.
}
// Migration v3: edits_json stores user overrides (e.g. {"title": "My title"})
// kept separate from detail_json so server re-extraction (Option A) never
// clobbers user edits.
try {
await db.execAsync('ALTER TABLE activities ADD COLUMN edits_json TEXT');
} catch {
// Column already exists — migration already ran, ignore.
}
}