diff --git a/GPX.md b/GPX.md
deleted file mode 100644
index b3f1e441e4..0000000000
--- a/GPX.md
+++ /dev/null
@@ -1,157 +0,0 @@
-The OsmAnd's GPX file format conforms to the GPX 1.1 specification with additional data written as extensions. There are several sections of such data:
-
-## Track appearance
-The following parameters are used to customize the appearance of a track on the map. They are used inside the "gpx" tag and apply to all tracks contained in the gpx.
-#### Parameters
-* **show_arrows** [*true, false*] - show / hide arrows along the path line.
-* **width** [*thin, medium, bold, 1-24*] - width of the track line on the map. The thin, medium, and bold are style depended values (should be defined as currentTrackWidth attribute).
-* **color** [*#AARRGGBB, #RRGGBB*] - color of a track line on the map. Hex value.
-* **split_type** [*no_split, distance, time*] - split type for a track.
-* **split_interval** [*double*] - split interval for a track. Distance (meters), time (seconds).
-
-#### Example:
-```xml
-
-...
-
- true
- #4e4eff
- distance
- 2000.0
- bold
-
-
-```
-## Details of a track point (trkpt)
-Written to a gpx file while recording a track.
-* **speed** (meters per second)
-* **heading** (0-359 degrees)
-
-#### Example:
-```xml
-
- 203
-
- 3
-
- 273
- 5.02
-
-
-```
-
-## Calculated route(s)
-This data contains all details of a route built with **OsmAnd** (route segments, turns, road names, road types, restrictions, etc.). The route can be completely restored as if just built, even in the absence of the respective offline maps.
-
-A gpx file may contain several routes. Each of them is contained in a specific segment under **trkseg** / **extensions**. A gpx file is saved in this form when exporting a constructed route or when saving a track that consists of several separate segments via the **Plan a route** functionality.
-**Plan a route** also adds one (or several, in accordance with the number of contained separate segments / tracks) **rte** blocks to the gpx file, containing route key points (**rtept**).
-#### Gpx structure:
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ...
-
- ...
-
-
-
-```
-
-#### Example:
-```xml
-
-
- Fri 06 Nov 2020
-
-
- Fri 06 Nov 2020
-
-
- 0.801
-
-
- 0.998
-
-
- 1
-
-
- 0.963
-
-
- 0.899
-
-
- ....
-
-
-
-
-
-
-
- ...
-
-
-
-
-
-
-
- ...
-
-
-
-
-
-
-
-
- pedestrian
- 0
-
-
-
-
- pedestrian
- 24
-
-
-
-
- pedestrian
- 89
-
-
-
-
- pedestrian
- 121
-
-
-
-
-```
diff --git a/OsmAnd-api/src/net/osmand/aidlapi/customization/ProfileSettingsParams.java b/OsmAnd-api/src/net/osmand/aidlapi/customization/ProfileSettingsParams.java
index 00c68851e7..a22d4e3c91 100644
--- a/OsmAnd-api/src/net/osmand/aidlapi/customization/ProfileSettingsParams.java
+++ b/OsmAnd-api/src/net/osmand/aidlapi/customization/ProfileSettingsParams.java
@@ -8,6 +8,7 @@ import net.osmand.aidlapi.AidlParams;
import net.osmand.aidlapi.profile.AExportSettingsType;
import java.util.ArrayList;
+import java.util.List;
import static net.osmand.aidlapi.profile.ExportProfileParams.SETTINGS_TYPE_KEY;
@@ -15,16 +16,18 @@ public class ProfileSettingsParams extends AidlParams {
public static final String VERSION_KEY = "version";
public static final String REPLACE_KEY = "replace";
+ public static final String SILENT_IMPORT_KEY = "silentImport";
public static final String LATEST_CHANGES_KEY = "latestChanges";
public static final String PROFILE_SETTINGS_URI_KEY = "profileSettingsUri";
private Uri profileSettingsUri;
private String latestChanges;
private int version;
- private ArrayList settingsTypeKeyList = new ArrayList<>();
- boolean replace;
+ private List settingsTypeKeyList = new ArrayList<>();
+ private boolean silent;
+ private boolean replace;
- public ProfileSettingsParams(Uri profileSettingsUri, ArrayList settingsTypeList, boolean replace,
- String latestChanges, int version) {
+ public ProfileSettingsParams(Uri profileSettingsUri, List settingsTypeList, boolean replace,
+ boolean silent, String latestChanges, int version) {
this.profileSettingsUri = profileSettingsUri;
for (AExportSettingsType settingsType : settingsTypeList) {
settingsTypeKeyList.add(settingsType.name());
@@ -32,6 +35,7 @@ public class ProfileSettingsParams extends AidlParams {
this.replace = replace;
this.latestChanges = latestChanges;
this.version = version;
+ this.silent = silent;
}
public ProfileSettingsParams(Parcel in) {
@@ -62,7 +66,7 @@ public class ProfileSettingsParams extends AidlParams {
return profileSettingsUri;
}
- public ArrayList getSettingsTypeKeys() {
+ public List getSettingsTypeKeys() {
return settingsTypeKeyList;
}
@@ -70,13 +74,18 @@ public class ProfileSettingsParams extends AidlParams {
return replace;
}
+ public boolean isSilent() {
+ return silent;
+ }
+
@Override
public void writeToBundle(Bundle bundle) {
bundle.putInt(VERSION_KEY, version);
bundle.putString(LATEST_CHANGES_KEY, latestChanges);
bundle.putParcelable(PROFILE_SETTINGS_URI_KEY, profileSettingsUri);
- bundle.putStringArrayList(SETTINGS_TYPE_KEY, settingsTypeKeyList);
+ bundle.putStringArrayList(SETTINGS_TYPE_KEY, new ArrayList<>(settingsTypeKeyList));
bundle.putBoolean(REPLACE_KEY, replace);
+ bundle.putBoolean(SILENT_IMPORT_KEY, silent);
}
@Override
@@ -86,5 +95,6 @@ public class ProfileSettingsParams extends AidlParams {
profileSettingsUri = bundle.getParcelable(PROFILE_SETTINGS_URI_KEY);
settingsTypeKeyList = bundle.getStringArrayList(SETTINGS_TYPE_KEY);
replace = bundle.getBoolean(REPLACE_KEY);
+ silent = bundle.getBoolean(SILENT_IMPORT_KEY);
}
}
\ No newline at end of file
diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java
index 14d0abab79..861a7c9b93 100644
--- a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java
+++ b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java
@@ -274,6 +274,10 @@ public class Amenity extends MapObject {
return null;
}
+ public String getTagContent(String tag) {
+ return getTagContent(tag, null);
+ }
+
public String getTagContent(String tag, String lang) {
if (lang != null) {
String translateName = getAdditionalInfo(tag + ":" + lang);
diff --git a/OsmAnd/no_translate.xml b/OsmAnd/no_translate.xml
index 92d3a4034f..d5ecc7c149 100644
--- a/OsmAnd/no_translate.xml
+++ b/OsmAnd/no_translate.xml
@@ -40,7 +40,7 @@
items modifiedOsmAnd UnlimitedMarkers
- https://test.openplacereviews.org/
+ https://openplacereviews.org/https://test.openplacereviews.org/v8G8r9NLJZGMV4he5lwbQlz620FNVARKjI9Bm5UJjDvM95Ne1Bq2BDTmIfB6b3ZMxvdK87WGfp6DC07J
diff --git a/OsmAnd/res/layout/item_gpx_stat_block.xml b/OsmAnd/res/layout/item_gpx_stat_block.xml
index 18dfa5cdde..dd0ed2a571 100644
--- a/OsmAnd/res/layout/item_gpx_stat_block.xml
+++ b/OsmAnd/res/layout/item_gpx_stat_block.xml
@@ -10,43 +10,59 @@
android:orientation="horizontal">
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:weightSum="2">
-
+
+
+
+
+
diff --git a/OsmAnd/res/layout/track_menu.xml b/OsmAnd/res/layout/track_menu.xml
index 671a9332f1..db0f8a47f9 100644
--- a/OsmAnd/res/layout/track_menu.xml
+++ b/OsmAnd/res/layout/track_menu.xml
@@ -91,6 +91,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml
index 8929bd6f4d..4b91263f2d 100644
--- a/OsmAnd/res/values-ar/strings.xml
+++ b/OsmAnd/res/values-ar/strings.xml
@@ -3513,7 +3513,7 @@
أنواع نقاط الاهتماملا شيء محددزر الإجراء السريع
- ملفات التعريف
+ الأوضاعسيتم استبدال العناصر الحالية بالعناصر التي في الملفاستبدل الكلاحصل على %1$d %2$s عند %3$s مقابل.
@@ -3965,7 +3965,7 @@
مساحة جهازك %1$s الخالية فقط. يرجى تحرير بعض المساحة أو إلغاء تحديد بعض العناصر للتصدير.المصادرحجم الملف التقريبي
- حدد البيانات التي سيتم تصديرها إلى الملف.
+ حدد البيانات التي سيتم تصديرها إلى ملف.مطلوب للاستيرادلا يوجد مساحة كافيةأضف إلى مابيلاي
@@ -3997,10 +3997,10 @@
\n • دعم ألوان مخصصة للمفضلة ونقاط لمسار الطريق
\n
\n
- ملف تعريف أوسماند
+ وضع الاستعراضملف تعريف المستخدمعكس جميع النقاط
- حدد ملف التعريف، الذي سيتم استخدامه في بدء التطبيق.
+ حدد الوضع الذي سيتم استخدامه في بدء التطبيق.آخر استخدامتفضيل طرق التنزهتفضيل طرق التنزه
@@ -4063,4 +4063,10 @@
MTBخطأ في الخادم: %1$sالاسم موجود بالفعل
+ هل تريد حذف محرك التوجيه عبر الإنترنت؟
+ قراءة كاملة
+ تحرير الوصف
+ حذف نقاط الطريق
+ نسخ لعلامات الخريطة
+ نسخ للمفضلة
\ No newline at end of file
diff --git a/OsmAnd/res/values-bn/strings.xml b/OsmAnd/res/values-bn/strings.xml
index 1dd3435fca..09ae3e8f32 100644
--- a/OsmAnd/res/values-bn/strings.xml
+++ b/OsmAnd/res/values-bn/strings.xml
@@ -24,4 +24,8 @@
ওএসএমও কেনাকাটাএকটি মানচিত্রের প্রতীকের জন্য গাইডন্যাভিগেশন প্রোফাইল
+ অবস্থানগুলো
+ দিক নির্ণয়
+ মি/সে
+ নটিকাল মাইল
\ No newline at end of file
diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml
index 1a037e42ff..56f6940aae 100644
--- a/OsmAnd/res/values-es-rAR/strings.xml
+++ b/OsmAnd/res/values-es-rAR/strings.xml
@@ -3982,7 +3982,7 @@
PrepararFuera de la rutaHas llegado al destino
- Giro
+ GirarIntervalos de tiempo y distanciaEl tiempo de anuncio de las diferentes indicaciones por voz depende del tipo de mensaje, la velocidad de navegación actual y la velocidad de navegación predefinida.Tiempo de anuncio
@@ -4003,4 +4003,10 @@
Bicicleta de montañaError de servidor: %1$sEl nombre ya existe
+ ¿Borrar este motor de navegación en línea\?
+ Leer completo
+ Editar descripción
+ Borrar puntos de referencia
+ Copiar a «Marcadores del mapa»
+ Copiar a favoritos
\ No newline at end of file
diff --git a/OsmAnd/res/values-lt/strings.xml b/OsmAnd/res/values-lt/strings.xml
index 09ee2a83fd..3c683d41cf 100644
--- a/OsmAnd/res/values-lt/strings.xml
+++ b/OsmAnd/res/values-lt/strings.xml
@@ -18,9 +18,8 @@
po pietrytoStatymo vieta
- Šis įskiepis leidžia įsiminti vietą, kurioje palikote savo automobilį ir kiek laiko liko iki parkavimo pabaigos (jei ribojamas laikas).
-
-Tiek vieta, tiek laikas yra matomi OsmAnd valdymo skydelyje bei skydelyje žemėlapyje rodinyje. Šis įskiepis taip pat gali įrašyti priminimą į kalendorių.
+ Šis įskiepis leidžia įsiminti vietą, kurioje palikote savo automobilį ir kiek laiko liko iki parkavimo pabaigos .
+\nTiek vieta, tiek laikas yra matomi OsmAnd valdymo skydelyje bei skydelyje žemėlapyje rodinyje. Šis įskiepis taip pat gali įrašyti priminimą į Android kalendorių.Statymo vietaŽymėti statymo vietąNaikinti statymo žymę
@@ -200,9 +199,8 @@ Tiek vieta, tiek laikas yra matomi OsmAnd valdymo skydelyje bei skydelyje žemė
Foninis režimasReikalinga, jei norite naudoti OsmAnd kai ekranas yra išjungtas.Neužtenka vietos parsiųsti %1$s MB (laisva: %2$s).
- Atsiųsti {0} failą(-us)?
-Tam prireiks {1} MB pastoviam saugojimui.
-(Dabar laisvos vietos yra {2} MB.)
+ Atsiųsti {0} failą(-us)\?
+\nTam prireiks {1} MB pastoviam saugojimui. (Dabar laisvos vietos yra {2} MB.)Permatoma temaAparatinė biblioteka šiame įrenginyje nepalaikoma.Inicializuojama aparatinė biblioteka…
@@ -778,8 +776,28 @@ Tam prireiks {1} MB pastoviam saugojimui.
Vengti greitkeliųPoziciją rodyti ant kelių kai naviguojama.Rodyti ant kelio
- OsmAnd (OSM Automated Navigation Directions)
-\nOsmAnd yra atviro kodo programa naudojanti įvairius OpenStreetMap (OSM) duomenis. Visi žemėlapių duomenys (vektoriniai ar lakštiniai) gali būti išsaugoti telefone ir naudojami be interneto prieigos. OsmAnd taip pat gali pasiūlyti maršruto skaičiavimo paslaugas internete ar įrenginyje, bei balso nurodymus kelionei apskaičiuotu maršrutu. Dalis pagrindinių savybių: - Veikia be interneto (išsaugokite parsiųstus žemėlapius ar jų lakštus įrenginyje) - Kompaktiški vektoriniai viso pasaulio žemėlapiai - Parsisųskite šalies ar regiono žemėlapius tiesiai iš pačios propgramos - Galima sulieti kelis žemėlapop sluoksnius, tokius kaip GPX ar judėjimo istoriją, Lankytinas Vietas, mėgiamas vietas, kontūrų linijas, viešojo transporto stoteles, papildomus žemėlapius su pasirinktinai nustatomu permatomumo lygiu - Adresų ir LV paieška nenaudojant interneto - Vidutinio ilgio maršruto apskaičiavimas be interneto paslaugų - Automobilio, dviračio ir pėsčiojo režimai su: - pasirinktiniu dineos/nakties rodinio perjungimu - pasirinktiniu pagal judėjimo greitį automatiškai nustatomu mąsteliu - pasirinktine žemėlapio orientacija pagal kompaso arba judėjimo kryptį - pasirinktinis eismo juostų nurodymas, greičio ribojimų rodymas, įrašyti ar generuojami balsai Šios nemokamos OsmAnd versijos apribojimai: - Ribojamas žemėlapių parsiuntimų skaičius - Nėra prieigos prie iš Wikipedia parsiunčiamų LV OsmAnd yra aktyviai tobulinama ir mūsų projektas bei jo tolesnis progresas priklauso nuo finansinės paramos, kuri įgalina tolesnį vystymą ir naujų funkcijų kūrimą. Norime paskatinti jus nusipirkti OsmAnd+ programą arba finansiškai prisidėti prie specifinių funkcijų kūrimo arba šiaip paremti programą osmand.net svetainėje.
+ OsmAnd (OSM Automated Navigation Directions)
+\n
+\nOsmAnd yra atviro kodo programa naudojanti įvairius OpenStreetMap (OSM) duomenis. Visi žemėlapių duomenys (vektoriniai ar lakštiniai) gali būti išsaugoti telefone ir naudojami be interneto prieigos. OsmAnd taip pat gali pasiūlyti maršruto skaičiavimo paslaugas internete ar įrenginyje, bei balso nurodymus kelionei apskaičiuotu maršrutu.
+\n
+\nDalis pagrindinių savybių:
+\n- Veikia be interneto (išsaugokite parsiųstus žemėlapius ar jų lakštus įrenginyje)
+\n- Kompaktiški vektoriniai viso pasaulio žemėlapiai
+\n- Parsisųskite šalies ar regiono žemėlapius tiesiai iš pačios propgramos
+\n- Galima sulieti kelis žemėlapop sluoksnius, tokius kaip GPX ar judėjimo istoriją, Lankytinas Vietas, mėgiamas vietas, kontūrų linijas, viešojo transporto stoteles, papildomus žemėlapius su pasirinktinai nustatomu permatomumo lygiu
+\n - Adresų ir LV paieška nenaudojant interneto
+\n- Vidutinio ilgio maršruto apskaičiavimas be interneto prieigos
+\n- Automobilio, dviračio ir pėsčiojo režimai su:
+\n- pasirinktiniu dineos/nakties rodinio perjungimu
+\n- pasirinktiniu pagal judėjimo greitį automatiškai nustatomu mąsteliu
+\n- pasirinktine žemėlapio orientacija pagal kompaso arba judėjimo kryptį
+\n- pasirinktinis eismo juostų nurodymas, greičio ribojimų rodymas, įrašyti ar generuojami balsai
+\n
+\nNemokamos OsmAnd versijos apribojimai:
+\n- Ribojamas žemėlapių parsiuntimų skaičius
+\n- Nėra prieigos prie iš Wikipedia parsiunčiamų LV
+\n
+\n OsmAnd yra aktyviai tobulinama ir mūsų projektas bei jo tolesnis progresas priklauso nuo finansinės paramos, kuri įgalina tolesnį vystymą ir naujų funkcijų kūrimą. Norime paskatinti jus nusipirkti OsmAnd+ programą arba finansiškai prisidėti prie specifinių funkcijų kūrimo arba šiaip paremti programą https://osmand.net svetainėje.OsmAnd - atviro kodo navigacijos programa su žemėlapiaisOsmAnd+ (OSM Automated Navigation Directions)
\n
@@ -1872,9 +1890,9 @@ Failams reikalinga {3} MB laikinam ir {1} MB pastoviam saugojimui.
Prenumerata leidžia kas valandą gauti visų pasaulio žemėlapių atnaujinimus.
Dalis pajamų grįžta OSM bendruomenei ir apmokamas kiekvienas indėlis į OSM kūrimą.
Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka.
- Ar siųsti {0} failų?
- Failams reikalinga {3} MB laikinam ir {1} MB pastoviam saugojimui.
- (Šiuo metu prieinama tik {2} MB vietos.)
+ Ar siųsti {0} failų\?
+\nFailams reikalinga {3} MB laikinam ir {1} MB pastoviam saugojimui.
+\n(Šiuo metu prieinama tik {2} MB vietos.)Ispanų (Amerikos)Anglų (Junginė Karalystė)Belarusų (Lotynų)
@@ -2419,7 +2437,9 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka.Paskutinį kartą naudota: %1$sTaisymų %1$s, suma %2$s mBTCLaosiečių
- OsmAnd (OSM Automated Navigation Directions) yra žemėlapio ir navigacijos programa su prieiga prie nemokamų, pasaulinių ir aukštos kokybės OpenStreetMap (OSM) duomenų. Naudokitės balso ir vaizdo navigatoriumi, peržiūrėkite LV (lankytinas vietas), kurkite ir valdytkite GPX kelius, naudojkite kontūro linijos vizualizaciją ir aukščio info (įskiepių pagalba), pasirinkite vairavimo, dviračių, pėsčiųjų režimus, redaguokite OSM duomenis ir daug daugiau.
+ OsmAnd (OSM Automated Navigation Directions) yra žemėlapio ir navigacijos programa su prieiga prie nemokamų, pasaulinių ir aukštos kokybės OpenStreetMap (OSM) duomenų.
+\n
+\nNaudokitės balso ir vaizdo navigatoriumi, peržiūrėkite LV (lankytinas vietas), kurkite ir valdytkite GPX kelius, naudojkite kontūro linijos vizualizaciją ir aukščio info (įskiepių pagalba), pasirinkite vairavimo, dviračių, pėsčiųjų režimus, redaguokite OSM duomenis ir daug daugiau.Nuostatos pavadinimasBakstelėję veiksmo mygtuką pridėsite žemėlapio žymeklį ekrano centre.Bakstelėję veiksmo mygtuką pridėsite garso įrašą ekrano centre.
diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml
index bff5af5293..7c3e0695ce 100644
--- a/OsmAnd/res/values-nb/strings.xml
+++ b/OsmAnd/res/values-nb/strings.xml
@@ -1526,7 +1526,7 @@
Taledataversjon som ikke støttesSporer posisjonen din mens skjermen er slått av.Favoritter delt via OsmAnd
- Lagre data som GPX-fil eller importere rutepunkter til Favoritter\?
+ Lagre data som GPX-fil eller importere rutepunkter til favoritter\?Format for geografiske koordinater.KoordinatformatSøk
@@ -3919,4 +3919,18 @@
Vanlig syklingTjenerfeil: %1$sNavnet finnes allerede
+ Analyser ved intervaller (delt intervall)
+ Ruteavvik
+ Stor lastebil
+ Slett denne nettbaserte rutingsmotoren\?
+ Les hele
+ Slett rutepunkt
+ Luke
+ Logg inn på OpenStreetMap
+ Logg inn
+ Tidsforbruk
+ Ankomst
+ Rediger beskrivelse
+ Kopier til kartmarkører
+ Kopier til favoritter
\ No newline at end of file
diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml
index 012850fd00..c9d8e87306 100644
--- a/OsmAnd/res/values-nl/strings.xml
+++ b/OsmAnd/res/values-nl/strings.xml
@@ -2178,8 +2178,8 @@
TijdsduurTijd in bewegingRijstijl
- Gebruik hoogtegegevens
- Factor in hoogtegegevens (van SRTM, ASTER en EU-DEM data).
+ Hoogtegegevens gebruiken
+ Gebruik hoogtegegevens (van SRTM, ASTER en EU-DEM data) bij bepalen route.TrackRechts rijdendAutomatisch
@@ -3320,9 +3320,9 @@
Route herberekeningMeldGebruikersnaam en wachtwoord
- Deze instellingen hebben betrekking op alle profielen
+ Deze plugin-instellingen hebben betrekking op alle profielenOSM Bewerking
- U kan al uw niet geüploade bewerkingen of OSM fouten zien in %1$s. Geüploade punten ziet u niet meer.
+ U kunt alle niet-geüploade bewerkingen of OSM-opmerkingen zien in %1$s. Geüploade wijzigingen ziet u niet meer.OSMTijdens navigatie of beweging getoond icoon.Bij rust getoond icoon.
@@ -3667,8 +3667,8 @@
Volgende segmentAlle volgende segmentenAlle volgende segmenten worden opnieuw berekend met het geselecteerde profiel.
- De ganse track
- De ganse track wordt herberekend volgens het geselecteerde profiel.
+ De gehele route
+ De gehele route wordt herberekend volgens het geselecteerde profiel.Punt van de track om te navigerenBewaar als nieuw trackbestandBewaar als nieuwe track
@@ -3730,8 +3730,8 @@
\nDe grafiek is beschikbaar na herberekening.%1$s — %2$sKies een trackbestand om te volgen of importeer het, vanaf uw apparaat.
- Kloof
- Op maat
+ Onderbreking
+ AangepastVoer een OAuth-login uit om osm edit functies te gebruiken"• Bijgewerkte app- en profielinstellingen: instellingen zijn nu gerangschikt op type. Elk profiel kan afzonderlijk worden aangepast.
\n
@@ -3843,41 +3843,41 @@
OnderhoudSymbolenSport
- Noodtoestand
+ NoodgevallenReizenTrackbestanden importeren of opnemenTrack waypoint toevoegenOpslaan als trackbestandRecU moet minimaal twee punten toevoegen
- Login op OpenStreetMap
- Login op OpenStreetMap.org
- Login met OpenStreetMap
- U moet inloggen om nieuwe of gewijzigde wijzigingen te uploaden.
+ Inloggen bij OpenStreetMap
+ Inloggen bij OpenStreetMap.org
+ Aanmelden via OpenStreetMap (OAuth)
+ U moet inloggen om wijzigingen te uploaden.
\n
-\nU kunt inloggen met de veilige OAuth-methode of uw login en wachtwoord gebruiken.
- Gebruik uw login gegevens
+\nU kunt inloggen met de veilige OAuth-methode of uw loginnaam en wachtwoord gebruiken.
+ Inloggen met gebruikersnaam en wachtwoord.Account
- Inloggen
+ GebruikersnaamAbonnement beherenEr is een probleem met uw abonnement. Klik op de knop om naar de Google Play-abonnementsinstellingen te gaan om uw betalingsmethode te corrigeren.OsmAnd Live-abonnement is verlopenOsmAnd Live-abonnement is gepauzeerd
- Het OsmAnd Live-abonnement is op wacht gezet
- Markeervlaggen geschiedenis
+ Het OsmAnd Live-abonnement is opgeschort
+ Markeervlaggetjes-geschiedenisStuur het GPX-bestand naar OpenStreetMapVoer tags in, gescheiden door komma\'s.
- Openbaar betekent dat de trace openbaar zal worden getoond in Uw GPS-sporen en in openbare GPS-traceerlijsten. Gegevens die via de API worden geleverd, verwijzen niet naar uw traceerpagina. Tijdaanduidingen van de traceerpunten zijn niet beschikbaar via de openbare GPS-API en de punten zijn niet chronologisch gerangschikt. Andere gebruikers kunnen de onbewerkte tracering echter nog steeds downloaden van de openbare traceringslijst en eventuele tijdaanduiding erin.
- Privé betekent dat de trace niet in openbare vermeldingen zal verschijnen, maar trackpoints ervan zullen nog steeds beschikbaar zijn via de openbare GPS API zonder tijdaanduiding, maar zullen niet chronologisch worden gerangschikt.
- Identificeerbaar betekent dat de trace openbaar wordt getoond in uw GPS-sporen en in openbare GPS-trace-lijsten, dat wil zeggen dat andere gebruikers de onbewerkte trace kunnen downloaden en deze aan uw gebruikersnaam kunnen koppelen. Gegevens die via de trackpoints-API worden aangeboden, verwijzen naar uw oorspronkelijke tracepagina. Tijdaanduidingen van de traceerpunten zijn beschikbaar via de openbare GPS-API.
- Trackbaar betekent dat de trace niet in openbare vermeldingen zal verschijnen, maar trackpoints ervan zullen nog steeds beschikbaar zijn via de openbare GPS API met tijdaanduiding. Andere gebruikers kunnen alleen verwerkte trackpoints downloaden van uw trace die niet rechtstreeks aan u kunnen worden gekoppeld.
+ \"Publiek\" betekent dat de track openbaar wordt getoond in \"Jouw GPS-tracks\" en in openbare GPS-track-lijsten. Trackpoints die d.m.v. de API worden gedownload zullen niet aan je oorspronkelijke trackpagina refereren. Tijden in de tracks zijn niet beschikbaar in de publieke GPS API, maar de punten zullen wel chronologisch geordend zijn. Echter, andere gebruikers kunnen de track van de openbare GPS-track-lijsten downloaden met alle tijdinformatie.
+ \"Persoonlijk\" betekent dat de track niet wordt getoond in openbare GPS-track-lijsten, maar de trackpunten zijn wel beschikbaar in volgorde van tijd door de publieke GPS API, maar zonder tijdinformatie.
+ \"Identificeerbaar\" betekent dat de trace openbaar wordt getoond in uw GPS-sporen en in openbare GPS-trace-lijsten. Dat wil zeggen dat andere gebruikers de onbewerkte trace kunnen downloaden en deze aan uw gebruikersnaam kunnen koppelen. Gegevens die via de trackpoints-API worden aangeboden, verwijzen naar uw oorspronkelijke tracepagina. Tijdaanduidingen van de traceerpunten zijn beschikbaar via de openbare GPS-API.
+ \"Traceerbaar\" betekent dat de track niet wordt getoond in openbare GPS-track-lijsten maar de trackpunten zijn wel beschikbaar door de publieke GPS API met tijdinformatie. Andere gebruikers kunnen alleen bewerkte trackpunten downloaden die niet aan jou herleid kunnen worden.Sluit OSM NoteOpmerking maken bij OSM-nota
- U kunt inloggen met de veilige OAuth-methode of uw login en wachtwoord gebruiken.
+ U kunt inloggen met de veilige OAuth-methode, of uw loginnaam en wachtwoord gebruiken.Een foto toevoegenRegistreer u op
\nOpenPlaceReviews.org
- Foto\'s zijn afkomstig van het open data-project OpenPlaceReviews.org. Om uw foto\'s te uploaden, moet u zich aanmelden op deze website.
+ Foto\'s zijn afkomstig van het open data-project OpenPlaceReviews.org. Om uw foto\'s te uploaden, moet u zich aanmelden op hun website.Maak een nieuw account aanIk heb al een account%1$s * %2$s
@@ -3954,4 +3954,43 @@
Laat regelmatig droogvallende waterwegen toeGeef een parameterLaat leeg indien niet
+ Analyseren met intervallen
+ Uploaden naar OpenStreetMap
+ GPX-track bewerken
+ GPX-track hernoemen
+ Map wijzigen
+ sec
+ Bij nadering
+ Bij passeren
+ Ruime vooraankondiging
+ Vooraankondiging
+ Afwijking van de route
+ Aankomst op bestemming
+ Bocht
+ Tijd- en afstandsintervallen
+ De aankondigingstijd van verschillende aankondigen hangt af van type en huidige snelheid.
+ Aankondigingstijd
+ Start opname
+ Toon GPX-track op de kaart
+ Rolstoel
+ Hiken
+ Wandelen
+ Elektische Fiets
+ Mountainbiken
+ Fietsen
+ Normaal Fietsen
+ Vrachtwagen
+ Kleine Vrachtwagen
+ Vrachtwagen
+ Scooter
+ Racefiets
+ Mountainbike
+ Server fout: %1$s
+ Deze naam bestaat al
+ Deze Online-routeservice verwijderen\?
+ Helemaal inlezen
+ Beschrijving bewerken
+ Waypoints verwijderen
+ Kopiëren naar Markeervlaggetjes
+ Kopiëren naar Favorieten
\ No newline at end of file
diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml
index 33236ca153..a0a8f5fdea 100644
--- a/OsmAnd/res/values-ru/strings.xml
+++ b/OsmAnd/res/values-ru/strings.xml
@@ -1185,7 +1185,7 @@
Нет маршрутаВключите GPS в настройкахПоказывать направление к пункту назначения
- Включите плагин «Запись поездки» для использования сервисов мониторинга (запись GPX, сопровождение в реальном времени)
+ Включите плагин «Запись поездки» для использования служб мониторинга (запись GPX, сопровождение в реальном времени)Выберите цветовую схему дорог:Цветовая схема дорогШ %1$.3f Д %2$.3f
@@ -1731,7 +1731,7 @@
выбранныеНетОтменить выбор
- Отменить выбор всех
+ Отменить выборПоделитьсяМои местаИзбранные
@@ -3225,7 +3225,7 @@
\nКонтурные линии и затенение рельефаПредпочитать грунтовые дороги
- Предпочитать грунтовые дороги.
+ Предпочитать грунтовые дорогиВы уверены, что хотите обновить все карты (%1$d)\?Вы можете применить это ко всем или только к выбранному профилю.Общий
@@ -3713,7 +3713,7 @@
Удалить ближайший пунктЗадайте название точкиСледующая точка маршрута будет удалена. Если это конечный пункт, навигация завершится.
- Информация о достопримечательностях из Википедии. Ваш карманный офлайн-путеводитель — просто включите плагин Википедии и читайте об объектах вокруг вас.
+ Информация о достопримечательностях из Википедии, карманного автономного путеводителя со статьями о местах и направлениях.Скачать карты ВикипедииЭндуро мотоциклМотороллер
@@ -3937,4 +3937,53 @@
ПапкиВыбор папкиВыберите папку или добавьте новую
+ Время голосовых подсказок
+ Можно использовать данные о высотах для учёта подъёма/спуска поездки
+ Предпочитать пешеходные маршруты
+ Подтип
+ Введите параметр
+ Пешеход
+ Самокат
+ Анализ по интервалам (по отдельности)
+ Заблаговременно
+ Заранее
+ При прохождении
+ При приближении
+ Инвалидная коляска
+ Пеший туризм
+ Малый грузовик
+ Грузовик
+ Копировать в маркеры
+ Копировать в избранное
+ Удалить онлайн-маршрутизатор\?
+ Предпочитать пешеходные маршруты
+ Добавить онлайн-маршрутизатор
+ Редактировать онлайн-маршрутизатор
+ Ключ API
+ URL-адрес сервера
+ Оставить пустым, если не
+ URL со всеми параметрами будет выглядеть так:
+ Тест расчёта маршрута
+ Автомобиль
+ Онлайн-маршрутизатор
+ Онлайн-маршрутизаторы
+ Пусто
+ Отправить в OpenStreetMap
+ Редактировать трек
+ Переименовать трек
+ Изменить папку
+ сек.
+ Вне маршрута
+ Прибытие в пункт назначения
+ Поворот
+ Интервалы времени и расстояния
+ Время объявления
+ Время объявления различных голосовых подсказок зависит от типа подсказки, текущей скорости навигации и скорости навигации по умолчанию.
+ Начать запись
+ Показать трек на карте
+ Ошибка сервера: %1$s
+ Имя уже существует
+ Читать полностью
+ Редактировать описание
+ Удалить путевые точки
\ No newline at end of file
diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml
index 95f34a3db1..2da9b2324b 100644
--- a/OsmAnd/res/values-sk/strings.xml
+++ b/OsmAnd/res/values-sk/strings.xml
@@ -3995,4 +3995,10 @@
Chyba servera: %1$sNázov už existujeOdbočiť
+ Odstrániť túto online navigačnú službu\?
+ Prečítať celé
+ Upraviť popis
+ Odstrániť body trasy
+ Skopírovať do mapových značiek
+ Skopírovať do obľúbených
\ No newline at end of file
diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml
index 89091ce1d4..0cb17c35f4 100644
--- a/OsmAnd/res/values-sl/strings.xml
+++ b/OsmAnd/res/values-sl/strings.xml
@@ -3305,4 +3305,8 @@
MTBNapaka strežnika: %1$sTo ime že obstaja
+ Preberi v celoti
+ Uredi opis
+ Brisanje točk
+ Kopiraj na oznake na zemljevidu
\ No newline at end of file
diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml
index 2c86df4178..c092cb961b 100644
--- a/OsmAnd/res/values-zh-rTW/strings.xml
+++ b/OsmAnd/res/values-zh-rTW/strings.xml
@@ -3993,4 +3993,10 @@
登山車伺服器錯誤:%1$s名稱已存在
+ 刪除此線上路線引擎?
+ 讀取全部
+ 編輯描述
+ 刪除航點
+ 複製到地圖標記
+ 複製到收藏
\ No newline at end of file
diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index 7cd16f7f7e..2c3358dda4 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -2444,7 +2444,7 @@
Average%1$d of %2$dAscent/Descent
- Moving time
+ Time in motionMax/MinMin/MaxTours
diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java
index 1dc3e00d98..3687602716 100644
--- a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java
+++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java
@@ -2296,13 +2296,13 @@ public class OsmandAidlApi {
return false;
}
- public boolean importProfileV2(final Uri profileUri, ArrayList settingsTypeKeys, boolean replace,
- String latestChanges, int version) {
+ public boolean importProfileV2(final Uri profileUri, List settingsTypeKeys, boolean replace,
+ boolean silent, String latestChanges, int version) {
if (profileUri != null) {
Bundle bundle = new Bundle();
- bundle.putStringArrayList(SettingsHelper.SETTINGS_TYPE_LIST_KEY, settingsTypeKeys);
+ bundle.putStringArrayList(SettingsHelper.SETTINGS_TYPE_LIST_KEY, new ArrayList<>(settingsTypeKeys));
bundle.putBoolean(REPLACE_KEY, replace);
- bundle.putBoolean(SILENT_IMPORT_KEY, true);
+ bundle.putBoolean(SILENT_IMPORT_KEY, silent);
bundle.putString(SettingsHelper.SETTINGS_LATEST_CHANGES_KEY, latestChanges);
bundle.putInt(SettingsHelper.SETTINGS_VERSION_KEY, version);
diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java
index ed7ab614f3..fcd5d5159e 100644
--- a/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java
+++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlServiceV2.java
@@ -1270,7 +1270,7 @@ public class OsmandAidlServiceV2 extends Service implements AidlCallbackListener
try {
OsmandAidlApi api = getApi("importProfile");
return api != null && api.importProfileV2(params.getProfileSettingsUri(), params.getSettingsTypeKeys(),
- params.isReplace(), params.getLatestChanges(), params.getVersion());
+ params.isReplace(), params.isSilent(), params.getLatestChanges(), params.getVersion());
} catch (Exception e) {
handleException(e);
return false;
diff --git a/OsmAnd/src/net/osmand/plus/OsmandApplication.java b/OsmAnd/src/net/osmand/plus/OsmandApplication.java
index 842a36237e..6b9aa4d0a4 100644
--- a/OsmAnd/src/net/osmand/plus/OsmandApplication.java
+++ b/OsmAnd/src/net/osmand/plus/OsmandApplication.java
@@ -210,6 +210,8 @@ public class OsmandApplication extends MultiDexApplication {
File mapillaryVectorTilesPath = new File(tilesPath, TileSourceManager.getMapillaryVectorSource().getName());
Algorithms.removeAllFiles(mapillaryRasterTilesPath);
Algorithms.removeAllFiles(mapillaryVectorTilesPath);
+ // Remove travel sqlite db files
+ removeSqliteDbTravelFiles();
}
checkPreferredLocale();
@@ -234,6 +236,17 @@ public class OsmandApplication extends MultiDexApplication {
return externalStorageDirectoryReadOnly;
}
+ private void removeSqliteDbTravelFiles() {
+ File[] files = getAppPath(IndexConstants.WIKIVOYAGE_INDEX_DIR).listFiles();
+ if (files != null) {
+ for (File file : files) {
+ if (file.getName().endsWith(IndexConstants.BINARY_WIKIVOYAGE_MAP_INDEX_EXT)) {
+ file.delete();
+ }
+ }
+ }
+ }
+
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
index 0de562fa2b..142bf42669 100644
--- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
@@ -651,7 +651,9 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
protected void onNewIntent(final Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
- intentHelper.parseLaunchIntents();
+ if (!intentHelper.parseLaunchIntents()) {
+ intentHelper.parseContentIntent();
+ }
}
@Override
@@ -1200,7 +1202,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(gpxFile.path);
}
- TrackAppearanceFragment.showInstance(this, selectedGpxFile);
+ TrackAppearanceFragment.showInstance(this, selectedGpxFile, null);
} else if (toShow instanceof QuadRect) {
QuadRect qr = (QuadRect) toShow;
mapView.fitRectToMap(qr.left, qr.right, qr.top, qr.bottom, (int) qr.width(), (int) qr.height(), 0);
diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
index b5dd0dc3ea..258ed7be38 100644
--- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
+++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
@@ -928,7 +928,7 @@ public class MapActivityActions implements DialogProvider {
MapActivity.clearPrevActivityIntent();
TravelHelper travelHelper = getMyApplication().getTravelHelper();
travelHelper.initializeDataOnAppStartup();
- if (!travelHelper.isAnyTravelBookPresent()) {
+ if (!travelHelper.isAnyTravelBookPresent() && !travelHelper.getBookmarksHelper().hasSavedArticles()) {
WikivoyageWelcomeDialogFragment.showInstance(mapActivity.getSupportFragmentManager());
} else {
Intent intent = new Intent(mapActivity, WikivoyageExploreActivity.class);
diff --git a/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java b/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java
index ff7039702e..e173a49ad1 100644
--- a/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java
+++ b/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java
@@ -38,10 +38,10 @@ import java.util.Locale;
import java.util.Map;
public class SavingTrackHelper extends SQLiteOpenHelper {
-
+
public final static String DATABASE_NAME = "tracks"; //$NON-NLS-1$
- public final static int DATABASE_VERSION = 6;
-
+ public final static int DATABASE_VERSION = 7;
+
public final static String TRACK_NAME = "track"; //$NON-NLS-1$
public final static String TRACK_COL_DATE = "date"; //$NON-NLS-1$
public final static String TRACK_COL_LAT = "lat"; //$NON-NLS-1$
@@ -50,7 +50,7 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
public final static String TRACK_COL_SPEED = "speed"; //$NON-NLS-1$
public final static String TRACK_COL_HDOP = "hdop"; //$NON-NLS-1$
public final static String TRACK_COL_HEADING = "heading"; //$NON-NLS-1$
-
+
public final static String POINT_NAME = "point"; //$NON-NLS-1$
public final static String POINT_COL_DATE = "date"; //$NON-NLS-1$
public final static String POINT_COL_LAT = "lat"; //$NON-NLS-1$
@@ -59,7 +59,9 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
public final static String POINT_COL_CATEGORY = "category"; //$NON-NLS-1$
public final static String POINT_COL_DESCRIPTION = "description"; //$NON-NLS-1$
public final static String POINT_COL_COLOR = "color"; //$NON-NLS-1$
-
+ public final static String POINT_COL_ICON = "icon"; //$NON-NLS-1$
+ public final static String POINT_COL_BACKGROUND = "background"; //$NON-NLS-1$
+
public final static float NO_HEADING = -1.0f;
public final static Log log = PlatformUtil.getLog(SavingTrackHelper.class);
@@ -76,8 +78,8 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
private SelectedGpxFile currentTrack;
private int points;
private int trkPoints = 0;
-
- public SavingTrackHelper(OsmandApplication ctx){
+
+ public SavingTrackHelper(OsmandApplication ctx) {
super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
this.ctx = ctx;
this.currentTrack = new SelectedGpxFile();
@@ -88,11 +90,14 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
prepareCurrentTrackForRecording();
updateScript = "INSERT INTO " + TRACK_NAME + " (" + TRACK_COL_LAT + ", " + TRACK_COL_LON + ", "
- + TRACK_COL_ALTITUDE + ", " + TRACK_COL_SPEED + ", " + TRACK_COL_HDOP + ", "
- + TRACK_COL_DATE + ", " + TRACK_COL_HEADING + ")"
+ + TRACK_COL_ALTITUDE + ", " + TRACK_COL_SPEED + ", " + TRACK_COL_HDOP + ", "
+ + TRACK_COL_DATE + ", " + TRACK_COL_HEADING + ")"
+ " VALUES (?, ?, ?, ?, ?, ?, ?)"; //$NON-NLS-1$ //$NON-NLS-2$
- insertPointsScript = "INSERT INTO " + POINT_NAME + " VALUES (?, ?, ?, ?, ?, ?, ?)"; //$NON-NLS-1$ //$NON-NLS-2$
+ insertPointsScript = "INSERT INTO " + POINT_NAME + " (" + POINT_COL_LAT + ", " + POINT_COL_LON + ", "
+ + POINT_COL_DATE + ", " + POINT_COL_DESCRIPTION + ", " + POINT_COL_NAME + ", "
+ + POINT_COL_CATEGORY + ", " + POINT_COL_COLOR + ", " + POINT_COL_ICON + ", "
+ + POINT_COL_BACKGROUND + ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; //$NON-NLS-1$ //$NON-NLS-2$
}
@Override
@@ -100,19 +105,19 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
createTableForTrack(db);
createTableForPoints(db);
}
-
- private void createTableForTrack(SQLiteDatabase db){
+
+ private void createTableForTrack(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TRACK_NAME + " (" + TRACK_COL_LAT + " double, " + TRACK_COL_LON + " double, " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ TRACK_COL_ALTITUDE + " double, " + TRACK_COL_SPEED + " double, " //$NON-NLS-1$ //$NON-NLS-2$
+ TRACK_COL_HDOP + " double, " + TRACK_COL_DATE + " long, "
+ TRACK_COL_HEADING + " float )"); //$NON-NLS-1$ //$NON-NLS-2$
}
-
- private void createTableForPoints(SQLiteDatabase db){
+
+ private void createTableForPoints(SQLiteDatabase db) {
try {
db.execSQL("CREATE TABLE " + POINT_NAME + " (" + POINT_COL_LAT + " double, " + POINT_COL_LON + " double, " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ POINT_COL_DATE + " long, " + POINT_COL_DESCRIPTION + " text, " + POINT_COL_NAME + " text, "
- + POINT_COL_CATEGORY + " text, " + POINT_COL_COLOR + " long" + ")"); //$NON-NLS-1$ //$NON-NLS-2$
+ + POINT_COL_CATEGORY + " text, " + POINT_COL_COLOR + " long, " + POINT_COL_ICON + " text, " + POINT_COL_BACKGROUND + " text )"); //$NON-NLS-1$ //$NON-NLS-2$
} catch (RuntimeException e) {
// ignore if already exists
}
@@ -120,25 +125,29 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- if(oldVersion < 2){
+ if (oldVersion < 2) {
createTableForPoints(db);
}
- if(oldVersion < 3){
+ if (oldVersion < 3) {
db.execSQL("ALTER TABLE " + TRACK_NAME + " ADD " + TRACK_COL_HDOP + " double");
}
- if(oldVersion < 4){
- db.execSQL("ALTER TABLE " + POINT_NAME + " ADD " + POINT_COL_NAME + " text");
- db.execSQL("ALTER TABLE " + POINT_NAME + " ADD " + POINT_COL_CATEGORY + " text");
+ if (oldVersion < 4) {
+ db.execSQL("ALTER TABLE " + POINT_NAME + " ADD " + POINT_COL_NAME + " text");
+ db.execSQL("ALTER TABLE " + POINT_NAME + " ADD " + POINT_COL_CATEGORY + " text");
}
- if(oldVersion < 5){
- db.execSQL("ALTER TABLE " + POINT_NAME + " ADD " + POINT_COL_COLOR + " long");
+ if (oldVersion < 5) {
+ db.execSQL("ALTER TABLE " + POINT_NAME + " ADD " + POINT_COL_COLOR + " long");
}
- if(oldVersion < 6){
- db.execSQL("ALTER TABLE " + TRACK_NAME + " ADD " + TRACK_COL_HEADING + " float");
+ if (oldVersion < 6) {
+ db.execSQL("ALTER TABLE " + TRACK_NAME + " ADD " + TRACK_COL_HEADING + " float");
+ }
+ if (oldVersion < 7) {
+ db.execSQL("ALTER TABLE " + POINT_NAME + " ADD " + POINT_COL_ICON + " text");
+ db.execSQL("ALTER TABLE " + POINT_NAME + " ADD " + POINT_COL_BACKGROUND + " text");
}
}
-
-
+
+
public long getLastTrackPointTime() {
long res = 0;
try {
@@ -146,7 +155,7 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
if (db != null) {
try {
Cursor query = db.rawQuery("SELECT " + TRACK_COL_DATE + " FROM " + TRACK_NAME + " ORDER BY " + TRACK_COL_DATE + " DESC", null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- if(query.moveToFirst()) {
+ if (query.moveToFirst()) {
res = query.getLong(0);
}
query.close();
@@ -154,11 +163,11 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
db.close();
}
}
- } catch(RuntimeException e) {
+ } catch (RuntimeException e) {
}
return res;
}
-
+
public synchronized boolean hasDataToSave() {
try {
SQLiteDatabase db = getWritableDatabase();
@@ -172,11 +181,11 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
}
q = db.query(false, POINT_NAME, new String[]{POINT_COL_LAT, POINT_COL_LON}, null, null, null, null, null, null);
has = q.moveToFirst();
- while(has) {
- if(q.getDouble(0) != 0 || q.getDouble(1) != 0) {
+ while (has) {
+ if (q.getDouble(0) != 0 || q.getDouble(1) != 0) {
break;
}
- if(!q.moveToNext()) {
+ if (!q.moveToNext()) {
has = false;
break;
}
@@ -189,7 +198,7 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
db.close();
}
}
- } catch(RuntimeException e) {
+ } catch (RuntimeException e) {
return false;
}
@@ -294,7 +303,8 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
private void collectDBPoints(SQLiteDatabase db, Map dataTracks) {
Cursor query = db.rawQuery("SELECT " + POINT_COL_LAT + "," + POINT_COL_LON + "," + POINT_COL_DATE + "," //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- + POINT_COL_DESCRIPTION + "," + POINT_COL_NAME + "," + POINT_COL_CATEGORY + "," + POINT_COL_COLOR + " FROM " + POINT_NAME+" ORDER BY " + POINT_COL_DATE +" ASC", null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ + POINT_COL_DESCRIPTION + "," + POINT_COL_NAME + "," + POINT_COL_CATEGORY + "," + POINT_COL_COLOR + ","
+ + POINT_COL_ICON + "," + POINT_COL_BACKGROUND + " FROM " + POINT_NAME + " ORDER BY " + POINT_COL_DATE + " ASC", null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
if (query.moveToFirst()) {
do {
WptPt pt = new WptPt();
@@ -309,18 +319,20 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
if (color != 0) {
pt.setColor(color);
}
+ pt.setIconName(query.getString(7));
+ pt.setBackgroundType(query.getString(8));
// check if name is extension (needed for audio/video plugin & josm integration)
- if(pt.name != null && pt.name.length() > 4 && pt.name.charAt(pt.name.length() - 4) == '.') {
+ if (pt.name != null && pt.name.length() > 4 && pt.name.charAt(pt.name.length() - 4) == '.') {
pt.link = pt.name;
}
-
+
String date = DateFormat.format("yyyy-MM-dd", time).toString(); //$NON-NLS-1$
GPXFile gpx;
if (dataTracks.containsKey(date)) {
gpx = dataTracks.get(date);
} else {
- gpx = new GPXFile(Version.getFullVersion(ctx));
+ gpx = new GPXFile(Version.getFullVersion(ctx));
dataTracks.put(date, gpx);
}
ctx.getSelectedGpxHelper().addPoint(pt, gpx);
@@ -329,10 +341,10 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
}
query.close();
}
-
+
private void collectDBTracks(SQLiteDatabase db, Map dataTracks) {
Cursor query = db.rawQuery("SELECT " + TRACK_COL_LAT + "," + TRACK_COL_LON + "," + TRACK_COL_ALTITUDE + "," //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- + TRACK_COL_SPEED + "," + TRACK_COL_HDOP + "," + TRACK_COL_DATE + "," + TRACK_COL_HEADING + " FROM " + TRACK_NAME +" ORDER BY " + TRACK_COL_DATE +" ASC", null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ + TRACK_COL_SPEED + "," + TRACK_COL_HDOP + "," + TRACK_COL_DATE + "," + TRACK_COL_HEADING + " FROM " + TRACK_NAME + " ORDER BY " + TRACK_COL_DATE + " ASC", null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
long previousTime = 0;
long previousInterval = 0;
TrkSegment segment = null;
@@ -351,14 +363,14 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
pt.heading = heading == NO_HEADING ? Float.NaN : heading;
long currentInterval = Math.abs(time - previousTime);
boolean newInterval = pt.lat == 0 && pt.lon == 0;
-
+
if (track != null && !newInterval && (!ctx.getSettings().AUTO_SPLIT_RECORDING.get() || currentInterval < 6 * 60 * 1000 || currentInterval < 10 * previousInterval)) {
// 6 minute - same segment
segment.points.add(pt);
} else if (track != null && (ctx.getSettings().AUTO_SPLIT_RECORDING.get() && currentInterval < 2 * 60 * 60 * 1000)) {
// 2 hour - same track
segment = new TrkSegment();
- if(!newInterval) {
+ if (!newInterval) {
segment.points.add(pt);
}
track.segments.add(segment);
@@ -367,10 +379,10 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
track = new Track();
segment = new TrkSegment();
track.segments.add(segment);
- if(!newInterval) {
+ if (!newInterval) {
segment.points.add(pt);
}
- String date = new SimpleDateFormat("yyyy-MM-dd", Locale.US).format(new Date(time));; //$NON-NLS-1$
+ String date = new SimpleDateFormat("yyyy-MM-dd", Locale.US).format(new Date(time)); //$NON-NLS-1$
if (dataTracks.containsKey(date)) {
GPXFile gpx = dataTracks.get(date);
gpx.tracks.add(track);
@@ -411,14 +423,14 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
dataTracks.remove(date);
}
}
-
+
public void startNewSegment() {
lastTimeUpdated = 0;
lastPoint = null;
- execWithClose(updateScript, new Object[] { 0, 0, 0, 0, 0, System.currentTimeMillis(), NO_HEADING});
+ execWithClose(updateScript, new Object[]{0, 0, 0, 0, 0, System.currentTimeMillis(), NO_HEADING});
addTrackPoint(null, true, System.currentTimeMillis());
}
-
+
public void updateLocation(net.osmand.Location location, Float heading) {
// use because there is a bug on some devices with location.getTime()
long locationTime = System.currentTimeMillis();
@@ -459,12 +471,12 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
ctx.getNotificationHelper().refreshNotification(NotificationType.GPX);
}
}
-
+
public void insertData(double lat, double lon, double alt, double speed, double hdop, long time, float heading,
- OsmandSettings settings) {
+ OsmandSettings settings) {
// * 1000 in next line seems to be wrong with new IntervalChooseDialog
// if (time - lastTimeUpdated > settings.SAVE_TRACK_INTERVAL.get() * 1000) {
- execWithClose(updateScript, new Object[] { lat, lon, alt, speed, hdop, time, heading });
+ execWithClose(updateScript, new Object[]{lat, lon, alt, speed, hdop, time, heading});
boolean newSegment = false;
if (lastPoint == null || (time - lastTimeUpdated) > 180 * 1000) {
lastPoint = new LatLon(lat, lon);
@@ -485,7 +497,7 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
addTrackPoint(pt, newSegment, time);
trkPoints++;
}
-
+
private void addTrackPoint(WptPt pt, boolean newSegment, long time) {
List points = currentTrack.getModifiablePointsToDisplay();
Track track = currentTrack.getModifiableGpxFile().tracks.get(0);
@@ -511,12 +523,12 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
}
public WptPt insertPointData(double lat, double lon, long time, String description, String name, String category,
- int color) {
+ int color) {
return insertPointData(lat, lon, time, description, name, category, color, null, null);
}
public WptPt insertPointData(double lat, double lon, long time, String description, String name, String category,
- int color, String iconName, String backgroundName) {
+ int color, String iconName, String backgroundName) {
final WptPt pt = new WptPt(lat, lon, time, Double.NaN, 0, Double.NaN);
pt.name = name;
pt.category = category;
@@ -529,7 +541,7 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
ctx.getSelectedGpxHelper().addPoint(pt, currentTrack.getModifiableGpxFile());
currentTrack.getModifiableGpxFile().modifiedTime = time;
points++;
- execWithClose(insertPointsScript, new Object[] { lat, lon, time, description, name, category, color });
+ execWithClose(insertPointsScript, new Object[]{lat, lon, time, description, name, category, color, iconName, backgroundName});
return pt;
}
@@ -538,7 +550,7 @@ public class SavingTrackHelper extends SQLiteOpenHelper {
}
public void updatePointData(WptPt pt, double lat, double lon, long time, String description, String name,
- String category, int color, String iconName, String iconBackground) {
+ String category, int color, String iconName, String iconBackground) {
currentTrack.getModifiableGpxFile().modifiedTime = time;
List