Compare commits

...

123 Commits

Author SHA1 Message Date
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
289 changed files with 5117 additions and 4632 deletions
-581
View File
@@ -319,500 +319,6 @@ ij_shell_redirect_followed_by_space = false
ij_shell_switch_cases_indented = false
ij_shell_use_unix_line_separator = true
[{*.c,*.c++,*.cc,*.cp,*.cpp,*.cppm,*.cu,*.cuh,*.cxx,*.h,*.h++,*.hh,*.hp,*.hpp,*.hxx,*.i,*.icc,*.ii,*.inl,*.ino,*.ipp,*.ixx,*.m,*.mm,*.mxx,*.pch,*.tcc,*.tpp}]
ij_c_add_brief_tag = false
ij_c_add_getter_prefix = true
ij_c_add_setter_prefix = true
ij_c_align_dictionary_pair_values = false
ij_c_align_group_field_declarations = false
ij_c_align_init_list_in_columns = true
ij_c_align_multiline_array_initializer_expression = true
ij_c_align_multiline_assignment = true
ij_c_align_multiline_binary_operation = true
ij_c_align_multiline_chained_methods = false
ij_c_align_multiline_for = true
ij_c_align_multiline_ternary_operation = true
ij_c_array_initializer_comma_on_next_line = false
ij_c_array_initializer_new_line_after_left_brace = false
ij_c_array_initializer_right_brace_on_new_line = false
ij_c_array_initializer_wrap = normal
ij_c_assignment_wrap = off
ij_c_binary_operation_sign_on_next_line = false
ij_c_binary_operation_wrap = normal
ij_c_blank_lines_after_class_header = 0
ij_c_blank_lines_after_imports = 1
ij_c_blank_lines_around_class = 1
ij_c_blank_lines_around_field = 0
ij_c_blank_lines_around_field_in_interface = 0
ij_c_blank_lines_around_method = 1
ij_c_blank_lines_around_method_in_interface = 1
ij_c_blank_lines_around_namespace = 0
ij_c_blank_lines_around_properties_in_declaration = 0
ij_c_blank_lines_around_properties_in_interface = 0
ij_c_blank_lines_before_imports = 1
ij_c_blank_lines_before_method_body = 0
ij_c_block_brace_placement = end_of_line
ij_c_block_brace_style = end_of_line
ij_c_block_comment_at_first_column = true
ij_c_catch_on_new_line = false
ij_c_class_brace_style = end_of_line
ij_c_class_constructor_init_list_align_multiline = true
ij_c_class_constructor_init_list_comma_on_next_line = false
ij_c_class_constructor_init_list_new_line_after_colon = never
ij_c_class_constructor_init_list_new_line_before_colon = if_long
ij_c_class_constructor_init_list_wrap = normal
ij_c_copy_is_deep = false
ij_c_create_interface_for_categories = true
ij_c_declare_generated_methods = true
ij_c_description_include_member_names = true
ij_c_discharged_short_ternary_operator = false
ij_c_do_not_add_breaks = false
ij_c_do_while_brace_force = never
ij_c_else_on_new_line = false
ij_c_enum_constants_comma_on_next_line = false
ij_c_enum_constants_wrap = on_every_item
ij_c_for_brace_force = never
ij_c_for_statement_new_line_after_left_paren = false
ij_c_for_statement_right_paren_on_new_line = false
ij_c_for_statement_wrap = off
ij_c_function_brace_placement = end_of_line
ij_c_function_call_arguments_align_multiline = true
ij_c_function_call_arguments_align_multiline_pars = false
ij_c_function_call_arguments_comma_on_next_line = false
ij_c_function_call_arguments_new_line_after_lpar = false
ij_c_function_call_arguments_new_line_before_rpar = false
ij_c_function_call_arguments_wrap = normal
ij_c_function_non_top_after_return_type_wrap = normal
ij_c_function_parameters_align_multiline = true
ij_c_function_parameters_align_multiline_pars = false
ij_c_function_parameters_comma_on_next_line = false
ij_c_function_parameters_new_line_after_lpar = false
ij_c_function_parameters_new_line_before_rpar = false
ij_c_function_parameters_wrap = normal
ij_c_function_top_after_return_type_wrap = normal
ij_c_generate_additional_eq_operators = true
ij_c_generate_additional_rel_operators = true
ij_c_generate_class_constructor = true
ij_c_generate_comparison_operators_use_std_tie = false
ij_c_generate_instance_variables_for_properties = ask
ij_c_generate_operators_as_members = true
ij_c_header_guard_style_pattern = ${PROJECT_NAME}_${FILE_NAME}_${EXT}
ij_c_if_brace_force = never
ij_c_in_line_short_ternary_operator = true
ij_c_indent_block_comment = true
ij_c_indent_c_struct_members = 4
ij_c_indent_case_from_switch = true
ij_c_indent_class_members = 4
ij_c_indent_directive_as_code = false
ij_c_indent_implementation_members = 0
ij_c_indent_inside_code_block = 4
ij_c_indent_interface_members = 0
ij_c_indent_interface_members_except_ivars_block = false
ij_c_indent_namespace_members = 4
ij_c_indent_preprocessor_directive = 0
ij_c_indent_visibility_keywords = 0
ij_c_insert_override = true
ij_c_insert_virtual_with_override = false
ij_c_introduce_auto_vars = false
ij_c_introduce_const_params = false
ij_c_introduce_const_vars = false
ij_c_introduce_generate_property = false
ij_c_introduce_generate_synthesize = true
ij_c_introduce_globals_to_header = true
ij_c_introduce_prop_to_private_category = false
ij_c_introduce_static_consts = true
ij_c_introduce_use_ns_types = false
ij_c_ivars_prefix = _
ij_c_keep_blank_lines_before_end = 2
ij_c_keep_blank_lines_before_right_brace = 2
ij_c_keep_blank_lines_in_code = 2
ij_c_keep_blank_lines_in_declarations = 2
ij_c_keep_case_expressions_in_one_line = false
ij_c_keep_control_statement_in_one_line = true
ij_c_keep_directive_at_first_column = true
ij_c_keep_first_column_comment = true
ij_c_keep_line_breaks = true
ij_c_keep_nested_namespaces_in_one_line = false
ij_c_keep_simple_blocks_in_one_line = true
ij_c_keep_simple_methods_in_one_line = true
ij_c_keep_structures_in_one_line = false
ij_c_lambda_capture_list_align_multiline = false
ij_c_lambda_capture_list_align_multiline_bracket = false
ij_c_lambda_capture_list_comma_on_next_line = false
ij_c_lambda_capture_list_new_line_after_lbracket = false
ij_c_lambda_capture_list_new_line_before_rbracket = false
ij_c_lambda_capture_list_wrap = off
ij_c_line_comment_add_space = false
ij_c_line_comment_at_first_column = true
ij_c_method_brace_placement = end_of_line
ij_c_method_call_arguments_align_by_colons = true
ij_c_method_call_arguments_align_multiline = false
ij_c_method_call_arguments_special_dictionary_pairs_treatment = true
ij_c_method_call_arguments_wrap = off
ij_c_method_call_chain_wrap = off
ij_c_method_parameters_align_by_colons = true
ij_c_method_parameters_align_multiline = false
ij_c_method_parameters_wrap = off
ij_c_namespace_brace_placement = end_of_line
ij_c_parentheses_expression_new_line_after_left_paren = false
ij_c_parentheses_expression_right_paren_on_new_line = false
ij_c_place_assignment_sign_on_next_line = false
ij_c_property_nonatomic = true
ij_c_put_ivars_to_implementation = true
ij_c_refactor_compatibility_aliases_and_classes = true
ij_c_refactor_properties_and_ivars = true
ij_c_release_style = ivar
ij_c_retain_object_parameters_in_constructor = true
ij_c_semicolon_after_method_signature = false
ij_c_shift_operation_align_multiline = true
ij_c_shift_operation_wrap = normal
ij_c_show_non_virtual_functions = false
ij_c_space_after_colon = true
ij_c_space_after_colon_in_foreach = true
ij_c_space_after_colon_in_selector = false
ij_c_space_after_comma = true
ij_c_space_after_cup_in_blocks = false
ij_c_space_after_dictionary_literal_colon = true
ij_c_space_after_for_semicolon = true
ij_c_space_after_init_list_colon = true
ij_c_space_after_method_parameter_type_parentheses = false
ij_c_space_after_method_return_type_parentheses = false
ij_c_space_after_pointer_in_declaration = false
ij_c_space_after_quest = true
ij_c_space_after_reference_in_declaration = false
ij_c_space_after_reference_in_rvalue = false
ij_c_space_after_structures_rbrace = true
ij_c_space_after_superclass_colon = true
ij_c_space_after_type_cast = true
ij_c_space_after_visibility_sign_in_method_declaration = true
ij_c_space_before_autorelease_pool_lbrace = true
ij_c_space_before_catch_keyword = true
ij_c_space_before_catch_left_brace = true
ij_c_space_before_catch_parentheses = true
ij_c_space_before_category_parentheses = true
ij_c_space_before_chained_send_message = true
ij_c_space_before_class_left_brace = true
ij_c_space_before_colon = true
ij_c_space_before_colon_in_foreach = false
ij_c_space_before_comma = false
ij_c_space_before_dictionary_literal_colon = false
ij_c_space_before_do_left_brace = true
ij_c_space_before_else_keyword = true
ij_c_space_before_else_left_brace = true
ij_c_space_before_export_lbrace = true
ij_c_space_before_for_left_brace = true
ij_c_space_before_for_parentheses = true
ij_c_space_before_for_semicolon = false
ij_c_space_before_if_left_brace = true
ij_c_space_before_if_parentheses = true
ij_c_space_before_init_list = false
ij_c_space_before_init_list_colon = true
ij_c_space_before_method_call_parentheses = false
ij_c_space_before_method_left_brace = true
ij_c_space_before_method_parentheses = false
ij_c_space_before_namespace_lbrace = true
ij_c_space_before_pointer_in_declaration = true
ij_c_space_before_property_attributes_parentheses = false
ij_c_space_before_protocols_brackets = true
ij_c_space_before_quest = true
ij_c_space_before_reference_in_declaration = true
ij_c_space_before_superclass_colon = true
ij_c_space_before_switch_left_brace = true
ij_c_space_before_switch_parentheses = true
ij_c_space_before_template_call_lt = false
ij_c_space_before_template_declaration_lt = false
ij_c_space_before_try_left_brace = true
ij_c_space_before_while_keyword = true
ij_c_space_before_while_left_brace = true
ij_c_space_before_while_parentheses = true
ij_c_space_between_adjacent_brackets = false
ij_c_space_between_operator_and_punctuator = false
ij_c_space_within_empty_array_initializer_braces = false
ij_c_spaces_around_additive_operators = true
ij_c_spaces_around_assignment_operators = true
ij_c_spaces_around_bitwise_operators = true
ij_c_spaces_around_equality_operators = true
ij_c_spaces_around_lambda_arrow = true
ij_c_spaces_around_logical_operators = true
ij_c_spaces_around_multiplicative_operators = true
ij_c_spaces_around_pm_operators = false
ij_c_spaces_around_relational_operators = true
ij_c_spaces_around_shift_operators = true
ij_c_spaces_around_unary_operator = false
ij_c_spaces_within_array_initializer_braces = false
ij_c_spaces_within_braces = true
ij_c_spaces_within_brackets = false
ij_c_spaces_within_cast_parentheses = false
ij_c_spaces_within_catch_parentheses = false
ij_c_spaces_within_category_parentheses = false
ij_c_spaces_within_empty_braces = false
ij_c_spaces_within_empty_function_call_parentheses = false
ij_c_spaces_within_empty_function_declaration_parentheses = false
ij_c_spaces_within_empty_lambda_capture_list_bracket = false
ij_c_spaces_within_empty_template_call_ltgt = false
ij_c_spaces_within_empty_template_declaration_ltgt = false
ij_c_spaces_within_for_parentheses = false
ij_c_spaces_within_function_call_parentheses = false
ij_c_spaces_within_function_declaration_parentheses = false
ij_c_spaces_within_if_parentheses = false
ij_c_spaces_within_lambda_capture_list_bracket = false
ij_c_spaces_within_method_parameter_type_parentheses = false
ij_c_spaces_within_method_return_type_parentheses = false
ij_c_spaces_within_parentheses = false
ij_c_spaces_within_property_attributes_parentheses = false
ij_c_spaces_within_protocols_brackets = false
ij_c_spaces_within_send_message_brackets = false
ij_c_spaces_within_structured_binding_list_bracket = false
ij_c_spaces_within_switch_parentheses = false
ij_c_spaces_within_template_call_ltgt = false
ij_c_spaces_within_template_declaration_ltgt = false
ij_c_spaces_within_template_double_gt = true
ij_c_spaces_within_while_parentheses = false
ij_c_special_else_if_treatment = true
ij_c_structured_binding_list_align_multiline = false
ij_c_structured_binding_list_align_multiline_bracket = false
ij_c_structured_binding_list_comma_on_next_line = false
ij_c_structured_binding_list_new_line_after_lbracket = false
ij_c_structured_binding_list_new_line_before_rbracket = false
ij_c_structured_binding_list_wrap = off
ij_c_superclass_list_after_colon = never
ij_c_superclass_list_align_multiline = true
ij_c_superclass_list_before_colon = if_long
ij_c_superclass_list_comma_on_next_line = false
ij_c_superclass_list_wrap = on_every_item
ij_c_tag_prefix_of_block_comment = at
ij_c_tag_prefix_of_line_comment = back_slash
ij_c_template_call_arguments_align_multiline = false
ij_c_template_call_arguments_align_multiline_pars = false
ij_c_template_call_arguments_comma_on_next_line = false
ij_c_template_call_arguments_new_line_after_lt = false
ij_c_template_call_arguments_new_line_before_gt = false
ij_c_template_call_arguments_wrap = off
ij_c_template_declaration_function_body_indent = false
ij_c_template_declaration_function_wrap = split_into_lines
ij_c_template_declaration_struct_body_indent = false
ij_c_template_declaration_struct_wrap = split_into_lines
ij_c_template_parameters_align_multiline = false
ij_c_template_parameters_align_multiline_pars = false
ij_c_template_parameters_comma_on_next_line = false
ij_c_template_parameters_new_line_after_lt = false
ij_c_template_parameters_new_line_before_gt = false
ij_c_template_parameters_wrap = off
ij_c_ternary_operation_signs_on_next_line = true
ij_c_ternary_operation_wrap = normal
ij_c_type_qualifiers_placement = before
ij_c_use_modern_casts = true
ij_c_use_setters_in_constructor = true
ij_c_while_brace_force = never
ij_c_while_on_new_line = false
ij_c_wrap_property_declaration = off
[{*.cmake,CMakeLists.txt}]
ij_cmake_align_multiline_parameters_in_calls = false
ij_cmake_force_commands_case = 2
ij_cmake_keep_blank_lines_in_code = 2
ij_cmake_space_before_for_parentheses = true
ij_cmake_space_before_if_parentheses = true
ij_cmake_space_before_method_call_parentheses = false
ij_cmake_space_before_method_parentheses = false
ij_cmake_space_before_while_parentheses = true
ij_cmake_spaces_within_for_parentheses = false
ij_cmake_spaces_within_if_parentheses = false
ij_cmake_spaces_within_method_call_parentheses = false
ij_cmake_spaces_within_method_parentheses = false
ij_cmake_spaces_within_while_parentheses = false
[{*.gant,*.groovy,*.gy}]
ij_groovy_align_group_field_declarations = false
ij_groovy_align_multiline_array_initializer_expression = false
ij_groovy_align_multiline_assignment = false
ij_groovy_align_multiline_binary_operation = false
ij_groovy_align_multiline_chained_methods = false
ij_groovy_align_multiline_extends_list = false
ij_groovy_align_multiline_for = true
ij_groovy_align_multiline_list_or_map = true
ij_groovy_align_multiline_method_parentheses = false
ij_groovy_align_multiline_parameters = true
ij_groovy_align_multiline_parameters_in_calls = false
ij_groovy_align_multiline_resources = true
ij_groovy_align_multiline_ternary_operation = false
ij_groovy_align_multiline_throws_list = false
ij_groovy_align_named_args_in_map = true
ij_groovy_align_throws_keyword = false
ij_groovy_array_initializer_new_line_after_left_brace = false
ij_groovy_array_initializer_right_brace_on_new_line = false
ij_groovy_array_initializer_wrap = off
ij_groovy_assert_statement_wrap = off
ij_groovy_assignment_wrap = off
ij_groovy_binary_operation_wrap = off
ij_groovy_blank_lines_after_class_header = 0
ij_groovy_blank_lines_after_imports = 1
ij_groovy_blank_lines_after_package = 1
ij_groovy_blank_lines_around_class = 1
ij_groovy_blank_lines_around_field = 0
ij_groovy_blank_lines_around_field_in_interface = 0
ij_groovy_blank_lines_around_method = 1
ij_groovy_blank_lines_around_method_in_interface = 1
ij_groovy_blank_lines_before_imports = 1
ij_groovy_blank_lines_before_method_body = 0
ij_groovy_blank_lines_before_package = 0
ij_groovy_block_brace_style = end_of_line
ij_groovy_block_comment_add_space = false
ij_groovy_block_comment_at_first_column = true
ij_groovy_call_parameters_new_line_after_left_paren = false
ij_groovy_call_parameters_right_paren_on_new_line = false
ij_groovy_call_parameters_wrap = off
ij_groovy_catch_on_new_line = false
ij_groovy_class_annotation_wrap = split_into_lines
ij_groovy_class_brace_style = end_of_line
ij_groovy_class_count_to_use_import_on_demand = 5
ij_groovy_do_while_brace_force = never
ij_groovy_else_on_new_line = false
ij_groovy_enable_groovydoc_formatting = true
ij_groovy_enum_constants_wrap = off
ij_groovy_extends_keyword_wrap = off
ij_groovy_extends_list_wrap = off
ij_groovy_field_annotation_wrap = split_into_lines
ij_groovy_finally_on_new_line = false
ij_groovy_for_brace_force = never
ij_groovy_for_statement_new_line_after_left_paren = false
ij_groovy_for_statement_right_paren_on_new_line = false
ij_groovy_for_statement_wrap = off
ij_groovy_ginq_general_clause_wrap_policy = 2
ij_groovy_ginq_having_wrap_policy = 1
ij_groovy_ginq_indent_having_clause = true
ij_groovy_ginq_indent_on_clause = true
ij_groovy_ginq_on_wrap_policy = 1
ij_groovy_ginq_space_after_keyword = true
ij_groovy_if_brace_force = never
ij_groovy_import_annotation_wrap = 2
ij_groovy_imports_layout = *,|,javax.**,java.**,|,$*
ij_groovy_indent_case_from_switch = true
ij_groovy_indent_label_blocks = true
ij_groovy_insert_inner_class_imports = false
ij_groovy_keep_blank_lines_before_right_brace = 2
ij_groovy_keep_blank_lines_in_code = 2
ij_groovy_keep_blank_lines_in_declarations = 2
ij_groovy_keep_control_statement_in_one_line = true
ij_groovy_keep_first_column_comment = true
ij_groovy_keep_indents_on_empty_lines = false
ij_groovy_keep_line_breaks = true
ij_groovy_keep_multiple_expressions_in_one_line = false
ij_groovy_keep_simple_blocks_in_one_line = false
ij_groovy_keep_simple_classes_in_one_line = true
ij_groovy_keep_simple_lambdas_in_one_line = true
ij_groovy_keep_simple_methods_in_one_line = true
ij_groovy_label_indent_absolute = false
ij_groovy_label_indent_size = 0
ij_groovy_lambda_brace_style = end_of_line
ij_groovy_layout_static_imports_separately = true
ij_groovy_line_comment_add_space = false
ij_groovy_line_comment_add_space_on_reformat = false
ij_groovy_line_comment_at_first_column = true
ij_groovy_method_annotation_wrap = split_into_lines
ij_groovy_method_brace_style = end_of_line
ij_groovy_method_call_chain_wrap = off
ij_groovy_method_parameters_new_line_after_left_paren = false
ij_groovy_method_parameters_right_paren_on_new_line = false
ij_groovy_method_parameters_wrap = off
ij_groovy_modifier_list_wrap = false
ij_groovy_names_count_to_use_import_on_demand = 3
ij_groovy_packages_to_use_import_on_demand = java.awt.*,javax.swing.*
ij_groovy_parameter_annotation_wrap = off
ij_groovy_parentheses_expression_new_line_after_left_paren = false
ij_groovy_parentheses_expression_right_paren_on_new_line = false
ij_groovy_prefer_parameters_wrap = false
ij_groovy_resource_list_new_line_after_left_paren = false
ij_groovy_resource_list_right_paren_on_new_line = false
ij_groovy_resource_list_wrap = off
ij_groovy_space_after_assert_separator = true
ij_groovy_space_after_colon = true
ij_groovy_space_after_comma = true
ij_groovy_space_after_comma_in_type_arguments = true
ij_groovy_space_after_for_semicolon = true
ij_groovy_space_after_quest = true
ij_groovy_space_after_type_cast = true
ij_groovy_space_before_annotation_parameter_list = false
ij_groovy_space_before_array_initializer_left_brace = false
ij_groovy_space_before_assert_separator = false
ij_groovy_space_before_catch_keyword = true
ij_groovy_space_before_catch_left_brace = true
ij_groovy_space_before_catch_parentheses = true
ij_groovy_space_before_class_left_brace = true
ij_groovy_space_before_closure_left_brace = true
ij_groovy_space_before_colon = true
ij_groovy_space_before_comma = false
ij_groovy_space_before_do_left_brace = true
ij_groovy_space_before_else_keyword = true
ij_groovy_space_before_else_left_brace = true
ij_groovy_space_before_finally_keyword = true
ij_groovy_space_before_finally_left_brace = true
ij_groovy_space_before_for_left_brace = true
ij_groovy_space_before_for_parentheses = true
ij_groovy_space_before_for_semicolon = false
ij_groovy_space_before_if_left_brace = true
ij_groovy_space_before_if_parentheses = true
ij_groovy_space_before_method_call_parentheses = false
ij_groovy_space_before_method_left_brace = true
ij_groovy_space_before_method_parentheses = false
ij_groovy_space_before_quest = true
ij_groovy_space_before_record_parentheses = false
ij_groovy_space_before_switch_left_brace = true
ij_groovy_space_before_switch_parentheses = true
ij_groovy_space_before_synchronized_left_brace = true
ij_groovy_space_before_synchronized_parentheses = true
ij_groovy_space_before_try_left_brace = true
ij_groovy_space_before_try_parentheses = true
ij_groovy_space_before_while_keyword = true
ij_groovy_space_before_while_left_brace = true
ij_groovy_space_before_while_parentheses = true
ij_groovy_space_in_named_argument = true
ij_groovy_space_in_named_argument_before_colon = false
ij_groovy_space_within_empty_array_initializer_braces = false
ij_groovy_space_within_empty_method_call_parentheses = false
ij_groovy_spaces_around_additive_operators = true
ij_groovy_spaces_around_assignment_operators = true
ij_groovy_spaces_around_bitwise_operators = true
ij_groovy_spaces_around_equality_operators = true
ij_groovy_spaces_around_lambda_arrow = true
ij_groovy_spaces_around_logical_operators = true
ij_groovy_spaces_around_multiplicative_operators = true
ij_groovy_spaces_around_regex_operators = true
ij_groovy_spaces_around_relational_operators = true
ij_groovy_spaces_around_shift_operators = true
ij_groovy_spaces_within_annotation_parentheses = false
ij_groovy_spaces_within_array_initializer_braces = false
ij_groovy_spaces_within_braces = true
ij_groovy_spaces_within_brackets = false
ij_groovy_spaces_within_cast_parentheses = false
ij_groovy_spaces_within_catch_parentheses = false
ij_groovy_spaces_within_for_parentheses = false
ij_groovy_spaces_within_gstring_injection_braces = false
ij_groovy_spaces_within_if_parentheses = false
ij_groovy_spaces_within_list_or_map = false
ij_groovy_spaces_within_method_call_parentheses = false
ij_groovy_spaces_within_method_parentheses = false
ij_groovy_spaces_within_parentheses = false
ij_groovy_spaces_within_switch_parentheses = false
ij_groovy_spaces_within_synchronized_parentheses = false
ij_groovy_spaces_within_try_parentheses = false
ij_groovy_spaces_within_tuple_expression = false
ij_groovy_spaces_within_while_parentheses = false
ij_groovy_special_else_if_treatment = true
ij_groovy_ternary_operation_wrap = off
ij_groovy_throws_keyword_wrap = off
ij_groovy_throws_list_wrap = off
ij_groovy_use_flying_geese_braces = false
ij_groovy_use_fq_class_names = false
ij_groovy_use_fq_class_names_in_javadoc = true
ij_groovy_use_relative_indents = false
ij_groovy_use_single_class_imports = true
ij_groovy_variable_annotation_wrap = off
ij_groovy_while_brace_force = never
ij_groovy_while_on_new_line = false
ij_groovy_wrap_chain_calls_after_dot = false
ij_groovy_wrap_long_lines = false
[{*.har,*.json}]
indent_size = 2
ij_json_array_wrapping = split_into_lines
@@ -858,91 +364,6 @@ ij_html_space_around_equality_in_attribute = false
ij_html_space_inside_empty_tag = false
ij_html_text_wrap = normal
[{*.kt,*.kts}]
ij_kotlin_align_in_columns_case_branch = false
ij_kotlin_align_multiline_binary_operation = false
ij_kotlin_align_multiline_extends_list = false
ij_kotlin_align_multiline_method_parentheses = false
ij_kotlin_align_multiline_parameters = true
ij_kotlin_align_multiline_parameters_in_calls = false
ij_kotlin_allow_trailing_comma = false
ij_kotlin_allow_trailing_comma_on_call_site = false
ij_kotlin_assignment_wrap = off
ij_kotlin_blank_lines_after_class_header = 0
ij_kotlin_blank_lines_around_block_when_branches = 0
ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1
ij_kotlin_block_comment_add_space = false
ij_kotlin_block_comment_at_first_column = true
ij_kotlin_call_parameters_new_line_after_left_paren = false
ij_kotlin_call_parameters_right_paren_on_new_line = false
ij_kotlin_call_parameters_wrap = off
ij_kotlin_catch_on_new_line = false
ij_kotlin_class_annotation_wrap = split_into_lines
ij_kotlin_continuation_indent_for_chained_calls = true
ij_kotlin_continuation_indent_for_expression_bodies = true
ij_kotlin_continuation_indent_in_argument_lists = true
ij_kotlin_continuation_indent_in_elvis = true
ij_kotlin_continuation_indent_in_if_conditions = true
ij_kotlin_continuation_indent_in_parameter_lists = true
ij_kotlin_continuation_indent_in_supertype_lists = true
ij_kotlin_else_on_new_line = false
ij_kotlin_enum_constants_wrap = off
ij_kotlin_extends_list_wrap = off
ij_kotlin_field_annotation_wrap = split_into_lines
ij_kotlin_finally_on_new_line = false
ij_kotlin_if_rparen_on_new_line = false
ij_kotlin_import_nested_classes = false
ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^
ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
ij_kotlin_keep_blank_lines_before_right_brace = 2
ij_kotlin_keep_blank_lines_in_code = 2
ij_kotlin_keep_blank_lines_in_declarations = 2
ij_kotlin_keep_first_column_comment = true
ij_kotlin_keep_indents_on_empty_lines = false
ij_kotlin_keep_line_breaks = true
ij_kotlin_lbrace_on_next_line = false
ij_kotlin_line_break_after_multiline_when_entry = true
ij_kotlin_line_comment_add_space = false
ij_kotlin_line_comment_add_space_on_reformat = false
ij_kotlin_line_comment_at_first_column = true
ij_kotlin_method_annotation_wrap = split_into_lines
ij_kotlin_method_call_chain_wrap = off
ij_kotlin_method_parameters_new_line_after_left_paren = false
ij_kotlin_method_parameters_right_paren_on_new_line = false
ij_kotlin_method_parameters_wrap = off
ij_kotlin_name_count_to_use_star_import = 2147483647
ij_kotlin_name_count_to_use_star_import_for_members = 2147483647
ij_kotlin_packages_to_use_import_on_demand = java.util.*,kotlinx.android.synthetic.**,io.ktor.**
ij_kotlin_parameter_annotation_wrap = off
ij_kotlin_space_after_comma = true
ij_kotlin_space_after_extend_colon = true
ij_kotlin_space_after_type_colon = true
ij_kotlin_space_before_catch_parentheses = true
ij_kotlin_space_before_comma = false
ij_kotlin_space_before_extend_colon = true
ij_kotlin_space_before_for_parentheses = true
ij_kotlin_space_before_if_parentheses = true
ij_kotlin_space_before_lambda_arrow = true
ij_kotlin_space_before_type_colon = false
ij_kotlin_space_before_when_parentheses = true
ij_kotlin_space_before_while_parentheses = true
ij_kotlin_spaces_around_additive_operators = true
ij_kotlin_spaces_around_assignment_operators = true
ij_kotlin_spaces_around_equality_operators = true
ij_kotlin_spaces_around_function_type_arrow = true
ij_kotlin_spaces_around_logical_operators = true
ij_kotlin_spaces_around_multiplicative_operators = true
ij_kotlin_spaces_around_range = false
ij_kotlin_spaces_around_relational_operators = true
ij_kotlin_spaces_around_unary_operator = false
ij_kotlin_spaces_around_when_arrow = true
ij_kotlin_use_custom_formatting_for_modifiers = true
ij_kotlin_variable_annotation_wrap = off
ij_kotlin_while_on_new_line = false
ij_kotlin_wrap_elvis_expressions = 1
ij_kotlin_wrap_expression_body_functions = 0
ij_kotlin_wrap_first_method_in_call_chain = false
[{*.markdown,*.md}]
ij_markdown_force_one_space_after_blockquote_symbol = true
ij_markdown_force_one_space_after_header_symbol = true
@@ -961,5 +382,3 @@ ij_markdown_min_lines_between_paragraphs = 1
ij_markdown_wrap_text_if_long = true
ij_markdown_wrap_text_inside_blockquotes = true
[{*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,poetry.lock}]
ij_toml_keep_indents_on_empty_lines = false
+1 -1
View File
@@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- uses: actions/setup-java@v3
with:
+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- uses: actions/setup-java@v3
with:
@@ -1,6 +1,3 @@
# 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:
@@ -11,27 +8,20 @@ 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/checkout@v4
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '11'
distribution: 'adopt'
java-version: '17'
- name: run tests
uses: reactivecircus/android-emulator-runner@v2.26.0
uses: reactivecircus/android-emulator-runner@v2.28.0
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
arch: x86_64
profile: Nexus 6
api-level: 34
script: ./gradlew connectedCheck
- name: Archive
+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" />
+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 |
+5 -5
View File
@@ -6,7 +6,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.0'
classpath 'com.android.tools.build:gradle:8.2.0-beta04'
}
}
@@ -64,8 +64,8 @@ android {
defaultConfig {
applicationId "de.dennisguse.opentracks"
versionCode 5305
versionName "v4.6.2"
versionCode 5428
versionName "v4.9.0"
buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\""
@@ -128,7 +128,7 @@ dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
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.9.0'
@@ -141,7 +141,7 @@ dependencies {
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.4.0'
androidTestImplementation 'org.mockito:mockito-android:5.5.0'
androidTestUtil 'androidx.test:orchestrator:1.4.2'
}
+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

@@ -1,11 +1,22 @@
OpenTracks je aplikace pro sledování sportu, která zcela respektuje vaše soukromí.
Sportovní tracker, který respektuje vaše soukromí.
Funkce:
* Sledování sportu: sledujte své sportovní a outdoorové aktivity.
* Fotografie a značky: označte zajímavá místa při sledování
* Zvyšování a snižování nadmořské výšky: pomocí barometrického senzoru.
* Nadmořská výška se zobrazuje v EGM2008 (nad průměrnou hladinou moře); exportuje se jako WGS84
* Hlasová hlášení
Sportovní a venkovní aktivity přinášejí štěstí, dovednosti a sebevědomí.
Važte si svého zdraví tím, že budete sledovat svůj trénink.
Zaznamenává, jak běžíte nebo jdete, a poskytuje vám cyklistický počítač s větší obrazovkou pro jízdu na kole.
Označte si zajímavá místa na své cestě pomocí obrázků.
Uchovávejte zaznamenané statistiky ve velkých podrobnostech pro analýzu.
Sdílejte pouze data, která chcete, aby měli ostatní.
* Hlasová oznámení.
* Podporuje snímače Bluetooth LE: srdeční tep, rychlost a vzdálenost (cyklistika), kadence (cyklistika) a měřič výkonu (cyklistika).
* Export dat: export tras ve formátu KMZ (včetně fotografií), KML nebo GPX.
* Bez přístupu k internetu: Internet se nepoužívá
* Zvyšování a snižování nadmořské výšky: prostřednictvím barometrického snímače.
* Nadmořská výška zobrazená v EGM2008 (nad průměrnou hladinou moře); exportována jako WGS84.
* Export dat ve formě stop ve formátu KMZ (včetně fotografií), KML nebo GPX.
* Není nutný přístup k internetu ani další oprávnění.
* Tmavé a světlé téma, respektující nastavení systému.
* Žádné reklamy.
Svobodný software / Open Source
což znamená, že zdrojový kód můžete používat, studovat, měnit a sdílet.
Licence Apache 2.0
@@ -1 +1 @@
Sportovní tracker, který zcela respektuje vaše soukromí.
Sportovní tracker, který respektuje vaše soukromí.
@@ -0,0 +1,11 @@
v4.7.0: OpenTracks
Changes:
- Statistics: distance, total time, and moving time are included between automatic segments (created due to distance too previous location too long)
- Recorded tracks show sensor statistics again
Bugfix:
- GPX exporter: for automatic segments their might be no location
- CSV exporter: distance didn't use decimal grouping
@@ -0,0 +1,8 @@
v4.7.1: OpenTracks
Bugfixes:
- Android 14: crash on recording start (missing permissions)
- Android 14: crash on track deletion (ForegroundService without reason)
Developer:
- AggregatedStats is now a RecyclerView
@@ -0,0 +1,11 @@
v4.8.0: OpenTracks
Changes:
- Permission: ACCESS_BACKGROUND_LOCATION is required due to API
- Preparation for time-based idle detection
- Drop distinguishing the source (GPS vs BLE sensors) for stored data
Developer:
- removed race condition workarounds (TrackRecordingService and GpsStatusManager)
- TrackRecordingServiceConnection handles service shutdown
@@ -0,0 +1,5 @@
v4.8.1: OpenTracks
Bugfix:
- Location permission was not granted due to ACCESS_LOCATION_BACKGROUND (removed)
@@ -0,0 +1,5 @@
v4.8.2: OpenTracks
Changes:
- After recording export: show error message if unsuccessful
@@ -0,0 +1,8 @@
v4.8.3: OpenTracks
Bugfix:
- Android 14: prevent crash due to malformed UUID (example for filename template)
Developer:
- Marker list is now a RecyclerView
@@ -0,0 +1,7 @@
v4.8.4: OpenTracks
Changes:
- Show max power for recorded tracks
Developer:
- TrackList now uses RecyclerView
@@ -0,0 +1,23 @@
v4.9.0: OpenTracks
NOTE: BREAKING CHANGE
This release changes how OpenTracks determines moving and not moving.
Until now, the speed (GPS or sensor) was used by a applying a threshold (e.g., less than 0.3 m/s).
However, this may be very noise.
From now on, a timeout duration is used (i.e., no significant change of position in the last X seconds).
This duration is user configurable.
The events of becoming idle are stored in the database incl. a timestamp, so statistics can be re-computed.
A downgrade from this version is not implemented.
Please backup all before upgrading.
Changes:
- Idle detection uses "no movement" duration rather than speed too low
- Added scooter activity
Bugfix:
- While recording, TrackList showed all tracks as recording
Developer:
- Re-enabled Github action executing tests
@@ -0,0 +1,4 @@
v4.3.4: OpenTracks
Bugfix:
- Android 13: regional locales could not be selected (introduced in v4.3.0)
@@ -0,0 +1,5 @@
v4.3.5: OpenTracks
Bugfix:
- Sensor parsing had a overflow one off bug (#1559)
- Insert marker: don't crash if no camera app is installed (#1561)
@@ -0,0 +1,8 @@
v4.6.2: OpenTracks
Arranxos:
- Fallo da app cos anuncios por voz para imperial+métrico
- Fallo nos axustes para imperial+métrico
- Arranxo da inconsistencia nas gráficas (actualización Material3)
- Perda do permiso Bluetooth
- Estatítiscas acumuladas da velocidade media non mostraban unidades imperiais
@@ -0,0 +1,9 @@
v4.7.0 OpenTracks
Cambios:
- Estatísticas: inclúese distancia, tempo total e tempo en movemento entre os segmentos automáticos (creado debido a que a distancia á localización anterior era demasiado grande)
- As rutas gravadas volven a mostrar estatísticas do sensor outra vez
Arranxos:
- GPX exporter: para os segmentos automáticos que poderían non ter localización
- CSV exporter: a distancia non usaba o agrupamento con decimal
@@ -0,0 +1,8 @@
v4.7.1: OpenTracks
Arranxos:
- Android 14: fallo ao inicio da gravación (por falta de permisos)
- Android 14: fallo ao eliminar unha ruta (sen razóns para ForegroundService)
Desenvolvemento:
- agora AggregatedStats é unha RecyclerView
@@ -0,0 +1,10 @@
v4.8.0: OpenTracks
Cambios:
- Permiso: ACCESS_BACKGROUND_LOCATION é requerido debido á API
- Preparación para a detección da pausa en función do tempoPreparation for time-based idle detection
- Retirada da distinción por orixe nos datos gardados (sensores GPS vs. BLE)
Desenvolvemento:
- retirados algúns atallos no código que entraban en conflito (TrackRecordingService e GpsStatusManager)
- TrackRecordingServiceConnection xestiona o apagado do servizo
@@ -0,0 +1,4 @@
v4.8.1: OpenTracks
Arranxo:
- Non se concedía o permiso de localización debido a ACCESS_LOCATION_BACKGROUND (eliminado)
@@ -0,0 +1,4 @@
v4.8.2: OpenTracks
Cambios:
- Apos exportar as gravacións: mostra mensaxe de aviso se falla
@@ -0,0 +1,8 @@
v4.8.3: OpenTracks
Arranxos:
- Android 14: evitar o peche da app debido a un UUID mal formado (ex. no modelo do nome de ficheiro)
Desenvolvemento:
- A lista Marker agora usa RecyclerView
@@ -0,0 +1,7 @@
v4.8.4: OpenTracks
Cambios:
- Mostra a potencia máxima nas rutas gravadas
Desenvolvemento:
- agora TrackList usa RecyclerView
@@ -0,0 +1,15 @@
v3.0.0: OpenTracks
Eerste release van OpenTracks (d.w.z., directe afleiding van MyTracks)
Veranderingen:
- Rebranded van MyTracks naar OpenTracks
- Bluetooth LE hartslagsensor toegevoegd
- Alle functies verwijderd die internettoegang vereisen
- Google Maps-integratie verwijderd
- Verwijderd gebruik van Google Play-services
- ANT + sensoren verwijderd
- Bluetooth klassieke sensoren verwijderd
- Protobuf verwijderd
- Verwijderde calorieschatting en activiteitsschatting
- MyTracks Service API verwijderd (d.w.z., geen integratie met andere apps)
@@ -0,0 +1,17 @@
v3.0.1: OpenTracks
Veranderingen:
- Deel markeringen
- Geherstructureerde instellingen
- Verwijderde actiebalk terugknop
- Exporteren: optie voor het verwijderen van foto-instellingen
- Exporteren: KML als formaat is nu selecteerbaar
Bugfixes :
- exportdirectory is nu / OpenTracks /
- landschapsmodus crasht niet
- vaste KML / KMZ-export
Ontwikkelaar:
- Test is uitvoerbaar (maar veel mislukken)
- Continue integratie met TravisCI mogelijk gemaakt (geen tests)
@@ -0,0 +1,14 @@
v3.1.0: OpenTracks
Veranderingen:
- Show track toegevoegd in kaart-apps (getest met OsmAnd en Maps.ME)
- Toegevoegd tijdens het volgen, trackstatistieken weergeven zonder het apparaat te ontgrendelen
- Verwijderde landschapsmodus voor weergave van trackdetails (was buggy)
- Geschiedenis van zoeksuggesties verwijderd
Bugfix :
- Vraag opslagvergunning aan voor import alles / export alles
Ontwikkelaar:
- Upgrade naar Gradle 5.6
- Minificeer niet de release builds
@@ -0,0 +1,16 @@
v3.2.0: OpenTracks
Veranderingen:
- Widget verwijderd
- Geïntroduceerde pictogrammen voor materiaalontwerp
- Snowboarden en skiën verwijderd (nieuwe pictogrammen nodig)
Bugfix :
- Vaste zoekfunctionaliteit
Ontwikkelaar:
- (Sommige) testgevallen opgelost
- Ongebruikte pakketfunctionaliteit verwijderd
- Grote schoonmaak en herformulering
- Gebruik geen uitzending voor app om communicatie te widgeten
- stats_content.xml bevat geen andere bestanden
@@ -0,0 +1,7 @@
v3.2.1: OpenTracks
Veranderingen:
- Instellingen staan nu op één pagina
Ontwikkelaar:
- Instellingen verplaatst naar Androidx-compatibel (gebruikt fragmenten)
@@ -0,0 +1,13 @@
v3.2.2: OpenTracks
Veranderingen:
- Geaggregeerde statistieken verwijderd
- Gegraapt naar materiaalontwerp
Bugfix :
- Vaste export van sensorgegevens
- Vaste invoer van onvolledige sensorgegevens
Ontwikkelaar:
- Vervangen actiebalk met werkbalk
- Gemigreerd naar Android Appcompat (incl. Materiaalontwerp)
@@ -0,0 +1,14 @@
v3.2.3: OpenTracks
Veranderingen:
- Delen: gebruik Android Sharesheet
- Delen: deel meerdere nummers als individuele bestanden
- Gebruik Android ShareSheet
- Hartslagsensor (Bluetooth LE): automatisch opnieuw verbinden
Bugfix :
- Hartslagsensor (Bluetooth LE): de verbinding goed verbreken
- Hartslag werd niet altijd getoond tijdens het opnemen
Ontwikkelaar:
- TravisCI-instrumentatietests ingeschakeld
@@ -0,0 +1,5 @@
v3.2.4: OpenTracks
Bugfix :
- Instellingenactiviteit crasht
Mogelijkheid verwijderd om de spraak- / splitsingsfrequentie te wijzigen in het contextmenu
@@ -0,0 +1,15 @@
v3.2.5: OpenTracks
Veranderingen:
- Verandering van activiteit uitschakelen
- Toestemming toevoegen voor Android 10: locatiegegevens vastleggen
Bugfix :
- Instellingen voor resetten repareren
Ontwikkelaar:
- Voorkeuren
- als Instellingen niet kunnen worden geladen, reset dan alle voorkeuren
- de toegang tot voorkeuren verplaatst naar PreferencesUtil
- verplaatst standaard van voorkeuren van code naar xml
- gebruik SummaryProvider
@@ -0,0 +1,8 @@
v3.2.6: OpenTracks
Veranderingen:
- Hartslagmeter: scan op beschikbare apparaten
- Snelkoppeling naar Bluetooth-instellingen verwijderen
Ontwikkelaar:
- Voorkeuren: verplaatst standaard van voorkeuren van code naar xml
@@ -0,0 +1,10 @@
v3.2.7: OpenTracks
Veranderingen:
- Kennisgeving toont GPS-nauwkeurigheid
- Toon heads-upmelding als de GPS-nauwkeurigheid boven de drempel daalt
- Toon altijd een grafiek op tijd en op afstand
- Hulp toegevoegd (in instellingen)
Bugfix :
- TrackDetailActivity: uitgeschakelde niet-werkende landschapsmodus (tijdelijk)
@@ -0,0 +1,10 @@
v3.2.8: OpenTracks
Veranderingen:
- Grafiek: zoom via gebaren
Bugfixes :
- Exporteren via KMZ heeft de beeldbestandsnamen niet correct geëxporteerd
- Het delen van meerdere nummers bevatte geen KMZ-bestanden
- De gebruikersinterface van MarkerDetailActivity werd niet getoond
- Instellingen crashten als de voorkeur voor hartslag niet werd geïnitialiseerd
@@ -0,0 +1,10 @@
v3.2.9: OpenTracks
Veranderingen:
- Optie om het scherm aan te houden tijdens het opnemen
- Markeringen: verwijderde gesplitste markeringen volledig
- Stemaankondiging werkt nu zonder READ_PHONE_STATE-toestemming
Bugfixes :
- Statistieken: hartslag werd niet getoond
- Statistieken: de tijd werd kort teruggezet naar 0s
@@ -0,0 +1,11 @@
v3.2.10: OpenTracks
Veranderingen:
- ChartView is niet meer configureerbaar
- Na herstart: automatische herstart van een onvoltooide opname verwijderd
Bugfix :
- Aankondigingen van toespraken gebruiken MAY_DUCK (opnieuw)
- ChartView toont (opnieuw) markeringen
- Opname met vast landschap Afstalling van TrackListActivity
- Verzoek om verouderd API-gedrag van bestanden (noodzakelijk voor Android 10)
@@ -0,0 +1,12 @@
v3.2.11: OpenTracks
Bug:
- Max snelheid is identiek aan gem. Snelheid
Bugfix :
- Crash op hartslagsensorselectie
Ontwikkelaar:
- TabHost vervangen door TabsLayout
- Speciale eerste waypoint verwijderd
- Dubbele vertalingen verwijderd
@@ -0,0 +1,13 @@
v3.3.0: OpenTracks
Doorbrekende veranderingen :
- Afbeeldingen worden nu opgeslagen in app-privéopslag (laat geen andere foto-apps zien)
OPMERKING: foto's maken met vorige versie kunnen niet worden weergegeven
- Lokalisatie voor Spaans (Latijns-Amerika) werkt alleen op Android 7.0 of hoger
Veranderingen:
- Importeren / exporteren via Storage Access Framework (vermeld READ / WRITE_EXTERNAL_STORAGE toestemming)
Ontwikkelaar:
- Opgeschoonde interne gegevensstructuren
- Gebruik afzonderlijke pictogrammen / app-namen voor debug-versie
@@ -0,0 +1,12 @@
v3.3.1: OpenTracks
Veranderingen:
- Android 10: laat bij het verwijderen app-gegevens behouden
- Geïntroduceerde Dashboard API: kaartpictogram kan worden gebruikt om de huidige track in de externe app te openen
(vereist installatie van een andere app zoals OSMDashboard)
Bugfix :
- App-label is verbroken (geïntroduceerd in v3.3.0)
Ontwikkelaar:
- Documentatie voor Dashboard API is te vinden in README_DEVELOPER.md
@@ -0,0 +1,11 @@
v3.3.2: OpenTracks
Veranderingen:
- Exporteren: overschrijft nu bestanden
Bugfix :
- Verwijder altijd de opnamemelding
Ontwikkelaar:
- Op API 26+ java.time wordt gebruikt voor het parseren en schrijven van datums
- Refactoring van TrackRecordingService
@@ -0,0 +1,12 @@
v3.4.0: OpenTracks
Veranderingen:
- Dashboard API: meerdere tracks
- Bijgewerkte hulp
Bugfix :
- Vaste crash bij het opnieuw creëren van fragmenten
- Bij pauzeren: voorkom het stoppen van de app
Ontwikkelaar:
- Tests mogelijk maken via CI (Github Actions en TravisCI)
@@ -0,0 +1,14 @@
v3.5.0: OpenTracks
Veranderingen:
- Marker: selecteer afbeeldingen uit galerij
- Marker: deel foto
- Gebruik tracknaam als bestandsnaam bij het delen
- Verwijderde hoogte min / max (was onnauwkeurig)
Bugfix :
- Grafieken gebruiken voorkeurseenheden en tarief
Ontwikkelaar:
- Database: verwijder ongebruikte kolommen
- Database: voeg indices toe
@@ -0,0 +1,10 @@
v3.6.0: OpenTracks
Veranderingen:
- Gestopte nummers kunnen nu worden hervat
Bugfix :
- Import van KMZ heeft de foto-URL niet correct verwerkt
Ontwikkelaar:
- Vereenvoudigde gegevensverwerking
@@ -0,0 +1,4 @@
v3.6.1: OpenTracks
Bugfix :
- KMZ import: bewaar correct beeldpad
@@ -0,0 +1,4 @@
v3.6.2: OpenTracks
Bugfix :
- Grafieken zijn niet correct weergegeven (geïntroduceerd in v3.6.0)
@@ -0,0 +1,13 @@
v3.7.0: OpenTracks
Veranderingen:
- Rapporteer snelheid / ruimte per activiteitstype
- Toegevoegde oplossing voor het doorrollen van GPS-weken
- (Experimenteel) Ondersteuning voor Bluetooth LE fietssensoren (cadentie en snelheid)
- KMZ / KML-import verbeterd
Bugfix :
- KMZ-import: importeer alleen gebruikte afbeeldingen
Ontwikkelaar:
- Gerefactureerde trackopnameservice
@@ -0,0 +1,7 @@
v3.7.1: OpenTracks
Tijdelijke oplossing:
- Verberg de GPS-knop
Bugfix :
- Vaste null-aanwijzer
@@ -0,0 +1,6 @@
v3.7.2: OpenTracks
Bugfix :
- Opnieuw toegevoegd start GPS-knop
- Tracknaam wordt niet overschreven aan het einde van een opname
- Markeringen: het verwijderen van een foto verwijdert ook het bestand
@@ -0,0 +1,7 @@
v3.7.3: OpenTracks
Bugfix :
- Berekening van cadans en snelheid (via Bluetooth LE-sensor)
Ontwikkelaar:
- Ongebruikte vertalingen verwijderd
@@ -0,0 +1,12 @@
v3.7.4: OpenTracks
Veranderingen:
- Configureerbaar formaat delen / exporteren
Bugfix :
- Wieldiameter niet correct opgeslagen (voor snelheidssensor)
- Help: links zijn klikbaar
Ontwikkelaar:
- Split TrackDetailActivity
- De opvolger van StatsFragement gebruikt ConstraintLayout
@@ -0,0 +1,11 @@
v3.7.5: OpenTracks
Veranderingen:
- Samenvatting van geaggregeerde statistieken toegevoegd (vanaf het hoofdmenu van het scherm)
- Dashboard API: geef "show on lock screen" - en "houd scherm aan" -instelling door
- Bijgewerkte vertalingen
- Importeren: mild zijn met ISO8601-datumformaat
- Toon track op kaart: bestandsindeling kan worden geselecteerd en het openen van dashboard werkt op Android R (API 30+)
Bugfix :
- App-pictogram nu correct geïmplementeerd
@@ -0,0 +1,11 @@
v3.7.6: OpenTracks
Veranderingen:
- Landschapsmodus
- Trackverwijdering UI is nu slechts een spinner
- Snelheid wordt geëxporteerd en geïmporteerd (GPX / KML / KMZ)
- Standaard exportformaat is KMZ incl. alle gegevens en afbeeldingen
Ontwikkelaar:
- Vervangen AsyncTasks met Threads
- Synchronisatie: UUID wordt gegenereerd per track (nog niet geëxporteerd)
@@ -0,0 +1,16 @@
v3.8.0: OpenTracks
Essentiële verandering:
- GPX import / export snelheid, cadans en hartslag via TrackPointExtension / v2
Veranderingen:
- Dashboard API: geef toegang tot markeringen (incl. callback om te laten zien in OpenTracks)
- Nieuw markeringspictogram (oranje pin, SVG)
- Te importeren bestanden kunnen worden geselecteerd via bestandsbeheer
Bugfixes :
- Geaggregeerde statistieken UI respecteert het voorkeurspercentage
- Het bewerken van een marker is mislukt bij oriëntatieverandering
Ontwikkelaar:
- Gerefactureerde trackopnameservice
@@ -0,0 +1,8 @@
v3.8.1: OpenTracks
Veranderingen:
- Tijdens het opnemen: voeg optie toe voor volledig scherm
- Dashboard is voor dezelfde taak gestart
Bugfixes :
- Intentiefilters voor het importeren van bestanden waren veel te optimistisch
@@ -0,0 +1,14 @@
v3.9.0: OpenTracks
Veranderingen:
- Exporteer tracks met hun UUID
- Voorkom import van reeds bestaande tracks door UUID (configureerbaar; standaard ja)
- Pauze / stop-knop vereist nu lange druk
- GPS-voorstart toont de status van fix
- Nieuwe activiteitspictogrammen toegevoegd
- Snelheidssensor: wielen worden nu configureerbaar in millimeter
Bugfixes :
- Enkele zeldzame crashes (NPE) opgelost
- Tempo-opmaak gecorrigeerd
- App-pictogram in launcher verplaatst
@@ -0,0 +1,4 @@
v3.9.1: OpenTracks
Bugfixes :
- GPS-voorstart toont de status van fix
@@ -0,0 +1,5 @@
v3.9.2: OpenTracks
Bugfixes :
- Sluiten op API<25 verholpen (vanwege een animatie)
- Reset de opnametoestand (bij het opstarten van de app) als deze tijdens het opnemen is gecrasht
@@ -0,0 +1,4 @@
v3.9.3: OpenTracks
Bugfixes :
- Fout bij export van alle tracks opgelost.
@@ -0,0 +1,10 @@
v3.9.4: OpenTracks
Veranderingen:
- Intervalberekening toegevoegd
- Spraakaankondigingen presenteren statistieken van het laatste interval
- Instellingen: Bluetooth-pictogram is geanimeerd
Bugfix :
- GPS is niet uitgeschakeld bij het stoppen van een opname
- Toon op kaart via KML / KMZ / GPX is gebroken door refactoring
@@ -0,0 +1,8 @@
v3.9.5: OpenTracks
Veranderingen:
- UI toont snelheid slechts met één fractioneel cijfer
Bugfix :
- App crash op zoek (vanwege Track.Id refactoring)
- Tracklijst liet nu zien of er een opname aan de gang was (vanwege Track.Id-refactoring)
@@ -0,0 +1,10 @@
v3.10.0: OpenTracks
Veranderingen:
- Hoogtetoename via barometer
- Voeg een spatscherm toe
- Android 11 / F-Droid: downgrade naar targetSDK 29 (v1-handtekening)
zie https://gitlab.com/fdroid/fdroidserver/-/issues/827
Bugfix :
- Verschillende oplossingen vanwege trackId-refactoring
@@ -0,0 +1,10 @@
v3.11.0: OpenTracks
Veranderingen:
- Theming: dag / nacht-modus (standaard: nacht)
- Theming: gebruik Material Design in plaats van aangepaste elemententhema's
- Gebruik opnieuw targetSDK 30 (F-Droid tekent nu met V2)
Bugfix :
- Android 11: export crashte allemaal
- TrackDetail niet bijgewerkt in gebruikersinterface nadat de gegevens door de gebruiker zijn gewijzigd
@@ -0,0 +1,4 @@
v3.11.1: OpenTracks
Bugfix :
- Spraakaankondigingen rapporteerden verkeerde statistieken
@@ -0,0 +1,22 @@
v3.12.0: OpenTracks
Veranderingen:
- Bluetooth-sensoradressen
- Intervallen: hoogteverschil weergeven
- Exporteren: standaard exportdirectory
- Exporteren: automatische export na het voltooien van een track
- Handmatige import / export: nieuwe gebruikersinterface
- Handmatige export: optie om te overschrijven bij handmatige export
Sneller:
- Tracklijsten laden
- Meerdere nummers verwijderen
Bugfix :
- Filters met vaste bedoeling voor import
- KMZ kon niet worden geparseerd
- Exporteren: crash op Android 11 oplossen
Ontwikkelaar:
- Gebruik ViewBindings
- Database handhaaft buitenlandse sleutel en gebruikt cascade-verwijderingen
@@ -0,0 +1,10 @@
v3.13.0: OpenTracks
Veranderingen:
- Sensor: ondersteuning voor powermeter (BLE)
- Zoeken op track en marker (in lijsten)
- Gecombineerd zoeken verwijderd
Bugfix :
- Import crashte in gebruikersinterface
- Afbeeldingen van markeringen zijn niet geïmporteerd
@@ -0,0 +1,5 @@
v3.13.1: OpenTracks
Bugfix :
- Crash bij recordstart: minifiëren / verkleinen verwijderde een teken
- Automatische export is stil mislukt (voornamelijk afgelegen bestemmingen)
@@ -0,0 +1,4 @@
v3.13.2: OpenTracks
Bugfix :
- Crash in landschapsmodus
@@ -0,0 +1,10 @@
v3.14.0: OpenTracks
Veranderingen:
- Juiste ondersteuning voor van rechts naar links
- Importeren: snellere opruiming na importstoring
- Tekst in grafiekenschalen volgens Android-instellingen
- Hartslag: ondersteuning voor Huami-apparaten (vereist Gadgetbridge)
Ontwikkelaar:
- Import wordt nu in het geheugen afgehandeld
@@ -0,0 +1,14 @@
v3.14.1: OpenTracks
Veranderingen:
- Toegevoegd hoogteverlies (via barometer)
- Bijgewerkte vertalingen (cz, gl, it, nb, pl, pt, sp)
- Markeringen kunnen worden gedeeld vanuit de lijst
- Actionbar-pictogram (linksboven) om terug te gaan
Bugfix :
- Potentiële crash bij import
Ontwikkelaar:
- Implementeerde basis EspressoUI-test
- Referentie resourceIds via in plaats van switch / case
@@ -0,0 +1,10 @@
v3.14.2: OpenTracks
Veranderingen:
- Downgrade database van aankomende release v3.15.0
- UI importeren / exporteren verbeterd
- Importaanbiedingen om geïmporteerde track te tonen
- De prestaties van de markerlijst zijn verbeterd
Ontwikkelaar:
- Track.Id / Marker.Id: gebruik null
@@ -0,0 +1,4 @@
v3.14.3: OpenTracks
Bugfix :
- Downgrading database van aankomende release v3.15.0
@@ -0,0 +1,22 @@
v3.15.0: OpenTracks
WAARSCHUWING :
Deze release past databasebewegingen toe die NIET KUNNEN WORDEN OMGEVERD
Aangezien KMZ / KML ook gedragsveranderingen exporteert / importeert, wordt aanbevolen om (A) een back-up te maken VOORDAT u upgradet en (B) daarna.
Aanbevolen formaat: KMZ .
Essentiële veranderingen:
- Interne opslag van spoorsegmenten wordt gewijzigd
(door de gebruiker gegenereerde gebeurtenissen worden nu beschouwd als trackpoints zonder locatie maar met tijdstempel)
- Apparaattijd in plaats van GPS-tijd wordt opgeslagen
(bestaande gegevens worden niet gewijzigd)
- Dashboard API v2
(upgrade OSMDashboard 2.10.0)
Veranderingen:
- KML / KMZ kan worden gebruikt om een back-up te maken en precies te herstellen (incl. statistieken)
Ontwikkelaar:
- Herwerkte spoorsegmentatie en de opslag ervan (voorheen PAUSE / RESUME-markering)
- TrackStatistics worden uitsluitend berekend met TrackPoints
- Lang vervangen door Instant / Duration
@@ -0,0 +1,7 @@
v3.15.1: OpenTracks
Veranderingen:
- Na opname sensorstatistieken weergeven (bijv., gem. HR)
Bugfix :
- Crash bij opname begint met showbreedtegraad / lengtegraad ingeschakeld
@@ -0,0 +1,7 @@
v3.15.2: OpenTracks
Veranderingen:
- Bijgewerkte vertalingen
Bugfix :
- Crash bij GPX-export
@@ -0,0 +1,8 @@
v3.15.3: OpenTracks
Veranderingen:
- Berekening gem.v. / max: hartslag, cadans en kracht
Bugfix :
- KML / KMZ exporteren geen # start / # eindplaatsmarkeringen meer
- Tijdens het opnemen: snelheid / locatie werd soms vals weergegeven als 0.
@@ -0,0 +1,4 @@
v3.15.4: OpenTracks
Bugfix :
- Het interval voor stemaankondigingen moet in hele minuten zijn (geïntroduceerd in v3.15.0)
@@ -0,0 +1,13 @@
v3.16.0: OpenTracks
Veranderingen:
- Fietsen: neem afstand van de BLE-snelheidssensor
- Herwerkte gebruikersinterface gepresenteerd tijdens het opnemen
- UI-prestatieoptimalisaties
- Geëxporteerde bestandsnamen: <Eerste 32bits UUID> _ <tracknaam>.<extensie>
- Importeer meerdere bestanden via Intent (bijv., van Gadgetbridge)
- GPX: export van stroomgegevens
- Bijgewerkte vertalingen
Bugfix :
- Spraakaankondiging gebruikt minuten correct
@@ -0,0 +1,17 @@
v3.17.0: OpenTracks
Veranderingen:
- Pictogram toevoegen voor kajakken
- Grafieken tekenen ontbrekende sensorgegevens correct
- Standaard: toon coördinaten tijdens het opnemen
Bugfixes :
- GPX-schema gecorrigeerd
- GPX exporteerde hoogteverlies als sensorafstand
- Statistieken niet correct berekend bij gebruik van een snelheids- / afstandssensor
Ontwikkelaar:
- Afstand / snelheidswaardeobjecten
- Vervangen communicatie via SharedPreferences
- Gebruik een niet-statisch servicebindmiddel
- Gebruik hoogte in de codebasis (in plaats van hoogte)
@@ -0,0 +1,6 @@
v3.17.1: OpenTracks
Bugfix :
- Intervallengte in meters in plaats van kilometers (geïntroduceerd in v3.17.0)
- Hoogteversterking / -verlies niet geregistreerd (geïntroduceerd in v3.17.0)
- Aankondigingen werken niet op Android 11
@@ -0,0 +1,8 @@
v3.17.2: OpenTracks
WAARSCHUWING: De v3.17.0 + releases bevatten een geheugenlek.
Deze problemen zijn NIET opgelost door deze release.
Het wordt aanbevolen om niet te upgraden als u nog steeds een release gebruikt vóór v3.17.0
Bugfix :
- Crash tijdens het gebruik van spraakaankondigingen
@@ -0,0 +1,10 @@
v3.17.3: OpenTracks
WAARSCHUWING: De v3.17.0 + releases bevatten een geheugenlek.
Deze problemen zijn NIET opgelost door deze release.
Het wordt aanbevolen om niet te upgraden als u nog steeds een release gebruikt vóór v3.17.0
Bugfix :
- Crash als je tempo gebruikt voor spraakaankondigingen (geïntroduceerd in v3.17.0)
- Statistieken lieten aanvankelijk tempo zien (geïntroduceerd in v3.17.0)
- Zeldzame crash bij het verwijderen van nummers
@@ -0,0 +1,15 @@
v3.18.0: OpenTracks
Veranderingen:
- Hoogte wordt getoond in EGM2008 (opgeslagen / geëxporteerd als WGS84)
Bugfix :
- Vast geheugenlek (geïntroduceerd in v3.17.0)
- Grafieken: hoogte moet in M / FT zijn (geïntroduceerd in v3.17.1)
- Grafieken: terwijl de opname niet correct is bijgewerkt (geïntroduceerd in v3.17.3)
- TrackDataHub hield geen rekening met opnameDistanceInterval (geïntroduceerd in v3.17.2)
Ontwikkelaar:
- Schakel PNG-crunching uit (reproduceerbare build)
- Gerefactureerde TrackImporter en geoptimaliseerde KMZ-import
- Gebruik LiveData voor TrackRecordingService naar UI-communicatie (herstel van geheugenlek)
@@ -0,0 +1,13 @@
v3.18.1: OpenTracks
Veranderingen:
- Het verwijderen van tracks wordt afgehandeld door een service
- Verwijderen verwijdert alle gegevens (d.w.z., hasFragileData = false)
Bugfixes :
- Raceconditie: crash tijdens het opnemen en omschakelen van OpenTracks naar de achtergrond
- Zoeken in tracklijst werkte niet
- Fietssnelheidssensor: afstandsberekening was verkeerd (alleen getroffen statistieken)
Ontwikkelaar:
- ControllerFragment vervangt TrackController
@@ -0,0 +1,7 @@
v3.18.2: OpenTracks
Bugfix :
- Crash tijdens het overstappen van grafieken naar een andere activiteit / app # 787
Ontwikkelaar:
- TrackRecordingService duwt gegevens tijdens het opnemen naar UI
@@ -0,0 +1,13 @@
v3.18.3: OpenTracks
Veranderingen:
- KML-verwerking vereist geen volgorde van when/gx:coords
- Importeur volgen: locaties opnieuw bestellen op tijdstempel
- Verwijderde pictogrammen voor gerenderde opstartprogramma's voor Android <8.0.0 (API 26)
(ziet er misschien iets anders uit, maar vermijd problemen voor reproduceerbare builds)
Bugfix :
- Vermijd crash in hitlijsten vanwege raceconditie
Ontwikkelaar:
- Gesplitste GPX- en KML-importeur (verwijderde algemene erfenis)
@@ -0,0 +1,10 @@
v3.18.4: OpenTracks
Veranderingen:
- Snelheid / afstand worden consistent geformatteerd
- Het tabblad Intervallen is nu sneller
Bugfix :
- Fietssnelheid / afstandssensor:
- vaste parsing (UINT32)
- gegevens correct naar gebruikersinterface verzenden
@@ -0,0 +1,8 @@
v3.19.1: OpenTracks
Veranderingen:
- Vertalingen bijgewerkt.
Bugfix :
- Exporteer alle tracks bug opgelost.
- Hervatten Track bug opgelost.
@@ -0,0 +1,7 @@
v3.20.0: OpenTracks
Veranderingen:
- Tijdens het opnemen: statistieken UI is nu configureerbaar
Bugfix :
- Het wijzigen van tracknaam/categorie tijdens het opnemen werd genegeerd (geïntroduceerd in v3.19.0)
@@ -0,0 +1,6 @@
v3.20.1: OpenTracks
Veranderingen:
- Aankondigingen kunnen nu zowel op afstand als op tijd worden gebruikt
- Aankondigingen piepen als er geen tekst-naar-spraak-software is geïnstalleerd
- Adaptieve GPS-locatiefrequentie verwijderd
@@ -0,0 +1,11 @@
v3.20.2: OpenTracks
Veranderingen:
- Hoogtetoename en -verlies zijn gehele getallen in plaats van decimalen
- Vraag toestemming voordat u Bluetooth gebruikt via een Toast-bericht
Bugfix :
- Stel FLAG_IMMUTABLE in voor PendingIntents om crash op Android 12 te voorkomen
- Cadans-sensor geeft 0 in plaats van Geen wanneer de gebruiker niet trapt
- Snelheidssensor geeft 0 in plaats van de laatste snelheid wanneer er is gestopt
- Met sensoren stopt de bewegende tijd wanneer deze niet beweegt
@@ -0,0 +1,19 @@
v3.21.0: OpenTracks
Veranderingen:
- Tijdens het opnemen: verwijder het inactief / niet-inactief maken van TrackPoints
- Instellingen bevinden zich nu in afzonderlijke mappen
- OpenTracks openen vanaf melding (tijdens opname) en terugzetten opent tracklijst
- GPX-compatibiliteit: ondersteuning <snelheid> voor import
Bugfixes :
- Hoogte en afstand (van BlE-sensor): reset alleen tellers als er daadwerkelijk gegevens zijn opgeslagen
- Import zonder snelheid, vereist rekensnelheid
- Niet-aangesloten BLE-loopsensor mag niet als aanwezig worden gerapporteerd
- BLE-runningsensor: toon gegevens tijdens het opnemen
- Activiteitstype-pictogram is niet bijgewerkt tijdens het wijzigen van activiteit
Ontwikkelaar:
- SharedPrefences via statische referentie
- Tests worden uitgevoerd tegen in-memory database
- TrackRecordingManager houdt de laatste TrackPoint in het geheugen
@@ -0,0 +1,11 @@
v3.22.0: OpenTracks
Veranderingen:
- Locaties worden alleen opgeslagen als de afgelegde afstand> het opnameafstandsinterval
(verwijderde overgebleven functionaliteit van stationaire / niet-inactieve detectie)
- UI kan worden geconfigureerd om een klok te tonen
- Stationair toerental is nu configureerbaar
Bugfix :
- Intervallen: crash wanneer winst maar geen verlies is opgeslagen
- Tijdens het opnemen: crash voorkomen bij het uitschakelen van spraakaankondigingen

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