Commit Graph

88 Commits

Author SHA1 Message Date
Dennis Guse 015352c989 TrackPoint is now a record. 2025-12-24 17:15:19 +01:00
frazou afd1232940 Fix null race-condition for heart rate sensor data
The previous implementation was technically safe because the sensor
never had null values. Now that it can, the calls to getHeartRate
must be stored instead of repeated to avoid a race condition where the
sensor data become null between the null-check and the second call
2025-12-07 19:16:42 +01:00
frazou a3407ccbea Add an optional filter for invalid (0 bpm) heart rate readings 2025-12-07 19:16:42 +01:00
Dennis Guse 6e4d46a14d Distance.ZERO as constant. 2025-11-06 21:54:30 +01:00
Dennis Guse fffeb40200 Speed.ZERO as constant. 2025-11-06 21:54:30 +01:00
Dennis Guse c687308d97 Move WakeLock to SensorManager (was TrackRecordingService). 2025-11-01 09:56:31 +01:00
Dennis Guse f31e146cda Cleanup: TrackPoint uses AltitudeGainLoss. 2025-10-30 22:33:00 +01:00
Peter Storch ec08717d01 Before codeberg migration (#2159)
Co-authored-by: Dennis Guse <dennis.guse@alumni.tu-berlin.de>
2025-08-24 08:36:08 +02:00
Dennis Guse ea4193a562 Bugfix: GPS-based data in UI should not drop back to zero.
Likely introduced b9ed5e28e0.
2025-03-07 17:45:31 +01:00
Dennis Guse e7aa6f20d4 Cleanup: use Position and cleanup TrackPoint. 2025-03-01 23:05:05 +01:00
Dennis Guse e83ba04d71 Position: move checks for validity. 2025-03-01 23:05:05 +01:00
Dennis Guse b9ed5e28e0 Sensor data: separate aggregation and TTL explicitly.
Part of #1995.
2025-03-01 22:51:48 +01:00
Dennis Guse d4e9b5d3d7 Cleanup: renames in sensor data handling.
Part of #1995.
2025-03-01 22:51:48 +01:00
Dennis Guse a6d318d970 Cleanup: move GpsManager into sensors package. 2025-03-01 22:51:48 +01:00
Dennis Guse 7df625ff0c Revert "Bugfix: on idle detection reset movement-based sensor data."
This reverts commit fd9646bb1f.
2025-01-20 07:53:45 +01:00
Dennis Guse 0e0958c5e8 Announcements: add current heartrate.
Fixes #1635.
2024-12-29 12:38:15 +01:00
Dennis Guse 01f4359cdf Sensor data: use monotonic clock (for isRecent).
Part of #1966.
2024-12-28 17:33:53 +01:00
Dennis Guse 333bc6f31b Sensor data: use monotonic clock.
Part of #1966.
2024-12-28 17:33:53 +01:00
Dennis Guse fd9646bb1f Bugfix: on idle detection reset movement-based sensor data.
Fixes #1995.
2024-12-17 07:18:24 +01:00
Dennis Guse d8eed2ccc9 Cleanup using AndroidStudio analyze. 2024-07-11 07:38:45 +02:00
Dennis Guse e442558eed Introduced Position.
Internal value object replacing android.location.Location.

Follow-up to #1898.
2024-07-06 14:51:45 +02:00
Dennis Guse e590e4e07e Bugfix: overestimated distance.
A combination of idle trackpoint and stale GPS data, resulted in recording lat=0.0 and lng=0.0; and thus inflating distance as well as GPS-based speed.

Fixes #1898.

Introduced in dfdbc373ff
2024-04-28 10:50:56 +02:00
Dennis Guse dfdbc373ff GPS: event-based using Raw.
Part of #1424.
2024-04-08 17:48:29 +02:00
Dennis Guse 80d7f8d92e Bugfix: a BLE sensor disconnect should only replace the aggregator.
Fixes #1799.
2024-01-05 15:44:05 +01:00
Dennis Guse 0584f05ddc Bugfix: Cycling Cadence and Distance sensor allow for repeated data.
Fixes #1790.
2024-01-01 14:39:20 +01:00
Dennis Guse 310ac8c06e Bugfix: process cycling power sensor data correctly.
Fixes #1802.
2023-12-31 13:18:55 +01:00
Dennis Guse 03dd0c2308 Implement gain/loss via Bluetooth LE Environmental Sensing Sensor.
Fixes #1424.
2023-12-30 11:23:28 +01:00
Dennis Guse 8eed8e9d8d Bugfix: Bluetooth sensor data TLS is 5s instead of 50s.
Introduced in 58d79380cf
2023-12-29 13:17:06 +01:00
Dennis Guse 94540606ef Barometer: select INTERNAL or NONE (also while recording).
Part of #1424.
2023-12-29 13:17:06 +01:00
Dennis Guse 490141db2a Barometer: added settings for sensor selection.
Part of #1424.
2023-12-29 13:17:06 +01:00
Dennis Guse 8f5388edce While recording: show BLE sensor name instead of address.
Fixes #1796.
2023-12-26 11:22:05 +01:00
Dennis Guse 2fe452c77c Revert "fix NPE at null barometer after unregister listener"
This reverts commit 5dbd17f3bb.
2023-12-26 08:42:38 +01:00
Dennis Guse 150cbee95b BarometerInternal: if there is no internal barometer - don't register a listener. 2023-12-25 18:48:14 +01:00
Dennis Guse 47ceb297c9 SensorManager: crash if started twice.
Part of #1780.
2023-12-24 22:10:58 +01:00
Dennis Guse aed4af5736 Bluetooth logs: make them slightly more readable. 2023-12-24 21:49:48 +01:00
Dennis Guse d08552a07b Bugfix: cycling cadence data should be handled by BluetoothHandlerCyclingCadence.
Fixes #1787.

Introduced in 15f3ccbcbd
2023-12-17 22:37:32 +01:00
Dennis Guse 24212a226e Bugfix: prevent crash when ending a recording (barometer present).
Fixes #1766.
2023-12-09 10:04:50 +01:00
Peter Storch 5dbd17f3bb fix NPE at null barometer after unregister listener 2023-11-22 21:24:36 +01:00
Dennis Guse caf8b5526d Bugfix: BarometerInternal shouldn't send data after disconnect().
Part of #1424.
2023-11-21 07:18:10 +01:00
Dennis Guse 8d5a7e7e8b Barometer: use sensor aggregator.
Part of #1424.
2023-11-20 06:39:28 +01:00
Dennis Guse 5c7731bb1f Bugfix: removing sensor didn't remove the aggregator.
Introduced in 58d79380cf.
2023-11-16 06:53:48 +01:00
Dennis Guse ce21fe3569 Cleanup: renamed SensorData* to Aggregator*. 2023-11-15 18:41:13 +01:00
Dennis Guse d47fa27e02 Cleanup: SensorDataCyclingDistanceSpeed.Data is a record. 2023-11-15 07:26:04 +01:00
Dennis Guse 58d79380cf Sensors: separate data generation and aggregation.
Part of #1424.
2023-11-15 07:20:42 +01:00
Dennis Guse 15f3ccbcbd Bluetooth: rename to BluetoothHandlers. 2023-11-06 18:09:19 +01:00
Dennis Guse f2594371d3 Bluetooth: inline BluetoothUtils into Handler classes. 2023-11-06 18:09:19 +01:00
Dennis Guse 4d54472c93 Bluetooth: use composition instead of inheritance.
Part of #1424.
2023-11-06 18:09:19 +01:00
Dennis Guse 3a2a62a6d7 Bluetooth: send sensor data directly to SensorManager.
Part of #1424.
2023-11-06 18:09:19 +01:00
Dennis Guse 17487961ad Bluetooth: upgrade minSDK=26 for simplification (race condition prevention).
Part of #1424.
2023-11-06 18:09:19 +01:00
Dennis Guse 205c5c7528 SensorManager and GPSManager: prefer to crash rather than hide usage errors. 2023-08-13 21:11:24 +02:00