Commit Graph

349 Commits

Author SHA1 Message Date
Dennis Guse efddb31391 Cleanup: use Java17 switch statements.
AndroidStudio code cleanup.
2023-04-13 15:10:17 +02:00
Dennis Guse 3f600f6be7 Voice announcements: added setting to skip announcements on the device's internal speaker.
Fixes #1392.
2023-04-05 18:26:29 +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 26a20fe32d Voice announcements: distance only with one decimal unit.
Follow-up to: 8a9cd40bd5
2022-10-29 20:35:37 +02: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 8073f12947 Bugfix: prevent crash while stopping recording (race condition).
Part of #1328
2022-10-27 20:30:00 +02:00
Dennis Guse f3bf42083a Cleanup. 2022-10-18 20:21:20 +02:00
Leon Marz a1eb5fb15f Check if the device has GPS
Fixes #1380
2022-09-28 21:39:33 +02:00
Dennis Guse 4f612e32d6 Voice announcements: "speed" -> "average moving speed" (en only).
Fixes #1346.
2022-09-03 23:26:09 +02:00
Peter Storch 5a5f040ed5 Fix #1340 mass track deletion time 2022-08-21 18:53:20 +02:00
Dennis Guse 0ada9a2463 Android13: request NOTIFICATION_POST permission.
Fixes #1353.
Part of #1210.
2022-08-18 08:07:37 +02:00
Dennis Guse 63d1c9ee5e GPS: set signal lost threshold to 30s. 2022-08-14 20:18:37 +02:00
Dennis Guse 9f6ca83f27 Bug: PublicAPI needs to call startForegroundService (SDK API26+).
Fixes #1301.
2022-08-04 22:11:44 +02:00
Dennis Guse 2b530a1c53 Cleanup: unused imports. 2022-08-02 18:44:15 +02:00
Dennis Guse 5667d2d83e Store sensor data without distance.
Fixes #1088.
2022-07-11 22:56:11 +02:00
Dennis Guse 386f017fb7 VoiceAnnouncement: avoid using deprecated API. 2022-07-10 21:46:15 +02:00
Dennis Guse 1502b0cfa7 Gain/loss: handle events in our TrackRecordingService.handler (avoids potential race conditions). 2022-07-07 18:27:56 +02:00
Dennis Guse 0e69a444a5 Add a comma. 2022-07-07 18:26:27 +02:00
Román Ginés 3b62999fde Announcement computes intervals from last track point. Fixes #645.
Bugfixed: intervals distance wasn't computed correctly.
2022-07-06 22:54:45 +02:00
Dennis Guse f956e7fab3 Duplicate variable name. 2022-06-19 17:21:56 +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 a283464331 Add nautical miles (with feet for altitude).
Fixes #1280.
2022-06-17 19:57:40 +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 815f111ca6 TrackRecordingService: use main looper explicitly. 2022-05-11 20:56:52 +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 9d64989ef1 Public API: implemented STOP properly.
Fixes #1103.
2022-05-08 20:29:13 +02:00
Román Ginés da62d26409 UI refactoring with a Bottom App Bar.
Only one button to play/stop.
Stop Activity to edit track just recorded, resuming or finishing.
Logo color to FF6D00.
Fixes #1078 #437 #575 #1094.
2022-05-08 20:06:24 +02:00
Dennis Guse a5b44175a3 Convert metricUnits boolean into an enum.
Fixes #1199.
2022-04-28 22:35:38 +02:00
Dennis Guse db5c9479df Implement SpeedFormatter. 2022-04-28 22:35:38 +02:00
Dennis Guse 16f238f34b Refactoring: DistanceFormatter handles metricUnits. 2022-04-28 22:35:38 +02:00
Dennis Guse a57b5cd6ee From notification, open TrackRecordingActivity.
Fixes #1205.
2022-04-26 18:31:14 +02:00
Dennis Guse 6741ef4d9f Bugfix: notification opens TrackListActivity instead of TrackRecordingActivity.
If a recording is running, we need to pass the trackId to TrackRecordingActivity as otherwise it crashes when needing it.

Fixes #1156.
2022-04-24 16:58:36 +02:00
Dennis Guse f2ac1edc4b Create DistanceFormatter.
Fixes #1197
2022-04-23 20:12:43 +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 71288cd9be Bugfix: onDestroy() first shutdown sensors.
Fixes #1189.
2022-04-22 06:51:15 +02:00
Dennis Guse dd1c5667a0 Adhere to recording distance interval for TrackPoint storage.
Part of #1059.
2022-04-10 12:57:12 +02:00
Dennis Guse 7c5115fc56 UI: only update once every second.
Accidentally introduced in 78519883c0.
2022-03-26 00:35:44 +01: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 0848897ed0 Bugfix: speed showed sometimes 0.0 in UI.
Fixes #1117.
2022-02-17 18:19:17 +01:00
Román Ginés 7ca6925e7d Recording without GPS: show a Snackbar to warn user that recording is not using GPS. 2022-02-15 17:20:44 +01:00
Dennis Guse 5c06c7548f GPS is now optional: request GPS access in TrackRecordingActivity.
Fixes #1061.
2022-02-14 22:17:10 +01:00
Dennis Guse 8001c03a74 Bugfix: do not leak TTS in voice announcements. 2022-02-14 22:01:52 +01:00
Dennis Guse 30f9b6ffdc Cleanup in VoiceAnnouncement: rename to start() and stop(). 2022-02-14 22:01:52 +01:00