feat: record cadence from step detector during GPS workouts

Use Android TYPE_STEP_DETECTOR sensor in LocationForegroundService to
count steps in a 15s rolling window. Cadence (spm) is computed at each
GPS point and stored alongside lat/lng/altitude/speed. Session detail
page shows cadence chart when data is available.

No additional permissions required — step detector is not a restricted
sensor. Gracefully skipped on devices without the sensor.
This commit is contained in:
2026-04-11 15:26:29 +02:00
parent 4ae3793c06
commit 1434580c3f
9 changed files with 123 additions and 5 deletions
+2
View File
@@ -108,6 +108,8 @@ const translations: Translations = {
elevation_unit: { en: 'm', de: 'm' },
elevation_gain: { en: 'Gain', de: 'Anstieg' },
elevation_loss: { en: 'Loss', de: 'Abstieg' },
cadence: { en: 'Cadence', de: 'Kadenz' },
cadence_unit: { en: 'spm', de: 'spm' },
personal_records: { en: 'Personal Records', de: 'Persönliche Rekorde' },
delete_session_confirm: { en: 'Delete this workout session?', de: 'Dieses Training löschen?' },
remove_gps_confirm: { en: 'Remove GPS track from this exercise?', de: 'GPS-Track von dieser Übung entfernen?' },
+1
View File
@@ -10,6 +10,7 @@ export interface GpsPoint {
lng: number;
altitude?: number;
speed?: number;
cadence?: number; // steps per minute, from step detector sensor
timestamp: number;
}