Compare commits

...

37 Commits

Author SHA1 Message Date
Dennis Guse a5296c4cd9 Release: v4.17.0 2024-12-21 20:49:12 +01:00
Dennis Guse 522d9ebe2e Public API: allow marker creation.
Fixes #2031.
2024-12-21 20:46:09 +01:00
Dennis Guse 26c660ec5b Dashboard API: check if parameters are present before forwarding them.
Part of #2030.
2024-12-18 19:18:37 +01:00
Dennis Guse fd9646bb1f Bugfix: on idle detection reset movement-based sensor data.
Fixes #1995.
2024-12-17 07:18:24 +01:00
Aindriú Mac Giolla Eoin 4966ba8868 Translated using Weblate (Irish)
Currently translated at 100.0% (149 of 149 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/ga/
2024-12-14 20:00:49 +01:00
Patrick Santa Maria 6a8861b41b Translated using Weblate (Corsican)
Currently translated at 99.8% (531 of 532 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/co/
2024-12-12 23:01:02 +01:00
Stephan Paternotte 8dc20c48b7 Translated using Weblate (Dutch)
Currently translated at 100.0% (149 of 149 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2024-12-12 23:01:01 +01:00
Fjuro f2b8dc2e07 Translated using Weblate (Czech)
Currently translated at 100.0% (149 of 149 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2024-12-12 23:00:45 +01:00
Aindriú Mac Giolla Eoin 41ce088a0e Translated using Weblate (Irish)
Currently translated at 100.0% (148 of 148 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/ga/
2024-12-11 22:10:56 +01:00
Stephan Paternotte 782cefb4ff Translated using Weblate (Dutch)
Currently translated at 100.0% (148 of 148 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2024-12-11 22:10:55 +01:00
Fjuro 35a02a2f81 Translated using Weblate (Czech)
Currently translated at 100.0% (148 of 148 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2024-12-11 22:10:54 +01:00
ovl-1 8c35bd6f4f Translated using Weblate (Norwegian Bokmål)
Currently translated at 97.1% (517 of 532 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/
2024-12-11 22:10:53 +01:00
Simon Artus ad26ce795a Translated using Weblate (French)
Currently translated at 19.0% (28 of 147 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/fr/
2024-12-11 22:10:53 +01:00
Fjuro ed1e47213d Translated using Weblate (Czech)
Currently translated at 100.0% (147 of 147 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/cs/
2024-12-11 22:10:52 +01:00
Simon Artus cbb88fd1ae Translated using Weblate (French)
Currently translated at 94.7% (504 of 532 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/fr/
2024-12-11 22:10:52 +01:00
Aindriú Mac Giolla Eoin a6b808d5cf Translated using Weblate (Irish)
Currently translated at 100.0% (147 of 147 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/ga/
2024-12-11 22:10:51 +01:00
Aindriú Mac Giolla Eoin 9718377307 Translated using Weblate (Irish)
Currently translated at 100.0% (532 of 532 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/ga/
2024-12-11 22:10:50 +01:00
Patrick Santa Maria dbf0c3bfc9 Translated using Weblate (Corsican)
Currently translated at 99.8% (531 of 532 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/co/
2024-12-11 22:10:50 +01:00
Stephan Paternotte 8dff211a26 Translated using Weblate (Dutch)
Currently translated at 100.0% (147 of 147 strings)

Translation: OpenTracks/App store metadata files
Translate-URL: https://hosted.weblate.org/projects/opentracks/app-store-metadata-files/nl/
2024-12-11 22:10:49 +01:00
Stephan Paternotte 319079162c Translated using Weblate (Dutch)
Currently translated at 99.8% (531 of 532 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/
2024-12-11 22:10:48 +01:00
Stephan Paternotte 731c182a12 Translated using Weblate (Dutch)
Currently translated at 99.8% (531 of 532 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/
2024-12-11 22:10:48 +01:00
Ghost of Sparta 6c4bb8d536 Translated using Weblate (Hungarian)
Currently translated at 99.8% (531 of 532 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/hu/
2024-12-11 22:10:47 +01:00
josé m a42aefa752 Translated using Weblate (Galician)
Currently translated at 99.6% (530 of 532 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/
2024-12-11 22:10:47 +01:00
gallegonovato 2f489d73b0 Translated using Weblate (Spanish)
Currently translated at 99.8% (531 of 532 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/
2024-12-11 22:10:46 +01:00
Fjuro babd59f0ea Translated using Weblate (Czech)
Currently translated at 100.0% (532 of 532 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/
2024-12-11 22:10:46 +01:00
Stephan Paternotte 37b7277f1a Translated using Weblate (Dutch)
Currently translated at 99.8% (530 of 531 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/
2024-12-11 22:10:45 +01:00
Aindriú Mac Giolla Eoin ecb421248c Translated using Weblate (Irish)
Currently translated at 100.0% (531 of 531 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/ga/
2024-12-11 22:10:44 +01:00
Cloud Esp 42f53199a3 Translated using Weblate (French)
Currently translated at 94.7% (503 of 531 strings)

Translation: OpenTracks/opentracks.src-main-res-values-strings-xml--main
Translate-URL: https://hosted.weblate.org/projects/opentracks/opentracks-src-main-res-values-strings-xml-main/fr/
2024-12-11 22:10:44 +01:00
Fjuro 530b906f73 Translated using Weblate (Czech)
Currently translated at 100.0% (531 of 531 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/
2024-12-11 22:10:43 +01:00
Fjuro e4ebf97c27 Translated using Weblate (Czech)
Currently translated at 100.0% (531 of 531 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/
2024-12-11 22:10:43 +01:00
Dennis Guse e3cdc952a2 Release: v4.16.1 2024-12-11 22:10:30 +01:00
Dennis Guse aaf78e0b74 Settings: language chooser is now available for all Android versions.
Part of #1974
2024-12-11 22:06:09 +01:00
Dennis Guse c3a2c0d6d0 Github actions: checkout won't fetch tags unless we do a full clone. 2024-12-06 07:58:35 +01:00
Dennis Guse 05fbfcb914 Nightly build: provide details on build failure. 2024-12-06 07:24:13 +01:00
Dennis Guse 721b54b06f Release: v4.16.0 2024-12-05 18:03:58 +01:00
Dennis Guse b65230bc5d Bugfix: PublicAPI StartRecording recorded no data.
Problem was that the TrackRecordingService was not started as a ForegroundService anymore.

Fixes #1904.
2024-12-05 17:50:32 +01:00
dependabot[bot] 7c8fae66ef Bump com.android.tools.build:gradle from 8.7.2 to 8.7.3
Bumps com.android.tools.build:gradle from 8.7.2 to 8.7.3.

---
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>
2024-12-03 07:31:42 +01:00
43 changed files with 324 additions and 190 deletions
+3
View File
@@ -9,6 +9,9 @@ jobs:
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-tags: true
fetch-depth: 0 #TODO See https://github.com/actions/checkout/issues/1471
- uses: actions/setup-java@v4
with:
+5 -3
View File
@@ -1,5 +1,4 @@
name: Linting
on:
push:
pull_request:
@@ -10,12 +9,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- name: checkout
uses: actions/checkout@v4
with:
fetch-tags: true
fetch-depth: 0 #TODO See https://github.com/actions/checkout/issues/1471
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
distribution: 'adopt'
java-version: '17'
- run: ./gradlew lint
+3
View File
@@ -11,6 +11,9 @@ jobs:
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-tags: true
fetch-depth: 0 #TODO See https://github.com/actions/checkout/issues/1471
- uses: actions/setup-java@v4
with:
+9 -8
View File
@@ -109,19 +109,20 @@ The API can be invoked by sending an explicit Intent to start an activity.
* Debug: `de.dennisguse.opentracks.debug`
* Nightly: `de.dennisguse.opentracks.nightly`
`Class`:
`Classes`:
* **Start a recording:** `de.dennisguse.opentracks.publicapi.StartRecording`
* Set track data: `TRACK_NAME`, `TRACK_DESCRIPTION`, `TRACK_CATEGORY`, and `TRACK_ICON` (
non-localized identifier
see [/src/main/java/de/dennisguse/opentracks/util/TrackIconUtils.java#L38](/src/main/java/de/dennisguse/opentracks/util/TrackIconUtils.java#L38)).
NOTE: if `TRACK_ICON` is not present, `TRACK_CATEGORY` will be used to determine the icon (
localized).
* Send recorded data to another application via _Dashboard API_: `STATS_TARGET_PACKAGE` and
`STATS_TARGET_CLASS`
* **Stop a recording:** `de.dennisguse.opentracks.publicapi.StopRecording`
* **Create a marker:** `de.dennisguse.opentracks.publicapi.CreateMarker`
For testing via adb: `adb shell am start -e someParameter someValue -n "package/class"`
`StartRecording` supports the following parameters:
* Set track data: `TRACK_NAME`, `TRACK_DESCRIPTION`, `TRACK_CATEGORY`, and `TRACK_ICON` (non-localized identifier see [/src/main/java/de/dennisguse/opentracks/util/TrackIconUtils.java#L38](/src/main/java/de/dennisguse/opentracks/util/TrackIconUtils.java#L38)).
NOTE: if `TRACK_ICON` is not present, `TRACK_CATEGORY` will be used to determine the icon (localized).
* Send recorded data to another application via _Dashboard API_: `STATS_TARGET_PACKAGE` and `STATS_TARGET_CLASS`
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
+5 -5
View File
@@ -6,7 +6,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.7.2'
classpath 'com.android.tools.build:gradle:8.7.3'
}
}
@@ -26,7 +26,7 @@ def getVersionName = { ->
}
return stdout.toString().trim()
} catch (ignored) {
return null
throw new GradleException('VersionName could not be read:' + ignored.message)
}
}
@@ -39,7 +39,7 @@ def getVersionCode = { ->
}
return Integer.valueOf(stdout.toString().trim())
} catch (ignored) {
return null
throw new GradleException('VersionCode could not be read:' + ignored.message)
}
}
@@ -64,8 +64,8 @@ android {
defaultConfig {
applicationId "de.dennisguse.opentracks"
versionCode 5938
versionName "v4.15.0"
versionCode 5975
versionName "v4.17.0"
buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\""
@@ -0,0 +1,8 @@
v4.15.0: OpenTracks
Změny:
- Výběr jazyka v aplikaci (Android 14 nebo novější)
- Funkce zobrazit na mapě podporuje pouze aplikaci OSM Dashboard (odstraněno KML/KMZ nebo GPX)
Vývojář:
- GitHub Actions nyní používají Ubuntu
@@ -0,0 +1,4 @@
v4.16.0: OpenTracks
Oprava chyby:
- PublicAPI: spuštění záznamu nezaznamenalo žádná data
@@ -0,0 +1,8 @@
v4.16.1: OpenTracks
Změny:
- Výběr jazyka v aplikaci je nyní k dispozici pro všechny verze systému Android
(na základě velké poptávky)
Vývojář:
- GitHub Actions: při checkoutu se nestahovaly značky (noční aktualizace)
@@ -0,0 +1,5 @@
v4.16.0: OpenTracks
Bugfix:
- PublicAPI: starting a recording didn't record no data
@@ -0,0 +1,8 @@
v4.16.1: OpenTracks
Changes:
- In-app language selector now available for all Android versions
(due to some popular demand)
Developer:
- Github actions: checkout was not fetching tags (nightly)
@@ -0,0 +1,8 @@
v4.17.0: OpenTracks
Changes:
- Public API to create markers (while recording)
Bugfix:
- Sensors: on idle, set movement-based sensor data to 0
@@ -0,0 +1,7 @@
v4.14.1 : OpenTracks
Changements :
− La détection d’immobilité peut être désactivée
Correction de bogue :
− L’interface utilisateur pour ajouter des images aux marqueurs était cachée
@@ -0,0 +1,8 @@
v4.15.0 : OpenTracks
Changements :
− Sélection de la langue sur l’application (Android 14 ou plus)
− La fonctionnalité « montrer sur la carte » prend en charge uniquement OSM Dashboard (suppression de KML/KMZ ou GPX)
Développeurs :
− Les actions Github utilisent désormais Ubuntu
@@ -0,0 +1,8 @@
v4.15.0: OpenTracks
Athruithe:
- Roghnóir teanga in-app (Android 14 nó níos déanaí)
- Ní thacaíonn an ghné taispeáin-ar-mapa ach le Painéal OSM (bainte KML/KMZ nó GPX)
Forbróir:
- Úsáideann gníomhartha Github anois Ubuntu
@@ -0,0 +1,4 @@
v4.16.0: OpenTracks
Ceartúchán Bug:
- PublicAPI: níor taifeadadh aon sonraí le tosú taifeadta
@@ -0,0 +1,8 @@
v4.16.1: OpenTracks
Athruithe:
- Roghnóir teanga in-app ar fáil anois do gach leagan Android
(mar gheall ar roinnt éileamh coitianta)
Forbróir:
- Gníomhartha Github: ní raibh an tseiceáil amach ag fáil clibeanna (oíche)
@@ -0,0 +1,8 @@
v4.15.0: OpenTracks
Wijzigingen:
- In-app taalkiezer (Android 14 of hoger)
- Show-on-map-functie ondersteunt alleen OSM Dashboard (verwijderd KML/KMZ of GPX)
Ontwikkelaar:
- Github-acties gebruiken nu Ubuntu
@@ -0,0 +1,4 @@
v4.16.0: OpenTracks
Opgelost probleem:
- PublicAPI: bij het starten van een opname zijn geen gegevens vastgelegd
@@ -0,0 +1,8 @@
v4.16.1: OpenTracks
Veranderingen:
- In-app taalkiezer nu beschikbaar voor alle Android-versies
(op veler verzoek)
Ontwikkelaar:
- Github-acties: checkout was not fetching tags (nightly)
@@ -482,7 +482,7 @@ public class CustomContentProviderUtilsTest {
assertEquals(contentProviderUtils.getMarkers(trackId).size(), 1);
// Get marker id that needs to delete.
Marker.Id marker1Id = new Marker.Id(ContentUris.parseId(contentProviderUtils.insertMarker(marker1)));
Marker.Id marker1Id = contentProviderUtils.insertMarker(marker1);
// Delete
contentProviderUtils.deleteMarker(context, marker1Id);
@@ -509,7 +509,7 @@ public class CustomContentProviderUtilsTest {
assertEquals(contentProviderUtils.getMarkers(trackId).size(), 1);
// Get marker id that needs to delete.
Marker.Id marker1Id = new Marker.Id(ContentUris.parseId(contentProviderUtils.insertMarker(marker1)));
Marker.Id marker1Id = contentProviderUtils.insertMarker(marker1);
// Check marker has photo and it's in the external storage.
assertTrue(marker1.hasPhoto());
@@ -553,11 +553,11 @@ public class CustomContentProviderUtilsTest {
// Insert at first.
Marker marker1 = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId));
marker1.setDescription(MOCK_DESC);
Marker.Id marker1Id = new Marker.Id(ContentUris.parseId(contentProviderUtils.insertMarker(marker1)));
Marker.Id marker1Id = contentProviderUtils.insertMarker(marker1);
Marker marker2 = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId));
marker2.setDescription(MOCK_DESC);
Marker.Id marker2Id = new Marker.Id(ContentUris.parseId(contentProviderUtils.insertMarker(marker2)));
Marker.Id marker2Id = contentProviderUtils.insertMarker(marker2);
// Delete
assertNotNull(contentProviderUtils.getMarker(marker1Id));
@@ -598,7 +598,7 @@ public class CustomContentProviderUtilsTest {
Marker marker = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId));
marker.setDescription(TEST_DESC);
Marker.Id markerId = new Marker.Id(ContentUris.parseId(contentProviderUtils.insertMarker(marker)));
Marker.Id markerId = contentProviderUtils.insertMarker(marker);
assertEquals(TEST_DESC, contentProviderUtils.getMarker(markerId).getDescription());
}
@@ -614,7 +614,7 @@ public class CustomContentProviderUtilsTest {
// Insert at first.
Marker marker = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId));
marker.setDescription(TEST_DESC);
Marker.Id markerId = new Marker.Id(ContentUris.parseId(contentProviderUtils.insertMarker(marker)));
Marker.Id markerId = contentProviderUtils.insertMarker(marker);
// Update
marker = contentProviderUtils.getMarker(markerId);
@@ -638,7 +638,7 @@ public class CustomContentProviderUtilsTest {
TrackPoint trackPoint = contentProviderUtils.getLastValidTrackPoint(trackId);
Marker marker = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint);
marker.setDescription(TEST_DESC);
Marker.Id markerId = new Marker.Id(ContentUris.parseId(contentProviderUtils.insertMarker(marker)));
Marker.Id markerId = contentProviderUtils.insertMarker(marker);
File dir = new File(FileUtils.getPhotoDir(context), "" + trackId.id());
assertTrue(dir.exists());
@@ -673,7 +673,7 @@ public class CustomContentProviderUtilsTest {
TrackPoint trackPoint = contentProviderUtils.getLastValidTrackPoint(trackId);
Marker marker = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint);
marker.setDescription(TEST_DESC);
Marker.Id markerId = new Marker.Id(ContentUris.parseId(contentProviderUtils.insertMarker(marker)));
Marker.Id markerId = contentProviderUtils.insertMarker(marker);
File dir = new File(FileUtils.getPhotoDir(context), "" + trackId.id());
assertTrue(dir.exists());
@@ -709,7 +709,7 @@ public class CustomContentProviderUtilsTest {
marker.setDescription(TEST_DESC);
Marker otherMarker = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint);
otherMarker.setDescription(TEST_DESC);
Marker.Id markerId = new Marker.Id(ContentUris.parseId(contentProviderUtils.insertMarker(marker)));
Marker.Id markerId = contentProviderUtils.insertMarker(marker);
contentProviderUtils.insertMarker(otherMarker);
File dir = new File(FileUtils.getPhotoDir(context), "" + trackId.id());
@@ -31,13 +31,7 @@ public class PublicApiTest {
private final Context context = ApplicationProvider.getApplicationContext();
@Test
public void StartTest() {
PreferencesUtils.setBoolean(R.string.publicapi_enabled_key, true);
context.startActivity(IntentUtils.newIntent(context, StartRecording.class));
}
//NOTE: this doesn't check if the TrackRecordingService was started in foreground.
@Test
public void StartStopTest() throws InterruptedException {
PreferencesUtils.setBoolean(R.string.publicapi_enabled_key, true);
+18
View File
@@ -98,6 +98,14 @@ limitations under the License.
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".publicapi.CreateMarker"
android:exported="true"
android:theme="@style/SplashTheme">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- NOTE: the name of the MAIN/LAUNCHER is used by icon packs; if this is changed, icon packs break.-->
<activity
@@ -401,6 +409,16 @@ limitations under the License.
android:name=".services.TrackDeleteService"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE"/>
<!--Necessary for SDK < 33 to (re-)store per app locale information-->
<service
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
android:enabled="false"
android:exported="false">
<meta-data
android:name="autoStoreLocales"
android:value="true" />
</service>
</application>
<queries>
@@ -487,12 +487,11 @@ public class ContentProviderUtils {
return markers;
}
/**
* @return the content provider URI of the inserted marker.
*/
public Uri insertMarker(@NonNull Marker marker) {
// TODO Merge with updateMarker
public Marker.Id insertMarker(@NonNull Marker marker) {
marker.setId(null);
return contentResolver.insert(MarkerColumns.CONTENT_URI, createContentValues(marker));
Uri uri = contentResolver.insert(MarkerColumns.CONTENT_URI, createContentValues(marker));
return new Marker.Id(ContentUris.parseId(uri));
}
private void deleteMarkerPhoto(Context context, Marker marker) {
@@ -13,7 +13,7 @@ import de.dennisguse.opentracks.services.TrackRecordingService;
import de.dennisguse.opentracks.services.TrackRecordingServiceConnection;
import de.dennisguse.opentracks.settings.PreferencesUtils;
public abstract class AbstractAPIActivity extends AppCompatActivity {
abstract class AbstractAPIActivity extends AppCompatActivity {
private final String TAG = AbstractAPIActivity.class.getSimpleName();
@@ -33,11 +33,15 @@ public abstract class AbstractAPIActivity extends AppCompatActivity {
protected void onCreate(@Nullable Bundle savedInstanceState) {
SplashScreen splashScreen = SplashScreen.installSplashScreen(this);
super.onCreate(savedInstanceState);
splashScreen.setKeepOnScreenCondition(() -> true );
splashScreen.setKeepOnScreenCondition(() -> true);
if (PreferencesUtils.isPublicAPIenabled()) {
Log.i(TAG, "Received and trying to execute requested action.");
TrackRecordingServiceConnection.execute(this, serviceConnectedCallback);
if (requiresForeground()) {
TrackRecordingServiceConnection.executeForeground(this, serviceConnectedCallback);
} else {
TrackRecordingServiceConnection.execute(this, serviceConnectedCallback);
}
} else {
Toast.makeText(this, getString(R.string.settings_public_api_disabled_toast), Toast.LENGTH_LONG).show();
Log.w(TAG, "Public API is disabled; ignoring request.");
@@ -48,4 +52,8 @@ public abstract class AbstractAPIActivity extends AppCompatActivity {
protected abstract void execute(TrackRecordingService service);
protected abstract boolean isPostExecuteStopService();
protected boolean requiresForeground() {
return false;
}
}
@@ -0,0 +1,16 @@
package de.dennisguse.opentracks.publicapi;
import de.dennisguse.opentracks.services.TrackRecordingService;
public class CreateMarker extends AbstractAPIActivity {
@Override
protected void execute(TrackRecordingService service) {
service.createMarker();
}
@Override
protected boolean isPostExecuteStopService() {
return false;
}
}
@@ -12,7 +12,7 @@ import de.dennisguse.opentracks.ui.markers.MarkerEditActivity;
import de.dennisguse.opentracks.util.IntentUtils;
/**
* Public API to creates a Marker for a given track with a given location
* INTERNAL: only meant for clients of OSMDashboard API.
*/
public class CreateMarkerActivity extends AppCompatActivity {
@@ -23,8 +23,11 @@ public class CreateMarkerActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Track.Id trackId = new Track.Id(getIntent().getLongExtra(EXTRA_TRACK_ID, 0L));
Track.Id trackId = new Track.Id(getIntent().getLongExtra(EXTRA_TRACK_ID, -1L));
Location location = getIntent().getParcelableExtra(EXTRA_LOCATION);
if (!getIntent().hasExtra(EXTRA_TRACK_ID) || location == null) {
throw new IllegalStateException("Parameter 'track_id' and/or 'location' missing or invalid.");
}
TrackRecordingServiceConnection.execute(this, (service, self) -> {
Intent intent = IntentUtils
@@ -1,34 +1,19 @@
package de.dennisguse.opentracks.publicapi;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import java.util.ArrayList;
import java.util.List;
import de.dennisguse.opentracks.AbstractActivity;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.data.ContentProviderUtils;
import de.dennisguse.opentracks.data.models.Marker;
import de.dennisguse.opentracks.databinding.MarkerDetailActivityBinding;
import de.dennisguse.opentracks.ui.markers.DeleteMarkerDialogFragment.DeleteMarkerCaller;
import de.dennisguse.opentracks.ui.markers.MarkerDetailActivity;
import de.dennisguse.opentracks.ui.markers.MarkerDetailFragment;
import de.dennisguse.opentracks.util.IntentUtils;
/**
* Public api to show an existing marker
* INTERNAL: only meant for clients of OSMDashboard API.
*/
public class ShowMarkerActivity extends AppCompatActivity {
@@ -44,10 +29,11 @@ public class ShowMarkerActivity extends AppCompatActivity {
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
Marker.Id markerId = new Marker.Id(getIntent().getLongExtra(EXTRA_MARKER_ID, 0));
if (markerId.id() == 0) {
throw new IllegalStateException("No valid markerId provided");
if (!getIntent().hasExtra(EXTRA_MARKER_ID)) {
throw new IllegalStateException("Parameter 'markerId' missing");
}
Marker.Id markerId = new Marker.Id(getIntent().getLongExtra(EXTRA_MARKER_ID, -1));
Intent intent = IntentUtils.newIntent(this, MarkerDetailActivity.class)
.putExtra(MarkerDetailActivity.EXTRA_MARKER_ID, markerId);
startActivity(intent);
@@ -62,4 +62,9 @@ public class StartRecording extends AbstractAPIActivity {
protected boolean isPostExecuteStopService() {
return false;
}
@Override
protected boolean requiresForeground() {
return true;
}
}
@@ -55,7 +55,9 @@ public abstract class Aggregator<Input, Output> {
/**
* Reset long term aggregated values (more than derived from previous SensorData). e.g. overall distance.
*/
public void reset() {}
public void reset() {
value = getNoneValue();
}
/**
* Is the data recent considering the current time.
@@ -37,10 +37,5 @@ public class AggregatorBarometer extends Aggregator<AtmosphericPressure, Altitud
return new AltitudeGainLoss(0f, 0f);
}
@Override
public void reset() {
value = getNoneValue();
}
public record Data(Altitude gain, Altitude loss) {}
}
@@ -16,11 +16,6 @@ public class AggregatorGPS extends Aggregator<Position, Position> {
value = current.value();
}
@Override
public void reset() {
value = null;
}
@NonNull
@Override
protected Position getNoneValue() {
@@ -15,6 +15,11 @@ public class AggregatorHeartRate extends Aggregator<HeartRate, HeartRate> {
this.value = current.value();
}
@Override
public void reset() {
// We don't need to reset the heart rate as this value is valid for a certain amount of time: and it is not an aggregate.
}
@NonNull
@Override
protected HeartRate getNoneValue() {
@@ -36,7 +36,9 @@ import java.io.PrintWriter;
import java.io.StringWriter;
import java.time.Duration;
import de.dennisguse.opentracks.data.ContentProviderUtils;
import de.dennisguse.opentracks.data.models.Distance;
import de.dennisguse.opentracks.data.models.Marker;
import de.dennisguse.opentracks.data.models.Track;
import de.dennisguse.opentracks.data.models.TrackPoint;
import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet;
@@ -243,6 +245,20 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
gpsStatusObservable.postValue(STATUS_GPS_DEFAULT);
}
public Marker.Id createMarker() {
if (!isRecording()) {
return null;
}
//TODO This contains some duplication to TrackRecodingActivity's Marker creation
TrackPoint trackPoint = trackRecordingManager.getLastStoredTrackPointWithLocation();
if (trackPoint == null) {
return null;
}
Marker marker = new Marker(recordingStatus.trackId(), trackPoint);
return new ContentProviderUtils(this).insertMarker(marker);
}
@Override
public boolean newTrackPoint(TrackPoint trackPoint, Distance thresholdHorizontalAccuracy) {
if (!isRecording()) {
@@ -1,25 +1,36 @@
package de.dennisguse.opentracks.settings;
import android.annotation.SuppressLint;
import android.app.LocaleConfig;
import android.content.Context;
import android.os.Build;
import android.os.LocaleList;
import android.util.AttributeSet;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.app.LocaleManagerCompat;
import androidx.core.os.LocaleListCompat;
import androidx.preference.ListPreference;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.Optional;
import de.dennisguse.opentracks.R;
public class LocalePreference extends ListPreference {
private String TAG = LocalePreference.class.getSimpleName();
public LocalePreference(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init(context);
@@ -40,18 +51,17 @@ public class LocalePreference extends ListPreference {
init(context);
}
// /data/user/0/de.dennisguse.opentracks.debug/files/androidx.appcompat.app.AppCompatDelegate.application_locales_record_file: open failed: ENOENT (No such file or directory)
private void init(Context context) {
setPersistent(false);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
setEnabled(false);
return;
}
LocaleItem systemDefaultLocale = new LocaleItem("", context.getString(R.string.settings_locale_system_default));
LocaleItem currentLocale = new LocaleItem(Locale.getDefault().toLanguageTag(), Locale.getDefault().getDisplayName());
// All available options
LocaleList supportedLocales = LocaleConfig.fromContextIgnoringOverride(context).getSupportedLocales();
LocaleList supportedLocales = getLocaleListCompat();
ArrayList<LocaleItem> localeItemsSorting = new ArrayList<>();
for (int i = 0; i < supportedLocales.size(); i++) {
Locale current = supportedLocales.get(i);
@@ -104,4 +114,36 @@ public class LocalePreference extends ListPreference {
String displayName
) {
}
// TODO Get this functionality from any Androidx compat library: should be in LocaleListCompat or LocaleManagerCompat
// 2024-12-12: on Android 14-: LocaleManagerCompat.getApplicationLocales(getContext()) returned "[]"
// See: https://stackoverflow.com/questions/78116375/per-app-language-preferences-get-list-of-apps-available-language-programmatic
@Deprecated
private LocaleList getLocaleListCompat() {
var a = LocaleManagerCompat.getApplicationLocales(getContext());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
return LocaleConfig.fromContextIgnoringOverride(getContext()).getSupportedLocales();
}
@SuppressLint("DiscouragedApi") int localesConfigId = getContext().getResources().getIdentifier("_generated_res_locale_config", "xml", getContext().getPackageName());
List<String> localeList = new ArrayList<>();
XmlPullParser xpp = getContext().getResources().getXml(localesConfigId);
try {
while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) {
if (xpp.getEventType() == XmlPullParser.START_TAG) {
if ("locale".equals(xpp.getName()) && xpp.getAttributeCount() > 0 && xpp.getAttributeName(0).equals("name")) {
localeList.add(xpp.getAttributeValue(0));
}
}
xpp.next();
}
} catch (IOException | XmlPullParserException e) {
Log.e(TAG, "Could not load locales: " + e.getMessage());
}
Optional<String> locales = localeList.stream().reduce((s1, s2) -> s1 + "," + s2);
return locales
.map(LocaleList::forLanguageTags)
.orElseGet(LocaleList::getEmptyLocaleList);
}
}
+6 -2
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_preference_title">Apprupositu d’OpenTracks</string>
<string name="about_preference_title">Apprupositu</string>
<string name="about_description"><i>OpenTracks</i> hè un’appiecazione di tracciatu spurtivu chì rispetta cumpletamente a vostra vita privata.</string>
<string name="about_url">Pagina web di u prughjettu : <a href="%1$s">%1$s</a></string>
<string name="about_version_code">Codice di a versione :%1$d</string>
@@ -278,7 +278,7 @@
<string name="settings_export_filename_title">Furmatu di u nome di schedariu</string>
<string name="settings_chart_by_distance">Secondu à a distanza</string>
<string name="settings_chart_by_time">Secondu à a durata</string>
<string name="settings_ui_dynamic_colors_summary">Impiegà i culori dinamichi definiti da l’utilizatore (solu Android 12è più ; richiede un rilanciu manuale)</string>
<string name="settings_ui_dynamic_colors_summary">Impiegà i culori dinamichi definiti da l’utilizatore (solu Android 12 è più ; richiede un rilanciu manuale)</string>
<string name="settings_recording_customize_layout_title">Persunalizà u vostru accunciamentu d’arregistramentu</string>
<string name="settings_recording_customize_layout_select_columns">Campi di dati à a linea</string>
<string name="settings_recording_keep_screen_on_while_recording_title">Cunservà u screnu accesu</string>
@@ -553,4 +553,8 @@
<string name="settings_recording_min_sampling_interval_title">Intervallu di durata di campiunariu</string>
<string name="settings_announcements_idle_title">Inattività</string>
<string name="voiceIdle">Diventà inattivu.</string>
<string name="settings_locale_title">Lingua</string>
<string name="settings_locale_system_default">Parametri predefiniti di u sistema</string>
<string name="stats_gain_loss">Guadagnu è perdita</string>
<string name="voice_announce_lap_power_key">AnnunziamentuVucalePutenzaÀUGiru</string>
</resources>
+7 -20
View File
@@ -14,7 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--><resources>
<string name="about_preference_title">O OpenTracks</string>
<string name="about_preference_title">O aplikaci</string>
<string name="about_description"><i> OpenTracks </i> je aplikace pro záznam vašich sportů, která zcela respektuje vaše soukromí.</string>
<string name="about_url">Webová stránka projektu: <a href="%1$s">%1$s</a></string>
<string name="about_version_name">Název verze: %1$s</string>
@@ -30,10 +30,7 @@ limitations under the License.
\n* funguje zcela offline
\n* zobrazit trasy na mapě (viz níže)</string>
<string name="help_track_map_title">Jak ukázat trasu na mapě\?</string>
<string name="help_track_map_content"> \u0020Použijte malou ikonu mapy.
\n \u0020a) \u0020(živé aktualizace) Nainstalujte <a href="https://github.com/OpenTracksApp/OSMDashboard">OSMDashboard</a>. \u0020Poskytuje online nebo offline mapy prostřednictvím <a href="https://www.openstreetmap.org">OpenStreetMap</a>.
\n \u0020Ve skutečnosti je OSMDashboard samostatná aplikace, která má přístup (dočasně) pouze k datům stop, které se budou zobrazovat. \u0020
\n \u0020b) \u0020Prostřednictvím normální mapové aplikace (např. <a href="http://osmand.net/">OsmAnd</a> a <a href="https://maps.me/">MAPS.ME</a>). \u0020Tyto aplikace musí podporovat formát souboru KMZ (pouze umístění a časová razítka). \u0020Ve skutečnosti musí aplikace podporovat <i>ACTION_VIEW</i> pomocí MIME <i>application/vnd.google-earth.kmz</i>. \u0020</string>
<string name="help_track_map_content">Použijte malou ikonu mapy.\n a) (živé aktualizace) Nainstalujte si aplikaci <a href="https://github.com/OpenTracksApp/OSMDashboard">OSMDashboard</a>. Poskytuje online i offline mapy prostřednictvím <a href="https://www.openstreetmap.org">OpenStreetMap</a>.\n OSMDashboard je samostatná aplikace, která má (dočasný) přístup pouze k datům stop, které se budou zobrazovat. \n b) Prostřednictvím normální mapové aplikace (např. <a href="http://osmand.net/">OsmAnd</a> a <a href="https://maps.me/">MAPS.ME</a>). Tyto aplikace musí podporovat formát souboru KMZ (pouze umístění a časová razítka). Technicky vzato musí aplikace podporovat <i>ACTION_VIEW</i> s MIME <i>application/vnd.google-earth.kmz</i>.</string>
<string name="help_storage_pictures_title">Jak ukládá OpenTracks obrázky pořízené jako značky na cestě\?</string>
<string name="help_storage_pictures_content">Jsou uloženy v interním úložišti aplikace (tj. přístupné pouze v rámci OpenTracks).</string>
<string name="help_track_export_title">Jak mohu exportovat/sdílet zaznamenané stopy\?</string>
@@ -44,22 +41,9 @@ limitations under the License.
<string name="help_data_storage_title">Jak OpenTracks ukládá data ze senzorů\?</string>
<string name="help_data_storage_content"> Data senzorů se ukládají na zaznamenané místo. Pokud jde o snímač srdeční frekvence, znamená to, že na každé místo je uloženo pouze <i>jedno</i> měření srdeční frekvence. Pokud stojíte v klidu nebo jste uvnitř, nebudou zaznamenána žádná data ze senzorů (ale budou zobrazena). </string>
<string name="help_gps_troubleshooting_title">OpenTracks nezaznamenává místa?</string>
<string name="help_gps_troubleshooting_content"> \u0020Co můžete udělat:
\n \u0020a) zkontrolujte zda je zapnuta GPS,
\n \u0020b) zkuste zlepšit příjem GPS (např. vyjít ven),
\n \u0020c) zkontrolujte, zda používáte aplikaci <a href="https://f-droid.org/en/packages/com.android.gpstest.osmdroid/">GPSTest </a> a
\n \u0020d) deaktivujte úsporu energie.
\n \u0020
\n \u0020Pokud nic nepomůže, nahlaste to jako chybu. \u0020</string>
<string name="help_gps_troubleshooting_content">Co můžete udělat:\n a) zkontrolujte zda je zapnuta poloha,\n b) zkuste zlepšit příjem GPS (např. vyjít ven),\n c) zkontrolujte funkčnost polohy s aplikací <a href="https://f-droid.org/cs/packages/com.android.gpstest.osmdroid/">GPSTest </a> a\n d) vypněte spořič baterie.\n \n Pokud nic nepomůže, nahlaste to jako chybu.</string>
<string name="help_support_title">Jak mohu podpořit OpenTracks\?</string>
<string name="help_support_content"> \u0020Můžete:
\n \u0020a) dát vědět ostatním o OpenTracks
\n \u0020b) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">navrhnout nové funkce</a>,
\n \u0020c) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">nahlásit chybu</a>,
\n \u0020d) pomoci při vývoji aplikace,
\n \u0020e) zakoupit v <a href="https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore">Obchodě Google Play</a>,
\n \u0020f) zaslat dar či
\n \u0020g) udělat něco jiného, co si myslíte že pomůže OpenTracks. \u0020</string>
<string name="help_support_content">Můžete:\n a) dát vědět ostatním o OpenTracks\n b) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">navrhnout nové funkce</a>,\n c) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">nahlásit chybu</a>,\n d) pomoci při vývoji aplikace,\n e) koupit si aplikaci v <a href="https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore">Obchodě Google Play</a>,\n f) zaslat dar nebo\n g) udělat něco jiného, co si myslíte že pomůže OpenTracks.</string>
<!-- Activity Type -->
<string name="activity_type_airplane">letadlo</string>
<string name="activity_type_atv">terénní auta</string>
@@ -607,4 +591,7 @@ limitations under the License.
<string name="power_x_watt">Výkon {x, plural, =1 {1 watt} few {# watty} other {# wattů} }</string>
<string name="create_marker_error">Nepodařilo se vytvořit značku. Zkuste to znovu.</string>
<string name="empty">" "</string>
<string name="settings_locale_title">Jazyk</string>
<string name="settings_locale_system_default">Podle systému</string>
<string name="stats_gain_loss">Stoupání a klesání</string>
</resources>
+4 -1
View File
@@ -14,7 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--><resources>
<string name="about_preference_title">Acerca de OpenTracks</string>
<string name="about_preference_title">Acerca de</string>
<string name="about_description"><i> OpenTracks </i> es una aplicación de seguimiento deportivo que respeta completamente su privacidad.</string>
<string name="about_url">Página web del proyecto: <a href="%1$s">%1$s</a></string>
<string name="about_version_name">Nombre de la versión: %1$s</string>
@@ -661,4 +661,7 @@ limitations under the License.
<string name="create_marker_error">No se ha podido crear un marcador. Inténtelo de nuevo.</string>
<string name="voice_announce_lap_power_key">voiceAnnounceLapPower</string>
<string name="power">Potencia</string>
<string name="settings_locale_title">Idioma</string>
<string name="settings_locale_system_default">Predeterminado del sistema</string>
<string name="stats_gain_loss">Ganancia y pérdida</string>
</resources>
+4
View File
@@ -662,4 +662,8 @@ Si le dispositif GPS signale des données inexactes (par exemple, la localisatio
<string name="activity_type_kickscooter">trottinette</string>
<string name="voiceSpeed">{n, plural, =1 {1} autres {{n,number,#.0}} }</string>
<string name="voiceDistance">{n, plural, =1 {1 } autres {{n,number,#.0}} }</string>
<string name="settings_locale_system_default">Paramètres par défaut du système</string>
<string name="settings_locale_title">Langue</string>
<string name="stats_gain_loss">Gain et perte</string>
<string name="voice_announce_lap_power_key">voiceAnnounceLapPower</string>
</resources>
+4 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_libraries">Leabharlanna</string>
<string name="about_preference_title">Maidir Le OpenTracks</string>
<string name="about_preference_title">Maidir</string>
<string name="about_url">Leathanach Gréasáin an tionscadail: <a href="%1$s">%1$s</a></string>
<string name="about_version_name">Ainm an leagain: %1$s</string>
<string name="about_version_code">Cód an leagain: %1$d</string>
@@ -542,4 +542,7 @@
<string name="settings_announcements_lap_power">Cumhacht glúine</string>
<string name="power_x_watt">Cumhacht {x, iolra, = 1 {1 vata} eile {# vata} }</string>
<string name="empty">" "</string>
<string name="settings_locale_system_default">Réamhshocrú córais</string>
<string name="settings_locale_title">Teanga</string>
<string name="stats_gain_loss">Gnóthachan &amp; Caillteanas</string>
</resources>
+9 -22
View File
@@ -14,7 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--><resources>
<string name="about_preference_title">Sobre OpenTracks</string>
<string name="about_preference_title">Sobre</string>
<string name="about_description"><i>OpenTracks</i> é unha aplicación para rexistrar actividades deportivas que respecta a túa privacidade.</string>
<string name="about_url">Web do proxecto: <a href="%1$s">%1$s</a></string>
<string name="about_version_name">Nome da versión: %1$s</string>
@@ -30,10 +30,7 @@ limitations under the License.
\n* funciona sen precisar conexión á rede
\n* mostra as rutas nun mapa (ver abaixo)</string>
<string name="help_track_map_title">Como mostrar a ruta no mapa\?</string>
<string name="help_track_map_content"> \u0020Usa a icona do mapa pequeno.
\n a) (actualizacións en directo) Instala <a href="https://github.com/OpenTracksApp/OSMDashboard">OSMDashboard</a>. Proporciona mapas en liña ou sen conexión grazas a <a href="https://www.openstreetmap.org">OpenStreetMap</a>.
\n En realidade, OSMDashboard é unha aplicación independente que só pode acceder (temporalmente) aos datos das pistas que se amosarán.
\n b) A través dunha aplicación de mapa normal (por exemplo, <a href="http://osmand.net/">OsmAnd</a> e <a href="https://maps.me/">MAPS.ME</a>). Estas aplicacións precisan admitir o formato de ficheiro KMZ (só localizacións e marcas de tempo). De feito, unha aplicación ten que admitir <i>ACTION_VIEW</i> con MIME <i>application/vnd.google-earth.kmz</i>. \u0020</string>
<string name="help_track_map_content">Usa a icona do mapa pequeno. \n a) (actualizacións en directo) Instala <a href="https://github.com/OpenTracksApp/OSMDashboard">OSMDashboard</a>. Proporciona mapas en liña ou sen conexión grazas a <a href="https://www.openstreetmap.org">OpenStreetMap</a>. \n En realidade, OSMDashboard é unha aplicación independente que só pode acceder (temporalmente) aos datos das pistas que se amosarán. \n b) A través dunha aplicación de mapa normal (por exemplo, <a href="http://osmand.net/">OsmAnd</a> e <a href="https://maps.me/">MAPS.ME</a>). Estas aplicacións precisan admitir o formato de ficheiro KMZ (só localizacións e marcas de tempo). De feito, unha aplicación ten que admitir <i>ACTION_VIEW</i> con MIME <i>application/vnd.google-earth.kmz</i>.</string>
<string name="help_storage_pictures_title">De que xeito garda OpenTracks as fotos tomadas como marcadores\?</string>
<string name="help_storage_pictures_content">Gárdanse na almacenaxe interna da app (só accesible desde OpenTracks).</string>
<string name="help_track_export_title">De que xeito exporto/importo as rutas gravadas\?</string>
@@ -44,24 +41,11 @@ limitations under the License.
OpenTracks usa o sensor GPS do dispositivo para gravar a localización de xeito contínuo.
Se o GPS informa sobre datos pouco precisos (ex.: localización, velocidade, elevación), OpenTracks non pode facer nada ao respecto.</string>
<string name="help_data_storage_title">De que xeito garda OpenTracks os datos dos sensores\?</string>
<string name="help_data_storage_content"> Os datos dos sensores gárdanse asociados á localización. Respecto do ritmo cardíaco, significa que só se garda <i>unha medida</i> asociada a unha localización. \u0020Se te detés ou estás en interiores, non se gardarán datos do sensor (mais serán mostrados). </string>
<string name="help_data_storage_content">Os datos dos sensores gárdanse asociados á localización. Respecto do ritmo cardíaco, significa que só se garda <i>unha medida</i> asociada a unha localización. Se te detés ou estás en interiores, non se gardarán datos do sensor (mais serán mostrados).</string>
<string name="help_gps_troubleshooting_title">OpenTracks non grava as localizacións\?</string>
<string name="help_gps_troubleshooting_content"> \u0020Podes intentar:
\n a) mira que o GPS esté activado,
\n b) mellora a recepción GPS (ex. sae ao exterior),
\n c) comprobaa coa app <a href="https://f-droid.org/en/packages/com.android.gpstest.osmdroid/">GPSTest</a>, e
\n d) desactiva o aforro de enerxía.
\n
\n Se isto non axuda, infórmanos do problema. \u0020</string>
<string name="help_gps_troubleshooting_content">Podes intentar: \n a) mira que o GPS esté activado, \n b) mellora a recepción GPS (ex. sae ao exterior), \n c) comprobaa coa app <a href="https://f-droid.org/en/packages/com.android.gpstest.osmdroid/">GPSTest</a>, e \n d) desactiva o aforro de enerxía. \n \n Se isto non axuda, infórmanos do problema.</string>
<string name="help_support_title">Como podo axudar a OpenTracks\?</string>
<string name="help_support_content"> \u0020Podes:
\n a) falar de OpenTracks coas túas amizades,
\n b) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">propoñer novas funcións</a>,
\n c) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">informar de fallos</a>,
\n d) axudar no desenvolvemento,
\n e) mercar a app na <a href="https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore">Google Play Store</a>,
\n f) facer unha doazón, e
\n g) calquera cousa que estimes axuda a OpenTracks. \u0020</string>
<string name="help_support_content">Podes: \n a) falar de OpenTracks coas túas amizades, \n b) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">propoñer novas funcións</a>, \n c) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">informar de fallos</a>, \n d) axudar no desenvolvemento, \n e) mercar a app na <a href="https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore">Google Play Store</a>, \n f) facer unha doazón, e \n g) calquera cousa que estimes axuda a OpenTracks.</string>
<string name="open_track_as_trackfileformat">Abrir como %1$s</string>
<!-- Activity Type -->
<string name="activity_type_airplane">avión</string>
@@ -103,7 +87,7 @@ Se o GPS informa sobre datos pouco precisos (ex.: localización, velocidade, ele
<string name="activity_type_rc_airplane">Avión de radiocontrol</string>
<string name="activity_type_rc_boat">Barco de radiocontrol</string>
<string name="activity_type_rc_helicopter">Helicóptero de radiocontrol</string>
<string name="activity_type_riding">ciclismo</string>
<string name="activity_type_riding">equitación</string>
<string name="activity_type_road_biking">ciclismo de estrada</string>
<string name="activity_type_roller_skiing">esquí sobre rodas</string>
<string name="activity_type_rowing">remo</string>
@@ -607,4 +591,7 @@ Se o GPS informa sobre datos pouco precisos (ex.: localización, velocidade, ele
<string name="power">Potencia</string>
<string name="power_x_watt">Potencia {x, plural, =1 {1 watio} other {# watios} }</string>
<string name="create_marker_error">Non se creou o marcador. Inténtao outra vez.</string>
<string name="settings_locale_title">Idioma</string>
<string name="settings_locale_system_default">Predeterminado no sistema</string>
<string name="stats_gain_loss">Ganancia e Perda</string>
</resources>
+7 -20
View File
@@ -313,7 +313,7 @@ limitations under the License.
<string name="about_url">A projekt weboldala: <a href="%1$s">%1$s</a></string>
<string name="about_version_name">Verzió neve: %1$s</string>
<string name="about_version_code">Verziókód: %1$d</string>
<string name="about_preference_title">Az OpenTracks névjegye</string>
<string name="about_preference_title">Névjegy</string>
<string name="help_data_google_play_services_title">Az OpenTracks igényli/használja a Google Play szolgáltatást?</string>
<string name="help_track_export_title">Hogyan tudom exportálni/megosztani a felvett nyomvonalakat?</string>
<string name="help_storage_pictures_content">Ezeket az alkalmazás belső tárhelyén tárolja (azaz csak az OpenTracks-en belül érhető el).</string>
@@ -351,13 +351,7 @@ limitations under the License.
<string name="import_unsupported_format">Nem támogatott fájlformátum</string>
<string name="description_default_speed_or_pace">Tevékenységtípus szerint</string>
<string name="export_without_photos">fotók nélkül</string>
<string name="help_gps_troubleshooting_content"> \u0020Mit tehet:
\n a) ellenőrizze, hogy a GPS engedélyezve van-e,
\n b) javítsa a GPS-vételt (pl. menjen a szabadba),
\n c) ellenőrizze a <a href="https://f-droid.org/en/packages/com.android.gpstest.osmdroid/">GPSTest</a> alkalmazással, és
\n d) tiltsa le az energiatakarékosságot.
\n
\n Ha mindez nem segít, kérjük, jelentse a hibát. \u0020</string>
<string name="help_gps_troubleshooting_content">Mit tehet: \n a) ellenőrizze, hogy a GPS engedélyezve van-e, \n b) javítsa a GPS-vételt (pl. menjen a szabadba), \n c) ellenőrizze a <a href="https://f-droid.org/en/packages/com.android.gpstest.osmdroid/">GPSTest</a> alkalmazással, és \n d) tiltsa le az energiatakarékosságot. \n \n Ha mindez nem segít, kérjük, jelentse a hibát.</string>
<string name="export_progress_summary_new_msg">Új fájlok exportálva</string>
<string name="generic_completed">Befejezve</string>
<string name="sensor_state_heart_rate_avg">Átl. pulzusszám</string>
@@ -394,14 +388,7 @@ limitations under the License.
<string name="menu_resume_track">Nyomvonal folytatása</string>
<string name="import_parser_error">Értelmezőhiba: %1$s</string>
<string name="help_data_storage_content"> Az érzékelőadatok rögzített helyenként vannak tárolva. A pulzusszám-érzékelőre vonatkoztatva ez azt jelenti, hogy csak <i>egy</i> pulzusszámmérés kerül tárolásra helyenként. Ha Ön mozdulatlanul áll vagy beltérben tartózkodik, akkor nem kerülnek rögzítésre az érzékelőadatai (de megjelennek). </string>
<string name="help_support_content"> \u0020Ezeket teheti meg:
\n \u0020a) terjesztheti az OpenTracks hírét,
\n \u0020b) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">funkciókat javasolhat</a>,
\n \u0020c) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">hibákat jelenthet be</a>,
\n \u0020d) segíthet a szoftverfejlesztésben,
\n \u0020e) megveheti a <a href="https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore">Google Play Store</a>-ban,
\n \u0020f) adományozhat, és
\n \u0020g) tehet bármit, amiről úgy gondolja, hogy segít az OpenTracks-nek. \u0020</string>
<string name="help_support_content">Ezeket teheti meg: \n a) terjesztheti az OpenTracks hírét, \n b) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">funkciókat javasolhat</a>, \n c) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">hibákat jelenthet be</a>, \n d) segíthet a szoftverfejlesztésben, \n e) megveheti a <a href="https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore">Google Play Store</a>-ban, \n f) adományozhat, és \n g) tehet bármit, amiről úgy gondolja, hogy segít az OpenTracks-nek.</string>
<plurals name="generic_completed_with_errors">
<item quantity="one">Egy hibával befejezve</item>
<item quantity="other">%1$d hibával befejezve</item>
@@ -418,10 +405,7 @@ limitations under the License.
<string name="share_image_body">Azt hiszem, ez a kép érdekelhet.</string>
<string name="help_recording_title">Hogyan veszi fel az OpenTracks az adatokat?</string>
<string name="help_track_export_content"> A nyomvonalak KMZ, KML vagy GPX formátumban exportálhatók a Beállításokból. KMZ/KML minden adat; GPX csak a helyszínek. A <i>megosztás ikonon</i> keresztül megosztott nyomvonalak KMZ formátumban kerülnek megosztásra. </string>
<string name="help_track_map_content"> \u0020Használja a kis térkép ikont.
\n \u0020a) \u0020(élő frissítések) Telepítse a <a href="https://github.com/OpenTracksApp/OSMDashboard">OSMDashboard</a>. \u0020Ez online vagy offline térképeket biztosít a <a href="https://www.openstreetmap.org">OpenStreetMap</a> segítségével.
\n \u0020Valójában az OSMDashboard egy különálló alkalmazás, amely csak a megjelenítendő nyomvonal(ak) adataihoz fér hozzá (ideiglenesen). \u0020
\n \u0020b) \u0020Egy normál térképalkalmazáson keresztül (pl. <a href="http://osmand.net/">OsmAnd</a> és <a href="https://maps.me/">MAPS.ME</a>). \u0020Ezeknek az alkalmazásoknak támogatniuk kell a KMZ fájlformátumot (csak a helyeket és az időbélyegeket). \u0020Valójában egy alkalmazásnak támogatnia kell a <i>ACTION_VIEW</i> MIME <i>application/vnd.google-earth.kmz</i> formátumot. \u0020</string>
<string name="help_track_map_content">Használja a kis térkép ikont.\na) (élő frissítések) Telepítse a <a href="https://github.com/OpenTracksApp/OSMDashboard">OSMDashboard</a>. Ez online vagy offline térképeket biztosít a <a href="https://www.openstreetmap.org">OpenStreetMap</a> segítségével.\nValójában az OSMDashboard egy különálló alkalmazás, amely csak a megjelenítendő nyomvonal(ak) adataihoz fér hozzá (ideiglenesen).\nb) Egy normál térképalkalmazáson keresztül (pl. <a href="http://osmand.net/">OsmAnd</a> és <a href="https://maps.me/">MAPS.ME</a>). Ezeknek az alkalmazásoknak támogatniuk kell a KMZ fájlformátumot (csak a helyeket és az időbélyegeket). Valójában egy alkalmazásnak támogatnia kell a <i>ACTION_VIEW</i> MIME <i>application/vnd.google-earth.kmz</i> formátumot.</string>
<string name="about_description">Az <i>OpenTracks</i> egy sportkövető alkalmazás, amely teljes mértékben tiszteletben tartja az Ön adatvédelmét.</string>
<string name="about_history">Az OpenTracks a <a href="https://code.google.com/archive/p/mytracks/"><i>Google MyTracks</i></a> (2016-ban megszűnt) elágazása.</string>
<string name="help_feature_content">* GPS nyomvonalak létrehozása
@@ -601,4 +585,7 @@ limitations under the License.
<string name="voiceDistance">{n, plural, =1 {1 } other {{n,number,#.0}} }</string>
<string name="voice_announce_lap_power_key">voiceAnnounceLapPower</string>
<string name="power_x_watt">Teljesítmény {x, plural, =1 {1 watt} other {# watts} }</string>
<string name="settings_locale_title">Nyelv</string>
<string name="settings_locale_system_default">Rendszer alapértelmezett</string>
<string name="stats_gain_loss">Növekedés és veszteség</string>
</resources>
+8 -25
View File
@@ -196,9 +196,7 @@ limitations under the License.
<string name="settings_stats_units_metric">Metriske (km, m)</string>
<string name="settings_stats_units_title">Foretrukne enheter</string>
<!-- Share Track -->
<string name="share_track_share_file_body">Jeg tror du kan være interessert i dette sporet.
\n
\n%1$s</string>
<string name="share_track_share_file_body">Jeg tror du kan være interessert i dette sporet.\n\n%1$s</string>
<string name="share_track_subject">Jeg vil dele et spor med deg</string>
<!-- Stats -->
<string name="stats_average_moving_pace">Gjen. forflytningstempo</string>
@@ -359,12 +357,7 @@ limitations under the License.
<string name="sensor_could_not_scan">Kunne ikke se etter Blåtannsenheter (feil %1$i).</string>
<string name="help_data_google_play_services_title">Krever/bruker OpenTracks Google Play-tjenesten\?</string>
<string name="help_feature_title">OpenTracks har følgende funksjoner:</string>
<string name="help_feature_content">* Opprett GPS-spor
\n * Bruk av pulssensor (kun Blåtann-LE)
\n * Talemeldinger (etter tid eller distanse)
\n * Opprett markører (inkl. bilder)
\n * Fungerer uten Internett-forbindelse
\n * Vis spor på et kart (se nedenfor)</string>
<string name="help_feature_content">* Opprett GPS-spor \n* Bruk av pulssensor (kun Blåtann-LE) \n* Talemeldinger (etter tid eller distanse) \n* Opprett markører (inkl. bilder) \n* Fungerer uten Internett-forbindelse \n* Vis spor på et kart (se nedenfor)</string>
<string name="help_track_map_title">Hvordan vise et spor på et kart\?</string>
<string name="about_description"><i>OpenTracks</i> er et sportssporingsprogram som fullt ut respekterer ditt personvern.</string>
<string name="about_url">Prosjektnettside: <a href="%1$s">%1$s</a></string>
@@ -392,21 +385,8 @@ limitations under the License.
<string name="help_data_storage_title">Hvordan lagrer OpenTracks sensordata\?</string>
<string name="help_data_storage_content"> Sensordata lagres per posisjon som er tatt opp. Når det gjelder pulssensorer betyr dette at kun <i>én</i> pulsmåling lagres per posisjon. Hvis du står stille eller er innendørs, blir ingen sensordata tatt opp (men de vil bli vist). </string>
<string name="help_gps_troubleshooting_title">OpenTracks tar ikke opp posisjoner\?</string>
<string name="help_gps_troubleshooting_content"> Hva du kan gjøre:
\n a) sjekk om GPS er slått på,
\n b) forbedre GPS-mottak (f.eks. gå utendørs),
\n c) sjekk med programmet <a href="https://f-droid.org/en/packages/com.android.gpstest.osmdroid/">GPSTest</a>, og
\n d) slå av strømsparing.
\n
\n Hvis alt dette ikke hjelper, kan du rapportere en feil. </string>
<string name="help_support_content"> Du kan:
\n a) spre info om OpenTracks,
\n b) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">foreslå funksjoner</a>,
\n c) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">rapportere feil</a>,
\n d) hjelpe til med programvareutvikling,
\n e) kjøpe programmet i <a href="https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore">Google Play Store</a>,
\n f) donere, og
\n g) gjøre noe du tror hjelper OpenTracks. </string>
<string name="help_gps_troubleshooting_content">Hva du kan gjøre:\n a) sjekk om GPS er slått på,\n b) forbedre GPS-mottak (f.eks. gå utendørs),\n c) sjekk med programmet <a href="https://f-droid.org/en/packages/com.android.gpstest.osmdroid/">GPSTest</a>, og\n d) slå av strømsparing.\n \n Hvis alt dette ikke hjelper, kan du rapportere en feil.</string>
<string name="help_support_content">Du kan:\n a) spre info om OpenTracks,\n b) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">foreslå funksjoner</a>,\n c) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">rapportere feil</a>,\n d) hjelpe til med programvareutvikling,\n e) kjøpe programmet i <a href="https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore">Google Play Store</a>,\n f) donere, og\n g) gjøre noe du tror hjelper OpenTracks.</string>
<string name="description_altitude_loss">Total nedstigning: %1$d m (%2$d ft)</string>
<string name="stats_loss">Total nedstigning</string>
<string name="import_prevent_reimport">Du har stilt inn forhindring av at spor importeres om igjen</string>
@@ -547,7 +527,7 @@ limitations under the License.
<string name="value_float_knots">%1$.1f knop</string>
<string name="value_float_knots_recommended">%1$.1f knop (anbefales)</string>
<string name="voice_per_nautical_mile">per nautisk mil</string>
<string name="show_on_dashboard_not_installed">Ingen app som støtter OpenTracks-API for oversikten er installert.</string>
<string name="show_on_dashboard_not_installed">Ingen app som støtter OpenTracks Dashboard-API er installert.</string>
<string name="track_delete_number_of_tracks">%1$d spor</string>
<string name="settings_public_api_package_title">Pakkenavn for offentlig API</string>
<string name="introduction_osm_dashboard">OpenTracks sørger ikke selv for kart. Installer OSMDashboard for å vise opptakene dine på et kart.</string>
@@ -595,4 +575,7 @@ limitations under the License.
<string name="settings_sensor_bluetooth_service_filter_off">Vis alle Bluetooth-enheter som kan oppdages</string>
<string name="permission_recording_failed">OpenTracks krever tillatelse for å få tilgang til posisjonen din samt enheter i nærheten.</string>
<string name="create_marker_error">Klarte ikke å opprette en markør. Prøv igjen.</string>
<string name="settings_locale_title">Språk</string>
<string name="settings_locale_system_default">Systemstandard</string>
<string name="stats_gain_loss">Total stigning og nedstigning</string>
</resources>
+9 -22
View File
@@ -14,7 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--><resources>
<string name="about_preference_title">Over OpenTracks</string>
<string name="about_preference_title">Over</string>
<string name="about_description"><i>OpenTracks</i> is een sport tracker applicatie met respect voor privacy.</string>
<string name="about_url">Project webpagina: <a href="%1$s">%1$s</a></string>
<string name="about_version_name">Versienaam: %1$s</string>
@@ -30,38 +30,22 @@ limitations under the License.
\n* werkt volledig offline
\n* toon tracks op een kaart (zie hieronder)</string>
<string name="help_track_map_title">Hoe wordt een spoor op een kaart weergegeven\?</string>
<string name="help_track_map_content"> \u0020Gebruik het kleine kaartpictogram.
\n \u0020a) \u0020(live updates) Installeer <a href="https://github.com/OpenTracksApp/OSMDashboard">OSMDashboard</a>. Het biedt online of offline kaarten via <a href="https://www.openstreetmap.org">OpenStreetMap</a>.
\n \u0020Eigenlijk is OSMDashboard een aparte app die alleen (tijdelijk) toegang heeft tot de gegevens van de track(s) die getoond gaan worden.
\n \u0020b) \u0020Via een normale kaartapplicatie (bijv. <a href="http://osmand.net/">OsmAnd</a> en <a href="https://maps.me/">MAPS.ME</a>). Deze apps moeten het KMZ-bestandsformaat ondersteunen (alleen locaties en tijdstempels). In feite moet een app <i>ACTION_VIEW</i> ondersteunen met MIME <i>application/vnd.google-earth.kmz</i>. \u0020</string>
<string name="help_track_map_content">Gebruik het kleine kaartpictogram. \n a) (live updates) Installeer <a href="https://github.com/OpenTracksApp/OSMDashboard">OSMDashboard</a>. Het biedt online of offline kaarten via <a href="https://www.openstreetmap.org">OpenStreetMap</a>. \n Eigenlijk is OSMDashboard een aparte app die alleen (tijdelijk) toegang heeft tot de gegevens van de track(s) die getoond gaan worden. \n b) Via een normale kaartapplicatie (bijv. <a href="http://osmand.net/">OsmAnd</a> en <a href="https://maps.me/">MAPS.ME</a>). Deze apps moeten het KMZ-bestandsformaat ondersteunen (alleen locaties en tijdstempels). In feite moet een app <i>ACTION_VIEW</i> ondersteunen met MIME <i>application/vnd.google-earth.kmz</i>.</string>
<string name="help_storage_pictures_title">Hoe slaat OpenTracks foto\'s op die als markeringen zijn genomen\?</string>
<string name="help_storage_pictures_content">Deze worden opgeslagen in de interne opslag van de app (d.w.z. alleen toegankelijk binnen OpenTracks).</string>
<string name="help_track_export_title">Hoe kan ik opgenomen tracks exporteren/delen?</string>
<string name="help_track_export_content"> Tracks kunnen worden geëxporteerd vanuit de instellingen als KMZ, KML of GPX. KMZ/KML alle gegevens; GPX alleen locaties. Tracks die worden gedeeld via het <i>share-icoontje</i> worden gedeeld als KMZ </string>
<string name="help_track_export_content">Tracks kunnen worden geëxporteerd vanuit de instellingen als KMZ, KML of GPX. KMZ/KML alle gegevens; GPX alleen locaties. Tracks die worden gedeeld via het <i>share-icoontje</i> worden gedeeld als KMZ.</string>
<string name="help_data_google_play_services_title">Vereist/gebruikt OpenTracks Google Play Service\?</string>
<string name="help_recording_title">Hoe legt OpenTracks gegevens vast?</string>
<string name="help_recording_content">
OpenTracks gebruikt de GPS-sensor van het apparaat om de locatie continu te registreren.
Als het GPS-apparaat onnauwkeurige gegevens rapporteert (bijv. locatie, snelheid, hoogte), kan OpenTracks daar niets aan doen.</string>
<string name="help_data_storage_title">Hoe slaat OpenTracks sensorgegevens op?</string>
<string name="help_data_storage_content"> De sensorgegevens worden per opgenomen locatie opgeslagen. In termen van een hartslagsensor betekent dit dat slechts <i>een</i> hartslagmeting per locatie wordt opgeslagen. Als u stilstaat of binnenshuis bent, worden er geen sensorgegevens geregistreerd (maar wel getoond) </string>
<string name="help_data_storage_content">De sensorgegevens worden per opgenomen locatie opgeslagen. In termen van een hartslagsensor betekent dit dat slechts <i>een</i> hartslagmeting per locatie wordt opgeslagen. Als u stilstaat of binnenshuis bent, worden er geen sensorgegevens geregistreerd (maar wel getoond).</string>
<string name="help_gps_troubleshooting_title">OpenTracks neemt geen locaties op?</string>
<string name="help_gps_troubleshooting_content"> \u0020Wat u kunt doen:
\n \u0020a) Controleer of GPS is ingeschakeld,
\n \u0020b) verbeter de GPS-ontvangst (ga bijvoorbeeld naar buiten),
\n \u0020c) controleren met <a href="https://f-droid.org/en/packages/com.android.gpstest.osmdroid/">GPSTest</a> app, en
\n \u0020d) schakel energiebesparing uit.
\n
\n \u0020Als alles niet helpt, rapporteer dan een mogelijke fout. \u0020</string>
<string name="help_gps_troubleshooting_content">Wat u kunt doen:\n a) Controleer of GPS is ingeschakeld,\n b) verbeter de GPS-ontvangst (ga bijvoorbeeld naar buiten),\n c) controleren met <a href="https://f-droid.org/en/packages/com.android.gpstest.osmdroid/">GPSTest</a> app, en\n d) schakel energiebesparing uit.\n \n Als alles niet helpt, rapporteer dan een mogelijke fout.</string>
<string name="help_support_title">Hoe kan ik OpenTracks ondersteunen?</string>
<string name="help_support_content"> \u0020U kunt:
\n \u0020a) anderen vertellen over OpenTracks,
\n \u0020b) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">functies voorstellen</a>,
\n \u0020c) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">bugs melden</a>,
\n \u0020d) helpen bij de ontwikkeling van software,
\n \u0020e) aanschaffen in <a href="https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore">Google Play Store</a>,
\n \u0020f) doneren, en
\n \u0020g) wat u ook denkt dat OpenTracks helpt. \u0020</string>
<string name="help_support_content">U kunt:\n a) anderen vertellen over OpenTracks,\n b) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">functies voorstellen</a>,\n c) <a href="https://github.com/OpenTracksApp/OpenTracks/issues">bugs melden</a>,\n d) helpen bij de ontwikkeling van software,\n e) aanschaffen in <a href="https://play.google.com/store/apps/details?id=de.dennisguse.opentracks.playstore">Google Play Store</a>,\n f) doneren, en\n g) wat u ook denkt dat OpenTracks helpt.</string>
<!-- Activity Type -->
<string name="activity_type_airplane">vliegtuig</string>
<string name="activity_type_atv">quad</string>
@@ -607,4 +591,7 @@ Als het GPS-apparaat onnauwkeurige gegevens rapporteert (bijv. locatie, snelheid
<string name="settings_announcements_lap_power">Lap power</string>
<string name="power_x_watt">Power {x, plural, =1 {1 watt} other {# watt} }</string>
<string name="create_marker_error">Kan geen markering maken. Probeer het opnieuw.</string>
<string name="settings_locale_title">Taal</string>
<string name="settings_locale_system_default">Systeemstandaard</string>
<string name="stats_gain_loss">Winst &amp; verlies</string>
</resources>