Commit Graph

180 Commits

Author SHA1 Message Date
Dennis Guse d8e05da9d0 Tests: remove workaround for not stopping TrackRecordingService properly below API24. 2023-08-13 21:11:24 +02:00
Dennis Guse 4d5c59be96 TrackRecordingService: must be stopped via TrackRecordingServiceConnection and handles Preference changes. 2023-08-13 21:11:24 +02:00
Dennis Guse c0b5e71976 TrackPoint: all sensors are the same - no need to distinguish the source of a TrackPoint (BLE sensor vs GPS).
Part of #1187.
2023-08-08 19:03:01 +02:00
Dennis Guse 7530e1d120 AndroidStudio: code cleanup. 2023-08-08 17:57:36 +02:00
Dennis Guse 11c5ec43e2 Statistics: distance, total time, moving time are counted between automatic segments.
Fixes #1566.
2023-07-26 19:16:27 +02:00
blackberrypineapple 6dd9630bae Bugfix: crash on voice announcement if using imperial with meters
Fixes #1626
2023-07-05 14:26:46 +02:00
Dennis Guse 1a5acc8f2d Cleanup using AndroidStudio analyze. 2023-06-21 23:15:04 +02:00
Dennis Guse 1f86250e46 ICU's MessageFormat handles plurals for floats (getQuantityString does not).
Fixes #1584.
2023-06-21 19:19:53 +02:00
Dennis Guse eb8d28dfc1 Units: add imperial with meters.
Fixes of #1609.
2023-06-16 00:00:31 +02:00
Dennis Guse 11db0d1a4f Rewrote GpsStatus check and added tests. 2023-06-11 21:27:50 +02:00
Dennis Guse f336a1da12 Move GPSManager into SensorManager.
Includes Bugfix: SensorManager might not have been stopped.

Part of #1424.
2023-06-04 13:16:22 +02:00
Dennis Guse 6d61206782 Renamed GPSHandler to GPSManager. 2023-03-28 20:58:23 +02:00
Dennis Guse b9dedef292 Refactor: introduced SensorManager. 2023-03-28 20:58:23 +02:00
Dennis Guse e16780277f Refactor: introduced SensorConnector interface. 2023-03-27 22:59:31 +02:00
Dennis Guse ac80386b8a Refactor tests: use mocks for BluetoothRemoteSensorManager. 2022-12-30 16:22:46 +01:00
Dennis Guse 14b6746dff Handle LocationManager callbacks with TrackRecordingService's handler.
Fixes #1328.
2022-10-28 22:35:36 +02:00
Dennis Guse a5eca8fa64 Test: do not request GPS permissions for test that use fake locations anyhow. 2022-10-28 18:41:54 +02:00
Dennis Guse 2207865a70 Cleanup using AndroidStudio analyze. 2022-10-28 17:49:59 +02:00
Dennis Guse 8a9cd40bd5 Voice announcements: distance only with one decimal unit. 2022-10-18 20:21:20 +02:00
Dennis Guse 4f612e32d6 Voice announcements: "speed" -> "average moving speed" (en only).
Fixes #1346.
2022-09-03 23:26:09 +02:00
Dennis Guse 5667d2d83e Store sensor data without distance.
Fixes #1088.
2022-07-11 22:56:11 +02:00
Dennis Guse 73615aa0d6 Statistics: remove speed filtering (fix tests).
Part of #1003.
2022-07-01 13:24:18 +02:00
Dennis Guse 81bb6699d8 Statistics: remove speed filtering.
Part of #1003.
2022-06-30 14:03:33 +02:00
William Pettersson 128b95cd83 Fix voice announcement rounding problem
We extracted integral parts before rounding, but String.format does
rounding which caused occasional issues. To alleviate, we need to round
before passing to String.format. All this rounding logic has now been
moved into appendDecimalUnit, and tests have been added to check that
rounding works correctly.

Fixes: #1285
2022-06-19 16:39:46 +02:00
Dennis Guse b822d05a78 Fix voice announcement tests. 2022-06-09 22:33:43 +02:00
Dennis Guse 9cf88c00b0 Voice announcements: time is moving time (settings). 2022-06-06 17:02:31 +02:00
Jonas Kalderstam 00351136f2 Voice announcements: added settings for what to announce 2022-06-06 17:02:31 +02:00
Dennis Guse 5d2414977b TrackRecordingService: remove pause functionality.
Fixes #1233.
2022-05-23 07:41:50 +02:00
Dennis Guse 40d2bf0c22 Bluetooth: use TrackRecording handler for callback.
Otherwise the thread is not defined and a SecurityException may be triggered when inserting data into the ContentProvider.
Sadly, below API26 this needs to be done manually.

Fixes #1165.
2022-05-11 20:56:52 +02:00
Dennis Guse a5b44175a3 Convert metricUnits boolean into an enum.
Fixes #1199.
2022-04-28 22:35:38 +02:00
Dennis Guse 18b21a6a3e Bugfix: prevent race condition in TrackPointCreator.
This race condition leads to a crash in TrackStatisticsUpdater as the time might appear to move backwards if the created TrackPoints are not stored in order. Might happen if multiple sensors (BLE or GPS) are used in simultaneously.

Every method affected by a race condition is now synchronized.

Problem was introduced in c4b8082efc

Fixes #1151.
2022-04-23 12:48:19 +02:00
Dennis Guse dd1c5667a0 Adhere to recording distance interval for TrackPoint storage.
Part of #1059.
2022-04-10 12:57:12 +02:00
Peter Storch e61b065f2b fix #1139 CI build
- fix NPEs in TrackPointCreator.fill()
- fix locale dependant tests
- wait for UI components
- extract utility functions into EspressoUtils
2022-03-13 01:28:10 +01:00
Jonas Kalderstam 9e7e8c60a6 Voice announcement: added TtsSpans to announcements
Fixes #876
2022-03-01 10:09:00 +01:00
Jonas Kalderstam 1075021e21 Voice announcement: added heart rate info to voice announcements
Also added setting to toggle announcement of heart rate

Defaults to off to preserve current behavior
2022-03-01 09:58:29 +01:00
Dennis Guse 30f9b6ffdc Cleanup in VoiceAnnouncement: rename to start() and stop(). 2022-02-14 22:01:52 +01:00
Dennis Guse a7fd6b8dfa TrackRecordingService: call stopSelf after triggering post-workout export.
Might fix #1080.
2022-02-14 22:01:52 +01:00
Dennis Guse cf32c81035 Cleanup: extract RecordingData and RecordingStatus from TrackRecordingService. 2022-02-14 22:01:52 +01:00
Dennis Guse 19a958ccbb Cleanup. 2022-01-29 19:21:54 +01:00
Dennis Guse 708245bd50 TrackRecordingServices: managers register for sharedPreference changes. 2022-01-27 22:04:45 +01:00
Dennis Guse 88c4e1a109 Package structure: moved sensors.
Part of #963.
2022-01-15 22:24:59 +01:00
Dennis Guse 0645628d7e Package structure: moved models and database.
Part of #963.
2022-01-15 22:24:59 +01:00
Dennis Guse 5053c41bec Package structure: moved intervals.
Part of #963.
2022-01-15 22:07:53 +01:00
Dennis Guse 58b1396d64 Refactoring package structure.
Part of #963.
2022-01-12 22:57:35 +01:00
Dennis Guse a9f1381dae Refactoring package structure.
Part of #963.
2022-01-12 22:42:23 +01:00
Dennis Guse e508c53ca9 TrackRecordingManager: store GPS-based TrackPoints based upon the distance to the previously stored GPS-based TrackPoint. 2022-01-12 18:07:48 +01:00
Dennis Guse cd7bf36aa9 TrackRecordingService: add integration tests. 2022-01-09 18:28:35 +01:00
Dennis Guse ab07d3b130 TrackRecordingService: re-worked TrackPoint recording tests for state changes. 2022-01-09 18:28:35 +01:00
Dennis Guse 8b5320e40e TrackRecordingService: cleanup tests. 2022-01-09 18:28:35 +01:00
Dennis Guse ef15632d7b TrackRecordingService: refactored and unified tests. 2022-01-09 18:28:35 +01:00