Compare commits

...

408 Commits

Author SHA1 Message Date
Dennis Guse 9b2126550e Release: v4.10.0 2023-12-30 12:59:40 +01:00
Stephan Paternotte 0e9f9b4db7 Translated using Weblate (Dutch)
Currently translated at 100.0% (517 of 517 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-12-30 11:24:24 +01:00
josé m 4dc524bf4f Translated using Weblate (Galician)
Currently translated at 100.0% (517 of 517 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-12-30 11:24:24 +01:00
Fjuro 7455e591e1 Translated using Weblate (Czech)
Currently translated at 100.0% (517 of 517 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/cs/
2023-12-30 11:24:24 +01:00
Dennis Guse 9e4b1e0706 Merge pull request #1767 from OpenTracksApp/barometer2#1424
Support for BLE Environmental Sensing (Pressure/Barometer).
2023-12-30 11:24:20 +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 892c56389b SplashScreen supports day and night mode. 2023-12-29 13:09:52 +01:00
Dennis Guse a141bd77ad Bugfix: intervals row needs to use complete row.
Introduced in be0a7e2fac
2023-12-29 13:09:52 +01:00
Dennis Guse e48b6054df Cleanup: Theme is called OpenTracksTheme. 2023-12-29 13:09:52 +01:00
Dennis Guse bb23bac7ec Use Material3 switch for settings.
Part of #1586.
2023-12-28 20:24:32 +01:00
Stephan Paternotte fa362de67a Translated using Weblate (Dutch)
Currently translated at 100.0% (129 of 129 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-12-27 11:33:20 +01:00
Fjuro 76cba3f611 Translated using Weblate (Czech)
Currently translated at 100.0% (129 of 129 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2023-12-27 11:33:20 +01:00
Stephan Paternotte 7ccb59beae Translated using Weblate (Dutch)
Currently translated at 100.0% (128 of 128 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-12-27 11:33:20 +01:00
Hikaru a70118b2dc Translated using Weblate (Japanese)
Currently translated at 50.0% (258 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/ja/
2023-12-27 11:33:20 +01:00
Software In Interlingua 738cbe150f Added translation using Weblate (Interlingua) 2023-12-27 11:33:20 +01:00
Fjuro 7f40f67dc4 Translated using Weblate (Czech)
Currently translated at 100.0% (128 of 128 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2023-12-27 11:33:20 +01:00
Fjuro f1b7adb6a0 Translated using Weblate (Czech)
Currently translated at 100.0% (127 of 127 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2023-12-27 11:33:20 +01:00
Dennis Guse 1bd75754e4 Bluetooth sensor settings: show sensor name in addition (if cached via Android OS).
Fixes #508.
2023-12-27 11:32:56 +01:00
Dennis Guse eaad33c23b Merge pull request #1797 from OpenTracksApp/refactoring#1708
Refactoring TrackRecordingServiceConnection
2023-12-27 11:06:35 +01:00
Dennis Guse 9a0f927182 Cleanup: TrackRecordingServiceConnection has now an execute method (avoid instantiation). 2023-12-27 11:05:56 +01:00
Dennis Guse 59aeec4fbc Cleanup: TrackRecordingServiceConnection. 2023-12-27 11:05:56 +01:00
Dennis Guse df8306c2f8 Cleanup: TrackEditActivity doesn't need a TrackRecordingServiceConnection. 2023-12-27 11:05:56 +01:00
Dennis Guse 5c6a4a71a4 TrackRecordingService: always starts as foreground service. 2023-12-27 11:05:56 +01:00
Dennis Guse abbc61d419 TrackRecordingService: start via ServiceCompat. 2023-12-27 11:05:56 +01:00
Dennis Guse e2f598b282 Cleanup: simplify TrackServiceConnection. 2023-12-27 11:05:56 +01:00
Dennis Guse 41da2f5b53 Cleanup: simplify TrackServiceConnection. 2023-12-27 11:05:56 +01:00
Dennis Guse 8d7a8719bc Release: v4.9.9 2023-12-27 10:32:39 +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 81a78820cc Merge pull request #1793 from OpenTracksApp/crash#1708
Bugfix: sensors were started twice.
2023-12-26 09:04:29 +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 826cf0d468 Bugfix: TrackListActivity couldn't stop and restart sensors.
Part of #1780.
2023-12-26 08:42:38 +01:00
Dennis Guse 6cd627e832 Bugfix: TrackRecordingService can only start sensors once.
Fixes #1780.
2023-12-26 08:42:37 +01:00
Dennis Guse 0ee4a4e72f Bugfix: TrackListActivity triggered TrackRecordingService twice (startSensors and startRecording).
Part of #1780.
2023-12-25 20:49:49 +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 333f7956b5 Release: v4.9.8 2023-12-17 22:38:37 +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
dependabot[bot] 330ca4a720 Bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-15 07:19:37 +01:00
dependabot[bot] 85171cdc46 Bump com.google.android.material:material from 1.10.0 to 1.11.0
Bumps [com.google.android.material:material](https://github.com/material-components/material-components-android) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/material-components/material-components-android/releases)
- [Commits](https://github.com/material-components/material-components-android/compare/1.10.0...1.11.0)

---
updated-dependencies:
- dependency-name: com.google.android.material:material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-14 23:11:24 +01:00
Dennis Guse 5c1cb97c02 Release: v4.9.7 2023-12-12 18:46:17 +01:00
Stephan Paternotte 98a009e7c7 Translated using Weblate (Dutch)
Currently translated at 100.0% (126 of 126 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-12-09 10:04:59 +01:00
Fjuro 8f15382409 Translated using Weblate (Czech)
Currently translated at 100.0% (126 of 126 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2023-12-09 10:04:59 +01:00
Dennis Guse 24212a226e Bugfix: prevent crash when ending a recording (barometer present).
Fixes #1766.
2023-12-09 10:04:50 +01:00
dependabot[bot] f80aaf00ec Bump reactivecircus/android-emulator-runner from 2.28.0 to 2.29.0
Bumps [reactivecircus/android-emulator-runner](https://github.com/reactivecircus/android-emulator-runner) from 2.28.0 to 2.29.0.
- [Release notes](https://github.com/reactivecircus/android-emulator-runner/releases)
- [Changelog](https://github.com/ReactiveCircus/android-emulator-runner/blob/main/CHANGELOG.md)
- [Commits](https://github.com/reactivecircus/android-emulator-runner/compare/v2.28.0...v2.29.0)

---
updated-dependencies:
- dependency-name: reactivecircus/android-emulator-runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-07 20:36:04 +01:00
Dennis Guse edba2294f3 Release: v4.9.6 2023-12-04 20:16:24 +01:00
Stephan Paternotte 5743f29aed Translated using Weblate (Dutch)
Currently translated at 100.0% (125 of 125 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-12-04 07:27:05 +01:00
Max Xie 7b2ad1590c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (516 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/zh_Hans/
2023-12-04 07:27:05 +01:00
gallegonovato 251a26d2f8 Translated using Weblate (Spanish)
Currently translated at 8.0% (10 of 125 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/es/
2023-12-04 07:27:05 +01:00
Fjuro fd362e17e1 Translated using Weblate (Czech)
Currently translated at 100.0% (125 of 125 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2023-12-04 07:27:05 +01:00
Luis Rosario bf0dd9cda4 Translated using Weblate (Portuguese (Portugal))
Currently translated at 92.2% (476 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/pt_PT/
2023-12-04 07:27:05 +01:00
dependabot[bot] 0fe176fa24 Bump org.mockito:mockito-android from 5.7.0 to 5.8.0
Bumps [org.mockito:mockito-android](https://github.com/mockito/mockito) from 5.7.0 to 5.8.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.7.0...v5.8.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 07:27:01 +01:00
Dennis Guse 9b45a70e67 Upgrade to Gradlew 8.5.0 2023-11-30 22:06:21 +01:00
Dennis Guse bd1b68dffd Bump com.android.tools.build:gradle from 8.2.0-rc01 to 8.2.0 2023-11-30 21:51:36 +01:00
dependabot[bot] 3c5c69fdb0 Bump actions/setup-java from 3 to 4
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-30 07:15:54 +01:00
Peter Storch 87d7ebcb64 fix #1769 export overwrite existing files 2023-11-28 21:35:17 +01:00
Dennis Guse a01edcc9e8 Bugfix: InputStream.transferTo() is only available from SDK33+.
Introcuced in 8b7063d18b.
2023-11-27 23:04:43 +01:00
Dennis Guse 8b7063d18b Cleanup: use InputStream.transferTo() 2023-11-24 07:11:22 +01:00
Dennis Guse 25d4daa295 Cleanup. 2023-11-24 07:11:07 +01:00
Peter Storch 5dbd17f3bb fix NPE at null barometer after unregister listener 2023-11-22 21:24:36 +01:00
Dennis Guse fd914630d0 Merge pull request #1755 from OpenTracksApp/barometer#1424
Refactoring sensor handling as preparation for BLE barometers.
2023-11-22 20:05:40 +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 9fb84cc47c Release: v4.9.5 2023-11-19 16:12:46 +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
Stephan Paternotte a0ab2e2896 Translated using Weblate (Dutch)
Currently translated at 100.0% (516 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-11-13 22:06:26 +01:00
plum7x 0bc526df06 Translated using Weblate (Chinese (Traditional))
Currently translated at 99.2% (512 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/zh_Hant/
2023-11-10 18:36:53 +00:00
Pavel Smirnov f51edbf712 Translated using Weblate (Russian)
Currently translated at 12.0% (15 of 124 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/ru/
2023-11-08 22:36:40 +00:00
Pavel Smirnov 2384b947b3 Translated using Weblate (Russian)
Currently translated at 98.2% (507 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/ru/
2023-11-08 22:36:37 +00:00
Stephan Paternotte aca7f9063e Translated using Weblate (Dutch)
Currently translated at 100.0% (516 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-11-07 15:06:10 +01:00
Hosted Weblate 78282b97ed Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/
2023-11-07 07:02:03 +01:00
mm4c c32ab408e6 Translated using Weblate (Dutch)
Currently translated at 99.4% (513 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-11-07 07:02:02 +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
mm4c af268c608a Translated using Weblate (Dutch)
Currently translated at 100.0% (516 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-11-06 07:46:22 +01:00
ngocanhtve 605d4c02f5 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (516 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/vi/
2023-11-06 07:46:22 +01:00
gallegonovato cae2de0982 Translated using Weblate (Spanish)
Currently translated at 100.0% (516 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/es/
2023-11-06 07:46:22 +01:00
Stephan Paternotte 257b051f13 Translated using Weblate (Dutch)
Currently translated at 100.0% (124 of 124 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-11-06 07:46:22 +01:00
Fjuro 0cf65e0b89 Translated using Weblate (Czech)
Currently translated at 100.0% (124 of 124 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2023-11-06 07:46:22 +01:00
Stephan Paternotte 062d48e69f Translated using Weblate (Dutch)
Currently translated at 100.0% (516 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-11-06 07:46:22 +01:00
Milo Ivir a270b1f64f Translated using Weblate (Croatian)
Currently translated at 100.0% (516 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/hr/
2023-11-06 07:46:22 +01:00
josé m f7bc25c17d Translated using Weblate (Galician)
Currently translated at 100.0% (516 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-11-06 07:46:22 +01:00
Fjuro 90f82f7c5c Translated using Weblate (Czech)
Currently translated at 100.0% (516 of 516 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/cs/
2023-11-06 07:46:22 +01:00
Dennis Guse 062457f1aa Cleanup: use Java 17's instanceof.
Fixes #1757.
2023-11-06 07:46:18 +01:00
dependabot[bot] cd4d297608 Bump com.android.tools:desugar_jdk_libs from 2.0.3 to 2.0.4
Bumps [com.android.tools:desugar_jdk_libs](https://github.com/google/desugar_jdk_libs) from 2.0.3 to 2.0.4.
- [Changelog](https://github.com/google/desugar_jdk_libs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google/desugar_jdk_libs/commits)

---
updated-dependencies:
- dependency-name: com.android.tools:desugar_jdk_libs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-03 07:03:36 +01:00
dependabot[bot] 06c87bc7d4 Bump org.mockito:mockito-android from 5.6.0 to 5.7.0
Bumps [org.mockito:mockito-android](https://github.com/mockito/mockito) from 5.6.0 to 5.7.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.6.0...v5.7.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-03 07:03:12 +01:00
bneuburg df98fdd4de Fix idle announcement settings 2023-11-01 07:04:33 +01:00
Dennis Guse e9e9bb3874 Release: v4.9.4 2023-10-29 21:18:35 +01:00
Dennis Guse 1b39774e7a Merge branch 'weblate' 2023-10-29 21:08:54 +01:00
Dennis Guse 2c771ab75b Fix plurals. 2023-10-29 21:08:47 +01:00
ngocanhtve 6424b6ee41 Translated using Weblate (Vietnamese)
Currently translated at 7.3% (9 of 123 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/vi/
2023-10-29 20:01:56 +00:00
Stephan Paternotte 0ad94d562e Translated using Weblate (Dutch)
Currently translated at 100.0% (123 of 123 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-10-29 20:01:55 +00:00
ngocanhtve 2f7f466930 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (515 of 515 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/vi/
2023-10-29 20:01:44 +00:00
Milo Ivir 74a727426f Translated using Weblate (Croatian)
Currently translated at 100.0% (515 of 515 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/hr/
2023-10-29 20:01:43 +00:00
Dennis Guse cb48d7f706 Bugfix (Android14): for recording Location/GPS and Nearby Devices/Bluetooth are mandatory due to Android.
Fixes #1749.
2023-10-29 21:01:37 +01:00
Milo Ivir 6f364ab481 Translated using Weblate (Croatian)
Currently translated at 96.1% (495 of 515 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/hr/
2023-10-28 14:56:42 +02:00
Myoth c510bb66b2 Translated using Weblate (French)
Currently translated at 97.4% (502 of 515 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/fr/
2023-10-24 18:04:21 +02:00
Hosted Weblate d353a9985c Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/
2023-10-21 04:17:43 +00:00
Limfjorden 0beb673db5 Translated using Weblate (Danish)
Currently translated at 93.2% (480 of 515 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/da/
2023-10-21 04:17:41 +00:00
Fjuro e1ee69dc38 Translated using Weblate (Czech)
Currently translated at 100.0% (123 of 123 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2023-10-19 06:12:37 +02:00
Reza Almanda 28ccae6cf2 Translated using Weblate (Indonesian)
Currently translated at 58.6% (302 of 515 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/id/
2023-10-19 06:12:29 +02:00
Peter Storch 4bf89f380a add template parameter to report_issue_link 2023-10-17 21:36:37 +02:00
Dennis Guse f4f17440c9 Release: v4.9.3 2023-10-17 20:32:05 +02:00
Dennis Guse c46f8689f6 Merge remote-tracking branch 'weblate/main' 2023-10-17 20:31:08 +02:00
Dennis Guse 1eedd78466 Revert "Cleanup: use stream.toList()."
This reverts commit 8c8a7d9496.
2023-10-17 20:28:35 +02:00
plum7x 20efdd19a1 Translated using Weblate (Chinese (Traditional))
Currently translated at 99.2% (511 of 515 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/zh_Hant/
2023-10-15 08:46:50 +00:00
Fjuro 94b9eb675a Translated using Weblate (Czech)
Currently translated at 100.0% (122 of 122 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2023-10-15 08:46:50 +00:00
Stephan Paternotte f66326b816 Translated using Weblate (Dutch)
Currently translated at 100.0% (122 of 122 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-10-15 08:46:46 +00:00
Stephan Paternotte 2d97ee048f Translated using Weblate (Dutch)
Currently translated at 100.0% (515 of 515 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-10-15 08:46:45 +00:00
josé m eac5986c9a Translated using Weblate (Galician)
Currently translated at 100.0% (515 of 515 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-10-15 08:46:45 +00:00
Fjuro c47b39e288 Translated using Weblate (Czech)
Currently translated at 100.0% (515 of 515 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/cs/
2023-10-15 08:46:44 +00:00
Dennis Guse 8f9ba046ce Cleanup: setTextAppearance(context...) is deprecated. 2023-10-15 10:46:36 +02:00
Dennis Guse a4b2df949c Setting: use SwitchPreferenceCompat everywhere. 2023-10-14 23:05:43 +02:00
Dennis Guse a02e6fcd51 Cleanup: AggregatedStatisticsAdapter uses ViewBinding. 2023-10-14 10:50:40 +02:00
Dennis Guse be0a7e2fac Cleanup: interval statistics uses ViewBinding. 2023-10-14 10:50:40 +02:00
Dennis Guse 46c56b7de8 Cleanup: settings for layout uses ViewBinding. 2023-10-14 10:50:40 +02:00
Dennis Guse 5ba55324fa Cleanup: aggregated stats filter uses ViewBinding. 2023-10-14 10:50:40 +02:00
Dennis Guse bcb18ca46b Bugfix: import/export skip/overwrite buttons were not styled correctly.
Fixes #1716.
2023-10-11 07:33:38 +02:00
Dennis Guse 2657417887 UI: show back button, if there is a back operation. 2023-10-11 07:33:38 +02:00
dependabot[bot] 43b8b97aaf Bump androidx.mediarouter:mediarouter from 1.4.0 to 1.6.0
Bumps androidx.mediarouter:mediarouter from 1.4.0 to 1.6.0.

---
updated-dependencies:
- dependency-name: androidx.mediarouter:mediarouter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-10 23:31:03 +02:00
Dennis Guse 65b53396a6 Merge pull request #1717 from OpenTracksApp/type#1608
Introduced ActivityType is now non-localized (i.e., English) value
2023-10-10 20:10:16 +02:00
Dennis Guse 374656aa6b Release: v4.9.2 2023-10-10 20:08:19 +02:00
Åzze c623475c95 Translated using Weblate (Finnish)
Currently translated at 92.5% (474 of 512 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/fi/
2023-10-10 06:30:14 +00:00
Hosted Weblate 316e21a2c4 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/
2023-10-10 06:30:13 +00:00
mondstern 9dedfb38bc Translated using Weblate (Catalan)
Currently translated at 0.8% (1 of 120 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/ca/
2023-10-10 06:30:12 +00:00
plum7x eb7552acdb Translated using Weblate (Chinese (Traditional))
Currently translated at 99.2% (508 of 512 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/zh_Hant/
2023-10-10 06:30:12 +00:00
ovl-1 79729cd4a7 Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.2% (498 of 512 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nb_NO/
2023-10-10 06:30:11 +00:00
mondstern 12c2c7cae0 Translated using Weblate (Catalan)
Currently translated at 52.5% (269 of 512 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/ca/
2023-10-10 06:30:10 +00:00
Dennis Guse 504e27a9df Android12+: use user-defined DynamicColors. 2023-10-10 08:29:32 +02:00
Dennis Guse 5fbc079d96 Android12+: use user-defined DynamicColors. 2023-10-10 08:25:05 +02:00
Dennis Guse 54fb70053c Settings: use category for recording UI settings. 2023-10-10 08:25:05 +02:00
Dennis Guse ea7d754482 Bugfix: voice announcement setting for total distance was removed. 2023-10-10 08:25:05 +02:00
Dennis Guse 1647b821e6 Bump com.android.tools.build:gradle from 8.1.0-beta04 to 8.1.0-beta06 2023-10-10 08:25:05 +02:00
Dennis Guse 5ced5e2c0b Cleanup: remove unused method. 2023-10-10 07:37:05 +02:00
Dennis Guse 31ea1348de Predictive back: enable.
Part of #1708.
2023-10-10 07:37:05 +02:00
Dennis Guse 3995e2b609 Upgrade to Gradlew 8.4.0 2023-10-09 08:12:56 +02:00
dependabot[bot] eddf6ffc04 Bump org.mockito:mockito-android from 5.5.0 to 5.6.0
Bumps [org.mockito:mockito-android](https://github.com/mockito/mockito) from 5.5.0 to 5.6.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.5.0...v5.6.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 08:10:58 +02:00
Leon Marz 88b860af5a Marker List: Fix crashes in selection mode 2023-10-08 14:20:40 +02:00
Leon Marz 1708e09c5a Change missing line for afbe94195c 2023-10-08 14:20:40 +02:00
Dennis Guse 55495dae53 ActivityType non-localized: import and export for GPX, KML, and KMZ.
Fixes #1608.
2023-10-08 14:07:29 +02:00
Dennis Guse ea37e2852b Cleanup: TrackListAdapter cursor renamed. 2023-10-08 13:59:57 +02:00
Dennis Guse e69bf31976 ActivityType non-localized: store in database.
Includes migration of existing data from ActivityType localized or icon.

Part of #1608.
2023-10-08 13:48:08 +02:00
Dennis Guse 1f96283080 Cleanup: StatisticsRecordedFragment loaded ActivityType weird. 2023-10-08 13:48:07 +02:00
Dennis Guse 8c8a7d9496 Cleanup: use stream.toList(). 2023-10-08 13:48:07 +02:00
Dennis Guse 2e76458b62 Bugfix: TrackImporter needs to lookup activityTypeLocalized if no activityType is present.
Part of #1608.
2023-10-08 13:48:07 +02:00
Dennis Guse 1e9a0abb49 KMLTrackExporter: remove unused icon export.
Part of #1608.
2023-10-08 13:48:07 +02:00
Dennis Guse 07abf50fca Release: v4.9.1 2023-10-08 13:29:11 +02:00
Leon Marz afbe94195c TrackList: Fix crashes in selection mode
Fixes: #1711
2023-10-08 13:27:12 +02:00
dependabot[bot] 8ca208a631 Bump com.google.android.material:material from 1.9.0 to 1.10.0
Bumps [com.google.android.material:material](https://github.com/material-components/material-components-android) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/material-components/material-components-android/releases)
- [Commits](https://github.com/material-components/material-components-android/compare/1.9.0...1.10.0)

---
updated-dependencies:
- dependency-name: com.google.android.material:material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-05 22:54:49 +02:00
Dennis Guse 7b6120abf4 Cleanup: remove unused resources. 2023-10-03 17:42:58 +02:00
Dennis Guse 2c9726f643 Bugfix: preferred speed for nautical setting was not showing correct options. 2023-10-03 17:28:01 +02:00
ovl-1 b3d610b791 Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.1% (504 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nb_NO/
2023-09-30 14:02:52 +02:00
Stephan Paternotte 409ddfd31c Translated using Weblate (Dutch)
Currently translated at 100.0% (120 of 120 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-09-28 21:58:22 +02:00
josé m 2d47f1895b Translated using Weblate (Galician)
Currently translated at 100.0% (519 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-09-28 21:58:22 +02:00
Fjuro 1d89d68e59 Translated using Weblate (Czech)
Currently translated at 100.0% (519 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/cs/
2023-09-28 21:58:22 +02:00
ovl-1 3ebce4be7c Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.3% (500 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nb_NO/
2023-09-28 21:58:22 +02:00
gallegonovato a7954382fd Translated using Weblate (Spanish)
Currently translated at 100.0% (519 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/es/
2023-09-28 21:58:22 +02:00
josé m 1d036a096a Translated using Weblate (Galician)
Currently translated at 99.0% (514 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-09-28 21:58:22 +02:00
Stephan Paternotte d952593687 Translated using Weblate (Dutch)
Currently translated at 100.0% (519 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-09-28 21:58:22 +02:00
pixeebot[bot] 83445cfde0 Switch order of literals to prevent NullPointerException (#4)
Co-authored-by: pixeebot[bot] <23113631+pixeebot@users.noreply.github.com>
2023-09-28 21:58:22 +02:00
Dennis Guse aae1a4d65d Merge pull request #1710 from OpenTracksApp/cleanup
Cleanup: use record if possible
2023-09-28 21:58:17 +02:00
Dennis Guse cb3904ee0b Cleanup: SensorStatistics is a record. 2023-09-28 20:06:13 +02:00
Dennis Guse 684756c264 Cleanup: SelectionData is a record. 2023-09-28 20:00:47 +02:00
Dennis Guse bc857faa18 Cleanup: ChartPoint is a record. 2023-09-28 19:57:15 +02:00
Dennis Guse e9b02df631 Cleanup. 2023-09-28 19:39:43 +02:00
Dennis Guse 648ebadb36 Release: v4.9.0 2023-09-26 20:57:59 +02:00
Dennis Guse fda9ef9dd7 Bugfix: TrackList should only mark the currently recording track as recording. 2023-09-26 20:48:11 +02:00
Dennis Guse 2b08eb3287 Cleanup: removed unnecessary getter from data class RecordingStatus. 2023-09-26 08:13:32 +02:00
Leon Marz f4cec0a8b2 Fix broken TrackList UI tests 2023-09-26 07:16:34 +02:00
Dennis Guse b5e88b3e05 Merge pull request #1707 from OpenTracksApp/idleDetection#1187
Idle detection#1187
2023-09-25 18:00:43 +02:00
Dennis Guse 83da4f8f34 Idle: add voice announcement (user configurable).
Fixes of #1174
2023-09-25 17:59:17 +02:00
Dennis Guse 9a50d7bedf Idle: move idle into TrackStatistics. 2023-09-25 17:59:17 +02:00
Dennis Guse 348cb16256 ExportImportTest: extract test for checking recording. 2023-09-25 17:59:17 +02:00
Dennis Guse 7d739e3640 TrackStatisticsUpdater: remove check for max acceleration (was still used for max speed). 2023-09-25 17:59:17 +02:00
Dennis Guse 78d2a0722a Idle: TrackRecordingManager creates IDLE TrackPoints (configurable timeout).
Fixes of #1187.
2023-09-25 17:59:17 +02:00
Dennis Guse 00debe2eb5 Idle: TrackRecordingManager creates IDLE TrackPoints (import/export GPX/KML).
Fixes of #1187.
2023-09-25 17:59:17 +02:00
Dennis Guse 6be9d2477c Idle: TrackRecordingManager creates IDLE TrackPoints.
Fixes of #1187.
2023-09-25 17:59:17 +02:00
Dennis Guse 60fd1cd105 Merge pull request #1704 from OpenTracksApp/action-test
Re-enable Github Action executes tests.
2023-09-23 23:01:00 +02:00
Dennis Guse b360191055 Github action: test runner uses updated dependencies and only executes agains API34. 2023-09-23 23:00:34 +02:00
Dennis Guse 8a20edb83a Revert "Github Actions: disable test execution as results are flaky due to performance limitations."
This reverts commit 8f9cbcc077.
2023-09-23 23:00:34 +02:00
Dennis Guse 165dd401f4 Activity: added scooter (incl. icon).
Fixes #1695.
2023-09-23 21:52:07 +02:00
Dennis Guse 10e65035ee Cleanup: use List.of(). 2023-09-23 21:33:47 +02:00
Dennis Guse f797ce0872 Fix tests due to cf9b432224 2023-09-23 16:46:53 +02:00
Dennis Guse 4425fbae90 Revert "Bump androidx.mediarouter:mediarouter from 1.4.0 to 1.6.0"
This reverts commit f643d86772.
2023-09-23 15:57:03 +02:00
josé m f2c1d08f60 Translated using Weblate (Galician)
Currently translated at 13.4% (16 of 119 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/gl/
2023-09-21 07:32:04 +02:00
Maksym Movchan 481c77679b Translated using Weblate (Ukrainian)
Currently translated at 97.8% (503 of 514 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/uk/
2023-09-21 07:32:04 +02:00
Stephan Paternotte 1029460e64 Translated using Weblate (Dutch)
Currently translated at 100.0% (119 of 119 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-09-21 07:32:04 +02:00
Stephan Paternotte b250d95e41 Translated using Weblate (Dutch)
Currently translated at 100.0% (514 of 514 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-09-21 07:32:04 +02:00
josé m bd99daddd4 Translated using Weblate (Galician)
Currently translated at 100.0% (514 of 514 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-09-21 07:32:04 +02:00
Fjuro b3af0b3b5f Translated using Weblate (Czech)
Currently translated at 100.0% (514 of 514 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/cs/
2023-09-21 07:32:04 +02:00
josé m a151b78da7 Translated using Weblate (Galician)
Currently translated at 11.8% (14 of 118 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/gl/
2023-09-21 07:32:04 +02:00
Stephan Paternotte 3f760c28da Translated using Weblate (Dutch)
Currently translated at 100.0% (118 of 118 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-09-21 07:32:04 +02:00
Stephan Paternotte 50d20f297e Translated using Weblate (Dutch)
Currently translated at 100.0% (117 of 117 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-09-21 07:32:04 +02:00
dependabot[bot] f643d86772 Bump androidx.mediarouter:mediarouter from 1.4.0 to 1.6.0
Bumps androidx.mediarouter:mediarouter from 1.4.0 to 1.6.0.

---
updated-dependencies:
- dependency-name: androidx.mediarouter:mediarouter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-21 07:31:59 +02:00
Dennis Guse a6f5635cb8 Release: v4.8.4 2023-09-17 10:18:46 +02:00
Dennis Guse bebf89608c Bump com.android.tools.build:gradle from 8.2.0-beta01 to 8.2.0-beta04 2023-09-17 10:17:35 +02:00
Dennis Guse 0cf02082d3 Merge pull request #1687 from lmarz/track
TrackListActivity: Switch to RecyclerView

Fixes #1613
2023-09-14 22:06:00 +02:00
Leon Marz e18017d500 TrackListActivity: Switch to RecyclerView
Part of: #1613
2023-09-14 18:11:02 +02:00
Leon Marz 7776b51f05 TrackListActivity: Set launchMode to singleTop 2023-09-14 18:11:02 +02:00
Leon Marz 30c76de136 Add recycler view adapter for track list 2023-09-14 18:11:02 +02:00
Leon Marz 853469cb28 ContentProviderUtils.java: Add searchTracks method 2023-09-14 18:11:02 +02:00
quaelnix cf9b432224 Add max power stats 2023-09-13 18:38:32 +02:00
dependabot[bot] e130039118 Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-07 09:54:38 +02:00
Martin Herrman adb491ee81 Update README.md
Add SportsTracker to file format compatibility table
2023-09-05 22:57:52 +02:00
Dennis Guse 1b295e06da Release: v4.8.3 2023-08-31 22:07:48 +02:00
Dennis Guse 4ca6b230c3 Bugfix: prevent crash due to invalid UUID example (Android 14+ / API34+).
Fixes #1682.
2023-08-31 22:05:31 +02:00
Dennis Guse bb722de756 Upgrade to Gradlew 8.3.0 2023-08-28 20:31:14 +02:00
Dennis Guse 8eab847fae Merge pull request #1672 from lmarz/marker
MarkerListActivity: Switch to RecyclerView
2023-08-28 20:17:38 +02:00
Leon Marz c256cbe07d MarkerListActivity: Switch to RecyclerView
Part of: #1613
2023-08-28 10:02:00 +02:00
Leon Marz 5978886a18 Add recycler view adapter for marker list 2023-08-28 10:02:00 +02:00
Leon Marz 7afa4b86d4 ContentProviderUtils: Add searchMarkers method 2023-08-28 10:01:51 +02:00
Dennis Guse f59ae51c6f Release: v4.8.2 2023-08-27 09:01:20 +02:00
Max Ch 19a5d46e88 Translated using Weblate (Ukrainian)
Currently translated at 97.8% (502 of 513 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/uk/
2023-08-26 19:40:32 +02:00
josé m d2b64391d9 Translated using Weblate (Galician)
Currently translated at 10.3% (12 of 116 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/gl/
2023-08-26 19:40:32 +02:00
Stephan Paternotte fe920d5b5e Translated using Weblate (Dutch)
Currently translated at 100.0% (116 of 116 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-08-26 19:40:32 +02:00
Max Ch d1ba31ff3f Translated using Weblate (Ukrainian)
Currently translated at 93.1% (478 of 513 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/uk/
2023-08-26 19:40:32 +02:00
josé m e7a01b1cd1 Translated using Weblate (Galician)
Currently translated at 100.0% (513 of 513 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-08-26 19:40:32 +02:00
Stephan Paternotte 70b65d05c0 Translated using Weblate (Dutch)
Currently translated at 100.0% (115 of 115 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-08-26 19:40:32 +02:00
Max Ch c9ad1b45c6 Translated using Weblate (Ukrainian)
Currently translated at 89.4% (459 of 513 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/uk/
2023-08-26 19:40:32 +02:00
ovl-1 4657a9faa0 Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.2% (499 of 513 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nb_NO/
2023-08-26 19:40:32 +02:00
gallegonovato fba6cd7d4a Translated using Weblate (Spanish)
Currently translated at 100.0% (513 of 513 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/es/
2023-08-26 19:40:32 +02:00
Tea-NT 970239c614 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (513 of 513 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/zh_Hans/
2023-08-26 19:40:32 +02:00
Peter Storch f83c23e450 show postworkout error messages, #1669 2023-08-26 19:40:27 +02:00
Dennis Guse 326da494eb Java Record for Track.Id and TrackPoint.Id.
Part of #1526.
2023-08-25 23:52:10 +02:00
Dennis Guse fb85f2e976 Bump com.android.tools.build:gradle from 8.1.1 to 8.2.0-beta01 2023-08-25 23:52:10 +02:00
dependabot[bot] 60a34bfcbb Bump org.mockito:mockito-android from 5.4.0 to 5.5.0
Bumps [org.mockito:mockito-android](https://github.com/mockito/mockito) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.4.0...v5.5.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-25 23:31:17 +02:00
Dennis Guse 95816937bc Bugfix: request ACCESS_BACKGROUND_LOCATION fails; removing it for now.
Introduced in 3910837d1a

Part of #1653.
2023-08-22 22:06:56 +02:00
Dennis Guse 4f745a94bf Release: v4.8.1 2023-08-22 07:15:53 +02:00
Dennis Guse 9b6df4bf99 Bugfix: request ACCESS_BACKGROUND_LOCATION fails; removing it for now.
Introduced in 3910837d1a

Part of #1653.
2023-08-22 07:15:08 +02:00
dependabot[bot] 73f325e633 Bump com.android.tools.build:gradle from 8.1.0 to 8.1.1
Bumps com.android.tools.build:gradle from 8.1.0 to 8.1.1.

---
updated-dependencies:
- dependency-name: com.android.tools.build:gradle
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-22 06:44:06 +02:00
Dennis Guse 28981611f1 GPX export: skip gain/loss if not present.
Part of #1671.
2023-08-20 19:38:37 +02:00
Dennis Guse 7d8c4dcb29 Bugfix: re-introduced race condition fix for newGpsStatus.
Follow-up to e9f24f6bae

Fixes #1668.
2023-08-20 19:28:37 +02:00
Dennis Guse 5501b0bb74 Release: v4.8.0 2023-08-16 23:09:11 +02:00
Dennis Guse b65399e7c0 Simplify TestDataUtil.createTrackPoint() 2023-08-14 23:22:49 +02:00
Dennis Guse 3c5fb66af3 Merge branch 'weblate' 2023-08-13 21:34:19 +02:00
Dennis Guse 82704f5e2b Translations: removed voice announcements plurals (old format).
Follow-up to 62d9e81b23
2023-08-13 21:34:07 +02:00
Dennis Guse bf0aac7bc6 GPSManager: on stop() release reference to observer. 2023-08-13 21:11:24 +02:00
Dennis Guse d8e05da9d0 Tests: remove workaround for not stopping TrackRecordingService properly below API24. 2023-08-13 21:11:24 +02:00
Dennis Guse 205c5c7528 SensorManager and GPSManager: prefer to crash rather than hide usage errors. 2023-08-13 21:11:24 +02:00
Dennis Guse ce0365c2e9 TrackListActivity: simplify sensor start/stop. 2023-08-13 21:11:24 +02:00
Dennis Guse 313284cceb Bugfix: GpsStatusManager needs to stop the timer.
This may lead to crashes when track recording is finished.
2023-08-13 21:11:24 +02:00
Dennis Guse f6e8a44a8b GpsStatusManager should be running in on Thread alone. 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
ovl-1 45eebab4aa Translated using Weblate (Norwegian Bokmål)
Currently translated at 95.5% (499 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nb_NO/
2023-08-12 12:52:07 +02:00
Fjuro 93c09297d7 Translated using Weblate (Czech)
Currently translated at 3.5% (4 of 114 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2023-08-10 21:55:16 +02:00
gallegonovato bbc82a509d Translated using Weblate (Spanish)
Currently translated at 100.0% (522 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/es/
2023-08-10 21:55:16 +02:00
Stephan Paternotte 94a400ba00 Translated using Weblate (Dutch)
Currently translated at 100.0% (114 of 114 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-08-10 21:55:16 +02:00
Fjuro 0fe0a239cd Translated using Weblate (Czech)
Currently translated at 100.0% (522 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/cs/
2023-08-10 21:55:16 +02:00
Stephan Paternotte e79d558437 Translated using Weblate (Dutch)
Currently translated at 39.4% (45 of 114 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-08-10 21:55:16 +02:00
Stephan Paternotte 0e983bfc5a Translated using Weblate (Dutch)
Currently translated at 100.0% (522 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-08-10 21:55:16 +02:00
Max Xie 3a56c78b42 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.8% (521 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/zh_Hans/
2023-08-10 21:55:16 +02:00
Stephan Paternotte 7472703ef2 Translated using Weblate (Dutch)
Currently translated at 16.6% (19 of 114 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-08-10 21:55:16 +02:00
mm4c c1d79b9aea Translated using Weblate (Dutch)
Currently translated at 100.0% (522 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-08-10 21:55:16 +02:00
Stephan Paternotte 59823690b0 Translated using Weblate (Dutch)
Currently translated at 100.0% (522 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-08-10 21:55:16 +02:00
Dennis Guse 0a5b46655a Bugfix: database migration 36 did not update TrackPoint.type data (removal of SENSORPOINT).
Introduced in c0b5e71976

Fixes #1663.
2023-08-10 21:52:19 +02:00
Dennis Guse c263af7033 Bugfix: ACCESS_BACKGROUND_LOCATION is only available/required with Android 10+.
Introduced in 3910837d1a

Fixes #1662.
2023-08-10 18:02:54 +02:00
Dennis Guse 94191bbb46 Merge pull request #1661 from OpenTracksApp/idlePreparation#1187
Idle preparation#1187
2023-08-08 19:20:14 +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 c69f1e101c Idle: introduced TrackPoint for marking idle.
Part of #1187.
2023-08-08 18:52:11 +02:00
Dennis Guse 8bc781a11a Merge pull request #1660 from OpenTracksApp/cleanup
Cleanup
2023-08-08 18:51:44 +02:00
Dennis Guse 87bc7be530 Exporter: rather crash than hide lifecycle errors.
Part of #1187.
2023-08-08 18:28:19 +02:00
Dennis Guse f35eef4c57 TrackRecordingManager keeps reference to TrackPointCreator.
Part of #1187.
2023-08-08 18:28:19 +02:00
Dennis Guse 0fa0f4b5ec Move AltitudeCorrectionManager to TrackRecordingManager.
Part of #1187.
2023-08-08 18:28:19 +02:00
Dennis Guse e9f24f6bae TrackRecordingService: removed race conditions workarounds.
Part of #1187.
2023-08-08 18:28:19 +02:00
Dennis Guse 6f8438422a Tests require ACCESS_BACKGROUND_LOCATION as well.
Introduced in 3910837d1a
2023-08-08 18:28:01 +02:00
Dennis Guse 7530e1d120 AndroidStudio: code cleanup. 2023-08-08 17:57:36 +02:00
v_schaefer 3910837d1a Fix: GPS Access denied when phone in standby
Added ACCESS_BACKGROUND_LOCATION permission to access GPS while phone is in standby. This is necessary for situations where the PublicAPI is triggered to start a record from an external device like a smartwatch.
2023-08-08 12:51:11 +02:00
Dennis Guse c4235b1961 Release: v4.7.1 2023-08-06 18:26:58 +02:00
josé m 2b73139051 Translated using Weblate (Galician)
Currently translated at 8.8% (10 of 113 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/gl/
2023-08-06 12:44:33 +02:00
Skrripy 1a2d263945 Translated using Weblate (Ukrainian)
Currently translated at 83.5% (436 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/uk/
2023-08-06 12:44:33 +02:00
Leon Marz e69bea802f AggregatedStatisticsActivity: Convert ListView to RecyclerView
Part of: #1613
2023-08-06 12:44:29 +02:00
Dennis Guse 4baaff8374 TrackDeleteService can be a JobIntentService (rather than ForegroundService).
Android 14 requires ForegroundService to have a reason.

Fixes  #1657.
2023-08-06 11:41:40 +02:00
Dennis Guse 1ed0a11c2f Move ExportServiceResultReceiver.java into ExportService. 2023-08-06 11:15:48 +02:00
Dennis Guse 971b0196da Android14: crash due to missing announcement of ForegroundServiceType.
Fixes #1655.
2023-08-06 10:51:25 +02:00
Dennis Guse 45f41d6401 Bugfix: Android 14's AltitudeConverter throws exception if no geo coords are present. 2023-08-06 10:38:12 +02:00
Dennis Guse 42234515cb Android14: crash due to missing announcement of ForegroundServiceType.
Fixes #1655.
2023-08-06 09:49:17 +02:00
Skrripy 10e479ceb9 Translated using Weblate (Ukrainian)
Currently translated at 83.3% (435 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/uk/
2023-08-04 08:11:20 +02:00
Skrripy 88d8a808f3 Translated using Weblate (Ukrainian)
Currently translated at 82.7% (432 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/uk/
2023-08-04 08:11:20 +02:00
josé m f15ae48846 Translated using Weblate (Galician)
Currently translated at 100.0% (522 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-08-04 08:11:20 +02:00
Milo Ivir 5bf4cef57d Translated using Weblate (Croatian)
Currently translated at 57.2% (299 of 522 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/hr/
2023-08-04 08:11:20 +02:00
Dennis Guse 52226c8ef4 Release: v4.7.0 2023-08-04 08:11:00 +02:00
Dennis Guse c254a6ec75 Bug: GPXExporter - TrackPoint of type SEGMENT_START_AUTOMATIC might have no location.
Fixes #1647.
2023-08-03 19:31:10 +02:00
Dennis Guse 0ecf4863a7 Bug: CSVExporter format for distance used decimal grouping. 2023-08-03 18:29:33 +02:00
Dennis Guse 325196159d Add barometer test procedure. 2023-07-30 22:15:40 +02:00
Leon Marz 6adbf39e52 Fix alignment of Statistics 2023-07-29 20:17:52 +02:00
Leon Marz db1a37f015 Reimplement sensor statistics in UI
Closes: #1426
2023-07-29 19:17:23 +02:00
dependabot[bot] 7ca9423fbf Bump androidx.preference:preference from 1.2.0 to 1.2.1
Bumps androidx.preference:preference from 1.2.0 to 1.2.1.

---
updated-dependencies:
- dependency-name: androidx.preference:preference
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-27 07:11:15 +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
Dennis Guse 3f891f7fb4 Release: v4.6.2 2023-07-26 07:10:43 +02:00
Dennis Guse 49260a0517 Translations fr: removed restored voice announcement plurals. 2023-07-26 07:06:01 +02:00
Fjuro 1392c5d92a Translated using Weblate (Czech)
Currently translated at 98.2% (510 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/cs/
2023-07-25 23:39:26 +02:00
Fjuro c641b436ce Translated using Weblate (Czech)
Currently translated at 94.0% (488 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/cs/
2023-07-25 23:39:26 +02:00
Lorin-lab 6948c2db41 Translated using Weblate (French)
Currently translated at 100.0% (519 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/fr/
2023-07-25 23:39:26 +02:00
josé m fb904f4a0b Translated using Weblate (Galician)
Currently translated at 100.0% (519 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-07-25 23:39:26 +02:00
josé m 6c006cc9c7 Translated using Weblate (Galician)
Currently translated at 7.2% (8 of 111 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/gl/
2023-07-25 23:39:26 +02:00
ovl-1 7a73757ab1 Translated using Weblate (Norwegian Bokmål)
Currently translated at 95.7% (497 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nb_NO/
2023-07-25 23:39:26 +02:00
Dennis Guse 9725cca2bf Upgrade gradlew to 8.2.0 2023-07-25 23:39:16 +02:00
Dennis Guse 252f71e75f Bump com.android.tools.build:gradle from 8.1.0-rc01 to 8.1.0 2023-07-25 23:01:47 +02:00
Dennis Guse fc2341515c Bug: TrackStatistics cannot compute average moving speed (division by zero). 2023-07-23 12:00:09 +02:00
michel 77719f5bcd Bluetooth settings: handle missing permissions
fixes #1637
2023-07-15 14:15:19 +03:00
michel 565ef7f12b Fix aggregated stats don't show imperial units for avg pace
fixes #1634
2023-07-12 19:44:09 +03:00
michel f4208e2f6b Fix clipped x graph in ChartView
fixes #1627
2023-07-12 17:02:49 +03:00
blackberrypineapple 4b3ff45609 Bugfix: crash on GPS preferences if using imperial with meters
Fixes #1629
2023-07-05 14:27:14 +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 a4ec68def6 Release: v4.6.1 2023-06-30 21:59:28 +02:00
plum7x d80be8b2a9 Translated using Weblate (Chinese (Traditional))
Currently translated at 96.5% (501 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/zh_Hant/
2023-06-29 13:52:38 +02:00
Dennis Guse 7d7ab5778a Track list: re-added aggregated stats for selections.
Removed in 9f1ea4d745

Fixes #1623.
2023-06-29 07:17:15 +02:00
Dennis Guse 1749c776ab Release: v4.6.0 2023-06-28 08:09:39 +02:00
Dennis Guse 336b9eaa9f Bugfix: Android 13 couldn't open Gallery.
Fixes #1620.
2023-06-27 21:07:35 +02:00
Dennis Guse 0fc2209ceb Merge pull request #1618 from OpenTracksApp/exportType#1608
Refactor activity type / category / icon
2023-06-27 16:10:31 +02:00
Dennis Guse 477819d730 Cleanup: split ActivityType and ActivityIcon.
Part of #1608.
2023-06-27 16:06:25 +02:00
Dennis Guse 425ea0f216 Cleanup: use ActivityType instead of passing it's id around as String.
Part of #1608.
2023-06-27 15:53:54 +02:00
Dennis Guse 779681088c Refactor Track.icon is now Track.activityTypeId.
Part of #1608.
2023-06-27 15:53:54 +02:00
Dennis Guse f824b31891 Cleanup: inline TrackIconUtils methods.
Part of #1608.
2023-06-27 15:53:54 +02:00
Dennis Guse d316a63fca Cleanup: ActivityType lookup.
Part of #1608.
2023-06-27 15:53:54 +02:00
s-k-e-t-c-h 55cf60ef2f Translated using Weblate (German)
Currently translated at 99.6% (517 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/de/
2023-06-27 15:48:40 +02:00
DerDilla 01598d0a55 Translated using Weblate (German)
Currently translated at 98.0% (509 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/de/
2023-06-27 15:48:40 +02:00
s-k-e-t-c-h 4bcba07706 Translated using Weblate (German)
Currently translated at 98.0% (509 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/de/
2023-06-27 15:48:39 +02:00
josé m ed979bdc80 Translated using Weblate (Galician)
Currently translated at 5.5% (6 of 109 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/gl/
2023-06-27 15:48:39 +02:00
josé m 1d81070d9e Translated using Weblate (Galician)
Currently translated at 98.2% (510 of 519 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-06-27 15:48:39 +02:00
josé m 357a1de07d Translated using Weblate (Galician)
Currently translated at 100.0% (510 of 510 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-06-27 15:48:39 +02:00
josé m 84380d8373 Translated using Weblate (Galician)
Currently translated at 100.0% (509 of 509 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-06-27 15:48:39 +02:00
Dennis Guse 97c3e5a938 Commit .editorconfig for code style. 2023-06-27 15:48:25 +02:00
Dennis Guse 8fbcf5dcc0 Bump com.android.tools.build:gradle from 8.1.0-beta04 to 8.1.0-rc01 2023-06-26 23:57:47 +02:00
Dennis Guse 8c364ba7e2 Support altitude correction via Android's native AltitudeConverter (API34+).
Fixes #1492.
2023-06-22 22:50:34 +02:00
Dennis Guse 0c5c49cd92 CONTRIBUTING.md: add translations. 2023-06-22 07:35:32 +02:00
Dennis Guse 62d9e81b23 VoiceAnnouncement: migrated es, pt, zh, fr, de to ICU plural format.
Follow-up to #1584.
2023-06-22 07:25:52 +02:00
Dennis Guse 1a5acc8f2d Cleanup using AndroidStudio analyze. 2023-06-21 23:15:04 +02:00
Dennis Guse 7e9b99ae1c Merge pull request #1607 from OpenTracksApp/proofOfConcept#1584
Plural quantities via ICU.
2023-06-21 19:25:17 +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 7f6e3f7c69 Raise minSDK from 21 to 24.
Part of #1584
2023-06-21 19:18:55 +02:00
Dennis Guse e0b84df8f6 Release: v4.5.0 2023-06-20 07:32:15 +02:00
Dennis Guse a431850793 Material3: less customizing for night
mode.
2023-06-20 07:28:00 +02:00
Dennis Guse 5c17c8ffcf Material3: less customizing for day mode. 2023-06-20 07:28:00 +02:00
dependabot[bot] 0691524dfa Bump org.mockito:mockito-android from 5.3.1 to 5.4.0
Bumps [org.mockito:mockito-android](https://github.com/mockito/mockito) from 5.3.1 to 5.4.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.3.1...v5.4.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 08:32:17 +02:00
Dennis Guse 1c825b052e Bugfix: prevent crash if sensor that need computation disconnect (or connection timeout). 2023-06-16 22:48:49 +02:00
Dennis Guse eb8d28dfc1 Units: add imperial with meters.
Fixes of #1609.
2023-06-16 00:00:31 +02:00
Dennis Guse 9f1ea4d745 Migrate to Material3 design.
Fixes #1586.
2023-06-15 23:56:46 +02:00
Dennis Guse dbd64a8075 Cleanup: rename category to activityType. 2023-06-15 18:45:11 +02:00
Dennis Guse 75a88ca0e1 Bugfix: prevent crash if sensor that need computation disconnect (or connection timeout).
java.lang.Object.equals(java.lang.Object)' on a null object reference
	at de.dennisguse.opentracks.sensors.sensorData.SensorDataSet.set(SensorDataSet.java:171)
	at de.dennisguse.opentracks.sensors.sensorData.SensorDataSet.remove(SensorDataSet.java:93)
	at de.dennisguse.opentracks.sensors.SensorManager$1.onDisconnect(SensorManager.java:35)
	at de.dennisguse.opentracks.sensors.BluetoothRemoteSensorManager.onDisconnecting(BluetoothRemoteSensorManager.java:173)
2023-06-14 22:35:38 +02:00
Dennis Guse 2af19b00e5 Settings: make Bluetooth filter option readable.
Fixes #1602.
2023-06-14 22:21:02 +02:00
Dennis Guse 11db0d1a4f Rewrote GpsStatus check and added tests. 2023-06-11 21:27:50 +02:00
Dennis Guse 6a4adee2f2 Cleanup: GPS Status only reports current status. 2023-06-11 21:27:50 +02:00
Dennis Guse d04b420c56 Bugfix: GPS disabled warning was shown repeatedly.
Fixes #1429.
2023-06-11 21:27:50 +02:00
Dennis Guse 0122539d0f Bugfix: crash on starting a recording with at least one BLE sensor configured.
Introduced in f336a1da12
2023-06-11 15:21:22 +02:00
Dennis Guse 0b8c2a0ef6 Cleanup using AndroidStudio's analyze feature. 2023-06-08 21:28:35 +02:00
Dennis Guse cef363562c Merge pull request #1516 from OpenTracksApp/android14#1496
Target Android 14/API34
2023-06-08 07:19:52 +02:00
Dennis Guse e681531186 Merge remote-tracking branch 'weblate/main' 2023-06-08 07:19:07 +02:00
Dennis Guse 65c4b85bc4 EspressoTests: only grant POST_NOTIFICATION if running on Android 13. 2023-06-08 07:15:33 +02:00
Dennis Guse d7022a07a2 Cleanup: use Java17' Records.
Fixes #1526.
2023-06-08 07:06:22 +02:00
Dennis Guse 81b090893b Target Android 14/API34.
Fixes #1496.
2023-06-08 06:44:15 +02:00
Dennis Guse 3dca9304c4 Merge pull request #1568 from OpenTracksApp/pressure#1433
Preparing for use BLE Environmental Sensing sensor for elevation gain/loss
2023-06-08 06:38:49 +02:00
mm4c 7fc6492e13 Translated using Weblate (Dutch)
Currently translated at 100.0% (507 of 507 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-06-07 10:50:38 +02:00
Dennis Guse 80d968dd0f Cleanup. 2023-06-04 13:16:22 +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 1657bf5ec1 Cleanup: removed SensorDataSetChangeObserver interface.
Part of #1424.
2023-06-04 13:16:22 +02:00
Dennis Guse d046ca1cd8 SensorManager handles SensorDataSet.
Part of #1424.
2023-06-04 13:16:22 +02:00
Dennis Guse 6c852091ce AltitudeSumManager: extracted Barometer driver.
Part of #1424.
2023-06-04 13:16:22 +02:00
Dennis Guse 4906d3f942 Introduced AtmosphericPressure.
Part of #1424.
2023-06-04 13:16:22 +02:00
denta58 0395394e26 Bluetooth pressure data parse 2023-06-04 13:16:22 +02:00
Dennis Guse ebcc7dc46e Bump to gradle wrapper 8.1.1 2023-06-04 12:36:10 +02:00
Dennis Guse 1e4246e73a Bump com.android.tools.build:gradle from 8.1.0-beta03 to 8.1.0-beta04 2023-06-04 12:27:01 +02:00
Chris 3ca8381504 App shortcut for aggregated statistics.
Part of #1563.
2023-06-04 11:57:25 +02:00
ovl-1 b92457cb23 Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.8% (496 of 507 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nb_NO/
2023-06-02 17:51:32 +02:00
josé m 4baec1e672 Translated using Weblate (Galician)
Currently translated at 100.0% (507 of 507 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/gl/
2023-06-02 17:51:31 +02:00
Dennis Guse c702c5a4a0 Bugfix: translation for settings_recording_min_required_accuracy_summary needs to be inverted.
Fixes #1573.
2023-05-31 17:12:15 +02:00
Dennis Guse 24c2c5fc1b Release: v4.4.0 2023-05-29 19:48:47 +02:00
ovl-1 8797b033a3 Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.6% (493 of 505 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nb_NO/
2023-05-29 19:48:47 +02:00
Dennis Guse b2c4cdc4aa Merge pull request #1318 from OpenTracksApp/exportOne#448
Export all tracks into one file
2023-05-29 09:08:13 +02:00
Dennis Guse ae37ec9c33 Bugfix: set file suffix for "one file"-exports explicitly.
KML/KMZ was added by AndroidOS, but not GPX.

Part of #1318.
2023-05-28 21:30:09 +02:00
Dennis Guse ccc18739a4 Bugfix: KML exporter for multiple tracks created invalid XML.
Part of #1318.
2023-05-28 21:30:09 +02:00
Dennis Guse f48c4806b5 Simplify TrackExporter interface. 2023-05-28 21:30:09 +02:00
Dennis Guse 3aadf6d5d8 Cleanup: use an enum for export's conflict resolution. 2023-05-28 21:30:09 +02:00
Dennis Guse 2f2679c775 Export: implement export to one file.
Fixes #1318
2023-05-28 21:30:09 +02:00
Dennis Guse 442e23b106 Cleanup: EGM2008CorrectionManager returns Altitude. 2023-05-27 08:07:33 +02:00
Dennis Guse 65249f11b2 Move Help from Settings to TrackList (overflow menu).
Fixes #956.
2023-05-26 13:24:43 +02:00
Dennis Guse 34b5c2ab18 BLE: code for fetching and parsing battery level (not used).
Part of #24.
2023-05-25 22:09:27 +02:00
Dennis Guse 93919183be Cleanup: use ActivityUtils.vibrate(). 2023-05-24 20:18:35 +02:00
Dennis Guse 1915641d78 Fix tests for FileUtils.buildUniqueFileName(). 2023-05-23 23:28:25 +02:00
Dennis Guse c2c7cad3eb Warning: do not change MAIN/LAUNCHER activity name due to use by icon packs. 2023-05-23 21:22:08 +02:00
Dennis Guse e4957e45af Espresso UI tests: get required permissions for Android 13. 2023-05-20 15:59:44 +02:00
Dennis Guse 77bce9a5eb Bump com.android.tools.build:gradle from 8.1.0-beta02 to 8.1.0-beta03 2023-05-20 15:59:37 +02:00
Dennis Guse 6538f0d587 Release: v4.3.5 2023-05-15 17:37:40 +02:00
rjo12 5b0e7e5065 Bugfix: Off-by-one bug in subtracting UINT. Fixes #1557 2023-05-15 08:19:49 +02:00
Dennis Guse d6cf8ba90e Bump com.android.tools.build:gradle from 8.1.0-beta01 to 0.1.0-beta02 2023-05-13 13:43:33 +02:00
Dennis Guse 29568d0e3f Bugfix: prevent crash when creating a marker (no camera or gallery application present).
Fixes #1561.
2023-05-13 13:41:07 +02:00
Dennis Guse a571c4c93b Merge remote-tracking branch 'weblate/main' 2023-05-13 13:39:17 +02:00
mm4c 073fed6c84 Translated using Weblate (Dutch)
Currently translated at 9.5% (10 of 105 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-05-11 15:50:15 +02:00
mm4c 6847e1f899 Translated using Weblate (Dutch)
Currently translated at 99.4% (502 of 505 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-05-11 15:50:14 +02:00
Dennis Guse 427048ac11 Bugfix: crash when changing layout from one with 3 column layout to one with 2 columns.
Fixes #1554.
2023-05-08 23:34:43 +02:00
Shimon 240ea47c43 Translated using Weblate (Czech)
Currently translated at 99.8% (504 of 505 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/cs/
2023-05-06 15:48:40 +02:00
dependabot[bot] 068d56a850 Bump com.google.android.material:material from 1.8.0 to 1.9.0
Bumps [com.google.android.material:material](https://github.com/material-components/material-components-android) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/material-components/material-components-android/releases)
- [Commits](https://github.com/material-components/material-components-android/compare/1.8.0...1.9.0)

---
updated-dependencies:
- dependency-name: com.google.android.material:material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-05 07:59:57 +02:00
plum7x 76d02da973 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (505 of 505 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/zh_Hant/
2023-05-04 10:49:21 +02:00
dependabot[bot] 4664895ae3 Bump androidx.mediarouter:mediarouter from 1.3.1 to 1.4.0
Bumps androidx.mediarouter:mediarouter from 1.3.1 to 1.4.0.

---
updated-dependencies:
- dependency-name: androidx.mediarouter:mediarouter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-04 07:18:21 +02:00
Rens Hijdra 5235c8cf83 Translated using Weblate (Dutch)
Currently translated at 97.6% (493 of 505 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-05-02 16:01:51 +02:00
Dennis Guse 4f040ac79f Release: v4.3.4 2023-05-01 12:53:35 +02:00
Dennis Guse dcad42bf4d Build: remove resConfigs limiting included languages.
Fixes #1527.
2023-05-01 12:44:19 +02:00
mm4c 2eea93a4a3 Translated using Weblate (Dutch)
Currently translated at 9.5% (10 of 105 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2023-04-29 15:50:49 +02:00
mm4c 55e419475a Translated using Weblate (Dutch)
Currently translated at 96.6% (488 of 505 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/nl/
2023-04-29 15:50:48 +02:00
652 changed files with 13255 additions and 9918 deletions
+384
View File
@@ -0,0 +1,384 @@
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = false
max_line_length = 100
tab_width = 4
ij_continuation_indent_size = 8
ij_formatter_off_tag = @formatter:off
ij_formatter_on_tag = @formatter:on
ij_formatter_tags_enabled = false
ij_smart_tabs = false
ij_visual_guides = none
ij_wrap_on_typing = false
[*.java]
ij_java_align_consecutive_assignments = false
ij_java_align_consecutive_variable_declarations = false
ij_java_align_group_field_declarations = false
ij_java_align_multiline_annotation_parameters = false
ij_java_align_multiline_array_initializer_expression = false
ij_java_align_multiline_assignment = false
ij_java_align_multiline_binary_operation = false
ij_java_align_multiline_chained_methods = false
ij_java_align_multiline_deconstruction_list_components = true
ij_java_align_multiline_extends_list = false
ij_java_align_multiline_for = true
ij_java_align_multiline_method_parentheses = false
ij_java_align_multiline_parameters = true
ij_java_align_multiline_parameters_in_calls = false
ij_java_align_multiline_parenthesized_expression = false
ij_java_align_multiline_records = true
ij_java_align_multiline_resources = true
ij_java_align_multiline_ternary_operation = false
ij_java_align_multiline_text_blocks = false
ij_java_align_multiline_throws_list = false
ij_java_align_subsequent_simple_methods = false
ij_java_align_throws_keyword = false
ij_java_align_types_in_multi_catch = true
ij_java_annotation_parameter_wrap = off
ij_java_array_initializer_new_line_after_left_brace = false
ij_java_array_initializer_right_brace_on_new_line = false
ij_java_array_initializer_wrap = off
ij_java_assert_statement_colon_on_next_line = false
ij_java_assert_statement_wrap = off
ij_java_assignment_wrap = off
ij_java_binary_operation_sign_on_next_line = false
ij_java_binary_operation_wrap = off
ij_java_blank_lines_after_anonymous_class_header = 0
ij_java_blank_lines_after_class_header = 0
ij_java_blank_lines_after_imports = 1
ij_java_blank_lines_after_package = 1
ij_java_blank_lines_around_class = 1
ij_java_blank_lines_around_field = 0
ij_java_blank_lines_around_field_in_interface = 0
ij_java_blank_lines_around_initializer = 1
ij_java_blank_lines_around_method = 1
ij_java_blank_lines_around_method_in_interface = 1
ij_java_blank_lines_before_class_end = 0
ij_java_blank_lines_before_imports = 1
ij_java_blank_lines_before_method_body = 0
ij_java_blank_lines_before_package = 0
ij_java_block_brace_style = end_of_line
ij_java_block_comment_add_space = false
ij_java_block_comment_at_first_column = true
ij_java_builder_methods = none
ij_java_call_parameters_new_line_after_left_paren = false
ij_java_call_parameters_right_paren_on_new_line = false
ij_java_call_parameters_wrap = off
ij_java_case_statement_on_separate_line = true
ij_java_catch_on_new_line = false
ij_java_class_annotation_wrap = split_into_lines
ij_java_class_brace_style = end_of_line
ij_java_class_count_to_use_import_on_demand = 99
ij_java_class_names_in_javadoc = 1
ij_java_deconstruction_list_wrap = normal
ij_java_do_not_indent_top_level_class_members = false
ij_java_do_not_wrap_after_single_annotation = false
ij_java_do_not_wrap_after_single_annotation_in_parameter = false
ij_java_do_while_brace_force = never
ij_java_doc_add_blank_line_after_description = true
ij_java_doc_add_blank_line_after_param_comments = false
ij_java_doc_add_blank_line_after_return = false
ij_java_doc_add_p_tag_on_empty_lines = true
ij_java_doc_align_exception_comments = true
ij_java_doc_align_param_comments = true
ij_java_doc_do_not_wrap_if_one_line = false
ij_java_doc_enable_formatting = true
ij_java_doc_enable_leading_asterisks = true
ij_java_doc_indent_on_continuation = false
ij_java_doc_keep_empty_lines = true
ij_java_doc_keep_empty_parameter_tag = true
ij_java_doc_keep_empty_return_tag = true
ij_java_doc_keep_empty_throws_tag = true
ij_java_doc_keep_invalid_tags = true
ij_java_doc_param_description_on_new_line = false
ij_java_doc_preserve_line_breaks = false
ij_java_doc_use_throws_not_exception_tag = true
ij_java_else_on_new_line = false
ij_java_enum_constants_wrap = off
ij_java_extends_keyword_wrap = off
ij_java_extends_list_wrap = off
ij_java_field_annotation_wrap = split_into_lines
ij_java_finally_on_new_line = false
ij_java_for_brace_force = never
ij_java_for_statement_new_line_after_left_paren = false
ij_java_for_statement_right_paren_on_new_line = false
ij_java_for_statement_wrap = off
ij_java_generate_final_locals = false
ij_java_generate_final_parameters = false
ij_java_if_brace_force = never
ij_java_imports_layout = $android.**,$androidx.**,$com.**,$junit.**,$net.**,$org.**,$java.**,$javax.**,$*,|,android.**,|,androidx.**,|,com.**,|,junit.**,|,net.**,|,org.**,|,java.**,|,javax.**,|,*,|
ij_java_indent_case_from_switch = true
ij_java_insert_inner_class_imports = false
ij_java_insert_override_annotation = true
ij_java_keep_blank_lines_before_right_brace = 2
ij_java_keep_blank_lines_between_package_declaration_and_header = 2
ij_java_keep_blank_lines_in_code = 2
ij_java_keep_blank_lines_in_declarations = 2
ij_java_keep_builder_methods_indents = false
ij_java_keep_control_statement_in_one_line = true
ij_java_keep_first_column_comment = true
ij_java_keep_indents_on_empty_lines = false
ij_java_keep_line_breaks = true
ij_java_keep_multiple_expressions_in_one_line = false
ij_java_keep_simple_blocks_in_one_line = false
ij_java_keep_simple_classes_in_one_line = false
ij_java_keep_simple_lambdas_in_one_line = false
ij_java_keep_simple_methods_in_one_line = false
ij_java_label_indent_absolute = false
ij_java_label_indent_size = 0
ij_java_lambda_brace_style = end_of_line
ij_java_layout_static_imports_separately = true
ij_java_line_comment_add_space = false
ij_java_line_comment_add_space_on_reformat = false
ij_java_line_comment_at_first_column = true
ij_java_method_annotation_wrap = split_into_lines
ij_java_method_brace_style = end_of_line
ij_java_method_call_chain_wrap = off
ij_java_method_parameters_new_line_after_left_paren = false
ij_java_method_parameters_right_paren_on_new_line = false
ij_java_method_parameters_wrap = off
ij_java_modifier_list_wrap = false
ij_java_multi_catch_types_wrap = normal
ij_java_names_count_to_use_import_on_demand = 99
ij_java_new_line_after_lparen_in_annotation = false
ij_java_new_line_after_lparen_in_deconstruction_pattern = true
ij_java_new_line_after_lparen_in_record_header = false
ij_java_parameter_annotation_wrap = off
ij_java_parentheses_expression_new_line_after_left_paren = false
ij_java_parentheses_expression_right_paren_on_new_line = false
ij_java_place_assignment_sign_on_next_line = false
ij_java_prefer_longer_names = true
ij_java_prefer_parameters_wrap = false
ij_java_record_components_wrap = normal
ij_java_repeat_synchronized = true
ij_java_replace_instanceof_and_cast = false
ij_java_replace_null_check = true
ij_java_replace_sum_lambda_with_method_ref = true
ij_java_resource_list_new_line_after_left_paren = false
ij_java_resource_list_right_paren_on_new_line = false
ij_java_resource_list_wrap = off
ij_java_rparen_on_new_line_in_annotation = false
ij_java_rparen_on_new_line_in_deconstruction_pattern = true
ij_java_rparen_on_new_line_in_record_header = false
ij_java_space_after_closing_angle_bracket_in_type_argument = false
ij_java_space_after_colon = true
ij_java_space_after_comma = true
ij_java_space_after_comma_in_type_arguments = true
ij_java_space_after_for_semicolon = true
ij_java_space_after_quest = true
ij_java_space_after_type_cast = true
ij_java_space_before_annotation_array_initializer_left_brace = false
ij_java_space_before_annotation_parameter_list = false
ij_java_space_before_array_initializer_left_brace = false
ij_java_space_before_catch_keyword = true
ij_java_space_before_catch_left_brace = true
ij_java_space_before_catch_parentheses = true
ij_java_space_before_class_left_brace = true
ij_java_space_before_colon = true
ij_java_space_before_colon_in_foreach = true
ij_java_space_before_comma = false
ij_java_space_before_deconstruction_list = false
ij_java_space_before_do_left_brace = true
ij_java_space_before_else_keyword = true
ij_java_space_before_else_left_brace = true
ij_java_space_before_finally_keyword = true
ij_java_space_before_finally_left_brace = true
ij_java_space_before_for_left_brace = true
ij_java_space_before_for_parentheses = true
ij_java_space_before_for_semicolon = false
ij_java_space_before_if_left_brace = true
ij_java_space_before_if_parentheses = true
ij_java_space_before_method_call_parentheses = false
ij_java_space_before_method_left_brace = true
ij_java_space_before_method_parentheses = false
ij_java_space_before_opening_angle_bracket_in_type_parameter = false
ij_java_space_before_quest = true
ij_java_space_before_switch_left_brace = true
ij_java_space_before_switch_parentheses = true
ij_java_space_before_synchronized_left_brace = true
ij_java_space_before_synchronized_parentheses = true
ij_java_space_before_try_left_brace = true
ij_java_space_before_try_parentheses = true
ij_java_space_before_type_parameter_list = false
ij_java_space_before_while_keyword = true
ij_java_space_before_while_left_brace = true
ij_java_space_before_while_parentheses = true
ij_java_space_inside_one_line_enum_braces = false
ij_java_space_within_empty_array_initializer_braces = false
ij_java_space_within_empty_method_call_parentheses = false
ij_java_space_within_empty_method_parentheses = false
ij_java_spaces_around_additive_operators = true
ij_java_spaces_around_annotation_eq = true
ij_java_spaces_around_assignment_operators = true
ij_java_spaces_around_bitwise_operators = true
ij_java_spaces_around_equality_operators = true
ij_java_spaces_around_lambda_arrow = true
ij_java_spaces_around_logical_operators = true
ij_java_spaces_around_method_ref_dbl_colon = false
ij_java_spaces_around_multiplicative_operators = true
ij_java_spaces_around_relational_operators = true
ij_java_spaces_around_shift_operators = true
ij_java_spaces_around_type_bounds_in_type_parameters = true
ij_java_spaces_around_unary_operator = false
ij_java_spaces_within_angle_brackets = false
ij_java_spaces_within_annotation_parentheses = false
ij_java_spaces_within_array_initializer_braces = false
ij_java_spaces_within_braces = false
ij_java_spaces_within_brackets = false
ij_java_spaces_within_cast_parentheses = false
ij_java_spaces_within_catch_parentheses = false
ij_java_spaces_within_deconstruction_list = false
ij_java_spaces_within_for_parentheses = false
ij_java_spaces_within_if_parentheses = false
ij_java_spaces_within_method_call_parentheses = false
ij_java_spaces_within_method_parentheses = false
ij_java_spaces_within_parentheses = false
ij_java_spaces_within_record_header = false
ij_java_spaces_within_switch_parentheses = false
ij_java_spaces_within_synchronized_parentheses = false
ij_java_spaces_within_try_parentheses = false
ij_java_spaces_within_while_parentheses = false
ij_java_special_else_if_treatment = true
ij_java_subclass_name_suffix = Impl
ij_java_ternary_operation_signs_on_next_line = false
ij_java_ternary_operation_wrap = off
ij_java_test_name_suffix = Test
ij_java_throws_keyword_wrap = off
ij_java_throws_list_wrap = off
ij_java_use_external_annotations = false
ij_java_use_fq_class_names = false
ij_java_use_relative_indents = false
ij_java_use_single_class_imports = true
ij_java_variable_annotation_wrap = off
ij_java_visibility = public
ij_java_while_brace_force = never
ij_java_while_on_new_line = false
ij_java_wrap_comments = false
ij_java_wrap_first_method_in_call_chain = false
ij_java_wrap_long_lines = false
[*.properties]
ij_properties_align_group_field_declarations = false
ij_properties_keep_blank_lines = false
ij_properties_key_value_delimiter = equals
ij_properties_spaces_around_key_value_delimiter = false
[.editorconfig]
ij_editorconfig_align_group_field_declarations = false
ij_editorconfig_space_after_colon = false
ij_editorconfig_space_after_comma = true
ij_editorconfig_space_before_colon = false
ij_editorconfig_space_before_comma = false
ij_editorconfig_spaces_around_assignment_operators = true
[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.rng,*.tld,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul}]
ij_continuation_indent_size = 4
ij_xml_align_attributes = false
ij_xml_align_text = false
ij_xml_attribute_wrap = normal
ij_xml_block_comment_add_space = false
ij_xml_block_comment_at_first_column = true
ij_xml_keep_blank_lines = 2
ij_xml_keep_indents_on_empty_lines = false
ij_xml_keep_line_breaks = false
ij_xml_keep_line_breaks_in_text = true
ij_xml_keep_whitespaces = false
ij_xml_keep_whitespaces_around_cdata = preserve
ij_xml_keep_whitespaces_inside_cdata = false
ij_xml_line_comment_at_first_column = true
ij_xml_space_after_tag_name = false
ij_xml_space_around_equals_in_attribute = false
ij_xml_space_inside_empty_tag = true
ij_xml_text_wrap = normal
ij_xml_use_custom_settings = true
[{*.apinotes,*.yaml,*.yml}]
indent_size = 2
ij_yaml_align_values_properties = do_not_align
ij_yaml_autoinsert_sequence_marker = true
ij_yaml_block_mapping_on_new_line = false
ij_yaml_indent_sequence_value = true
ij_yaml_keep_indents_on_empty_lines = false
ij_yaml_keep_line_breaks = true
ij_yaml_sequence_on_new_line = false
ij_yaml_space_before_colon = false
ij_yaml_spaces_within_braces = true
ij_yaml_spaces_within_brackets = true
[{*.bash,*.sh,*.zsh}]
indent_size = 2
tab_width = 2
ij_shell_binary_ops_start_line = false
ij_shell_keep_column_alignment_padding = false
ij_shell_minify_program = false
ij_shell_redirect_followed_by_space = false
ij_shell_switch_cases_indented = false
ij_shell_use_unix_line_separator = true
[{*.har,*.json}]
indent_size = 2
ij_json_array_wrapping = split_into_lines
ij_json_keep_blank_lines_in_code = 0
ij_json_keep_indents_on_empty_lines = false
ij_json_keep_line_breaks = true
ij_json_keep_trailing_comma = false
ij_json_object_wrapping = split_into_lines
ij_json_property_alignment = do_not_align
ij_json_space_after_colon = true
ij_json_space_after_comma = true
ij_json_space_before_colon = false
ij_json_space_before_comma = false
ij_json_spaces_within_braces = false
ij_json_spaces_within_brackets = false
ij_json_wrap_long_lines = false
[{*.htm,*.html,*.sht,*.shtm,*.shtml}]
ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3
ij_html_align_attributes = true
ij_html_align_text = false
ij_html_attribute_wrap = normal
ij_html_block_comment_add_space = false
ij_html_block_comment_at_first_column = true
ij_html_do_not_align_children_of_min_lines = 0
ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p
ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot
ij_html_enforce_quotes = false
ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var
ij_html_keep_blank_lines = 2
ij_html_keep_indents_on_empty_lines = false
ij_html_keep_line_breaks = true
ij_html_keep_line_breaks_in_text = true
ij_html_keep_whitespaces = false
ij_html_keep_whitespaces_inside = span,pre,textarea
ij_html_line_comment_at_first_column = true
ij_html_new_line_after_last_attribute = never
ij_html_new_line_before_first_attribute = never
ij_html_quote_style = double
ij_html_remove_new_line_before_tags = br
ij_html_space_after_tag_name = false
ij_html_space_around_equality_in_attribute = false
ij_html_space_inside_empty_tag = false
ij_html_text_wrap = normal
[{*.markdown,*.md}]
ij_markdown_force_one_space_after_blockquote_symbol = true
ij_markdown_force_one_space_after_header_symbol = true
ij_markdown_force_one_space_after_list_bullet = true
ij_markdown_force_one_space_between_words = true
ij_markdown_format_tables = true
ij_markdown_insert_quote_arrows_on_wrap = true
ij_markdown_keep_indents_on_empty_lines = false
ij_markdown_keep_line_breaks_inside_text_blocks = true
ij_markdown_max_lines_around_block_elements = 1
ij_markdown_max_lines_around_header = 1
ij_markdown_max_lines_between_paragraphs = 1
ij_markdown_min_lines_around_block_elements = 1
ij_markdown_min_lines_around_header = 1
ij_markdown_min_lines_between_paragraphs = 1
ij_markdown_wrap_text_if_long = true
ij_markdown_wrap_text_inside_blockquotes = true
+3 -3
View File
@@ -8,9 +8,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: '17'
@@ -27,7 +27,7 @@ jobs:
- name: Archive
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: OpenTracks-APK.apk
path: ./build/outputs/apk/nightly/*.apk
+2 -2
View File
@@ -11,9 +11,9 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
+34
View File
@@ -0,0 +1,34 @@
#https://github.com/marketplace/actions/android-emulator-runner
name: Test
on:
push:
pull_request:
jobs:
test:
timeout-minutes: 45
runs-on: macos-latest
steps:
- name: checkout
uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: '17'
- name: run tests
uses: reactivecircus/android-emulator-runner@v2.29.0
with:
arch: x86_64
api-level: 34
script: ./gradlew connectedCheck
- name: Archive
if: always()
uses: actions/upload-artifact@v4
with:
name: code-coverage-report
path: build/reports/androidTests/
retention-days: 7
-44
View File
@@ -1,44 +0,0 @@
# We have flaky test results due to performance limitations in Github Actions.
# Happens too often nowadays; See https://github.com/OpenTracksApp/OpenTracks/issues/1409
#https://github.com/marketplace/actions/android-emulator-runner
name: Test
on:
push:
pull_request:
jobs:
test:
timeout-minutes: 45
runs-on: macos-latest
strategy:
matrix:
api-level: [ 24, 30 ]
target: [ default ]
fail-fast: false
steps:
- name: checkout
uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '11'
- name: run tests
uses: reactivecircus/android-emulator-runner@v2.26.0
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
arch: x86_64
profile: Nexus 6
script: ./gradlew connectedCheck
- name: Archive
if: always()
uses: actions/upload-artifact@v3
with:
name: code-coverage-report
path: build/reports/androidTests/
retention-days: 7
+1
View File
@@ -53,6 +53,7 @@ captures/
.idea/.name
.idea/caches/
.idea/compiler.xml
.idea/androidTestResultsUserPreferences.xml
.idea/copyright/profiles_settings.xml
.idea/dataSources.ids
.idea/datasources.xml
-9
View File
@@ -8,15 +8,6 @@
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="java" alias="false" withSubpackages="true" />
<package name="javax" alias="false" withSubpackages="true" />
<package name="kotlin" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
</JetCodeStyleSettings>
<MarkdownNavigatorCodeStyleSettings>
<option name="RIGHT_MARGIN" value="72" />
+5
View File
@@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
+10 -3
View File
@@ -1,18 +1,25 @@
# How to contribute?
## Testing
## Testing
Just use OpenTracks and tell us what can be improved by opening an issue [here](https://github.com/OpenTracksApp/OpenTracks/issues/new/choose)
Just use OpenTracks and tell us what can be improved by opening an
issue [here](https://github.com/OpenTracksApp/OpenTracks/issues/new/choose)
If we broke things (happens now and then), please tell us also.
## Translations
Translations are hosted on [hosted.weblate.org](https://hosted.weblate.org/engage/opentracks/).
## Coding new features
You have a cool idea for a feature that is missing in OpenTracks?
And you would like to help by implementing it?
If not, you can just take a look at the [issue tracker](https://github.com/OpenTracksApp/OpenTracks/issues).
If not, you can just take a look at
the [issue tracker](https://github.com/OpenTracksApp/OpenTracks/issues).
Advices:
* creating an issue beforehand might be a good idea
Sometimes it is helpful to discuss your idea and also your implementation approach first.
We may be able to give you some hints on how to tackle the problem.
+10 -9
View File
@@ -94,8 +94,9 @@ OpenTracks can be used with [Gadgetbridge](https://www.gadgetbridge.org/):
* __No in-app analytics__
* __No use of Google Play Services__
__Only required permission:__
__Only required permissions:__
* _ACCESS_FINE_LOCATION_: required to use the GPS.
* _ACCESS_BACKGROUND_LOCATION_: required to start recording with GPS while phone is in standby. (e.g. when triggered by Public API from an external device)
### Public API
@@ -124,14 +125,14 @@ For testing via adb: `adb shell am start -e someParameter someValue -n "package/
The Public API is disabled by default to protect the user's privacy, but it can easily be enabled in the settings.
## File formats compatibility with open-source software
| | [GPX 1.1](https://www.topografix.com/GPX/1/1/) | [KML 2.3](https://docs.opengeospatial.org/is/12-007r2/12-007r2.html) | [KMZ 2.3](https://docs.opengeospatial.org/is/12-007r2/12-007r2.html) |
|------------------------------------------------------|------------------------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------|
| [OpenLayers 7.1.0](https://openlayers.org/) | ? | [no](https://github.com/openlayers/openlayers/issues/14104) | [no](https://github.com/openlayers/openlayers/issues/14104) |
| [Golden Cheetah 3.5](https://www.goldencheetah.org/) | ? | [no](https://github.com/GoldenCheetah/GoldenCheetah/issues/4271) | [no](https://github.com/GoldenCheetah/GoldenCheetah/issues/4271) |
| [GpxPod](https://apps.nextcloud.com/apps/gpxpod) | ? | ? | ? |
| [OsmAnd](https://github.com/osmandapp/OsmAnd) | ? | [no](https://github.com/osmandapp/OsmAnd/issues/15271) | [no](https://github.com/osmandapp/OsmAnd/issues/15271) |
| [FitTrackee](https://github.com/SamR1/FitTrackee) | yes | n/a | n/a |
| | [GPX 1.1](https://www.topografix.com/GPX/1/1/) | [KML 2.3](https://docs.opengeospatial.org/is/12-007r2/12-007r2.html) | [KMZ 2.3](https://docs.opengeospatial.org/is/12-007r2/12-007r2.html) |
|-----------------------------------------------------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------|
| [OpenLayers 7.1.0](https://openlayers.org/) | ? | [no](https://github.com/openlayers/openlayers/issues/14104) | [no](https://github.com/openlayers/openlayers/issues/14104) |
| [Golden Cheetah 3.5](https://www.goldencheetah.org/) | ? | [no](https://github.com/GoldenCheetah/GoldenCheetah/issues/4271) | [no](https://github.com/GoldenCheetah/GoldenCheetah/issues/4271) |
| [GpxPod](https://apps.nextcloud.com/apps/gpxpod) | ? | ? | ? |
| [OsmAnd](https://github.com/osmandapp/OsmAnd) | ? | [no](https://github.com/osmandapp/OsmAnd/issues/15271) | [no](https://github.com/osmandapp/OsmAnd/issues/15271) |
| [FitTrackee](https://github.com/SamR1/FitTrackee) | yes | n/a | n/a |
| [SportsTracker](https://github.com/ssaring/sportstracker) | yes, [single tracks only](https://github.com/ssaring/sportstracker/issues/260) | no | no |
## Dashboard API (incl. map)
+33 -11
View File
@@ -59,16 +59,38 @@ We do not support type of movement (i.e., walking vs running).
## Tested Barometric Sensor Smartphones
There are smartphones that have a barometric sensor that OpenTracks uses to compute altitude gain and loss.
OpenTracks derives the altitude gain and altitude loss using the internal barometric sensor of a device (if present).
However, barometric sensor seem to be prone to a lot of noise.
This may either be a malfunctioning sensor, a case that prevents the device from measuring, or something else.
In our tests there are smartphones whose barometric sensor works well and others don't. Here is a list of the smartphones tested:
To check if the barometric sensor of a device is working with OpenTracks:
1. Record a track (ca. 1min) with the device stationary.
Expectation: 0m gain and 0m loss should.
2. Record a track (ca. 1min) while shaking the device.
Expectation: 0m gain and 0m loss should.
3. Record a track (ca. 1min) while moving the device up (less than 3m difference between highest and lowest point).
Expectation: 0m gain and 0m loss should.
4. Record a track walking up some stairs or taking an elevator.
Expectation: some gain and some loss is recorded that seems realistic.
| Brand | Model | Android Version | Tests |
|--------|--------------------|-----------------|--------------------------------------------------------------------------------|
| Google | Pixel | LineageOS 17.1 | Ok |
| Google | Pixel 2 XL | LineageOS 17.1 | Ok on the bike handlebars but it fails when I carry it in a pocket or backpack |
| Google | Pixel 3 | Android 11 | Failure |
| Google | Pixel 3a | Android 11 | Ok |
| Google | Pixel 3a | Lineage 18.1 | Ok |
| Google | Pixel 4a | Android 11 | Ok |
| Sony | Xperia XZ1 Compact | LineageOS 16.1 | Failure |
If any of these tests do **not** show expected values for gain/loss, OpenTracks will not show useful values.
Please note that OpenTracks:
* only records gain/loss if +/- 3m to the initial/previous of are measured to the previous
* solely uses the barometric sensor for gain/loss; GPS is not used for this.
In our tests there are smartphones whose barometric sensor works well and others don't.
Here is a list of the smartphones tested:
| Brand | Model | Android Version | Tests |
|---------|--------------------|-----------------|--------------------------------------------------------------------------------|
| Google | Pixel | LineageOS 17.1 | Ok |
| Google | Pixel 2 XL | LineageOS 17.1 | Ok on the bike handlebars but it fails when I carry it in a pocket or backpack |
| Google | Pixel 3 | Android 11 | Failure |
| Google | Pixel 3a | Android 11 | Ok |
| Google | Pixel 3a | Lineage 18.1 | Ok |
| Google | Pixel 4a | Android 11 | Ok |
| Google | Nexus 4 | LineageOS 18.1 | Ok |
| Samsung | S4 | Android 11 | Ok |
| Sony | Xperia XZ1 Compact | LineageOS 16.1 | Failure |
+12 -13
View File
@@ -6,7 +6,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.0-beta01'
classpath 'com.android.tools.build:gradle:8.2.0'
}
}
@@ -51,7 +51,7 @@ android {
targetCompatibility JavaVersion.VERSION_17
}
compileSdk 33
compileSdk 34
buildFeatures {
viewBinding true
@@ -64,18 +64,16 @@ android {
defaultConfig {
applicationId "de.dennisguse.opentracks"
versionCode 5194
versionName "v4.3.3"
versionCode 5602
versionName "v4.10.0"
buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\""
minSdk 21
targetSdk 33
minSdk 26
targetSdk 34
testInstrumentationRunner "de.dennisguse.opentracks.TestRunner"
testInstrumentationRunnerArguments clearPackageData: 'true'
resConfigs "ar", "bg", "ca", "cs", "da", "de", "el", "en", "es", "et", "eu", "fa", "fi", "fr", "ga", "gl", "hi", "hr", "hu", "in", "it", "iw", "ja", "ko", "lt", "lv", "mo", "ms", "nb", "nl", "pl", "pt", "ro", "ru", "sk", "sl", "sr", "sv", "th", "tl", "tr", "uk", "vi", "zh"
}
signingConfigs {
nightly {
@@ -127,23 +125,24 @@ android {
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.preference:preference:1.2.0'
implementation 'androidx.preference:preference:1.2.1'
implementation 'androidx.documentfile:documentfile:1.0.1'
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'com.google.android.material:material:1.8.0'
implementation 'com.google.android.material:material:1.11.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.core:core:1.12.0'
implementation 'androidx.core:core-splashscreen:1.0.1'
implementation 'androidx.mediarouter:mediarouter:1.3.1'
implementation 'androidx.mediarouter:mediarouter:1.6.0'
androidTestImplementation 'androidx.test:core:1.5.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test:rules:1.5.0'
androidTestImplementation 'androidx.test:runner:1.5.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
androidTestImplementation 'org.mockito:mockito-android:5.3.1'
androidTestImplementation 'org.mockito:mockito-android:5.8.0'
androidTestUtil 'androidx.test:orchestrator:1.4.2'
}
+9
View File
@@ -51,4 +51,13 @@
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="typeTranslated"
type="xsd:string">
<xsd:annotation>
<xsd:documentation xml:lang="en">
User-defined translation of GPX's <![CDATA[<type>]]>.
Only used in GPX.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:schema>
+483
View File
@@ -0,0 +1,483 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="22"
height="22"
viewBox="0 0 5.8208333 5.8208333"
version="1.1"
id="svg8"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="ic_activity.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs2">
<inkscape:path-effect
effect="spiro"
id="path-effect3162"
is_visible="true"
lpeversion="1" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect3149"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,1.9999999,0,1 @ F,0,0,1,0,2.0000001,0,1"
unit="px"
method="auto"
mode="F"
radius="0"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,1.9999999,0,1 @ F,0,0,1,0,2.0000001,0,1" />
<inkscape:path-effect
hide_knots="false"
only_selected="false"
apply_with_radius="true"
apply_no_radius="true"
use_knot_distance="true"
flexible="false"
chamfer_steps="1"
radius="0"
mode="F"
method="auto"
unit="px"
satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,4,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.97014234,0,1 @ F,0,0,1,0,0,0,1"
lpeversion="1"
is_visible="true"
id="path-effect2514"
effect="fillet_chamfer"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,4,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.97014234,0,1 @ F,0,0,1,0,0,0,1" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect950"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,0.51887107,0,1 @ F,0,0,1,0,0.22687835,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.51887107,0,1 @ F,0,0,1,0,0.22687835,0,1 @ F,0,0,1,0,0,0,1"
unit="px"
method="auto"
mode="F"
radius="0"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false"
nodesatellites_param="F,0,0,1,0,0.51887107,0,1 @ F,0,0,1,0,0.22687835,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.51887107,0,1 @ F,0,0,1,0,0.22687835,0,1 @ F,0,0,1,0,0,0,1" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect946"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,0.34892149,0,1 @ F,0,0,1,0,0.18398697,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.34892149,0,1 @ F,0,0,1,0,0.18398697,0,1 @ F,0,1,1,0,0,0,1"
unit="px"
method="auto"
mode="F"
radius="0"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false"
nodesatellites_param="F,0,0,1,0,0.34892149,0,1 @ F,0,0,1,0,0.18398697,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.34892149,0,1 @ F,0,0,1,0,0.18398697,0,1 @ F,0,1,1,0,0,0,1" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect918"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,2.00309,0,1 @ F,0,0,1,0,2.00309,0,1"
unit="px"
method="auto"
mode="F"
radius="0"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,2.00309,0,1 @ F,0,0,1,0,2.00309,0,1" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect912"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,7.0000002,0,1 @ F,0,0,1,0,0,0,1"
unit="px"
method="auto"
mode="F"
radius="0"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false"
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,7.0000002,0,1 @ F,0,0,1,0,0,0,1" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect894"
is_visible="true"
lpeversion="1"
satellites_param="F,0,0,1,0,0.49832891,0,1 @ F,0,0,1,0,0.49832891,0,1 @ F,0,1,1,0,0.5316463,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.49999976,0,1 @ F,0,0,1,0,0.50000024,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,1.0000001,0,1 @ F,0,0,1,0,0.99999982,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,1.0295214,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.5316463,0,1"
unit="px"
method="auto"
mode="F"
radius="0"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false"
nodesatellites_param="F,0,0,1,0,0.49832891,0,1 @ F,0,0,1,0,0.49832891,0,1 @ F,0,1,1,0,0.5316463,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.49999976,0,1 @ F,0,0,1,0,0.50000024,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,1.0000001,0,1 @ F,0,0,1,0,0.99999982,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,1.0295214,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.5316463,0,1" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#232629"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="22.390336"
inkscape:cx="13.4433"
inkscape:cy="12.572388"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:snap-intersection-paths="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-text-baseline="true"
showguides="false"
inkscape:guide-bbox="true"
inkscape:window-width="956"
inkscape:window-height="1036"
inkscape:window-x="960"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#232629">
<inkscape:grid
type="xygrid"
id="grid833"
empspacing="22"
dotted="true" />
<inkscape:grid
type="xygrid"
id="grid835"
empspacing="1"
spacingy="1.0583333"
spacingx="1.0583333"
originx="0.26458333"
originy="0.26458333" />
<sodipodi:guide
position="4.195,4.2333333"
orientation="0.96592583,0.25881905"
id="guide887"
inkscape:label=""
inkscape:locked="false"
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="0.26458333,1.9843751"
orientation="0,-1"
id="guide900"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="path924"
style="opacity:1;fill:#fdbc4b;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:531.552;stroke-opacity:1;paint-order:markers fill stroke"
d="m -1.3252903,1.5032615 -0.4100651,0.6834418 a 0.12845631,0.12845631 60.481872 0 0 0.1101504,0.1945466 l 0.2495783,-10e-8 -0.1100188,0.5495576 a 0.08982544,0.08982544 21.142221 0 0 0.1651025,0.063848 L -0.91047797,2.3112131 A 0.12845634,0.12845634 60.481877 0 0 -1.0206284,2.1166665 H -1.2702067 L -1.1601879,1.567109 a 0.08982541,0.08982541 21.142225 0 0 -0.1651024,-0.063848 z"
sodipodi:nodetypes="ccccccc"
inkscape:original-d="m -1.0583333,1.0583332 -0.79375,1.3229167 0.4764566,-10e-8 L -1.5875,3.4395832 -0.79375003,2.1166665 H -1.2702067 Z"
inkscape:path-effect="#path-effect950" />
<g
id="g954"
transform="matrix(0.38576851,0,0,0.38576851,152.56385,-12.494408)">
<rect
y="-7.9375"
x="-357.1875"
height="79.375"
width="68.791664"
id="rect919"
style="fill:#cacaca;fill-opacity:1;stroke-width:14.6855;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
y="-5.2916665"
x="-354.54169"
height="10.583333"
width="10.583333"
id="rect851"
style="fill:#e74c3c;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#ed1515;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect853"
width="10.583333"
height="10.583333"
x="-343.95834"
y="-5.2916665" />
<rect
y="-5.2916665"
x="-333.375"
height="10.583333"
width="10.583333"
id="rect855"
style="fill:#f47750;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#fdbc4b;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect857"
width="10.583333"
height="10.583333"
x="-322.79169"
y="-5.2916665" />
<rect
y="-5.2916665"
x="-312.20834"
height="10.583333"
width="10.583333"
id="rect859"
style="fill:#c9ce3b;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#da4453;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect861"
width="10.583333"
height="10.583333"
x="-354.54169"
y="5.291667" />
<rect
y="5.291667"
x="-343.95834"
height="10.583333"
width="10.583333"
id="rect863"
style="fill:#c0392b;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#d35400;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect865"
width="10.583333"
height="10.583333"
x="-333.375"
y="5.291667" />
<rect
y="5.291667"
x="-322.79169"
height="10.583333"
width="10.583333"
id="rect867"
style="fill:#f67400;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#f39c1f;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect869"
width="10.583333"
height="10.583333"
x="-312.20834"
y="5.291667" />
<rect
style="fill:#1cdc9a;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect871"
width="10.583333"
height="10.583333"
x="-354.54169"
y="21.166666" />
<rect
y="21.166666"
x="-343.95834"
height="10.583333"
width="10.583333"
id="rect873"
style="fill:#2ecc71;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#1abc9c;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect875"
width="10.583333"
height="10.583333"
x="-333.375"
y="21.166666" />
<rect
y="21.166666"
x="-322.79169"
height="10.583333"
width="10.583333"
id="rect877"
style="fill:#3498db;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#3daee9;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect879"
width="10.583333"
height="10.583333"
x="-312.20834"
y="21.166666" />
<rect
y="31.75"
x="-354.54169"
height="10.583333"
width="10.583333"
id="rect881"
style="fill:#10d116;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#27ae60;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect883"
width="10.583333"
height="10.583333"
x="-343.95834"
y="31.75" />
<rect
y="31.75"
x="-333.375"
height="10.583333"
width="10.583333"
id="rect885"
style="fill:#16a085;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#2980b9;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect887"
width="10.583333"
height="10.583333"
x="-322.79169"
y="31.75" />
<rect
y="31.75"
x="-312.20834"
height="10.583333"
width="10.583333"
id="rect889"
style="fill:#1d99f3;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
y="21.166666"
x="-301.625"
height="10.583333"
width="10.583333"
id="rect891"
style="fill:#9b59b6;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#8e44ad;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect893"
width="10.583333"
height="10.583333"
x="-301.625"
y="31.75" />
<rect
y="47.625"
x="-354.54166"
height="10.583333"
width="10.583333"
id="rect895"
style="fill:#34495e;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#31363b;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect897"
width="10.583333"
height="10.583333"
x="-343.95831"
y="47.625" />
<rect
y="47.625"
x="-333.37497"
height="10.583333"
width="10.583333"
id="rect899"
style="fill:#7f8c8d;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#bdc3c7;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect901"
width="10.583333"
height="10.583333"
x="-322.79166"
y="47.625" />
<rect
y="47.625"
x="-312.20831"
height="10.583333"
width="10.583333"
id="rect903"
style="fill:#fcfcfc;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#2c3e50;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect905"
width="10.583333"
height="10.583333"
x="-354.54166"
y="58.208336" />
<rect
y="58.208336"
x="-343.95831"
height="10.583333"
width="10.583333"
id="rect907"
style="fill:#232629;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#4d4d4d;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect909"
width="10.583333"
height="10.583333"
x="-333.37497"
y="58.208336" />
<rect
y="58.208336"
x="-322.79166"
height="10.583333"
width="10.583333"
id="rect911"
style="fill:#95a5a6;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552" />
<rect
style="fill:#eff0f1;fill-opacity:1;stroke-width:14.955;stroke-linecap:square;stroke-linejoin:round;stroke-dashoffset:531.552"
id="rect913"
width="10.583333"
height="10.583333"
x="-312.20831"
y="58.208336" />
</g>
<path
transform="scale(0.26458333)"
id="path887"
d="M 13.994141 4.5 A 0.49999949 0.49999949 0 0 0 13.552734 4.7773438 A 0.49999949 0.49999949 0 0 0 13.777344 5.4472656 L 14.908203 6.0136719 C 15.328243 6.2241517 15.636226 6.6066586 15.75 7.0625 L 17.390625 13.623047 C 15.381402 13.909129 13.837817 15.475476 13.601562 17.5 L 8.3984375 17.5 C 8.1378934 15.267332 6.3043435 13.50201 4.0039062 13.5 C 3.982495 13.499838 3.9608645 13.499856 3.9394531 13.5 L 2 13.5 A 0.49999949 0.49999949 0 0 0 1.5 14 A 0.49999949 0.49999949 0 0 0 2 14.5 L 3.9394531 14.5 A 0.50004949 0.50004949 0 0 0 3.9433594 14.5 C 3.9610145 14.499866 3.9784387 14.499866 3.9960938 14.5 A 0.50004949 0.50004949 0 0 0 4 14.5 C 5.9389193 14.5 7.5000003 16.061081 7.5 18 A 0.50004949 0.50004949 0 0 0 8 18.5 L 14 18.5 A 0.50004949 0.50004949 0 0 0 14.5 18 C 14.5 16.061081 16.061081 14.5 18 14.5 A 0.50004949 0.50004949 0 0 0 18.484375 13.878906 L 16.71875 6.8203125 C 16.534472 6.0819921 16.037756 5.460052 15.357422 5.1191406 A 0.50004949 0.50004949 0 0 0 15.355469 5.1191406 L 14.222656 4.5527344 A 0.49999949 0.49999949 0 0 0 13.994141 4.5 z "
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00157481;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:531.552;stroke-opacity:1;paint-order:markers fill stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1;opacity:1" />
<path
id="path970"
d="M 4.7617188 4.1367188 C 4.4265639 4.1367188 4.1523438 4.4109389 4.1523438 4.7460938 C 4.1523438 5.0812486 4.4265639 5.3554687 4.7617188 5.3554688 C 5.0968736 5.3554687 5.3710937 5.0812486 5.3710938 4.7460938 C 5.3710937 4.4109389 5.0968736 4.1367188 4.7617188 4.1367188 z M 4.7617188 4.3378906 C 4.9879388 4.3378906 5.1679687 4.5198737 5.1679688 4.7460938 C 5.1679687 4.9723138 4.9879388 5.1542969 4.7617188 5.1542969 C 4.5354987 5.1542969 4.3535156 4.9723138 4.3535156 4.7460938 C 4.3535156 4.5198737 4.5354987 4.3378906 4.7617188 4.3378906 z "
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.201567;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1;opacity:0.997" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.997;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.201567;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="m 1.0221536,4.1367188 c -0.33515491,0 -0.60937501,0.2742201 -0.60937501,0.609375 0,0.3351548 0.2742201,0.6093749 0.60937501,0.609375 0.3351548,-10e-8 0.6093749,-0.2742202 0.609375,-0.609375 -1e-7,-0.3351549 -0.2742202,-0.609375 -0.609375,-0.609375 z m 0,0.2011718 c 0.22622,0 0.4062499,0.1819831 0.40625,0.4082032 -1e-7,0.2262201 -0.18003,0.4082031 -0.40625,0.4082031 -0.22622011,0 -0.40820321,-0.181983 -0.40820321,-0.4082031 0,-0.2262201 0.1819831,-0.4082032 0.40820321,-0.4082032 z"
id="path970-7" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

@@ -0,0 +1 @@
Un amic rastrejador esportiu que respecta la vostra privadesa.
@@ -0,0 +1,15 @@
v3.0.0: OpenTracks
First release of OpenTracks (i.e., hard fork from MyTracks)
Changes:
- Rebranded from MyTracks to OpenTracks
- Added Bluetooth LE heart rate sensor
- Removed all features requiring Internet access
- Removed Google Maps integration
- Removed use of Google Play services
- Removed ANT+ sensors
- Removed Bluetooth classic sensors
- Removed Protobuf
- Removed calorie estimation and activity estimation
- Removed MyTracks Service API (i.e., no integration with other apps)
@@ -0,0 +1,17 @@
v3.0.1: OpenTracks
Changes:
- Share markers
- Restructured settings
- Removed actionbar back button
- Export: removed photo size settings option
- Export: KML as format is now selectable
Bugfixes:
- export directory is now /OpenTracks/
- landscape mode is not crashing
- fixed KML/KMZ export
Developer:
- Test are executable (but many failing)
- Enabled continuous integration with TravisCI (no tests)
@@ -0,0 +1,14 @@
v3.1.0: OpenTracks
Changes:
- Added show track in map apps (tested with OsmAnd and Maps.ME)
- Added while tracking, show track statistics without unlocking the device
- Removed landscape mode for track detail view (was buggy)
- Removed search suggestions history
Bugfix:
- Request storage permission for import all/export all
Developer:
- Upgrade to Gradle 5.6
- Do not minify release builds
@@ -0,0 +1,16 @@
v3.2.0: OpenTracks
Changes:
- Removed Widget
- Introduced material design icons
- Removed snowboarding and skiing (need new icons)
Bugfix:
- Fixed search functionality
Developer:
- Fixed (some) test cases
- Removed unused parcelable functionality
- Major cleanup and reformatting
- Do not use broadcast for app to widget communication
- stats_content.xml does not include other files
@@ -0,0 +1,7 @@
v3.2.1: OpenTracks
Changes:
- Settings are now on a single page
Developer:
- Settings moved to Androidx compat (uses fragments)
@@ -0,0 +1,13 @@
v3.2.2: OpenTracks
Changes:
- Removed aggregated stats
- Migrated to Material Design
Bugfix:
- Fixed export of sensor data
- Fixed import of incomplete sensor data
Developer:
- Replaced actionbar with toolbar
- Migrated to androidx appcompat (incl. Material Design)
@@ -0,0 +1,14 @@
v3.2.3: OpenTracks
Changes:
- Sharing: use Android Sharesheet
- Sharing: share multiple tracks as individual files
- Use Android ShareSheet
- Heart rate sensor (Bluetooth LE): automatic reconnect
Bugfix:
- Heart rate sensor (Bluetooth LE): disconnect properly
- Heart rate wasn't always shown while recording
Developer:
- Enabled TravisCI instrumentation tests
@@ -0,0 +1,5 @@
v3.2.4: OpenTracks
Bugfix:
- Settings activity crashes
Removed possibility to change voice/split frequency from the context menu
@@ -0,0 +1,15 @@
v3.2.5: OpenTracks
Changes:
- Disable activity change
- Add permission for Android 10: recording location data
Bugfix:
- Fix reset settings
Developer:
- Preferences
- if Settings cannot be loaded reset all preferences
- moved access to preferences to PreferencesUtil
- moved default of preferences from code to xml
- use SummaryProvider
@@ -0,0 +1,8 @@
v3.2.6: OpenTracks
Changes:
- Heart rate monitor: scan for available devices
- Remove shortcut to Bluetooth settings
Developer:
- Preferences: moved default of preferences from code to xml
@@ -0,0 +1,10 @@
v3.2.7: OpenTracks
Changes:
- Notification show GPS accuracy
- Show heads-up notification if GPS accuracy drops beyond threshold
- Always show chart by time as well as by distance
- Added help (in Settings)
Bugfix:
- TrackDetailActivity: disabled non-working landscape mode (temporary)
@@ -0,0 +1,10 @@
v3.2.8: OpenTracks
Changes:
- Chart: zoom via gestures
Bugfixes:
- Export via KMZ did not export picture filenames correctly
- Sharing multiple tracks did not include KMZ files
- MarkerDetailActivity's UI was not shown
- Settings crashed if preference of heart rate was not initialized
@@ -0,0 +1,10 @@
v3.2.9: OpenTracks
Changes:
- Option to keep screen on while recording
- Markers: removed split markers completely
- Voice announcement now work without READ_PHONE_STATE permission
Bugfixes:
- Statistics: heart rate was not shown
- Statistics: time was briefly reset to 0s
@@ -0,0 +1,11 @@
v3.2.10: OpenTracks
Changes:
- ChartView is not configurable anymore
- After reboot: removed automatic restart of an unfinished recording
Bugfix:
- Speech announcements use MAY_DUCK (again)
- ChartView shows markers (again)
- Fixed landscape recordingLayout of TrackListActivity
- Request legacy file API behavior (necessary for Android 10)
@@ -0,0 +1,12 @@
v3.2.11: OpenTracks
Bug:
- Max speed is identical to avg speed
Bugfix:
- Crash on heart rate sensor selection
Developer:
- Replaced TabHost by TabsLayout
- Removed special first waypoint
- Removed duplicate translations
@@ -0,0 +1,13 @@
v3.3.0: OpenTracks
Breaking changes:
- Pictures are now stored in app-private storage (do not show up other picture apps)
NOTE: Pictures taking with previous version cannot be shown
- Localization for Spanish (Latin America) only works on Android 7.0 or later
Changes:
- Import/Export via Storage Access Framework (avoids READ/WRITE_EXTERNAL_STORAGE permission)
Developer:
- Cleaned internal data structures
- Use separate icons/app names for debug version
@@ -0,0 +1,12 @@
v3.3.1: OpenTracks
Changes:
- Android 10: on uninstall allow to keep app data
- Introduced Dashboard API: map icon can be used to open current track in external app
(requires installation of another app like OSMDashboard)
Bugfix:
- App label was broken (introduced in v3.3.0)
Developer:
- Documentation for Dashboard API can be found in README_DEVELOPER.md
@@ -0,0 +1,11 @@
v3.3.2: OpenTracks
Changes:
- Export: overwrites files now
Bugfix:
- Always remove recording notification
Developer:
- On API 26+ java.time is used for parsing and writing dates
- Refactoring of TrackRecordingService
@@ -0,0 +1,12 @@
v3.4.0: OpenTracks
Changes:
- Dashboard API: multiple tracks
- Updated help
Bugfix:
- Fixed crash on fragment re-creation
- When paused: prevent stopping app
Developer:
- Enable testing via CI (Github Actions and TravisCI)
@@ -0,0 +1,14 @@
v3.5.0: OpenTracks
Changes:
- Marker: select pictures from gallery
- Marker: share picture
- Use track name as filename when sharing
- Removed elevation min/max (was imprecise)
Bugfix:
- Charts use preferred units and rate
Developer:
- Database: remove unused columns
- Database: add indices
@@ -0,0 +1,10 @@
v3.6.0: OpenTracks
Changes:
- Stopped tracks can now be resumed
Bugfix:
- Import of KMZ did not process the photo URL correctly
Developer:
- Simplified data processing
@@ -0,0 +1,4 @@
v3.6.1: OpenTracks
Bugfix:
- KMZ import: store correct picture path
@@ -0,0 +1,4 @@
v3.6.2: OpenTracks
Bugfix:
- Charts were not shown correctly (introduced in v3.6.0)
@@ -0,0 +1,13 @@
v3.7.0: OpenTracks
Changes:
- Report speed/pace by activity type
- Added workaround for GPS week rollover
- (Experimental) Support for Bluetooth LE cycling sensors (cadence and speed)
- KMZ/KML import enhanced
Bugfix:
- KMZ import: only import used images
Developer:
- Refactored TrackRecordingService
@@ -0,0 +1,7 @@
v3.7.1: OpenTracks
Workaround:
- Hide start GPS button
Bugfix:
- Fixed null pointer
@@ -0,0 +1,6 @@
v3.7.2: OpenTracks
Bugfix:
- Re-added start GPS button
- Track name is not overwritten at the end of a recording
- Markers: removing a photo also deletes the file
@@ -0,0 +1,7 @@
v3.7.3: OpenTracks
Bugfix:
- Fixed computation of cadence and speed (via Bluetooth LE sensor)
Developer:
- Removed unused translations
@@ -0,0 +1,12 @@
v3.7.4: OpenTracks
Changes:
- Sharing/export format configurable
Bugfix:
- Wheel diameter not stored correctly (for speed sensor)
- Help: links are clickable
Developer:
- Split TrackDetailActivity
- StatsFragement successor uses ConstraintLayout
@@ -0,0 +1,11 @@
v3.7.5: OpenTracks
Changes:
- Added aggregated statistics summary (from main the screen's menu)
- Dashboard API: pass "show on lock screen"- and "keep screen on"-setting
- Updated translations
- Import: be lenient with ISO8601 date format
- Show track on map: file format can be selected and opening dashboard works on Android R (API 30+)
Bugfix:
- App icon now correctly implemented
@@ -0,0 +1,11 @@
v3.7.6: OpenTracks
Changes:
- Landscape mode
- Track deletion UI is now only a spinner
- Speed is exported and imported (GPX/KML/KMZ)
- Default export format is KMZ incl. all data and pictures
Developer:
- Replaced AsyncTasks with Threads
- Synchronization: UUID is generated per track (not yet exported)
@@ -0,0 +1,16 @@
v3.8.0: OpenTracks
Breaking change:
- GPX import/export speed, cadence, and heartrate via TrackPointExtension/v2
Changes:
- Dashboard API: provide access to markers (incl. callback to show in OpenTracks)
- New marker icon (orange push pin, SVG)
- Files to import can be selected via file manager
Bugfixes:
- Aggregated stats UI respects preferred rate
- Editing a marker failed on orientation change
Developer:
- Refactored TrackRecordingService
@@ -0,0 +1,8 @@
v3.8.1: OpenTracks
Changes:
- While recording: add option for fullscreen
- Dashboard is started on the same task
Bugfixes:
- Intent filters for importing files were far too optimistic
@@ -0,0 +1,14 @@
v3.9.0: OpenTracks
Changes:
- Export tracks with their UUID
- Prevent import of already existing tracks by UUID (configurable; default yes)
- Pause/stop button now require long press
- GPS pre-start shows status of fix
- Added new activity icons
- Speed sensor: wheelsize now configurable in millimeter
Bugfixes:
- Fixed some rare crashes (NPE)
- Pace formatting corrected
- App icon in launcher repositioned
@@ -0,0 +1,4 @@
v3.9.1: OpenTracks
Bugfixes:
- GPS pre-start shows status of fix
@@ -0,0 +1,5 @@
v3.9.2: OpenTracks
Bugfixes:
- Fixed force close on API<25 (due to an animation)
- Reset recording state (on app startup) if crashed while recording
@@ -0,0 +1,4 @@
v3.9.3: OpenTracks
Bugfixes:
- Fixed export all tracks bug.
@@ -0,0 +1,10 @@
v3.9.4: OpenTracks
Changes:
- Added interval computation
- Voice announcements present last interval statistics
- Settings: Bluetooth icon is animated
Bugfix:
- GPS was not turned off when stopping a recording
- Show on map via KML/KMZ/GPX was broken due to refactoring
@@ -0,0 +1,8 @@
v3.9.5: OpenTracks
Changes:
- UI shows speed only with one fractional digit
Bugfix:
- App crash in search (due to Track.Id refactoring)
- Track list did now show if a recording was ongoing (due to Track.Id refactoring)
@@ -0,0 +1,10 @@
v3.10.0: OpenTracks
Changes:
- Elevation gain via barometer
- Add splash screen
- Android 11/F-Droid: downgrade to targetSDK 29 (v1 signature)
see https://gitlab.com/fdroid/fdroidserver/-/issues/827
Bugfix:
- Several fixes due to trackId refactoring
@@ -0,0 +1,10 @@
v3.11.0: OpenTracks
Changes:
- Theming: day/night mode (default: night)
- Theming: use Material Design instead of custom element theming
- Use targetSDK 30 again (F-Droid signs now with V2)
Bugfix:
- Android 11: export all crashed
- TrackDetail not updated in UI after data was changed by user
@@ -0,0 +1,4 @@
v3.11.1: OpenTracks
Bugfix:
- Voice announcements reported wrong statistics
@@ -0,0 +1,22 @@
v3.12.0: OpenTracks
Changes:
- Bluetooth sensor addresses
- Intervals: show elevation gain
- Export: default export directory
- Export: automatic export after finishing a track
- Manual import/export: new user interface
- Manual export: option to overwrite on manual export
Faster:
- Track lists loading
- Deleting multiple tracks
Bugfix:
- Fixed intent filters for import
- KMZ could not be parsed
- Export: fix crash on Android 11
Developer:
- Use ViewBindings
- Database enforces foreign key a
@@ -0,0 +1,10 @@
v3.13.0: OpenTracks
Changes:
- Sensor: support for powermeter (BLE)
- Search by track and marker (in lists)
- Combined search removed
Bugfix:
- Import crashed in UI
- Images of markers were not imported
@@ -0,0 +1,5 @@
v3.13.1: OpenTracks
Bugfix:
- Crash on record start: minify/shrink removed a drawable
- Automatic export failed silently (mainly remote destinations)
@@ -0,0 +1,4 @@
v3.13.2: OpenTracks
Bugfix:
- Crash in landscape mode
@@ -0,0 +1,10 @@
v3.14.0: OpenTracks
Changes:
- Properly support for right-to-left
- Import: faster cleanup after import failure
- Text in charts scales according to Android settings
- Heart rate: support for Huami devices (requires Gadgetbridge)
Developer:
- Import is now handled in-memory
@@ -0,0 +1,14 @@
v3.14.1: OpenTracks
Changes:
- Added elevation loss (via barometer)
- Updated translations (cz, gl, it, nb, pl, pt, sp)
- Markers can be shared from list
- Actionbar icon (top left) to go back
-
Bugfix:
- Potential crash on import
Developer:
- Implemented basic EspressoUI test
- Reference resourceIds via if rather than switch/case
@@ -0,0 +1,10 @@
v3.14.2: OpenTracks
Changes:
- Downgrade database from upcoming release v3.15.0
- Import/Export UI improved
- Import offers to show imported track
- Marker list performance improved
Developer:
- Track.Id/Marker.Id: use null
@@ -0,0 +1,4 @@
v3.14.3: OpenTracks
Bugfix:
- Downgrading database from upcoming release v3.15.0
@@ -0,0 +1,13 @@
v3.15.0: OpenTracks
WARNING:
This release applies database changes that CANNOT BE REVERTED.
As KMZ/KML export/import behaviour changes as well, it is recommended to (A) take a backup BEFORE upgrading and (B) afterwards.
Recommended format: KMZ.
BREAKING CHANGES:
- Internal storage of track segments is changed
(user generated events are now considered trackpoints without a location but with timestamp)
- Device time instead of GPS time is stored
(existing data is not modified)
- Dashboard
@@ -0,0 +1,7 @@
v3.15.1: OpenTracks
Changes:
- After recording show sensor statistics (e.g., avg HR)
Bugfix:
- Crash on recording start with show latitude/longitude enabled
@@ -0,0 +1,7 @@
v3.15.2: OpenTracks
Changes:
- Updated translations
Bugfix:
- Crash on GPX export
@@ -0,0 +1,8 @@
v3.15.3: OpenTracks
Changes:
- Computation avg/max: heart rate, cadence, and power
Bugfix:
- KML/KMZ do not export #start/#end placemarks anymore
- While recording: Speed/location was sometimes falsly shown as 0.
@@ -0,0 +1,4 @@
v3.15.4: OpenTracks
Bugfix:
- Voice annoucements interval should be in minutes (introduced in v3.15.0)
@@ -0,0 +1,13 @@
v3.16.0: OpenTracks
Changes:
- Cycling: get distance from BLE speed sensor
- Reworked UI presented while recording
- UI performance optimizations
- Exported filenames: <First 32bits UUID>_<track's name>.<extension>
- Import multiple files via Intent (e.g., from Gadgetbridge)
- GPX: export power data
- Updated translations
Bugfix:
- Voice announcement use minutes correctly
@@ -0,0 +1,17 @@
v3.17.0: OpenTracks
Changes:
- Add icon for kayaking
- Charts draw missing sensor data properly
- Default: show coordinates while recording
Bugfixes:
- GPX schema corrected
- GPX exported altitude loss as sensor distance
- Statistics not computed correctly if using a speed/distance sensor
Developer:
- Distance/speed value objects
- Replaced communication via SharedPreferences
- Use non-static service binder
- Use altitude in the code base (instead of elevation)
@@ -0,0 +1,7 @@
v3.17.1: OpenTracks
Bugfix:
- Interval length in meters instead of kilometers (introduced in v3.17.0)
- Elevation gain/loss not recorded (introduced in v3.17.0)
- Announcements not working on Android 11
@@ -0,0 +1,8 @@
v3.17.2: OpenTracks
WARNING: The v3.17.0+ releases contain a memory leak.
This issues is NOT FIXED by this release.
It is recommended to not upgrade if you still use a release before v3.17.0
Bugfix:
- Crash while using voice announcements
@@ -0,0 +1,10 @@
v3.17.3: OpenTracks
WARNING: The v3.17.0+ releases contain a memory leak.
This issues is NOT FIXED by this release.
It is recommended to not upgrade if you still use a release before v3.17.0
Bugfix:
- Crash if using pace for voice announcements (introduced in v3.17.0)
- Statistics showed pace initially (introduced in v3.17.0)
- Rare crash when deleting tracks
@@ -0,0 +1,15 @@
v3.18.0: OpenTracks
Changes:
- Altitude is shown in EGM2008 (stored/exported as WGS84)
Bugfix:
- Fixed memory leak (introduced in v3.17.0)
- Charts: altitude should be in M/FT (introduced in v3.17.1)
- Charts: while recording was not correctly updated (introduced in v3.17.3)
- TrackDataHub did not account for recordingDistanceInterval (introduced in v3.17.2)
Developer:
- Disable PNG crunching (reproducible build)
- Refactored TrackImporter and optimized KMZ import
- Use LiveData for TrackReco
@@ -0,0 +1,13 @@
v3.18.1: OpenTracks
Changes:
- Deleting tracks is handled by a service
- Uninstall deletes all data (i.e., hasFragileData=false)
Bugfixes:
- Race condition: crash while recording and switching OpenTracks into background
- Search in track list was not working
- Cycling speed sensor: distance computation was wrong (only affected statistics)
Developer:
- ControllerFragment replaces TrackController
@@ -0,0 +1,7 @@
v3.18.2: OpenTracks
Bugfix:
- Crash while moving from charts to another activity/app #787
Developer:
- TrackRecordingService pushes data to UI while recording
@@ -0,0 +1,13 @@
v3.18.3: OpenTracks
Changes:
- KML parsing does not require order of when/gx:coords
- Track importer: reorders locations by timestamp
- Removed rendered launcher icons for Android < 8.0.0 (API 26)
(might look slightly different, but avoid problems for reproducible builds)
Bugfix:
- Avoid crash in charts due to race condition
Developer:
- Split GPX and KML importer (removed common inheritance)
@@ -0,0 +1,10 @@
v3.18.4: OpenTracks
Changes:
- Speed/distance are consistently formatted
- Intervals tab is now faster
Bugfix:
- Cycling speed/distance sensor:
- fixed parsing (UINT32)
- transmit data to UI properly
@@ -0,0 +1,16 @@
v3.18.6: OpenTracks
Changes:
- "Show on map"-functionality via KML instead of KMZ
- Voice announcement do not include app name
- While recording: elevation gain/loss is updated every second
- Store descriptions translated
Bufixes:
- Fixed invalid voice announcement translations
Developer:
- Android12 permissions (BLUETOOTH_SCAN)
- Android12 permissions (ACCESS_COARSE_LOCATION)
- Asserting for TrackPoints (testing)
- Removed unused translations
@@ -0,0 +1,15 @@
v3.19.0: OpenTracks
Changes:
- Support for Running Speed and Cadence (RCS) sensors implemented
- When sharing a track: a share picture is created
- No vibration when starting a recording
- While recording: UI shows most recently received altitude, speed, and bearing (even if not stored)
Bugfix:
- Computation of total duration should not include paused durations (requires re-import)
- (again) Use custom summaries if present
Developer:
- Upgrade to SDK31 and AGP7.0.0 (requires JDK11)
- TrackRec
@@ -0,0 +1,8 @@
v3.19.1: OpenTracks
Changes:
- Updated translations.
Bugfix:
- Export All Tracks bug fixed.
- Resume Track bug fixed.
@@ -0,0 +1,7 @@
v3.20.0: OpenTracks
Changes:
- While recording: statistics UI is now configurable
Bugfix:
- Changing track name/ category while recording was ignored (introduced in v3.19.0)
@@ -0,0 +1,6 @@
v3.20.1: OpenTracks
Changes:
- Announcements can now be used by both distance and time
- Announcements beep if no Text-to-speech software is installed
- Removed adaptive GPS location frequency
@@ -0,0 +1,11 @@
v3.20.2: OpenTracks
Changes:
- Elevation gain and loss are integers instead of floats
- Ask for permission before using Bluetooth by a Toast message
Bugfix:
- Set FLAG_IMMUTABLE for PendingIntents to avoid crash on Android 12
- Cadence sensor returns 0 instead of None when user is not pedaling
- Speed sensor returns 0 instead of the last speed when it's stopped
- With sensors, moving time stops when is not moving
@@ -0,0 +1,13 @@
v3.21.0: OpenTracks
Changes:
- While recording: remove idle/non-idle creation of TrackPoints
- Settings are now in separate folders
- Opening OpenTracks from notification (while recording) and pressing back opens track list
- GPX compatibilty: support <speed> for import
Bugfixes:
- Altitude and distance (from BlE sensor): only reset counters if data was actually stored
- Import without speed, requires computing speed
- BLE running sensor not connected, should not be reported as present
- BLE r
@@ -0,0 +1,11 @@
v3.22.0: OpenTracks
Changes:
- Locations are only stored if traveled distance > recording distance interval
(removed left over functionality from idle/non-idle detection)
- UI can be configured to show a clock
- Idle speed is now configurable
Bugfix:
- Intervals: crash when gain but not loss was stored
- While recording: prevent crash when disabling voice announcements
@@ -0,0 +1,10 @@
v3.23.0: OpenTracks
Changes:
- Added UI profiles
- Aggregated statistics for selected tracks
- Re-implemented idle/non-idle TrackPoints as moving time stopped working (introduced in v3.22.0)
Bugfixes:
- BLE sensors: clear data on disconnect
- Automatic export needs to persist permission
@@ -0,0 +1,12 @@
v3.24.0: OpenTracks
Changes:
- GPS is optional (also for indoor use): if using a BLE sensors that provide distance are used
- Settings: option to disable BLE filtering of devices
- Charts: altitude starts at minimal value instead of 0m.
- UI supports showing stored timezone information
Bugfix:
- Re-added workaround for crash due to clock traveling back in time (workaround was removed in v3.23.0)
- Removed unecessary workaround for BLE cycling sensor (RTFM)
- GPX importer did not handle missing
@@ -0,0 +1,16 @@
v3.24.1: OpenTracks
Changes:
- Added API for starting recordings from other applications (disabled by default)
- Shortened ISO8601 track names
- BLE distance sensors: store GPS-locations based upon previous GPS-locations
Bugfix:
- While recording: fixed crash when opening charts
- TrackDataHub should end processing after stop()
- Prevent rare crash while deleting tracks
Developer:
- Refactored package structure
- Monotonic clock
- Value objects for heartrate, cadence, and power
@@ -0,0 +1,11 @@
v3.25.0: OpenTracks
Changes:
- GPS is now optional incl. GPS disabled warning
- PublicAPI: other applications can now receive recorded data if they start a recording (implemented for Gadgetbridge)
- New activities: swimming, swimming open, and workout
- Removed share pic functionality
Bugfix:
- UI: speed/elevation where jumping between 0.0 and the actual value
- Tracks with emojis can be exported
@@ -0,0 +1,5 @@
v3.25.1: OpenTracks
Bugfix:
- Automatic export: hopefully prevent silent failures
- Automatic export: prevent crash
@@ -0,0 +1,8 @@
v3.26.0: OpenTracks
Changes:
- Voice announcements are configurable
- Voice announcements of heart rate
Bugfix:
- Crash due to race condition
@@ -0,0 +1,4 @@
v3.26.1: OpenTracks
Bugfix:
- Contextual action bar didn't overlap toolbar in night theme.
@@ -0,0 +1,15 @@
v3.27.0: OpenTracks
Changes:
- Voice annoucements: add 100m, 200m, and 500m
- Interval: add 100m and 500m
- Clock shows now also seconds
- GPX, KML, KMZ: export and import horizontal accuracy
- GPX: export cumulative distance via clustrust extension
- CSV: basic export (TrackPoints only; not for backup)
- Workaround for Tickr X as it reports SPM instead of RPM
Bugfixes:
- Adhere to recording distance interval;
TrackPoints were recorded although they were too close
- Prevent crash on stop re
@@ -0,0 +1,6 @@
v3.28.0: OpenTracks
Changes:
- Configurable filename for export/sharing (default: {starttime}_{name}.{suffix})
- Vertical GPS accuracy is now stored and can be exported/imported
(API level >= 26).
@@ -0,0 +1,15 @@
v4.0.0: OpenTracks
Changes:
- UI refactoring with a Bottom App Bar.
- Public API: implemented STOP properly.
- Cleanup: use explicit preference identifiers for TrackFileFormat.
- Improvements on BLE handler.
- Add exception handler and show error activity so users can send reports about bugs.
- Android 13: launcher icon, provide a themed icon.
- Change track title capitalization to sentences.
- Translations updated.
Bugfix:
- Sharing track added file suffix twice.
- Unit system not loaded corr
@@ -0,0 +1,13 @@
v4.0.1: OpenTracks
Changes:
- Voice announcements are now configurable
- Fullscreen mode now also hides Android's navigation bar
- Connection to BLE sensors should now be faster
- Allow to reset settings while recording
- Allow to change import/export settings while recording
- KML/KMZ: do not use icons to be loaded from Google
Bugfix:
- TrackStoppedActivity now works on smaller screens
- Requests permissions on track list
@@ -0,0 +1,10 @@
v4.0.2: OpenTracks
Changes:
- Add nautical miles
- Settings can be reset while recording
Bugfix:
- Voice announcement rounding
- Chart: elevation was weirdly smoothed
- Export was not checking if file exists
@@ -0,0 +1,8 @@
v4.0.3: OpenTracks
Changes:
- Max. speed as reported by sensor (GPS or BLE)
Bugfix:
- Prevent crash if OSM Dashboard is not installed
- GPX track export: do not export empty track segments

Some files were not shown because too many files have changed in this diff Show More