diff --git a/OsmAnd-java/src/net/osmand/osm/MapPoiTypes.java b/OsmAnd-java/src/net/osmand/osm/MapPoiTypes.java
index 73256ca461..004dad0f1e 100644
--- a/OsmAnd-java/src/net/osmand/osm/MapPoiTypes.java
+++ b/OsmAnd-java/src/net/osmand/osm/MapPoiTypes.java
@@ -168,7 +168,8 @@ public class MapPoiTypes {
public Map getAllTranslatedNames(boolean skipNonEditable) {
Map translation = new HashMap();
- for (PoiCategory pc : categories) {
+ for (int i = 0; i < categories.size(); i++) {
+ PoiCategory pc = categories.get(i);
if (skipNonEditable && pc.isNotEditableOsm()) {
continue;
}
diff --git a/OsmAnd-java/src/net/osmand/util/GeoPointParserUtil.java b/OsmAnd-java/src/net/osmand/util/GeoPointParserUtil.java
index 8f472ce0a0..ca351448c2 100644
--- a/OsmAnd-java/src/net/osmand/util/GeoPointParserUtil.java
+++ b/OsmAnd-java/src/net/osmand/util/GeoPointParserUtil.java
@@ -368,6 +368,12 @@ public class GeoPointParserUtil {
System.out.println("url: " + url);
actual = GeoPointParserUtil.parse(url);
assertGeoPoint(actual, new GeoParsedPoint(ilat, ilon, z));
+
+ // https://maps.google.com/maps?q=loc:-21.8835112,-47.7838932 (Name)
+ url = "https://maps.google.com/maps?q=loc:" + dlat + "," + dlon + " (Name)" ;
+ System.out.println("url: " + url);
+ actual = GeoPointParserUtil.parse(url);
+ assertGeoPoint(actual, new GeoParsedPoint(dlat, dlon));
// http://maps.google.com/maps/ll=34.99393,-106.61568,z=11
url = "http://maps.google.com/maps/ll=" + dlat + "," + dlon + ",z=" + z;
diff --git a/OsmAnd/.gitignore b/OsmAnd/.gitignore
index 44d8d7654f..a80b324b3d 100644
--- a/OsmAnd/.gitignore
+++ b/OsmAnd/.gitignore
@@ -1,3 +1,7 @@
+gradle
+gradlew
+gradlew.bat
+
valgrind/
bin/
dist/
diff --git a/OsmAnd/build.gradle b/OsmAnd/build.gradle
index f6ba50073e..38697f2e4b 100644
--- a/OsmAnd/build.gradle
+++ b/OsmAnd/build.gradle
@@ -385,10 +385,10 @@ dependencies {
// compile project(':eclipse-compile:design')
// compile project(':eclipse-compile:cardview')
// compile project(':eclipse-compile:gridlayout')
- compile 'com.android.support:gridlayout-v7:25.3.1'
- compile 'com.android.support:cardview-v7:25.3.1'
- compile 'com.android.support:appcompat-v7:25.3.1'
- compile 'com.android.support:design:25.3.1'
+ compile 'com.android.support:gridlayout-v7:25.+'
+ compile 'com.android.support:cardview-v7:25.+'
+ compile 'com.android.support:appcompat-v7:25.+'
+ compile 'com.android.support:design:25.+'
compile fileTree(include: ['*.jar'], exclude: ['QtAndroid-bundled.jar', 'QtAndroidAccessibility-bundled.jar', 'OsmAndCore_android.jar', 'OsmAndCore_wrapper.jar', 'android-support-multidex.jar'], dir: 'libs')
legacyCompile "net.osmand:OsmAndCore_android:0.1-SNAPSHOT@jar"
qtcoredebugCompile "net.osmand:OsmAndCore_androidNativeDebug:0.1-SNAPSHOT@aar"
diff --git a/OsmAnd/project.properties b/OsmAnd/project.properties
index 888b636da6..8fd374a9b4 100644
--- a/OsmAnd/project.properties
+++ b/OsmAnd/project.properties
@@ -10,7 +10,7 @@
# Indicates whether an apk should be generated for each density.
split.density=false
# Project target.
-target=android-23
+target=android-26
dex.force.jumbo=true
android.library.reference.1=../eclipse-compile/appcompat
android.library.reference.2=../eclipse-compile/design
diff --git a/OsmAnd/res/layout-land/map_hud_top.xml b/OsmAnd/res/layout-land/map_hud_top.xml
index 0d57ea346b..e651de0368 100644
--- a/OsmAnd/res/layout-land/map_hud_top.xml
+++ b/OsmAnd/res/layout-land/map_hud_top.xml
@@ -399,7 +399,7 @@
android:layout_height="56dp"
android:layout_gravity="top"
android:contentDescription="@string/back_to_search"
- android:src="@drawable/abc_ic_ab_back_material"/>
+ android:src="@drawable/ic_arrow_back"/>
+ android:src="@drawable/ic_arrow_back"/>
diff --git a/OsmAnd/res/layout/gpx_split_segment_fragment.xml b/OsmAnd/res/layout/gpx_split_segment_fragment.xml
index 788f97561c..4741ce93ef 100644
--- a/OsmAnd/res/layout/gpx_split_segment_fragment.xml
+++ b/OsmAnd/res/layout/gpx_split_segment_fragment.xml
@@ -309,7 +309,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:background="@null"
- android:text="@string/range"
+ android:text="@string/range_min_max"
android:textColor="?android:attr/textColorSecondary"
android:textSize="@dimen/default_split_segments_sub" />
diff --git a/OsmAnd/res/layout/map_hud_quick_actions.xml b/OsmAnd/res/layout/map_hud_quick_actions.xml
index 27ca1ada1c..d6536d8d4c 100644
--- a/OsmAnd/res/layout/map_hud_quick_actions.xml
+++ b/OsmAnd/res/layout/map_hud_quick_actions.xml
@@ -15,7 +15,6 @@
android:id="@+id/map_quick_actions_button"
android:layout_width="@dimen/map_button_size"
android:layout_height="@dimen/map_button_size"
- android:background="@drawable/btn_circle_blue"
android:contentDescription="@string/configure_screen_quick_action"
android:layout_gravity="bottom|right"
android:visibility="gone"
diff --git a/OsmAnd/res/layout/map_hud_top.xml b/OsmAnd/res/layout/map_hud_top.xml
index 8965c3c2a4..5b1ac584ba 100644
--- a/OsmAnd/res/layout/map_hud_top.xml
+++ b/OsmAnd/res/layout/map_hud_top.xml
@@ -176,7 +176,7 @@
android:layout_height="56dp"
android:layout_gravity="top"
android:contentDescription="@string/back_to_search"
- android:src="@drawable/abc_ic_ab_back_material"/>
+ android:src="@drawable/ic_arrow_back"/>
زمن التنقل
نطاق
أقصى/أدنى
+ المدى = الأدنى/الأقصى
diff --git a/OsmAnd/res/values-az/strings.xml b/OsmAnd/res/values-az/strings.xml
index 93ed866e06..2d98ac11c4 100644
--- a/OsmAnd/res/values-az/strings.xml
+++ b/OsmAnd/res/values-az/strings.xml
@@ -1628,4 +1628,5 @@
Düzəlişlərin sayı
Hesabat:
Fayl adında dəstəklənməyən simvol var
+ Qeyd edilən izləri aylıq qovluqlarda saxla
diff --git a/OsmAnd/res/values-be-rBY/strings.xml b/OsmAnd/res/values-be-rBY/strings.xml
index 1965be517a..08cec45129 100644
--- a/OsmAnd/res/values-be-rBY/strings.xml
+++ b/OsmAnd/res/values-be-rBY/strings.xml
@@ -2932,4 +2932,5 @@ Moduli:
Čas ruchu
Maks./Min.
Interval
+ Adliehlasć = Min./Maks.
diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml
index d8082dbcd5..cc16df621e 100644
--- a/OsmAnd/res/values-be/strings.xml
+++ b/OsmAnd/res/values-be/strings.xml
@@ -2981,4 +2981,5 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
Час руху
Макс./Мін.
Інтэрвал
+ Адлегласць = Мін./Макс.
diff --git a/OsmAnd/res/values-ca/phrases.xml b/OsmAnd/res/values-ca/phrases.xml
index 462c8a109e..05bb276c05 100644
--- a/OsmAnd/res/values-ca/phrases.xml
+++ b/OsmAnd/res/values-ca/phrases.xml
@@ -89,7 +89,7 @@
Estació de protecció civil
Gual
Tanca llevadissa
- Punt de control duaner
+ Control de fronteres
Banda reductora
Ressalt
Coixí berlinès
diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml
index ae3c611230..c9af5d07e7 100644
--- a/OsmAnd/res/values-ca/strings.xml
+++ b/OsmAnd/res/values-ca/strings.xml
@@ -358,10 +358,8 @@ Memòria proporcional %4$s MB (límit de l\'Android %5$s MB, Dalvik %6$s MB).Llegint les tessel·les emmagatzemades…
No s\'ha trobat la carpeta especificada.
Carpeta d\'emmagatzematge de dades
- "OsmAnd (OSM Automated Navigation Directions) L\'OsmAnd és una aplicació de navegació de codi obert amb accés a una gran varietat de dades globals d\'OpenStreetMap (OSM). Totes les dades dels mapes (siguin mapes vectorials o de tessel·les), es poden desar a la targeta de memòria del telèfon pel seu en desconnexió. L\'OsmAnd també calcula rutes, amb connexió o sense, incloent l\'orientació per veu. Algunes de les característiques principals: - Funcionament complet en desconnexió (desa localment els mapes vectorials i de tessel·les baixats) - Mapes vectorials compactes de tot el món per usar en desconnexió
-\n - Baixada il·limitada de mapes nacionals o regionals directament des de l\'aplicació - Diverses capes de mapes alhora, com traces GPX o de navegació, PDIs, favorits, parades de transport públic, etc. amb nivell d\'opacitat personalitzada - Cerca, fora de línia, d\'adreces i llocs - Càlcul de rutes, fora de línia, fins la mitjana distància
-\n - Modalitats cotxe, bicicleta i vianant - Canvi automàtic de vista diürna a nocturna, opcional - Ampliació automàtica del mapa segons la velocitat, opcional - Alineació automàtica del mapa segons la brúixola o la direcció del moviment, opcional - Indicació de carril, velocitat màxima permesa, veus enregistrades i/o sintetitzades Limitacions d\'aquesta versió gratuïta de OsmAnd: - Limitació en el nombre de mapes baixats - No té accés als PDIs fora de línia de Viquipèdia L\'OsmAnd està en desenvolupament actiu i el nostre projecte i el seu futur progrés depenen de les donacions per ajudar al desenvolupament i proves de noves funcions. Si us plau, considereu la possibilitat de comprar l\'OsmAnd+ o bé fer una donació per impulsar una nova característica, o fer una donació de manera general a la pàgina osmand.net."
- "OsmAnd+ (OSM Automated Navigation Directions) L\'OsmAnd+ és una aplicació de navegació de codi obert amb accés a una gran varietat de dades de la col·lecció oberta de mapes OpenStreetMap. Totes les dades, incloent mapes de tessel·les i de vectors, poden emmagatzemar-se a la targeta de memòria del telèfon pel seu ús fora de línia. L\'OsmAnd també té la funcionalitat de càlcul de rutes tant en línia com fora de línia, incloent a més l\'orientació per veu. L\'OsmAnd+ és la versió de pagament; comprant-la estareu donant suport al projecte, ajudareu al desenvolupament de noves funcions i rebreu les darreres actualitzacions. Algunes de les característiques centrals són: - Funcionalitat completa fora de línia (desa en el dispositiu d\'emmagatzemament els mapes vectorials i de mosaic baixats) - Mapes de vectors compactes de tot el món per usar fora de línia - Baixada il·limitada de mapes nacionals o regionals directament des de l\'aplicació - Disponibilitat fora de línia dels PDI baixats prèviament de Viquipèdia, és genial per fer turisme - Diverses capes de mapes alhora, com traces GPX o de navegació, PDIs, favorits, parades de transport públic, etc. amb nivell d\'opacitat personalitzada - Cerca fora de línia d\'adreces i llocs - Càlcul de rutes fora de línia fins la mitjana distància - Modalitats cotxe, bicicleta i vianant - Canvi automàtic de vista diürna a nocturna, opcional - Ampliació automàtica del mapa segons la velocitat, opcional - Alineació automàtica del mapa segons la brúixola o la direcció del moviment, opcional - Indicació de carril, velocitat màxima permesa, veus enregistrades i/o sintetitzades"
+ "OsmAnd (OSM Automated Navigation Directions) L\'OsmAnd és una aplicació de navegació de codi obert amb accés a una gran varietat de dades globals d\'OpenStreetMap (OSM). Totes les dades dels mapes (siguin mapes vectorials o de tessel·les), es poden desar a la targeta de memòria del telèfon pel seu en desconnexió. L\'OsmAnd també calcula rutes, amb connexió o sense, incloent l\'orientació per veu. Algunes de les característiques principals: - Funcionament complet en desconnexió (desa localment els mapes vectorials i de tessel·les baixats) - Mapes vectorials compactes de tot el món per usar en desconnexió - Baixada il·limitada de mapes nacionals o regionals directament des de l\'aplicació - Diverses capes de mapes alhora, com traces GPX o de navegació, PDIs, favorits, parades de transport públic, etc. amb nivell d\'opacitat personalitzada - Cerca, fora de línia, d\'adreces i llocs - Càlcul de rutes fora de línia fins per distàncies d\'abast mitjà. - Modalitats cotxe, bicicleta i vianant - Canvi automàtic de vista diürna a nocturna, opcional - Ampliació automàtica del mapa segons la velocitat, opcional - Alineació automàtica del mapa segons la brúixola o la direcció del moviment, opcional - Indicació de carril, velocitat màxima permesa, veus enregistrades i/o sintetitzades Limitacions d\'aquesta versió gratuïta de OsmAnd: - Limitació en el nombre de mapes baixats - No té accés als PDIs fora de línia de Viquipèdia L\'OsmAnd està en desenvolupament actiu i el nostre projecte i el seu futur progrés depenen de les donacions per ajudar al desenvolupament i proves de noves funcions. Si us plau, considereu la possibilitat de comprar l\'OsmAnd+ o bé fer una donació per impulsar una nova característica, o fer una donació de manera general a la pàgina osmand.net."
+ "OsmAnd+ (OSM Automated Navigation Directions) L\'OsmAnd+ és una aplicació de navegació de codi obert amb accés a una gran varietat de dades de la col·lecció oberta de mapes OpenStreetMap. Totes les dades, incloent mapes de tessel·les i de vectors, poden emmagatzemar-se a la targeta de memòria del telèfon pel seu ús fora de línia. L\'OsmAnd també té la funcionalitat de càlcul de rutes tant en línia com fora de línia, incloent a més l\'orientació per veu. L\'OsmAnd+ és la versió de pagament; comprant-la estareu donant suport al projecte, ajudareu al desenvolupament de noves funcions i rebreu les darreres actualitzacions. Algunes de les característiques centrals són: - Funcionalitat completa fora de línia (desa en el dispositiu d\'emmagatzemament els mapes vectorials i de mosaic baixats) - Mapes de vectors compactes de tot el món per usar fora de línia - Baixada il·limitada de mapes nacionals o regionals directament des de l\'aplicació - Disponibilitat fora de línia dels PDI baixats prèviament de Viquipèdia, és genial per fer turisme - Diverses capes de mapes alhora, com traces GPX o de navegació, PDIs, favorits, parades de transport públic, etc. amb nivell d\'opacitat personalitzada - Cerca fora de línia d\'adreces i llocs - Càlcul de rutes fora de línia per distàncies \'abast mitjà - Modalitats cotxe, bicicleta i vianant - Canvi automàtic de vista diürna a nocturna, opcional - Ampliació automàtica del mapa segons la velocitat, opcional - Alineació automàtica del mapa segons la brúixola o la direcció del moviment, opcional - Indicació de carril, velocitat màxima permesa, veus enregistrades i/o sintetitzades"
Seleccioneu el nivell mínim de zoom per mostrar el mapa si està disponible. Caldrà el fitxer SRTM separat:
Aquest connector mostra la configuració de característiques per al desenvolupament i depuració com la verificació o simulació de rutes, el rendiment del renderitzat o les indicacions de veu. Aquestes configuracions s\'adrecen a desenvolupadors i no són d\'utilitat per a un usuari normal.
En consonància amb la configuració global del sistema
@@ -725,7 +723,7 @@ Memòria proporcional %4$s MB (límit de l\'Android %5$s MB, Dalvik %6$s MB).Gireu fortament a la dreta i continueu
Gireu lleugerament a la dreta i continueu
Gireu a l\'esquerra i continueu
- Gireu fortamanent a l\'esquerra i continueu
+ Gireu fortament a l\'esquerra i continueu
Gireu lleugerament a l\'esquerra i continueu
Feu un gir en forma d\'U i continueu
Cerca propera a la posició actual al mapa
@@ -1031,8 +1029,8 @@ Memòria proporcional %4$s MB (límit de l\'Android %5$s MB, Dalvik %6$s MB).o
Sense escalat automàtic
Apropa\'t
- Mig
- Allunya\'t
+ Abast mitjà
+ Abast màxim
Escalat del mapa
Mapa mundial
Versió:
@@ -1557,10 +1555,10 @@ Afganistan, Albània, Alemanya, Antilles Holandeses, Algèria, Andorra, Angola,
Interval d\'enregistrament general
Velocitat màxima
Control de fronteres
- Estació de peatge
+ Barrera de peatge
Senyal d\'stop
Ressalt
- Càmera de control de velocitat
+ Radar de trànsit
Avís de circulació
Premeu qualsevol indicació existent per veure més detalls, mantingueu premuda per desactivar o esborrar. Dades actuals al dispositiu (%1$s lliure):
Definiu la mida del text en el mapa.
@@ -2615,7 +2613,7 @@ Abasta l\'àrea: %1$s x %2$s
\n Gaudiu del guiatge visual i de veu, representant PDIs (punts d\'interès), creant i gestionat traces GPX, activant la representació de corbes de nivell i d\'informació d\'elevació (requereix connector), optant entre els modes de conducció amb vehicle, bicicleta o com vianant, editant d\'OSM i molt més.
Recupera les compres
Tipus de lletra pel mapa
- Navegació GPS • Podeu triar el mode desconnectat (no hi hauran càrrecs de roaming si sou a l\'estranger) o el mode en línia (més àgil) • El guiatge de veu gir-a-gir us dirigeix pel camí (veus enregistrades i sintètiques) • La ruta es tornarà a calcular si us desvieu de la proposta anterior • Les indicacions de carril, els noms de carrer i el temps d\'arribada estimat us ajudaran pel camí • Per fer el vostre viatge més segur, els canvis entre mode diurn i nocturn són automàtics • Podeu activar la indicació dels límits de velocitat i d\'advertiments si els supereu • L\'escala del mapa s\'ajusta a la vostra velocitat • Podeu cercar destinacions per adreça, per tipus (p. ex.: aparcament, restaurant, hotel, gasolinera, museu), o per les coordenades geogràfiques • Gestiona els punts de pas en el vostre itinerari • Podeu enregistrar el vostre trajecte o pujar una traça GPX i seguir-la
+ Navegació GPS • Podeu triar el mode desconnectat (no hi hauran càrrecs de roaming si sou a l\'estranger) o el mode en línia (més àgil) • El guiatge de veu gir-a-gir us dirigeix pel camí (veus enregistrades i sintètiques) • La ruta es tornarà a calcular si us desvieu de la proposta anterior • Les indicacions de carril, els noms de carrer i el temps d\'arribada estimat us ajudaran pel camí • Per fer el vostre viatge més segur, els canvis entre mode diürn i nocturn són automàtics • Podeu activar la indicació dels límits de velocitat i d\'advertiments si els supereu • L\'escala del mapa s\'ajusta a la vostra velocitat • Podeu cercar destinacions per adreça, per tipus (p. ex.: aparcament, restaurant, hotel, gasolinera, museu), o per les coordenades geogràfiques • Gestiona els punts de pas en el vostre itinerari • Podeu enregistrar el vostre trajecte o pujar una traça GPX i seguir-la
El connector de mapes d\'esquí d\'OsmAnd us permet veure les pistes segons la seva dificultat i d\'altres informacions addicionals, com ara la ubicació dels ascensors i altres equipaments.
Ciclisme • Podreu trobar les vies de ciclisme en el mapa • La navegació GPS en mode ciclisme genera la vostra ruta utilitzant vies de ciclisme • Podreu veure la vostra velocitat i altitud • L\'opció d\'enregistrar traces GPX us permet també compartir-les • El connector addicional Via us permet activar les corbes de nivell i l\'ombrejat de relleu
A peu, fent senderisme, o visitant una ciutat • El mapa mostra les rutes per vianants i de senderisme • La Viquipèdia, en el vostre idioma preferit, us pot ajudar molt visitant una ciutat • Parades de transport públic (autobús, tramvia, tren), incloent-hi noms de línia, suport per la navegació en una ciutat nova • La navegació GPS en mode de vianants genera la vostra ruta per camins • Podeu baixar i seguir una traça GPX o enregistrar i compartir les vostres
@@ -2647,7 +2645,7 @@ Abasta l\'àrea: %1$s x %2$s
Llibreria de mapes que contenen isòbates i fondàries puntuals.
En pausa
Mapa • Mostra els PDIs (punts d\'interès) al vostre voltant • Ajusta l\'orientació del mapa a la vostra direcció del moviment (o al nord) • Mostra on sou i com esteu orientat • Compartiu la vostra ubicació perquè els vostres amics us puguin trobar • Manté els vostres llocs més importants a Preferits • Permet escollir com es mostren els noms al mapa: en anglès, llengues locals o amb ortografia fonètica • Mostra representacions especialitzades disponibles a la xarxa, imatges de satèl·lit (Bing), diferents superposicions com traces GPX d\'exploració/navegació i capes addicionals amb un grau transparència variable
- "Navegació • Funciona en línia (ràpid) o sense connexió (sense càrrecs de roaming quan sigueu a l\'estranger) • Indicacions de veu a cada gir (amb missatges gravats i sintetitzats) • Orientació opcional del carril visualització del nom de la via i el temps estimat d\'arribada • Suporta punts d\'itinerari intermedis • Revisió automàtica de la ruta quan us aparteu de la ruta proposada • Cerca de llocs per adreça, tipus (per exemple: restaurant, hotel, gasolinera, museu) o coordenades geogràfiques"
+ Navegació • Funciona en línia (ràpid) o sense connexió (sense càrrecs de roaming quan sigueu a l\'estranger) • Indicacions de veu a cada gir (amb missatges gravats i sintetitzats) • Orientació opcional del carril, visualització del nom de la via i el temps estimat d\'arribada • Admet punts de pas intermedis • Revisió automàtica de la ruta quan us aparteu de la ruta proposada • Cerca de llocs per adreça, tipus (per exemple: restaurant, hotel, gasolinera, museu) o coordenades geogràfiques
OsmAnd + (OSM Automated Navigation Directions) és una aplicació per consulta de mapes i de navegació, amb accés a les dades obertes d\'OpenStreetMap (OSM), d\'abast mundial i gran qualitat. Navegueu amb indicacions visuals i de veu, mostrant PDIs (punts d\'interès), creant i gestionant traces GPX, disposant de corbes de nivell i cotes puntuals, seleccioneu la navegació per vehicle, bicicleta o vianant, editeu OSM i molt més. OsmAnd + és la versió de pagament de l\'aplicació. En comprar-la, recolzareu el projecte, finançant el desenvolupament de noves característiques i rebreu les darreres actualitzacions. Característiques principals:
Introduïu el poble o ciutat
Introduïu el codi postal
@@ -2734,4 +2732,5 @@ Abasta l\'àrea: %1$s x %2$s
Temps en moviment
Màx/Mín
Interval
+ Interval = Mín/Màx
diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml
index 804896cfb2..dc62ad8629 100644
--- a/OsmAnd/res/values-da/phrases.xml
+++ b/OsmAnd/res/values-da/phrases.xml
@@ -3490,4 +3490,8 @@
Standard
Slusebassin
-
+ Output (el): nej
+
+Ejer
+
+
diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml
index 16e29d2765..0e4c3c7f80 100644
--- a/OsmAnd/res/values-da/strings.xml
+++ b/OsmAnd/res/values-da/strings.xml
@@ -2818,12 +2818,12 @@ Repræsenterer område: %1$s x %2$s
Filen kan ikke flyttes.
Flyt
Varighed
- Max
+ Maks
Starttidspunkt
Sluttidspunkt
Farve
Tid i bevægelse
- Max hastighed
+ Maks-hastighed
Gennemsnitshastighed
Spor
Punkter slettet.
diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml
index 386d8dbc74..db4a5b8a22 100644
--- a/OsmAnd/res/values-de/phrases.xml
+++ b/OsmAnd/res/values-de/phrases.xml
@@ -1868,7 +1868,7 @@
Geschenkkarte nicht akzeptiert
Golden Crown
Golden Crown Karte nicht akzeptiert
- "PRO100 "
+ PRO100
PRO100 Karte nicht akzeptiert
Union Karte
Union Karte nicht akzeptiert
@@ -2273,7 +2273,7 @@
Zelten nicht gestattet
Ja
Nein
- Pfadfinderlager: ja
+ Ja
Pfadfinderlager: nein
Nur Gruppen: ja
Nur Gruppen: nein
@@ -3016,8 +3016,8 @@
Typ
Zahlungsart
Zusätzlich
-Fahrrad laden: ja
- Fahrrad laden: nein
+Ladestation: ja
+ Ladestation: nein
Geschäft für Kunsthandwerksbedarf
diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml
index c30a490752..942338dbaf 100644
--- a/OsmAnd/res/values-de/strings.xml
+++ b/OsmAnd/res/values-de/strings.xml
@@ -447,7 +447,7 @@ Einige der Kernfunktionen:
In der Nähe suchen
Route als GPX-Track speichern
Route erfolgreich gespeichert als \'%1$s\'.
- "Dateiname: "
+ Dateiname:
Datei mit gleichem Namen besteht bereits.
Speichern
@@ -634,7 +634,7 @@ Einige der Kernfunktionen:
Alle markieren
Aktualisieren
Schnellste Route
- "Zur Berechnung der schnellsten Route aktivieren , für eine kraftstoffsparende Route deaktivieren "
+ Zur Berechnung der schnellsten Route aktivieren, für eine kraftstoffsparende Route deaktivieren
Bei Zoomlevel {0} lade {1} Kacheln\n ({2} MB)
Karte herunterladen
Größte zu ladende Vergrößerung wählen
@@ -2110,7 +2110,7 @@ Lon %2$s
Sicher?
Alle ungesicherten Änderungen gehen verloren. Fortfahren?
Straßen
- Auch bei OsmAnd+ das Banner der kostenlosen Version anzeigen
+ Auch in OsmAnd+ das Banner der kostenlosen Version anzeigen
Geplante Objekte
Aktualisieren
@@ -2497,10 +2497,10 @@ Wenn Sie OsmAnd und OSM lieben und unterstützen wollen, so ist dies die perfekt
Berechtigung erteilen
Standortbestimmung zulassen
Erhalten Sie Wegbeschreibungen und entdecken Sie neue Orte ohne Internetverbindung
- Meinen Standort suchen
+ Meinen Standort bestimmen
Keine Aktualisierungen anzeigen
Herunterladen der Karten überspringen
- Keine aktuellen Meldungen zu neuen Versionen, Angeboten von OsmAnd abfragen
+ Keine Versionsaktualisierungen oder OsmAnd-Angebote abfragen
Meilen/Meter
Unbegrenzt Karten herunterladen und sie nicht nur einmal pro Monat, sondern wöchentlich, täglich oder stündlich aktualisieren.
Vollversion von OsmAnd mit unbegrenzten Karten-Downloads und monatlichen Kartenaktualisierungen.
@@ -2866,4 +2866,14 @@ Abgedeckte Fläche: %1$s x %2$s
Von
Bilder betrachten, die in einem bestimmten Zeitabschnitt eingestellt wurden.
Datumswerte
+ Durchschnitt
+ max/min
+ Zurücksetzen
+ Aufstieg/Abstieg
+ Aufgezeichnete Tracks in Monatsordnern speichern
+ Aufgezeichnete Tracks in nach Aufzeichnungsmonat benannten Unterordnern speichern (z. B. 2017-01).
+ Lineal
+ Zirkel
+ %1$d von %2$d
+ Zeit in Bewegung
diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml
index f23e6e3ad1..336eb2d839 100644
--- a/OsmAnd/res/values-eo/strings.xml
+++ b/OsmAnd/res/values-eo/strings.xml
@@ -2857,4 +2857,5 @@ Indikas lokon: %1$s x %2$s"
Movada tempo
Maks./min.
Variejo
+ Variejo = min/maks
diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml
index 83530a34ef..83b8a04dec 100644
--- a/OsmAnd/res/values-es-rAR/phrases.xml
+++ b/OsmAnd/res/values-es-rAR/phrases.xml
@@ -3456,4 +3456,6 @@
Estándar
Compuerta de cuenca
-
+ Salida (electricidad): No
+
+
diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml
index 80af98f5f8..8b4403458c 100644
--- a/OsmAnd/res/values-es-rAR/strings.xml
+++ b/OsmAnd/res/values-es-rAR/strings.xml
@@ -870,11 +870,7 @@ Se aprecia la participación activa, y las contribuciones pueden hacerse directa
Pausar música
Navegación y Mapas OsmAnd
Visor y navegador móvil global de mapas OSM con y sin conexión
- OsmAnd (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM)
-\n
-\n OsmAnd es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM).
-\n
-\nTodos los datos del mapa (vectores y teselas) pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de rutas con y sin conexión, incluyendo indicaciones giro-a-giro mediante voz.
+ "OsmAnd (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM), es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas) pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de rutas con y sin conexión, incluyendo indicaciones giro-a-giro por voz.
\n
\n Algunas de las funciones fundamentales:
\n - Completa funcionalidad sin conexión (almacena los mapas vectoriales o teselas descargados en la memoria del dispositivo)
@@ -883,18 +879,18 @@ Se aprecia la participación activa, y las contribuciones pueden hacerse directa
\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés (PDI), favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable
\n - Búsqueda sin conexión de direcciones y lugares (PDI)
\n - Rutas sin conexión para distancias de rango medio
-\n
-\n - Modos de automóvil, bicicleta, y peatón con:
-\n - opción de cambio automático de vista día/noche
-\n - opción de ampliación según la velocidad
-\n - alineación opcional del mapa, según brújula o dirección del movimiento
-\n - opción de indicación de carriles, visualización de límites de velocidad, voces grabadas y sintetizadas.
+\n
+\n - Modos de automóvil, bicicleta y peatón con:
+\n - (Opcional) Cambio automático de vista día/noche
+\n - (Opcional) Ampliación del mapa según la velocidad
+\n - (Opcional) Alineación del mapa, según brújula o dirección del movimiento
+\n - (Opcional) Indicación de carriles, mostrar límites de velocidad, voces grabadas y sintetizadas
\n
\n Limitaciones de la versión gratuita de OsmAnd:
\n - Límite del número de mapas descargados
\n - Sin acceso a los PDIs descargados de Wikipedia.
\n
-\n OsmAnd está siendo desarrollado activamente. Nuestro proyecto y su progreso adicional se basa en contribuciones económicas para financiar el desarrollo y las pruebas de nuevas funcionalidades. Por favor, considera comprar OsmAnd+, financiar nuevas funciones o hacer una donación general en OsmAnd.net.
+\n OsmAnd está siendo desarrollado activamente. Nuestro proyecto y su progreso adicional se basa en contribuciones económicas para financiar el desarrollo y las pruebas de nuevas funcionalidades. Por favor, considera comprar OsmAnd+, financiar nuevas funciones o hacer una donación general en OsmAnd.net."
"
OsmAnd (OSM Automated Navigation Directions, o traducido al español, Guía de navegación automatizada OSM) es un mapa y una aplicación de navegación con acceso a datos de todo el mundo, de alta calidad y gratuitos de OpenStreetMap (OSM). Todos los datos de los mapas se pueden almacenar en la tarjeta de memoria del dispositivo para su uso sin conexión. A través del GPS de tu dispositivo, OsmAnd ofrece indicaciones de navegación, visuales y por voz, para automóvil, bicicleta y peatones. Todas las funciones principales funcionan tanto conectado como sin conexión (no necesita Internet).
OsmAnd+ es la versión de pago de la aplicación. Comprándola das soporte al proyecto, financias el desarrollo de nuevas funciones y obtienes las últimas actualizaciones. Puedes probar la aplicación antes de comprarla instalando la versión libre llamada OsmAnd.
@@ -968,19 +964,18 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
"
Navegación y Mapas OsmAnd+
Visor y navegador móvil global de mapas OSM con y sin conexión
- "OsmAnd+ (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM)
-\n
-\n OsmAnd+ es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas), pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de rutas con y sin conexión con guía giro-a-giro mediante voz.
-\n
+ "OsmAnd+ (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM), es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas), pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de rutas con y sin conexión con guía giro-a-giro por voz.
+\n
\n OsmAnd+ es la versión de pago de la aplicación, comprándola das soporte al proyecto, financias el desarrollo de nuevas funciones, y recibes las últimas actualizaciones.
-\n
+\n
\n Algunas de las funciones fundamentales:
\n - Completa funcionalidad sin conexión (guarda los mapas vectoriales o teselas descargados en el almacenamiento del dispositivo)
\n - Mapas mundiales vectoriales compactos disponibles
\n - Descarga ilimitada de mapas de países o regiones directamente desde la aplicación
\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés, favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable
\n - Búsqueda sin conexión de direcciones y lugares (PDIs)
-\n - Rutas sin conexión para distancias de rango medio
+\n - Rutas sin conexión para distancias de rango medio
+\n
\n - Modos de automóvil, bicicleta y peatón con:
\n - (Opcional) Cambio automático de vista día/noche
\n - (Opcional) Ampliación del mapa según la velocidad
@@ -2866,4 +2861,5 @@ Representa el área: %1$s x %2$s
Tiempo moviéndose
Máx/Min
Rango
+ Rango = Min/Máx
diff --git a/OsmAnd/res/values-es-rUS/phrases.xml b/OsmAnd/res/values-es-rUS/phrases.xml
index a711383223..6ab33cd79d 100644
--- a/OsmAnd/res/values-es-rUS/phrases.xml
+++ b/OsmAnd/res/values-es-rUS/phrases.xml
@@ -3218,4 +3218,6 @@
Estándar
Compuerta de cuenca
-
+ Salida (electricidad): No
+
+
diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml
index 3e4cce0a1e..ad00d6bf67 100644
--- a/OsmAnd/res/values-es-rUS/strings.xml
+++ b/OsmAnd/res/values-es-rUS/strings.xml
@@ -870,28 +870,27 @@ Se aprecia la participación activa, y las contribuciones pueden hacerse directa
Pausar música
Navegación y Mapas OsmAnd
Visor y navegador móvil global de mapas OSM con y sin conexión
- OsmAnd (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM)
-\n
-\n OsmAnd es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas) pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de rutas con y sin conexión, incluyendo indicaciones giro-a-giro mediante voz.
+ "OsmAnd (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM), es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas) pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de rutas con y sin conexión, incluyendo indicaciones giro-a-giro por voz.
\n
\n Algunas de las funciones fundamentales:
\n - Completa funcionalidad sin conexión (almacena los mapas vectoriales o teselas descargados en la memoria del dispositivo)
\n - Mapas vectoriales compactos disponibles de todo el planeta
-\n - Descarga de mapa del país o región directamente desde la aplicación
+\n - Descarga el mapa del país o región directamente desde la aplicación
\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés (PDI), favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable
\n - Búsqueda sin conexión de direcciones y lugares (PDI)
\n - Rutas sin conexión para distancias de rango medio
-\n - Modos de automóvil, bicicleta, y peatón con:
-\n - opción de cambio automático de vista día/noche
-\n - opción de ampliación según la velocidad
-\n - alineación opcional del mapa, según brújula o dirección del movimiento
-\n - opción de indicación de carriles, visualización de límites de velocidad, voces grabadas y sintetizadas.
+\n
+\n - Modos de automóvil, bicicleta y peatón con:
+\n - (Opcional) Cambio automático de vista día/noche
+\n - (Opcional) Ampliación del mapa según la velocidad
+\n - (Opcional) Alineación del mapa, según brújula o dirección del movimiento
+\n - (Opcional) Indicación de carriles, mostrar límites de velocidad, voces grabadas y sintetizadas
\n
\n Limitaciones de la versión gratuita de OsmAnd:
\n - Límite del número de mapas descargados
\n - Sin acceso a los PDIs descargados de Wikipedia.
\n
-\n OsmAnd está siendo desarrollado activamente. Nuestro proyecto y su progreso adicional se basa en contribuciones económicas para financiar el desarrollo y las pruebas de nuevas funcionalidades. Por favor, considera comprar OsmAnd+, financiar nuevas funciones o hacer una donación general en OsmAnd.net.
+\n OsmAnd está siendo desarrollado activamente. Nuestro proyecto y su progreso adicional se basa en contribuciones económicas para financiar el desarrollo y las pruebas de nuevas funcionalidades. Por favor, considera comprar OsmAnd+, financiar nuevas funciones o hacer una donación general en OsmAnd.net."
"
OsmAnd (OSM Automated Navigation Directions, o traducido al español, Guía de navegación automatizada OSM) es un mapa y una aplicación de navegación con acceso a datos de todo el mundo, de alta calidad y gratuitos de OpenStreetMap (OSM). Todos los datos de los mapas se pueden almacenar en la tarjeta de memoria del dispositivo para su uso sin conexión. A través del GPS de tu dispositivo, OsmAnd ofrece indicaciones de navegación, visuales y por voz, para automóvil, bicicleta y peatones. Todas las funciones principales funcionan tanto conectado como sin conexión (no necesita Internet).
OsmAnd+ es la versión de pago de la aplicación. Comprándola das soporte al proyecto, financias el desarrollo de nuevas funciones y obtienes las últimas actualizaciones. Puedes probar la aplicación antes de comprarla instalando la versión libre llamada OsmAnd.
@@ -965,19 +964,18 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
"
Navegación y Mapas OsmAnd+
Visor y navegador móvil global de mapas OSM con y sin conexión
- "OsmAnd+ (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM)
-\n
-\n OsmAnd+ es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas), pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de rutas con y sin conexión con guía giro-a-giro mediante voz.
-\n
+ "OsmAnd+ (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM), es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas), pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de rutas con y sin conexión con guía giro-a-giro por voz.
+\n
\n OsmAnd+ es la versión de pago de la aplicación, comprándola das soporte al proyecto, financias el desarrollo de nuevas funciones, y recibes las últimas actualizaciones.
-\n
-\n Algunas de las funciones fundamentales:
+\n
+\n Algunas de las funciones fundamentales:
\n - Completa funcionalidad sin conexión (guarda los mapas vectoriales o teselas descargados en el almacenamiento del dispositivo)
\n - Mapas mundiales vectoriales compactos disponibles
\n - Descarga ilimitada de mapas de países o regiones directamente desde la aplicación
\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés, favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable
\n - Búsqueda sin conexión de direcciones y lugares (PDIs)
-\n - Rutas sin conexión para distancias de rango medio
+\n - Rutas sin conexión para distancias de rango medio
+\n
\n - Modos de automóvil, bicicleta y peatón con:
\n - (Opcional) Cambio automático de vista día/noche
\n - (Opcional) Ampliación del mapa según la velocidad
@@ -2864,4 +2862,5 @@ Representa el área: %1$s x %2$s
Tiempo moviéndose
Máx/Min
Rango
+ Rango = Min/Máx
diff --git a/OsmAnd/res/values-eu/strings.xml b/OsmAnd/res/values-eu/strings.xml
index 9774e1b531..7f58d342f8 100644
--- a/OsmAnd/res/values-eu/strings.xml
+++ b/OsmAnd/res/values-eu/strings.xml
@@ -2905,4 +2905,8 @@ Area honi dagokio: %1$s x %2$s
Denbora mugimenduan
Max/Min
Barrutia
+ Barrutia = Min/Max
+ Mapa • Bistaratu inguruko interesezko puntuak (POI) • Egokitu mapa zure mugimenduaren (edo iparrorratzaren) norabidera • Non zauden eta nora begiratzen duzun erakusten du • Partekatu zure kokalekua lagunek aurkitu zaitzaten • Gorde zuretzat garrantzitsuak diren tokiak gogokoetan • Mapan izenak nola bistaratu aukeratzen uzten dizu: zure hizkuntzan, tokiko hizkuntzan, edo ahoskera fonetikoa • Interneteko tesela mapak erakusten ditu, satelite ikuspegia (Bingek eskainia), hainbat gainazal, esaterako turismorako edo nabigaziorako GPX lorratzak eta azal gehigarriak gardentasun aldagarriarekin
+ Bizikleta • Bizikletentzako bideak aurki ditzakezu mapan • Bizikletarako GPS nabigazioak ibilbideak bizikletentzako bideak erabiliz eraikiko du • Zure abiadura eta altuera ikusi ditzakezu • GPX grabaketak zure bidaia grabatu eta partekatzea ahalbidetzen dizu • Gehigarriekin sestra-kurbak eta erliebe-itzalak gaitu ditzakezu
+ Bizikleta eta oinezkoentzako ezaugarriak • Oinez, mendian, eta bizikletarekin egiteko bideak eta aktibitateak ikusi • Bizikleta eta oinezkoentzako ibilbide eta ikuspegi bereziak • Aukeran garraio publikoaren geltokiak (autobusa, tranbia, trena) lineen izenak barne • Aukeran bidaiaren grabaketa tokiko GPX fitxategira edo interneteko zerbitzari batera • AUkeran abiadura eta altuera bistaratu • Biostaratu sestra-kurbak eta erliebe-itzalak (plug-in gehigarriarekin)
diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml
index 7f68637efe..569072ff22 100644
--- a/OsmAnd/res/values-fr/strings.xml
+++ b/OsmAnd/res/values-fr/strings.xml
@@ -1991,7 +1991,7 @@ Pour revenir à l’un des styles de carte classique de OsmAnd, désactivez simp
Limite de hauteur
Précisez la hauteur du véhicule qui doit être respectée sur les routes empruntées
Recalcule intelligent de l\'itinéraire
- Recalculer uniquement le début de l\'itinéraire pour les longs trajets
+ Pour les longs trajets, recalculer uniquement le début de l\'itinéraire
Partager ma position
Se déconnecter
Désactivé
@@ -3022,4 +3022,7 @@ Fonctionnalités principales :
Afficher les images ajoutées par certains utilisateurs.
Vous pouvez filtrer les images par date ou nom d\'utilisateur, le filtre est appliqué après avoir zoomé.
Réinitialiser
+ Moyenne
+ Croissant / Décroissant
+ Max / Min
diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml
index b5873eb412..eba3d6304f 100644
--- a/OsmAnd/res/values-it/strings.xml
+++ b/OsmAnd/res/values-it/strings.xml
@@ -2657,10 +2657,10 @@ Se ami OsmAnd e OSM e vuoi sostenerli, questo è un modo perfetto per farlo.Marrone scuro
Integrità della superficie stradale
Filtro: imposta la velocità minima per la registrazione di un punto
- Soglia del movimento di registrazione
- Scegliere la distanza minima dal precedente punto a cui avverrà la registrazione di un nuovo punto
+ Soglia minima dello spostamento per la registrazione
+ Filtro: imposta la distanza minima dal precedente punto a cui avverrà la registrazione di un nuovo punto
Precisione minima per la registrazione
- Impostare la minima precisione per la registrazione di un punto
+ Filtro: impostare la minima precisione per la registrazione di un punto
Colorazione delle linee isoipse
Digitare il nome del pdi, città, indirizzo
Continua
@@ -2812,41 +2812,22 @@ Rappresenta l\'area: %1$s x %2$s
Mostra contorni e punti in profondità
"\\022 Nuove funzionalità: Pulsante azione veloce
\n
-\n
-\n
\n • Migliorata la risposta del touch screen ai gesti (es. zoommare e allargare)
\n
-\n
-\n
\n • Nuovi caratteri della mappa mappa per estendere la copertura di più lingue
\n
-\n
-\n
-\n
\n • Supporto TTS per le lingue locali (e accenti)
\n
-\n
-\n
\n • Miglioramento della visibilità in molti stili mappa e wikipedia
\n
-\n
-\n
\n • Supporto all\'Open Location Code (OLC)
\n
-\n
-\n
\n • Visualizzazione di un profilo altimetrico, pendenza, e velocità per i GPX registrati e percorsi calcolati
\n
-\n
-\n
\n • Impostazione e miglioramenti della logica dello \"Stile guida\" nella guida svolta per svolta in bicicletta
\n
-\n
-\n
\n • Molti altri miglioramenti e correzioni di errori
\n
-\n
-\n
\n e altro ancora…"
Stile di guida
Guida sicura, veloce o bilanciata
@@ -2932,7 +2913,7 @@ Rappresenta l\'area: %1$s x %2$s
Seleziona le strade
in %1$s
Scrivi l\'indirizzo
- Anima la mia localizzazione
+ Simula la mia posizione
In navigazione abilita l\'interpolazione della mia localizzazione
Panoramica
Mostra dal livello di zoom
@@ -3043,7 +3024,7 @@ Copertura e qualità approssimativamente:
Scrivi il nome utente
Visualizza le immagini aggiunte da un certo utente.
Nome utente
- Puoi filtrare le immagini per nome dell\'utente o per data, i filtri si possono applicare solo per gli zoom più elevati.
+ Puoi filtrare le immagini per nome dell\'utente o per data. I filtri si possono applicare solo per gli zoom più elevati.
Salva le tracce registrate in cartelle mensili
Salva le tracce registrate in sottocartelle per mese di registrazione (come 2017-01).
Reimposta
diff --git a/OsmAnd/res/values-ja/phrases.xml b/OsmAnd/res/values-ja/phrases.xml
index 5414a16126..e8a78d232a 100644
--- a/OsmAnd/res/values-ja/phrases.xml
+++ b/OsmAnd/res/values-ja/phrases.xml
@@ -988,7 +988,7 @@
宗教関係エリア(Religious area)
森林の切れ目(Cutline)
- シャワー(Shower)
+ シャワー
樹木(Tree)
軍事事務所(Military office)
ウィキペディア(Wikipedia)
@@ -1138,7 +1138,7 @@
支払いの種類(Payment type)
視覚障害者用信号機音声
視覚障害者誘導用ブロック(Tactile paving)
- セルフサービス(Self service)
+ セルフサービス式か否か(Self service)
自動化(Automated)
地下鉄駅(Subway station)
貨物(Cargo)
@@ -1148,7 +1148,7 @@
古墳(Tumulus)
砦・要塞(Fortification)
開拓・居留地(Settlement)
- 都市(City)
+ 都市遺跡(City)
環状列石(Hut circle)
巨大墓所または荒廃都市(Necropolis)
壁画・彫刻(Petroglyph)
@@ -1188,7 +1188,7 @@
ギャンブルの種類
宝くじ
パチンコ
- スロットマシーン
+ スロットマシン
賭け事全般
ビンゴ
@@ -1201,12 +1201,12 @@
マッサージサービス(Massage services)
ゲレンデ難易度(Piste difficulty)
ゲレンデの対応種・状態(Piste grooming)
- 簡単・初級者用(Easy)
- 普通・中級者用(Intermediate)
- 上級者用(Advanced)
- すごく簡単・初心者用(Novice)
- 難しい・上級者用(Expert)
- フリーライド・競技用(Freeride)
+ 斜度30-35°・初級者用(Easy)
+ 斜度35-40°・中級者用(Intermediate)
+ 斜度40-45°上級者用(Advanced)
+ 斜度0-30°・初心者用(Novice)
+ 斜度45-50°・上級者用(Expert)
+ 斜度50-55°・非圧雪面、コース外等(Freeride)
一般的なアルペン・ノルディックスキー用(Classic)
一般的コース+スケート可(Classic+skating)
バックカントリー(Backcountry)
@@ -1250,26 +1250,26 @@
化学処理トイレ(Toilets disposal: chemical)
バケツトイレ(Toilets disposal: bucket)
- バックカントリー・管理区域外エリア(Backcountry)
- 可(Yes)
- 不可(No)
+ バックカントリー・管理区域外エリアへの進入
+ 可
+ 不可
キャンピングカー・トレーラー(Caravans)
- 可(Yes)
- キャンピングカー:不可(Caravans: no)
- 街頭時計の付属表示(Additional)
- 気圧計・晴雨計(Barometer)
- 気圧計:無し(Barometer: no)
- 日付表示(Date display)
- 日付表示:無し(Date display: no)
+ 可
+ キャンピングカー:不可
+ 街頭時計の付属物
+ 気圧計・晴雨計
+ 気圧計:無し
+ 日付表示
+ 日付表示:無し
- 湿度計(Hygrometer)
- 湿度計:無し(Hygrometer: no)
- 温度計(Thermometer)
- 温度計:無し(Thermometer: no)
+ 湿度計
+ 湿度計:無し
+ 温度計
+ 温度計:無し
宗派(Denomination)
暖炉(Fireplace)
- 有り(Yes)
- 暖炉無し(No fireplace)
+ 有り
+ 暖炉無し
展示内容・コンテンツ(Contents)
天文学(Astronomy)
@@ -1296,43 +1296,43 @@
ルートマーカー(Route marker)
道しるべ(Trail blaze)
宗教(Religion)
- レクリエーションセンター(Recreation center)
+ 保養施設(Recreation center)
電源(Power supply)
- 電源:無し(Power supply: no)
+ 電源:無し
電源ソケット形状:CEE 17 青(Power supply (socket): CEE 17 blue)
電源ソケット形状:CEE 7/4(Power supply (socket): CEE 7/4)
電源ソケット形状:CEE 7/5(Power supply (socket): CEE 7/5)
電源ソケット形状:NEMA 5-15(Power supply (socket): NEMA 5-15)
- 星評価(Star rating)
- 1 ツーリスト(1 (Tourist))
- 1S ツーリスト上位(1S (Superior Tourist))
- 2 スタンダード(2 (Standard))
- 2S スタンダード上位(2S (Superior Standard))
- 3 コンフォート(3 (Comfort))
- 3S コンフォート上位(3S (Superior Comfort))
- 4 ファーストクラス(4 (First Class))
- 4S ファーストクラス上位(4S (Superior First Class))
- 5 ラグジュアリー(5 (Luxury))
- 5S ラグジュアリー上位(5S (Superior Luxury))
+ 格付け(Star rating)
+ ☆(Tourist)
+ ☆S(Superior Tourist)
+ ☆☆(Standard)
+ ☆☆S(Superior Standard)
+ ☆☆☆(Comfort)
+ ☆☆☆S(Superior Comfort)
+ ☆☆☆☆(First Class)
+ ☆☆☆☆S(Superior First Class)
+ ☆☆☆☆☆(Luxury)
+ ☆☆☆☆☆S(Superior Luxury)
テント(Tents)
- テント不可(Tents not allowed)
- 許可(Allowed)
+ テント不可(又は設営に不向き)
+ 許可
洗濯機(Washing machine)
- 洗濯機:無し(Washing machine: no)
- 洗車場:無し(Car wash: no)
+ 洗濯機:無し
+ 洗車場:無し
エアーコンプレッサー(Compressed air)
- 有り(Yes)
- エアーコンプレッサー:無し(Compressed air: no)
+ 有り
+ エアーコンプレッサー:無し
- 肯定(Yes)
- 否定(No self-service)
+ セルフサービス式
+ セルフサービスではない
掃除機(Vacuum cleaner)
- 有り(Yes)
- 掃除機:無し(Vacuum cleaner: no)
+ 有り
+ 掃除機:無し
掃除機(Vacuum cleaner)
アドブルー・尿素水還元剤(AdBlue fuel)
@@ -1362,54 +1362,54 @@
ドーナツ(Donut)
ラーメン(Ramen)
クレープ(Crepe)
- 朝食(Breakfast)
+ 01営業形態_朝食(Breakfast)
牛丼(Gyudon)
ステーキ・肉魚切り身等の焼き料理(Steak)
タパス・前菜・小皿料理(Tapas)
- ガストロパブ・バー兼レストラン(Gastropub)
- ホイリゲ・ワイン酒場・居酒屋(Heuriger)
+ 01営業形態_ガストロパブ・バー兼レストラン(Gastropub)
+ 01営業形態_イリゲ・ワイン酒場・居酒屋(Heuriger)
カレー(Curry)
- 居酒屋(Buschenschank)
+ 01営業形態_居酒屋(Buschenschank)
グリル・鉄板、焼き網料理(Grill)
ベーグル(Bagel)
- ダイナー・簡易食堂(Diner)
+ 01営業形態_ダイナー・簡易食堂(Diner)
ソーセージ(Sausage)
ケーキ(Cake)
パンケーキ・ホットケーキ(Pancake)
パスタ(Pasta)
- ファストフード(Fast food)
+ 01営業形態_ファストフード(Fast food)
ジュース(Juice)
蕎麦(Soba)
- 高級レストラン(Fine dining)
+ 01営業形態_高級レストラン(Fine dining)
茶・紅茶(Tea)
- ティーショップ(Tea shop)
+ 01営業形態_ティーショップ(Tea shop)
スープ(Soup)
パイ(Pie)
ホットドッグ(Hotdog)
- デリ・総菜屋(Deli)
+ 01営業形態_デリ・総菜屋(Deli)
サラダ(Salad)
フローズンヨーグルト(Frozen yogurt)
揚げ物(Fried food)
具入りパンケーキ・チヂミ・お好み焼き等(Savory pancakes)
- 大衆食堂(Bistro)
- パン屋(Bakery)
+ 01営業形態_大衆食堂(Bistro)
+ 01営業形態_パン屋(Bakery)
クスクス(Couscous)
フライドチキン(Fried chicken)
デザート(Dessert)
- PX・社員食堂(Canteen)
+ 01営業形態_社員食堂・学食・酒保(Canteen)
タコス(Tacos)
ピアディーナ(Piadina)
ファラフェル・ひよこ豆、そらまめのコロッケ(Falafel)
スムージー(Smoothie)
スブラキ・串焼き(Souvlaki)
- スナック(Snack)
+ 軽食(Snack)
ヨーグルト(Yogurt)
ギロピタ・ドネルケバブ(Gyros)
エンパナーダ・具入りパン(Empanada)
クレープ(Crepes)
焼肉(Yakiniku)
うどん(Udon)
- ブラッスリー・カフェレストラン(Brasserie)
+ 01営業形態_ブラッスリー・カフェレストラン(Brasserie)
タピオカティー(Bubble tea)
焼き鳥(Yakitori)
肉(Meat)
@@ -1418,7 +1418,7 @@
チョコレート(Chocolate)
ワイン(Wine)
ジャガイモ(Potato)
- ブランチ(Brunch)
+ 01営業形態_ブランチ(Brunch)
サンドイッチ(Sub)
ピタパン(Pita)
フォンデュ(Fondue)
@@ -1507,10 +1507,10 @@
チベット料理(Tibetan)
出前・宅配(Delivery)
- 可(Yes)
- 宅配可(Delivery)
- 宅配不可(No delivery)
- 宅配のみ(Delivery only)
+ 可
+ 宅配可
+ 宅配不可
+ 宅配のみ
ダイエット・食事制限(Diet)
ベジタリアン(Vegetarian)
@@ -1542,28 +1542,28 @@
料理(Dish)
クルド語 wiki(Kurdish wiki)
地ビール醸造所(Microbrewery)
- 地ビール醸造有り(Microbrewery)
- 地ビール醸造無し
+ 地ビール有り
+ 地ビール無し
有り
無し
自然食品のみ取り扱い
屋外席(Outdoor seating)
- 有り(Yes)
- 屋外席:有り(Outdoor seating: yes)
- 屋外席無し(No outdoor seating)
- 屋外席:テラス(Outdoor seating: terrace)
- 屋外席:歩道側(Outdoor seating: sidewalk)
- 屋外席:歩行者ゾーン(Outdoor seating: pedestrian zone)
- 屋外席:庭(Outdoor seating: garden)
- 屋外席:中庭(Outdoor seating: patio)
+ 有り
+ 屋外席:有り
+ 屋外席:無し
+ 屋外席:テラス(terrace)
+ 屋外席:歩道(sidewalk)
+ 屋外席:歩行者天国(pedestrian zone)
+ 屋外席:庭(arden)
+ 屋外席:中庭(patio)
- テイクアウト・持ち帰り(Takeaway)
- 有り(Yes)
- テイクアウト・持ち帰り有り(Takeaway)
- 持ち帰り無し(No takeaway)
- テイクアウト・持ち帰りのみ(Takeaway only)
+ テイクアウト・持ち帰り
+ 可能
+ 持ち帰り可
+ 持ち帰り不可
+ テイクアウト・持ち帰りのみ
遺跡の種類
医療機関(Health specialty)
@@ -1631,7 +1631,7 @@
鍼治療(Acupuncture)
ホメオパシー(民間療法)(Homeopathy)
東洋医学(Traditional chinese medicine)
- レイキ・霊気(民間療法)Reiki
+ レイキ・霊気(民間療法)(Reiki)
本草学(Herbalism)
カイロプラクティック(Chiropractic)
自然療法(Naturopathy)
@@ -1668,13 +1668,13 @@
営業期(Seasonal)
ドライブイン(Drive in)
無し
- 有り(Yes)
+ 有り
ボーイスカウト用キャンプ(Scout camp)
肯定(Scout camp: yes)
否定(Scout camp: no)
- 有り(Yes)
- 有り(Yes)
- 有り(Yes)
+ 有り
+ 有り
+ 有り
送金の種類(Payment type (transport))
硬貨
@@ -1686,7 +1686,7 @@
クレジットカード不可
紙幣(Banknotes)
紙幣不可(Banknotes not accepted)
- 電子マネー可
+ 電子マネー
電子マネー不可
現金不可(Cash not accepted)
デビットカード
@@ -1703,10 +1703,10 @@
クレジットカード_American Express(AMEX)不可
クレジットカード_ダイナースクラブ
クレジットカード_ダイナースクラブカード不可
- 燃料カード_DKV(DKV)
- 燃料カード_DKV不可(DKV not accepted)
- 燃料カード_UTA(UTA)
- 燃料カード_UTA不可(UTA cards not accepted)
+ 燃料カード_DKV
+ 燃料カード_DKV不可
+ 燃料カード_UTA
+ 燃料カード_UTA不可
デビットカード_Girocard
デビットカード_Girocard不可
クレジットカード_ディスカバーカード
@@ -1720,17 +1720,17 @@
有料道路_PIKEPASS(PIKEPASS)
有料道路_PIKEPASS不可(PIKEPASS not accepted)
有料道路_PIKEPASS指定(PIKEPASS (designated))
- デビットカード_Visaデビットカード
- デビットカード_Visaデビットカード不可
+ デビットカード_Visaデビット
+ デビットカード_Visaデビット不可
暗号通貨不可(Cryptocurrencies not accepted)
その他(Others)
その他該当支払い方法不可(Other payment methods not accepted)
- 燃料カード_Routex(Routex)
- 燃料カード_Routex不可(Routex fuel cards not accepted)
+ 燃料カード_Routex
+ 燃料カード_Routex不可
デビットカード_Bancomat
デビットカード_Bancomat不可
- 公共交通機関_ICストアドフェアカード(Suica等)(IC Stored Fare)
- 公共交通機関_ICストアドフェアカード(Suica等)(IC Stored Fare)
+ 公共交通機関_ICストアドフェアカード(Suica等)
+ 公共交通機関_ICストアドフェアカード(Suica等)
公共交通機関_プリペイドチケット(Prepaid tickets)
クレジットカード_JCB
クレジットカード_JCB不可
@@ -1738,8 +1738,8 @@
デビットカード_Laser不可
電子マネー_Quick
電子マネー_Quickカード不可
- 燃料カード_Eurowag(Eurowag)
- 燃料カード_Eurowag不可(Eurowag cards not accepted)
+ 燃料カード_Eurowag
+ 燃料カード_Eurowag不可
有料道路_E-ZPass(E‑ZPass)
有料道路_E-ZPass不可(E‑ZPass not accepted)
燃料カード_Euroshell
@@ -1820,12 +1820,12 @@
有り
無し
- バスク伝統サイダー(リンゴ酒・ワイン)ハウス(Sagardotegia)
+ 01営業形態_バスク伝統サイダー(リンゴ酒・ワイン)ハウス(Sagardotegia)
肯定
非自動化
非回転ブラシ洗車の有無(Brushless)
- 肯定
- 否定
+ 有り
+ 非回転ブラシ洗車:無し
障害者専用コーナーの有無(Dedicated places for disabled)
有り
無し
@@ -2096,7 +2096,7 @@
無し
歩行許可時のみ
- リゾート種別(Type)
+ 保養地、援助施設
望遠鏡の種類
光学望遠鏡
電波望遠鏡
@@ -3227,4 +3227,19 @@
カウンセリング(親密なパートナーあるいは家庭内暴力):対応
カウンセリング(親密なパートナーあるいは家庭内暴力):対応できず
+ 出力電力
+ 出力:電気
+ 熱水発電
+ 出力:熱水
+ 出力:蒸気
+ 出力:熱風
+ 出力:冷水
+ 圧縮空気発電
+ 出力:圧縮空気
+ 出力:真空
+ バイオガス発電
+ 出力:バイオガス
+
+ 出力(電力):無し
+
diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml
index 870cee5214..caa2ca1cbe 100644
--- a/OsmAnd/res/values-ja/strings.xml
+++ b/OsmAnd/res/values-ja/strings.xml
@@ -2088,7 +2088,7 @@ POIの更新は利用できません
バックグラウンドで実行
お気に入りの情報
移動シミュレーションの停止
- 計算されたルート、またはGPXに記録されたルートを使用して移動時のシミュレートをします
+ 計算されたルート、またはGPXに記録されたルートを使用して移動のシミュレーションをします
お気に入りに追加
よろしいですか?
未保存の変更は失われます。続行しますか?
@@ -2421,7 +2421,7 @@ OsmAndとOSMをサポートする方法として現状最適な方法である
OSMライブナビゲーション
目的地が設定されていません
道を外れてもルートを変更しない
- 適切でない案内だった場合ルートを変更しない
+ 反対方向へ向かった場合ルートを変更しない
目的地の方向と逆進した場合、自動的にルートの再計算をしないようにします
スマート音声案内
目的地への方向が変更されたときのみ通知します
@@ -2452,7 +2452,7 @@ OsmAndとOSMをサポートする方法として現状最適な方法である
フォローはこちらから
音シグナルで案内
振動シグナルで案内
- 案内されたルートから大きく離れた場合、自動的にルートの再計算をしないようにします
+ ルートから離れた場合に、自動的にルートの再計算をしないようにします
検索に戻る
選択された履歴を削除しますか?
マップ上に%1$sを表示
@@ -2487,7 +2487,7 @@ OsmAndとOSMをサポートする方法として現状最適な方法である
磁方位
レガシー検索
レガシー検索を表示
- ドロワーリスト型のレガシー(旧型)検索も使用できるようにします
+ メニューリストで旧型検索も使用できるようにします
高速道路を許可
高速道路を使用可能とみなします
" • クイックアクションボタンの実装
@@ -2583,7 +2583,7 @@ OsmAndとOSMをサポートする方法として現状最適な方法である
場所が見つかりません
マップのダウンロードにはインターネット接続が必要です。
現在地取得
- OsmAndのアップデート情報や、割引に関しての情報をチェックしません
+ OsmAndのバージョン更新や、割引に関しての情報をチェックしません
更新情報を非表示
すべてのマップを今すぐ更新しますか?
お気に入り %1$sを置き換えてよろしいですか?
@@ -2976,8 +2976,8 @@ OsmAndとOSMをサポートする方法として現状最適な方法である
皆で共有する路上写真です。新たな場所の発見に、協力しあい、この世界を写真で保存しましょう。
インストール
OsmAndは指定したファイルをインポートできません。OsmAndにその場所からファイルを読み取る権限があるか確認して下さい。
- 同心円
- 2点間距離測定
+ 同心円測定器
+ 2点間測定器
権限
上に移動
美麗
@@ -2990,8 +2990,13 @@ OsmAndとOSMをサポートする方法として現状最適な方法である
指定の期間に追加された画像だけを表示します。
日付
ユーザー名を入力
- 指定のユーザーによって追加された画像のみを表示します。
+ 指定のユーザーに追加された画像だけを表示します。
ユーザー名
- 投稿者または日付で投稿された画像をフィルタリングできます。 フィルタは拡大ズームにのみ適用されます。
+ 投稿者と日付で投稿された画像をフィルタリングできます。
+\nマップが一定値以上に拡大された場合のみフィルタは適用されます。
距離補正済み
+ リセット
+ 月ごとのフォルダ別に記録経路を保存
+ サブフォルダ(例:2017-01)を作成して記録した月ごとに経路を保存します。
+ 平均
diff --git a/OsmAnd/res/values-lt/phrases.xml b/OsmAnd/res/values-lt/phrases.xml
index fae8c97d99..f619b657d2 100644
--- a/OsmAnd/res/values-lt/phrases.xml
+++ b/OsmAnd/res/values-lt/phrases.xml
@@ -1,6 +1,6 @@
Parduotuvė
- Maisto parduotuvė
+ Maisto parduotuvė ir supermarketas
Pagalbos tarnybos
Transportas
Kelio kliūtis
@@ -364,4 +364,35 @@
Nekilnojamo turto agentūra
Visuomeninė organizacija
+ Dieta
+ Medicininė specializacija
+ Palapinės
+ Automobilių priekabos
+ Elektros energijos šaltinis
+ Medicininė sistema
+ Namų aplankymas
+ Mokėjimo tipas (transportas)
+ Suspaustas oras
+ Charakteristika
+ Valgykla
+ Tipas
+ Paslaugos
+ Motociklo tipas
+
+Avarinė infrastruktūra
+ Mobilių telefonų parduotuvė
+ Motociklų parduotuvė
+ Optika
+ Ekologiški maisto produktai
+ Aktyvaus poilsio prekių parduotuvė
+ Dažų parduotuvė
+ Gyvūnų parduotuvė
+ Foto parduotuvė
+ Radijo technikos parduotuvė
+ Naudotų daiktų parduotuvė
+ Nardymo prekių parduotuvė
+ Laivų aptrūpinimo agentas
+ Stalo įrankių parduotuvė
+ Turgelis
+ Padangų parduotuvė
diff --git a/OsmAnd/res/values-lt/strings.xml b/OsmAnd/res/values-lt/strings.xml
index 7be5dbe761..b1ca6758c9 100644
--- a/OsmAnd/res/values-lt/strings.xml
+++ b/OsmAnd/res/values-lt/strings.xml
@@ -2842,4 +2842,55 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka.
Naudoti SRTM, ASTER ir EU-DEM pateikiamus vietovės aukščio duomenis
Rodyti gylio kontūrus ir taškus
Vandenyno gylio kontūrai
+ \\022 Nauja funkcija: Greito veiksmo mygtukas
+\n
+\n • Patobulinta liečiamo ekrano veiksmų reakcija (t.y. mąstelio keitimas ir žemėlapio stūmimas tuo pačiu metu)
+\n
+\n • Nauji žemėlapio fontai tinkantys daugiau kalbų
+\n
+\n • Teksto vertimo į kalbą (TTS) palaikymas regioniniams kalbų variantams (ir akcentams)
+\n
+\n • Kelių žemėlapių stilių ir vikipedijos matomumo patobulinimai
+\n
+\n • Open Location Code (OLC) palaikymas
+\n
+\n • Aukščio, įkalnės ir greičio profilio rodymas į GPX įrašytiems ir apskaičiuotiems maršrutams
+\n
+\n • \"Vairavimo stiliaus\" nustatyms ir logikos patobulinimai dviračių maršrutų skaičiavimams
+\n
+\n • Nustatymai aukščio infromaciją dviračių maršrutų skaičiavimams
+\n
+\n • Keltas kitų patobulinimų ir klaidų ištaisymų
+\n
+\n ir dar daugiau…
+ Automatinis įrašo padalinimas po pertraukimo
+ Pradėti naują segmentą po 6 minučių tarpo, naują kelio įrašą po 2 valandų, arba naują failą jie po ilgesnio tarpo pasikeitė data.
+ Kontūrų linijų tankis
+ Konturų linijų tankis
+ Konturų linijų plotis
+ Konturų linijų plotis
+ Priedėti senąją paiešką prie stalčiaus sąrašo
+ Leisti greitkelius
+ Šalia esantys Vikipedijos straipsniai
+ Sukite į %1$d išvažiavimą ir keliaukite
+ Jūs dar neturite išsaugotų kelių
+ Jūs taip pat galite išsaugoti kelius segtuve
+ Rodyti pranešimą kuris leidžia pradėti kelionės įrašymą paspaudus \"Įrašyti\" mygtuką
+ \\022 INteraktyvios žemėlapio ikonos
+\n
+\n • Galingas LV paieškos filtras: ieškoti restoranų pvz. pagal virtuvę ar kempingų pagal su specifinėm paslaugom
+\n
+\n • Naujas Topo žemėlapio stilius dviratininkams ir keliautojams
+\n
+\n • Patobulintas kelionės įrašymas
+\n
+\n • Patobulinti navigaciniai pranešimai (Android Wear)
+\n
+\n • Daugelis kitų patobulinimų ir klaidų pataisymų
+\n
+\n ir dar daugiau…
+ Filtras: Nustatyti minimalų greitų kad taškas būtų pažymėtas
+ Minimalus atstumas pažymėjimui
+ Filtras: Nustatyti minimalų atstumą nuo ankstesnės pozicijos kad taškas būtų išsaugotas
+ Minimalus išsaugojimo tikslumas
diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml
index 30f70b8168..e8aa6576c4 100644
--- a/OsmAnd/res/values-nb/strings.xml
+++ b/OsmAnd/res/values-nb/strings.xml
@@ -1755,7 +1755,7 @@
Søk etter by eller region
Søk (gamlemåten)
Vis søk (gamlemåten)
- Aktiver søk (gamlemåten) i sidemenyen
+ Legg til søk (gamlemåten) i sidemenyen
Tillat motorveier
Tillat motorveier
Last opp interessepunkt
@@ -2274,4 +2274,11 @@ Representerer området: %1$s x %2$s
Tillatelser
OsmAnd kan ikke importere filen. Kontroller om OsmAnd har leserettighet for fillagringsstedet.
Korrigert avstand
+ Last på nytt
+ Feil brukernavn!
+ Til
+ Fra
+ Datoer
+ Skriv inn brukernavn
+ Brukernavn
diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml
index d9c22d6cbf..8048526db4 100644
--- a/OsmAnd/res/values-pl/strings.xml
+++ b/OsmAnd/res/values-pl/strings.xml
@@ -2891,7 +2891,7 @@ Reprezentuje obszar: %1$s x %2$s
Stopień przybliżenia: %1$s
Zestaw kolorów
Wyświetlanie od stopnia przybliżenia
- Zezwolenie na dostęp prywatny
+ Uwzględnianie prywatnych obszarów
Zezwala na dostęp do prywatnych obszarów
Ta trasa może być zbyt długa do wyznaczenia. Prosimy dodać punkty pośrednie, jeżeli nie dostaniesz wyniku w ciągu 10 minut.
Nazwa zawiera zbyt wiele wielkich liter. Czy chcesz kontynuować?
@@ -2947,8 +2947,8 @@ Reprezentuje obszar: %1$s x %2$s
Proszę wprowadzić nazwę użytkownika
Można filtrować obrazy według nazwy użytkownika lub daty. Filtry mają zastosowanie dla większych przybliżeń.
Wyświetla obrazy dodane przez określonego użytkownika.
- Zapisz zarejestrowane ślady w miesięcznych katalogach
- Zapisz zarejestrowane ślady w podfolderach na każdy rejestrowany miesiąc (np. 2017-01).
+ Ślady w miesięcznych katalogach
+ Przechowuje zarejestrowane ślady w podkatalogach odpowiadającym miesiącom (np. 2017-01).
Resetuj
Przeładuj kafelki, aby je uaktualnić.
Średnia
diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml
index 8cc26e1da2..0449f0ad8c 100644
--- a/OsmAnd/res/values-ru/phrases.xml
+++ b/OsmAnd/res/values-ru/phrases.xml
@@ -3426,6 +3426,8 @@
Двойного назначения
Классика
+ Не вырабатывает электричество
+ Владелец
\ No newline at end of file
diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml
index 1d522e110a..3fa9897ef2 100644
--- a/OsmAnd/res/values-sc/strings.xml
+++ b/OsmAnd/res/values-sc/strings.xml
@@ -1673,7 +1673,7 @@ Memòria in proportzione %4$s MB (lìmite de Android %5$s MB, Dalvik %6$s MB).
Limite de lestresa
Casellu
Cartellu de Stop
- Controllu doganale
+ Puntu de controllu
Minimadore de lestresa
Autovelox
Avisu de tràficu
diff --git a/OsmAnd/res/values-sk/phrases.xml b/OsmAnd/res/values-sk/phrases.xml
index 4a6b9ed637..0158976c19 100644
--- a/OsmAnd/res/values-sk/phrases.xml
+++ b/OsmAnd/res/values-sk/phrases.xml
@@ -1912,7 +1912,7 @@
Akvakultúra: mušle
Teleskop/Ďalekohľad
- Teleskop: optický
+ Optický
Teleskop: rádiový
Teleskop: gamma-žiarenie
Výbuch: priemer krátera
@@ -1921,12 +1921,12 @@
Tlak v hydrante
Počet hydrantov
Prietok v hydrante
- Umiestnenie hydrantu: na chodníku
- Umiestnenie hydrantu: na trávniku
- Umiestnenie hydrantu: v jazdnom pruhu
- Umiestnenie hydrantu: na parkovisku
- Umiestnenie hydrantu: na ulici
- Umiestnenie hydrantu: pod zemou
+ Na chodníku
+ Na trávniku
+ V jazdnom pruhu
+ Na parkovisku
+ Na ulici
+ Pod zemou
Vzhľad hydrantu: wsh
Vodovod
Rybník
@@ -2451,7 +2451,7 @@
Stany nepovolené
Otvorený oheň polovený
Otvorený oheň nepolovený
- Skautský tábor: áno
+ Áno
Skautský tábor: nie
Len skupiny: áno
Len skupiny: nie
@@ -2494,8 +2494,8 @@
Technický monument
- Nabíjanie bicyklov: áno
- Nabíjanie bicyklov: nie
+ Nabíjanie: áno
+ Nabíjanie: nie
Stanica na vlastnú opravu bicyklov
Vojenský kontrolný bod
diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml
index efb2b8c908..19633ee9b4 100644
--- a/OsmAnd/res/values-sk/strings.xml
+++ b/OsmAnd/res/values-sk/strings.xml
@@ -2906,4 +2906,5 @@ Zodpovedá oblasti: %1$s x %2$s
Trvanie presunu
Max/Min
Úsek
+ Rozsah = Min/Max
diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml
index 80d4de1b44..e9616c12e1 100644
--- a/OsmAnd/res/values-zh-rTW/strings.xml
+++ b/OsmAnd/res/values-zh-rTW/strings.xml
@@ -257,7 +257,7 @@
向左方
左前方
點鐘
- 接近
+ 朝向
精確性
海拔高度
沒有數據
@@ -656,15 +656,15 @@
SD卡無法存取。\n您將無法看到地圖或找地點。
SD 卡是唯讀模式。\n您只能看預載的地圖且無法由網路下載。
解壓縮檔案…
- 右轉之後直行
- 右後轉之後直行
- 轉入右前方之後直行
- 左轉之後直行
- 左後轉之後直行
- 轉入右前方之後直行
- 迴轉之後直行
+ 右轉後直行
+ 向右急轉後直行
+ 向右急轉後直行
+ 左轉後直行
+ 向左急轉後直行
+ 向左急轉後直行
+ 迴轉後直行
前方
- 繼續
+ 隨後
下載地區
搜尋訊號中…
查尋目前地圖中心附近
@@ -2077,7 +2077,7 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式
地形陰影圖層停用
請啟動航線標識外掛元件
請啟動 SRTM 外掛元件
- 接著
+ 隨後
完整版
地區
@@ -2884,11 +2884,12 @@ Facebook:https://www.facebook.com/osmandapp
圖磚快取
重置
在每月的資料夾中存儲已記錄的軌跡
- 在每個月已記錄的子資料夾中存儲記錄的軌跡 (例如 2017-01)。
+ 存儲已記錄的軌跡以月份記錄在子資料夾中 (例如 2017-01)。
平均
%1$d 的 %2$d
上升/下降
移動時間
最大/最小
範圍
+ 範圍 = 最小/最大
diff --git a/OsmAnd/res/values/phrases.xml b/OsmAnd/res/values/phrases.xml
index 58ffcbece5..697e749f93 100644
--- a/OsmAnd/res/values/phrases.xml
+++ b/OsmAnd/res/values/phrases.xml
@@ -3395,4 +3395,8 @@
Dualsport
Standard
+ Output (electricity): no
+
+ Owner
+
diff --git a/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl b/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl
index adfccdbdf1..94df40d166 100644
--- a/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl
+++ b/OsmAnd/src/net/osmand/aidl/IOsmAndAidlInterface.aidl
@@ -39,18 +39,10 @@ import net.osmand.aidl.maplayer.AddMapLayerParams;
import net.osmand.aidl.maplayer.RemoveMapLayerParams;
import net.osmand.aidl.maplayer.UpdateMapLayerParams;
+// NOTE: Add new methods at the end of file!!!
+
interface IOsmAndAidlInterface {
- boolean refreshMap();
-
- boolean addFavoriteGroup(in AddFavoriteGroupParams params);
- boolean removeFavoriteGroup(in RemoveFavoriteGroupParams params);
- boolean updateFavoriteGroup(in UpdateFavoriteGroupParams params);
-
- boolean addFavorite(in AddFavoriteParams params);
- boolean removeFavorite(in RemoveFavoriteParams params);
- boolean updateFavorite(in UpdateFavoriteParams params);
-
boolean addMapMarker(in AddMapMarkerParams params);
boolean removeMapMarker(in RemoveMapMarkerParams params);
boolean updateMapMarker(in UpdateMapMarkerParams params);
@@ -74,4 +66,15 @@ interface IOsmAndAidlInterface {
boolean setMapLocation(in SetMapLocationParams params);
boolean calculateRoute(in CalculateRouteParams params);
+
+ boolean refreshMap();
+
+ boolean addFavoriteGroup(in AddFavoriteGroupParams params);
+ boolean removeFavoriteGroup(in RemoveFavoriteGroupParams params);
+ boolean updateFavoriteGroup(in UpdateFavoriteGroupParams params);
+
+ boolean addFavorite(in AddFavoriteParams params);
+ boolean removeFavorite(in RemoveFavoriteParams params);
+ boolean updateFavorite(in UpdateFavoriteParams params);
+
}
\ No newline at end of file
diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java
index 351e511ea5..41c8037ae5 100644
--- a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java
+++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java
@@ -5,6 +5,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
+import android.os.AsyncTask;
import android.os.ParcelFileDescriptor;
import android.view.View;
@@ -20,13 +21,16 @@ import net.osmand.data.FavouritePoint;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.plus.FavouritesDbHelper;
+import net.osmand.plus.GPXDatabase.GpxDataItem;
import net.osmand.plus.GPXUtilities;
import net.osmand.plus.GPXUtilities.GPXFile;
+import net.osmand.plus.GpxSelectionHelper;
import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile;
import net.osmand.plus.MapMarkersHelper;
import net.osmand.plus.MapMarkersHelper.MapMarker;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.activities.MapActivity;
+import net.osmand.plus.dialogs.ConfigureMapMenu;
import net.osmand.plus.helpers.ColorDialogs;
import net.osmand.plus.views.AidlMapLayer;
import net.osmand.plus.views.MapInfoLayer;
@@ -631,13 +635,71 @@ public class OsmandAidlApi {
return false;
}
- boolean importGpxFromFile(File source, String destinationPath) {
+ private void finishGpxImport(boolean destinationExists, File destination, String color, boolean show) {
+ int col = ConfigureMapMenu.GpxAppearanceAdapter.parseTrackColor(
+ app.getRendererRegistry().getCurrentSelectedRenderer(), color);
+ if (!destinationExists) {
+ GpxDataItem gpxDataItem = new GpxDataItem(destination, col);
+ app.getGpxDatabase().add(gpxDataItem);
+ } else {
+ GpxDataItem item = app.getGpxDatabase().getItem(destination);
+ if (item != null) {
+ app.getGpxDatabase().updateColor(item, col);
+ }
+ }
+ final GpxSelectionHelper helper = app.getSelectedGpxHelper();
+ final SelectedGpxFile selectedGpx = helper.getSelectedFileByName(destination.getName());
+ if (selectedGpx != null) {
+ if (show) {
+ new AsyncTask() {
+
+ @Override
+ protected GPXFile doInBackground(File... files) {
+ return GPXUtilities.loadGPXFile(app, files[0]);
+ }
+
+ @Override
+ protected void onPostExecute(GPXFile gpx) {
+ if (gpx.warning == null) {
+ selectedGpx.setGpxFile(gpx);
+ refreshMap();
+ }
+ }
+
+ }.execute(destination);
+ } else {
+ helper.selectGpxFile(selectedGpx.getGpxFile(), false, false);
+ refreshMap();
+ }
+ } else if (show) {
+ new AsyncTask() {
+
+ @Override
+ protected GPXFile doInBackground(File... files) {
+ return GPXUtilities.loadGPXFile(app, files[0]);
+ }
+
+ @Override
+ protected void onPostExecute(GPXFile gpx) {
+ if (gpx.warning == null) {
+ helper.selectGpxFile(gpx, true, false);
+ refreshMap();
+ }
+ }
+
+ }.execute(destination);
+ }
+ }
+
+ boolean importGpxFromFile(File source, String destinationPath, String color, boolean show) {
if (source != null && !Algorithms.isEmpty(destinationPath)) {
if (source.exists() && source.canRead()) {
File destination = app.getAppPath(IndexConstants.GPX_INDEX_DIR + destinationPath);
if (destination.getParentFile().canWrite()) {
+ boolean destinationExists = destination.exists();
try {
Algorithms.fileCopy(source, destination);
+ finishGpxImport(destinationExists, destination, color, show);
return true;
} catch (IOException e) {
e.printStackTrace();
@@ -648,18 +710,20 @@ public class OsmandAidlApi {
return false;
}
- boolean importGpxFromUri(Uri gpxUri, String destinationPath) {
+ boolean importGpxFromUri(Uri gpxUri, String destinationPath, String color, boolean show) {
if (gpxUri != null && !Algorithms.isEmpty(destinationPath)) {
File destination = app.getAppPath(IndexConstants.GPX_INDEX_DIR + destinationPath);
- ParcelFileDescriptor gpxParcelDescriptor = null;
+ ParcelFileDescriptor gpxParcelDescriptor;
try {
gpxParcelDescriptor = app.getContentResolver().openFileDescriptor(gpxUri, "r");
if (gpxParcelDescriptor != null) {
+ boolean destinationExists = destination.exists();
FileDescriptor fileDescriptor = gpxParcelDescriptor.getFileDescriptor();
InputStream is = new FileInputStream(fileDescriptor);
FileOutputStream fout = new FileOutputStream(destination);
try {
Algorithms.streamCopy(is, fout);
+ finishGpxImport(destinationExists, destination, color, show);
} finally {
try {
is.close();
@@ -681,14 +745,16 @@ public class OsmandAidlApi {
return false;
}
- boolean importGpxFromData(String sourceRawData, String destinationPath) {
+ boolean importGpxFromData(String sourceRawData, String destinationPath, String color, boolean show) {
if (!Algorithms.isEmpty(sourceRawData) && !Algorithms.isEmpty(destinationPath)) {
File destination = app.getAppPath(IndexConstants.GPX_INDEX_DIR + destinationPath);
try {
InputStream is = new ByteArrayInputStream(sourceRawData.getBytes());
FileOutputStream fout = new FileOutputStream(destination);
+ boolean destinationExists = destination.exists();
try {
Algorithms.streamCopy(is, fout);
+ finishGpxImport(destinationExists, destination, color, show);
} finally {
try {
is.close();
@@ -713,9 +779,23 @@ public class OsmandAidlApi {
if (!Algorithms.isEmpty(fileName)) {
File f = app.getAppPath(IndexConstants.GPX_INDEX_DIR + fileName);
if (f.exists()) {
- GPXFile gpx = GPXUtilities.loadGPXFile(app, f);
- app.getSelectedGpxHelper().selectGpxFile(gpx, true, false);
- refreshMap();
+ new AsyncTask() {
+
+ @Override
+ protected GPXFile doInBackground(File... files) {
+ return GPXUtilities.loadGPXFile(app, files[0]);
+ }
+
+ @Override
+ protected void onPostExecute(GPXFile gpx) {
+ if (gpx.warning == null) {
+ app.getSelectedGpxHelper().selectGpxFile(gpx, true, false);
+ refreshMap();
+ }
+ }
+
+ }.execute(f);
+
return true;
}
}
diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java
index 2a40acb86a..ce7152edd8 100644
--- a/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java
+++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlService.java
@@ -227,11 +227,14 @@ public class OsmandAidlService extends Service {
public boolean importGpx(ImportGpxParams params) throws RemoteException {
if (params != null && !Algorithms.isEmpty(params.getDestinationPath())) {
if (params.getGpxFile() != null) {
- return getApi().importGpxFromFile(params.getGpxFile(), params.getDestinationPath());
+ return getApi().importGpxFromFile(params.getGpxFile(), params.getDestinationPath(),
+ params.getColor(), params.isShow());
} else if (params.getGpxUri() != null) {
- return getApi().importGpxFromUri(params.getGpxUri(), params.getDestinationPath());
+ return getApi().importGpxFromUri(params.getGpxUri(), params.getDestinationPath(),
+ params.getColor(), params.isShow());
} else if (params.getSourceRawData() != null) {
- return getApi().importGpxFromData(params.getSourceRawData(), params.getDestinationPath());
+ return getApi().importGpxFromData(params.getSourceRawData(), params.getDestinationPath(),
+ params.getColor(), params.isShow());
}
}
return false;
diff --git a/OsmAnd/src/net/osmand/aidl/gpx/ImportGpxParams.java b/OsmAnd/src/net/osmand/aidl/gpx/ImportGpxParams.java
index 4776cf8503..6d2ed2cb88 100644
--- a/OsmAnd/src/net/osmand/aidl/gpx/ImportGpxParams.java
+++ b/OsmAnd/src/net/osmand/aidl/gpx/ImportGpxParams.java
@@ -12,20 +12,28 @@ public class ImportGpxParams implements Parcelable {
private Uri gpxUri;
private String sourceRawData;
private String destinationPath;
+ private String color;
+ private boolean show;
- public ImportGpxParams(File gpxFile, String destinationPath) {
+ public ImportGpxParams(File gpxFile, String destinationPath, String color, boolean show) {
this.gpxFile = gpxFile;
this.destinationPath = destinationPath;
+ this.color = color;
+ this.show = show;
}
- public ImportGpxParams(Uri gpxUri, String destinationPath) {
+ public ImportGpxParams(Uri gpxUri, String destinationPath, String color, boolean show) {
this.gpxUri = gpxUri;
this.destinationPath = destinationPath;
+ this.color = color;
+ this.show = show;
}
- public ImportGpxParams(String sourceRawData, String destinationPath) {
+ public ImportGpxParams(String sourceRawData, String destinationPath, String color, boolean show) {
this.sourceRawData = sourceRawData;
this.destinationPath = destinationPath;
+ this.color = color;
+ this.show = show;
}
public ImportGpxParams(Parcel in) {
@@ -59,6 +67,14 @@ public class ImportGpxParams implements Parcelable {
return destinationPath;
}
+ public String getColor() {
+ return color;
+ }
+
+ public boolean isShow() {
+ return show;
+ }
+
public void writeToParcel(Parcel out, int flags) {
if (gpxFile != null) {
out.writeString(gpxFile.getAbsolutePath());
@@ -68,6 +84,8 @@ public class ImportGpxParams implements Parcelable {
out.writeParcelable(gpxUri, flags);
out.writeString(sourceRawData);
out.writeString(destinationPath);
+ out.writeString(color);
+ out.writeByte((byte) (show ? 1 : 0));
}
private void readFromParcel(Parcel in) {
@@ -78,9 +96,11 @@ public class ImportGpxParams implements Parcelable {
gpxUri = in.readParcelable(Uri.class.getClassLoader());
sourceRawData = in.readString();
destinationPath = in.readString();
+ color = in.readString();
+ show = in.readByte() == 1;
}
public int describeContents() {
return 0;
}
-}
+}
\ No newline at end of file
diff --git a/OsmAnd/src/net/osmand/plus/GPXDatabase.java b/OsmAnd/src/net/osmand/plus/GPXDatabase.java
index 62b8eae644..c3539cd40f 100644
--- a/OsmAnd/src/net/osmand/plus/GPXDatabase.java
+++ b/OsmAnd/src/net/osmand/plus/GPXDatabase.java
@@ -13,7 +13,7 @@ import java.util.List;
public class GPXDatabase {
private static final String DB_NAME = "gpx_database";
- private static final int DB_VERSION = 2;
+ private static final int DB_VERSION = 3;
private static final String GPX_TABLE_NAME = "gpxTable";
private static final String GPX_COL_NAME = "fileName";
private static final String GPX_COL_DIR = "fileDir";
@@ -38,6 +38,7 @@ public class GPXDatabase {
private static final String GPX_COL_WPT_POINTS = "wptPoints";
private static final String GPX_COL_COLOR = "color";
+ private static final String GPX_COL_FILE_LAST_MODIFIED_TIME = "fileLastModifiedTime";
private static final String GPX_TABLE_CREATE = "CREATE TABLE IF NOT EXISTS " + GPX_TABLE_NAME + " (" +
GPX_COL_NAME + " TEXT, " +
@@ -61,14 +62,30 @@ public class GPXDatabase {
GPX_COL_POINTS + " int, " +
GPX_COL_WPT_POINTS + " int, " +
- GPX_COL_COLOR + " TEXT);";
+ GPX_COL_COLOR + " TEXT, " +
+ GPX_COL_FILE_LAST_MODIFIED_TIME + " long);";
- private static final String GPX_TABLE_SELECT = "SELECT " + GPX_COL_NAME + ", " + GPX_COL_DIR + "," + GPX_COL_TOTAL_DISTANCE + ", " +
- GPX_COL_TOTAL_TRACKS + ", " + GPX_COL_START_TIME + ", " + GPX_COL_END_TIME + ", " +
- GPX_COL_TIME_SPAN + ", " + GPX_COL_TIME_MOVING + ", " + GPX_COL_TOTAL_DISTANCE_MOVING + ", " +
- GPX_COL_DIFF_ELEVATION_UP + ", " + GPX_COL_DIFF_ELEVATION_DOWN + ", " + GPX_COL_AVG_ELEVATION + ", " +
- GPX_COL_MIN_ELEVATION + ", " + GPX_COL_MAX_ELEVATION + ", " + GPX_COL_MAX_SPEED + ", " +
- GPX_COL_AVG_SPEED + ", " + GPX_COL_POINTS + ", " + GPX_COL_WPT_POINTS + ", " + GPX_COL_COLOR +
+ private static final String GPX_TABLE_SELECT = "SELECT " +
+ GPX_COL_NAME + ", " +
+ GPX_COL_DIR + "," +
+ GPX_COL_TOTAL_DISTANCE + ", " +
+ GPX_COL_TOTAL_TRACKS + ", " +
+ GPX_COL_START_TIME + ", " +
+ GPX_COL_END_TIME + ", " +
+ GPX_COL_TIME_SPAN + ", " +
+ GPX_COL_TIME_MOVING + ", " +
+ GPX_COL_TOTAL_DISTANCE_MOVING + ", " +
+ GPX_COL_DIFF_ELEVATION_UP + ", " +
+ GPX_COL_DIFF_ELEVATION_DOWN + ", " +
+ GPX_COL_AVG_ELEVATION + ", " +
+ GPX_COL_MIN_ELEVATION + ", " +
+ GPX_COL_MAX_ELEVATION + ", " +
+ GPX_COL_MAX_SPEED + ", " +
+ GPX_COL_AVG_SPEED + ", " +
+ GPX_COL_POINTS + ", " +
+ GPX_COL_WPT_POINTS + ", " +
+ GPX_COL_COLOR + ", " +
+ GPX_COL_FILE_LAST_MODIFIED_TIME +
" FROM " + GPX_TABLE_NAME;
private OsmandApplication context;
@@ -77,12 +94,18 @@ public class GPXDatabase {
private File file;
private GPXTrackAnalysis analysis;
private int color;
+ private long fileLastModifiedTime;
public GpxDataItem(File file, GPXTrackAnalysis analysis) {
this.file = file;
this.analysis = analysis;
}
+ public GpxDataItem(File file, int color) {
+ this.file = file;
+ this.color = color;
+ }
+
public File getFile() {
return file;
}
@@ -95,8 +118,8 @@ public class GPXDatabase {
return color;
}
- public void setColor(int color) {
- this.color = color;
+ public long getFileLastModifiedTime() {
+ return fileLastModifiedTime;
}
}
@@ -106,18 +129,19 @@ public class GPXDatabase {
private SQLiteConnection openConnection(boolean readonly) {
SQLiteConnection conn = context.getSQLiteAPI().getOrCreateDatabase(DB_NAME, readonly);
- if (conn.getVersion() == 0 || DB_VERSION != conn.getVersion()) {
+ int version = conn.getVersion();
+ if (version == 0 || DB_VERSION != version) {
if (readonly) {
conn.close();
conn = context.getSQLiteAPI().getOrCreateDatabase(DB_NAME, readonly);
}
- if (conn.getVersion() == 0) {
+ version = conn.getVersion();
+ conn.setVersion(DB_VERSION);
+ if (version == 0) {
onCreate(conn);
} else {
- onUpgrade(conn, conn.getVersion(), DB_VERSION);
+ onUpgrade(conn, version, DB_VERSION);
}
- conn.setVersion(DB_VERSION);
-
}
return conn;
}
@@ -130,6 +154,33 @@ public class GPXDatabase {
if (oldVersion < 2) {
db.execSQL("ALTER TABLE " + GPX_TABLE_NAME + " ADD " + GPX_COL_COLOR + " TEXT");
}
+ if (oldVersion < 3) {
+ db.execSQL("ALTER TABLE " + GPX_TABLE_NAME + " ADD " + GPX_COL_FILE_LAST_MODIFIED_TIME + " long");
+ List items = getItems();
+ for (GpxDataItem item : items) {
+ updateLastModifiedTime(item);
+ }
+ }
+ }
+
+ private boolean updateLastModifiedTime(GpxDataItem item) {
+ SQLiteConnection db = openConnection(false);
+ if (db != null) {
+ try {
+ String fileName = getFileName(item.file);
+ String fileDir = getFileDir(item.file);
+ long fileLastModifiedTime = item.file.lastModified();
+ db.execSQL("UPDATE " + GPX_TABLE_NAME + " SET " +
+ GPX_COL_FILE_LAST_MODIFIED_TIME + " = ? " +
+ " WHERE " + GPX_COL_NAME + " = ? AND " + GPX_COL_DIR + " = ?",
+ new Object[] { fileLastModifiedTime, fileName, fileDir });
+ item.fileLastModifiedTime = fileLastModifiedTime;
+ } finally {
+ db.close();
+ }
+ return true;
+ }
+ return false;
}
public boolean rename(File currentFile, File newFile) {
@@ -163,7 +214,7 @@ public class GPXDatabase {
GPX_COL_COLOR + " = ? " +
" WHERE " + GPX_COL_NAME + " = ? AND " + GPX_COL_DIR + " = ?",
new Object[] { (color == 0 ? "" : Algorithms.colorToString(color)), fileName, fileDir });
- item.setColor(color);
+ item.color = color;
} finally {
db.close();
}
@@ -225,11 +276,57 @@ public class GPXDatabase {
} else {
color = Algorithms.colorToString(item.color);
}
- db.execSQL(
- "INSERT INTO " + GPX_TABLE_NAME + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
- new Object[] { fileName, fileDir, a.totalDistance, a.totalTracks, a.startTime, a.endTime,
- a.timeSpan, a.timeMoving, a.totalDistanceMoving, a.diffElevationUp, a.diffElevationDown,
- a.avgElevation, a.minElevation, a.maxElevation, a.maxSpeed, a.avgSpeed, a.points, a.wptPoints, color });
+ if (a != null) {
+ db.execSQL(
+ "INSERT INTO " + GPX_TABLE_NAME + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
+ new Object[]{ fileName, fileDir, a.totalDistance, a.totalTracks, a.startTime, a.endTime,
+ a.timeSpan, a.timeMoving, a.totalDistanceMoving, a.diffElevationUp, a.diffElevationDown,
+ a.avgElevation, a.minElevation, a.maxElevation, a.maxSpeed, a.avgSpeed, a.points, a.wptPoints,
+ color, item.file.lastModified() });
+ } else {
+ db.execSQL(
+ "INSERT INTO " + GPX_TABLE_NAME + "(" + GPX_COL_NAME + ", " + GPX_COL_DIR + ", " +
+ GPX_COL_COLOR + ", " + GPX_COL_FILE_LAST_MODIFIED_TIME + ") VALUES (?, ?, ?, ?)",
+ new Object[]{ fileName, fileDir, color, 0 });
+ }
+ }
+
+ public boolean updateAnalysis(GpxDataItem item, GPXTrackAnalysis a) {
+ SQLiteConnection db = openConnection(false);
+ if (db != null && a != null) {
+ try {
+ String fileName = getFileName(item.file);
+ String fileDir = getFileDir(item.file);
+ db.execSQL("UPDATE " + GPX_TABLE_NAME + " SET " +
+ GPX_COL_TOTAL_DISTANCE + " = ?, " +
+ GPX_COL_TOTAL_TRACKS + " = ?, " +
+ GPX_COL_START_TIME + " = ?, " +
+ GPX_COL_END_TIME + " = ?, " +
+ GPX_COL_TIME_SPAN + " = ?, " +
+ GPX_COL_TIME_MOVING + " = ?, " +
+ GPX_COL_TOTAL_DISTANCE_MOVING + " = ?, " +
+ GPX_COL_DIFF_ELEVATION_UP + " = ?, " +
+ GPX_COL_DIFF_ELEVATION_DOWN + " = ?, " +
+ GPX_COL_AVG_ELEVATION + " = ?, " +
+ GPX_COL_MIN_ELEVATION + " = ?, " +
+ GPX_COL_MAX_ELEVATION + " = ?, " +
+ GPX_COL_MAX_SPEED + " = ?, " +
+ GPX_COL_AVG_SPEED + " = ?, " +
+ GPX_COL_POINTS + " = ?, " +
+ GPX_COL_WPT_POINTS + " = ?, " +
+ GPX_COL_FILE_LAST_MODIFIED_TIME + " = ? " +
+ " WHERE " + GPX_COL_NAME + " = ? AND " + GPX_COL_DIR + " = ?",
+ new Object[]{ a.totalDistance, a.totalTracks, a.startTime, a.endTime,
+ a.timeSpan, a.timeMoving, a.totalDistanceMoving, a.diffElevationUp,
+ a.diffElevationDown, a.avgElevation, a.minElevation, a.maxElevation,
+ a.maxSpeed, a.avgSpeed, a.points, a.wptPoints, item.file.lastModified(),
+ fileName, fileDir });
+ } finally {
+ db.close();
+ }
+ return true;
+ }
+ return false;
}
private GpxDataItem readItem(SQLiteCursor query) {
@@ -252,6 +349,7 @@ public class GPXDatabase {
int points = (int)query.getInt(16);
int wptPoints = (int)query.getInt(17);
String color = query.getString(18);
+ long fileLastModifiedTime = query.getLong(19);
GPXTrackAnalysis a = new GPXTrackAnalysis();
a.totalDistance = totalDistance;
@@ -280,10 +378,11 @@ public class GPXDatabase {
}
GpxDataItem item = new GpxDataItem(new File(dir, fileName), a);
try {
- item.setColor(Algorithms.isEmpty(color) ? 0 : Algorithms.parseColor(color));
+ item.color = Algorithms.isEmpty(color) ? 0 : Algorithms.parseColor(color);
} catch (IllegalArgumentException e) {
- item.setColor(0);
+ item.color = 0;
}
+ item.fileLastModifiedTime = fileLastModifiedTime;
return item;
}
diff --git a/OsmAnd/src/net/osmand/plus/GPXUtilities.java b/OsmAnd/src/net/osmand/plus/GPXUtilities.java
index ec73ad3bdd..be8990d1a3 100644
--- a/OsmAnd/src/net/osmand/plus/GPXUtilities.java
+++ b/OsmAnd/src/net/osmand/plus/GPXUtilities.java
@@ -275,7 +275,7 @@ public class GPXUtilities {
public double minElevation = 99999;
public double maxElevation = -100;
- public float minSpeed = 0;
+ public float minSpeed = Float.MAX_VALUE;
public float maxSpeed = 0;
public float avgSpeed;
@@ -519,13 +519,9 @@ public class GPXUtilities {
hasElevationData = true;
}
+ minSpeed = Math.min(speed, minSpeed);
if (speed > 0) {
totalSpeedSum += speed;
- if (minSpeed == 0) {
- minSpeed = speed;
- } else {
- minSpeed = Math.min(speed, minSpeed);
- }
maxSpeed = Math.max(speed, maxSpeed);
speedCount++;
}
@@ -813,9 +809,11 @@ public class GPXUtilities {
for (int i = 0; i < tracks.size(); i++) {
Track subtrack = tracks.get(i);
for (TrkSegment segment : subtrack.segments) {
- g.totalTracks++;
- if (segment.points.size() > 1) {
- splitSegments.add(new SplitSegment(segment));
+ if (!segment.generalSegment) {
+ g.totalTracks++;
+ if (segment.points.size() > 1) {
+ splitSegments.add(new SplitSegment(segment));
+ }
}
}
}
diff --git a/OsmAnd/src/net/osmand/plus/OsmandApplication.java b/OsmAnd/src/net/osmand/plus/OsmandApplication.java
index aa1ed3efcf..3cab9d3105 100644
--- a/OsmAnd/src/net/osmand/plus/OsmandApplication.java
+++ b/OsmAnd/src/net/osmand/plus/OsmandApplication.java
@@ -14,7 +14,6 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
-import android.preference.PreferenceManager;
import android.support.multidex.MultiDex;
import android.support.multidex.MultiDexApplication;
import android.support.v7.app.AlertDialog;
diff --git a/OsmAnd/src/net/osmand/plus/activities/ActionBarPreferenceActivity.java b/OsmAnd/src/net/osmand/plus/activities/ActionBarPreferenceActivity.java
index 19ba8f76e1..93abbc07dd 100644
--- a/OsmAnd/src/net/osmand/plus/activities/ActionBarPreferenceActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/ActionBarPreferenceActivity.java
@@ -44,7 +44,7 @@ public abstract class ActionBarPreferenceActivity extends AppCompatPreferenceAct
shadowView = null;
}
tb.setClickable(true);
- tb.setNavigationIcon(((OsmandApplication) getApplication()).getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material));
+ tb.setNavigationIcon(((OsmandApplication) getApplication()).getIconsCache().getIcon(R.drawable.ic_arrow_back));
tb.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
tb.setBackgroundColor(getResources().getColor(getResIdFromAttribute(this, R.attr.pstsTabBackground)));
tb.setTitleTextColor(getResources().getColor(getResIdFromAttribute(this, R.attr.pstsTextColor)));
diff --git a/OsmAnd/src/net/osmand/plus/activities/FavoritesSearchFragment.java b/OsmAnd/src/net/osmand/plus/activities/FavoritesSearchFragment.java
index 5151d7a3d4..e4419afe3b 100644
--- a/OsmAnd/src/net/osmand/plus/activities/FavoritesSearchFragment.java
+++ b/OsmAnd/src/net/osmand/plus/activities/FavoritesSearchFragment.java
@@ -105,7 +105,7 @@ public class FavoritesSearchFragment extends DialogFragment {
}
toolbar = (Toolbar) view.findViewById(R.id.toolbar);
- toolbar.setNavigationIcon(app.getIconsCache().getThemedIcon(R.drawable.abc_ic_ab_back_material));
+ toolbar.setNavigationIcon(app.getIconsCache().getThemedIcon(R.drawable.ic_arrow_back));
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setNavigationOnClickListener(
new View.OnClickListener() {
diff --git a/OsmAnd/src/net/osmand/plus/activities/OsmandActionBarActivity.java b/OsmAnd/src/net/osmand/plus/activities/OsmandActionBarActivity.java
index e0d2a7d75f..19bc1c2597 100644
--- a/OsmAnd/src/net/osmand/plus/activities/OsmandActionBarActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/OsmandActionBarActivity.java
@@ -17,7 +17,7 @@ public class OsmandActionBarActivity extends AppCompatActivity {
//should be called after set content view
protected void setupHomeButton(){
- Drawable back = ((OsmandApplication)getApplication()).getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material);
+ Drawable back = ((OsmandApplication)getApplication()).getIconsCache().getIcon(R.drawable.ic_arrow_back);
back.setColorFilter(ContextCompat.getColor(this, R.color.color_white), PorterDuff.Mode.MULTIPLY);
final ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
diff --git a/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoDialogFragment.java b/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoDialogFragment.java
index 001447d25a..84c0bb80fd 100644
--- a/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoDialogFragment.java
+++ b/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoDialogFragment.java
@@ -108,7 +108,7 @@ public class ShowRouteInfoDialogFragment extends DialogFragment {
view = inflater.inflate(R.layout.route_info_layout, container, false);
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
- toolbar.setNavigationIcon(getMyApplication().getIconsCache().getThemedIcon(R.drawable.abc_ic_ab_back_material));
+ toolbar.setNavigationIcon(getMyApplication().getIconsCache().getThemedIcon(R.drawable.ic_arrow_back));
toolbar.setNavigationContentDescription(R.string.shared_string_close);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
diff --git a/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java b/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java
index 86cbbc353e..b0286a90e6 100644
--- a/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java
@@ -48,6 +48,10 @@ public class TrackActivity extends TabActivity {
private List originalGroups = new ArrayList<>();
private boolean stopped = false;
+ public PagerSlidingTabStrip getSlidingTabLayout() {
+ return slidingTabLayout;
+ }
+
@Override
public void onCreate(Bundle icicle) {
((OsmandApplication) getApplication()).applyTheme(this);
@@ -235,6 +239,9 @@ public class TrackActivity extends TabActivity {
}
}
getSupportFragmentManager().popBackStack();
+ if (isHavingWayPoints() || isHavingRoutePoints()) {
+ getSlidingTabLayout().setVisibility(View.VISIBLE);
+ }
return true;
}
}
@@ -265,6 +272,9 @@ public class TrackActivity extends TabActivity {
}
}
getSupportFragmentManager().popBackStack();
+ if (isHavingWayPoints() || isHavingRoutePoints()) {
+ getSlidingTabLayout().setVisibility(View.VISIBLE);
+ }
return;
}
}
diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteRecordingMenuFullScreenFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteRecordingMenuFullScreenFragment.java
index ddcbdd7591..8b824feb8f 100644
--- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteRecordingMenuFullScreenFragment.java
+++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteRecordingMenuFullScreenFragment.java
@@ -38,7 +38,7 @@ public class AudioVideoNoteRecordingMenuFullScreenFragment extends Fragment {
@Override
public void onDestroyView() {
super.onDestroyView();
- if (!dismissing) {
+ if (!dismissing && menu != null) {
menu.finishRecording();
}
}
diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java
index 8d421d359d..5c7003965b 100644
--- a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java
+++ b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java
@@ -487,7 +487,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, DynamicLis
lst.setVisibility(View.GONE);
ImageView back = (ImageView) dashboardView.findViewById(R.id.toolbar_back);
back.setImageDrawable(
- getMyApplication().getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material));
+ getMyApplication().getIconsCache().getIcon(R.drawable.ic_arrow_back));
back.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java
index eb3c7df454..6ae4e7b33c 100644
--- a/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java
+++ b/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java
@@ -101,7 +101,7 @@ public class DownloadResourceGroupFragment extends DialogFragment implements Dow
activity.getAccessibilityAssistant().registerPage(view, DownloadActivity.DOWNLOAD_TAB_NUMBER);
toolbar = (Toolbar) view.findViewById(R.id.toolbar);
- toolbar.setNavigationIcon(getMyApplication().getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material));
+ toolbar.setNavigationIcon(getMyApplication().getIconsCache().getIcon(R.drawable.ic_arrow_back));
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
diff --git a/OsmAnd/src/net/osmand/plus/download/ui/SearchDialogFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/SearchDialogFragment.java
index ca02e24d17..ba8eaa4f7d 100644
--- a/OsmAnd/src/net/osmand/plus/download/ui/SearchDialogFragment.java
+++ b/OsmAnd/src/net/osmand/plus/download/ui/SearchDialogFragment.java
@@ -97,7 +97,7 @@ public class SearchDialogFragment extends DialogFragment implements DownloadEven
searchText = "";
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
- toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_material);
+ toolbar.setNavigationIcon(R.drawable.ic_arrow_back);
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/OsmLiveActivity.java b/OsmAnd/src/net/osmand/plus/liveupdates/OsmLiveActivity.java
index d3915d43a6..7acf7f6cd9 100644
--- a/OsmAnd/src/net/osmand/plus/liveupdates/OsmLiveActivity.java
+++ b/OsmAnd/src/net/osmand/plus/liveupdates/OsmLiveActivity.java
@@ -79,6 +79,12 @@ public class OsmLiveActivity extends AbstractDownloadActivity implements Downloa
}
}
+ @Override
+ protected void onPause() {
+ super.onPause();
+ getMyApplication().getDownloadThread().resetUiActivity(this);
+ }
+
@Override
protected void onDestroy() {
super.onDestroy();
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java
index 0273f49e57..15f9925d72 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java
@@ -49,7 +49,7 @@ public abstract class PointEditorFragment extends Fragment {
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
toolbar.setTitle(getToolbarTitle());
- toolbar.setNavigationIcon(getMyApplication().getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material));
+ toolbar.setNavigationIcon(getMyApplication().getIconsCache().getIcon(R.drawable.ic_arrow_back));
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setTitleTextColor(getResources().getColor(getResIdFromAttribute(getMapActivity(), R.attr.pstsTextColor)));
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java
index af40b1b262..604ba1e53d 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java
@@ -168,7 +168,7 @@ public class TrackDetailsMenuFragment extends Fragment {
ImageButton backButton = (ImageButton) mainView.findViewById(R.id.top_bar_back_button);
if (backButton != null) {
- backButton.setImageDrawable(ctx.getMyApplication().getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material, R.color.color_white));
+ backButton.setImageDrawable(ctx.getMyApplication().getIconsCache().getIcon(R.drawable.ic_arrow_back, R.color.color_white));
}
}
diff --git a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java
index 5b682404cf..ad6d7bd6d3 100644
--- a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java
+++ b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java
@@ -27,6 +27,8 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
@@ -46,6 +48,7 @@ import net.osmand.data.PointDescription;
import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.ContextMenuAdapter.ItemClickListener;
import net.osmand.plus.ContextMenuItem;
+import net.osmand.plus.GPXDatabase;
import net.osmand.plus.GPXDatabase.GpxDataItem;
import net.osmand.plus.GPXUtilities;
import net.osmand.plus.GPXUtilities.GPXFile;
@@ -86,6 +89,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
@@ -327,6 +331,22 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
listView.setAdapter(this.adapter);
}
+ listView.setOnScrollListener(new AbsListView.OnScrollListener() {
+ @Override
+ public void onScrollStateChanged(AbsListView absListView, int i) {
+ View currentFocus = getActivity().getCurrentFocus();
+ if (currentFocus != null) {
+ InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
+ }
+ }
+
+ @Override
+ public void onScroll(AbsListView absListView, int i, int i1, int i2) {
+
+ }
+ });
+
return v;
}
@@ -1511,12 +1531,13 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
public class ProcessGpxTask extends AsyncTask {
- private List processedDataFiles = new ArrayList<>();
+ private Map processedDataFiles = new HashMap<>();
+ private GPXDatabase db = app.getGpxDatabase();
ProcessGpxTask() {
- List dataItems = app.getGpxDatabase().getItems();
+ List dataItems = db.getItems();
for (GpxDataItem item : dataItems) {
- processedDataFiles.add(item.getFile());
+ processedDataFiles.put(item.getFile(), item);
}
}
@@ -1545,17 +1566,23 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
String sub = gpxSubfolder.length() == 0 ?
gpxFile.getName() : gpxSubfolder + "/" + gpxFile.getName();
processGPXFolder(gpxFile, sub);
- } else if (gpxFile.isFile() && gpxFile.getName().toLowerCase().endsWith(".gpx") && !processedDataFiles.contains(gpxFile)) {
- GPXFile f = GPXUtilities.loadGPXFile(app, gpxFile);
- GPXTrackAnalysis analysis = f.getAnalysis(gpxFile.lastModified());
- GpxDataItem newItem = new GpxDataItem(gpxFile, analysis);
- app.getGpxDatabase().add(newItem);
-
- if (isCancelled()) {
- break;
+ } else if (gpxFile.isFile() && gpxFile.getName().toLowerCase().endsWith(".gpx")) {
+ GpxDataItem item = processedDataFiles.get(gpxFile);
+ if (item == null || item.getFileLastModifiedTime() != gpxFile.lastModified()) {
+ GPXFile f = GPXUtilities.loadGPXFile(app, gpxFile);
+ GPXTrackAnalysis analysis = f.getAnalysis(gpxFile.lastModified());
+ if (item == null) {
+ item = new GpxDataItem(gpxFile, analysis);
+ db.add(item);
+ } else {
+ db.updateAnalysis(item, analysis);
+ }
}
- processedDataFiles.add(gpxFile);
- publishProgress(newItem);
+ processedDataFiles.put(gpxFile, item);
+ publishProgress(item);
+ }
+ if (isCancelled()) {
+ break;
}
}
}
diff --git a/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java
index b0d52a599f..67314082a6 100644
--- a/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java
+++ b/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java
@@ -544,7 +544,7 @@ public class SplitSegmentFragment extends OsmAndListFragment {
String maxSpeed = OsmAndFormatter.getFormattedSpeed(analysis.maxSpeed, app);
String minSpeed = OsmAndFormatter.getFormattedSpeed(analysis.minSpeed, app);
- String max_min_speed = maxSpeed.substring(0, maxSpeed.indexOf(" ")).concat("/").concat(minSpeed.substring(0, minSpeed.indexOf(" ")));
+ String max_min_speed = maxSpeed.substring(0, maxSpeed.indexOf(" ")).concat("/").concat(minSpeed);
if (minSpeed.substring(0, minSpeed.indexOf(" ")).equals("0") || minSpeed.substring(0, minSpeed.indexOf(" ")).equals("0.0")) {
(convertView.findViewById(R.id.max_speed_value))
.setVisibility(View.VISIBLE);
diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java
index 0ddbe9373f..bf4587fc83 100644
--- a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java
+++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java
@@ -1477,6 +1477,7 @@ public class TrackSegmentFragment extends OsmAndListFragment {
.replace(R.id.track_activity_layout, new SplitSegmentFragment())
.addToBackStack(SplitSegmentFragment.TAG)
.commit();
+ getMyActivity().getSlidingTabLayout().setVisibility(View.GONE);
}
private class SplitTrackAsyncTask extends AsyncTask {
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java
index 086902381f..7855c932f5 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java
@@ -132,7 +132,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
toolbar.setTitle(isAddingPoi ? R.string.poi_create_title : R.string.poi_edit_title);
- toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_material);
+ toolbar.setNavigationIcon(R.drawable.ic_arrow_back);
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
diff --git a/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java b/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java
index 533fc29957..fdbc759692 100644
--- a/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java
+++ b/OsmAnd/src/net/osmand/plus/osmo/OsMoGroupsActivity.java
@@ -713,7 +713,7 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
ll.setOrientation(LinearLayout.VERTICAL);
Toolbar tb = new Toolbar(this);
tb.setClickable(true);
- Drawable back = ((OsmandApplication) getApplication()).getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material);
+ Drawable back = ((OsmandApplication) getApplication()).getIconsCache().getIcon(R.drawable.ic_arrow_back);
tb.setNavigationIcon(back);
tb.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
tb.setTitle(R.string.osmo_sign_in);
diff --git a/OsmAnd/src/net/osmand/plus/quickaction/CreateEditActionDialog.java b/OsmAnd/src/net/osmand/plus/quickaction/CreateEditActionDialog.java
index 184630056d..42124d947b 100644
--- a/OsmAnd/src/net/osmand/plus/quickaction/CreateEditActionDialog.java
+++ b/OsmAnd/src/net/osmand/plus/quickaction/CreateEditActionDialog.java
@@ -152,7 +152,7 @@ public class CreateEditActionDialog extends DialogFragment {
toolbar.setTitleTextColor(Color.WHITE);
toolbar.setNavigationIcon(getIconsCache().getIcon(
- R.drawable.abc_ic_ab_back_material,
+ R.drawable.ic_arrow_back,
R.color.color_white));
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
diff --git a/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java b/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java
index c501f26e53..c720d8eb35 100644
--- a/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java
+++ b/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java
@@ -108,7 +108,7 @@ public class QuickActionListFragment extends BaseOsmAndFragment implements Quick
private void setUpToolbar(View view) {
Toolbar toolbar = (Toolbar) view.findViewById(R.id.custom_toolbar);
- Drawable back = getMyApplication().getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material);
+ Drawable back = getMyApplication().getIconsCache().getIcon(R.drawable.ic_arrow_back);
back.setColorFilter(ContextCompat.getColor(getContext(), R.color.color_white), PorterDuff.Mode.MULTIPLY);
toolbar.setNavigationIcon(back);
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchCoordinatesFragment.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchCoordinatesFragment.java
index 9bfde47f35..ef2014d901 100644
--- a/OsmAnd/src/net/osmand/plus/search/QuickSearchCoordinatesFragment.java
+++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchCoordinatesFragment.java
@@ -107,7 +107,7 @@ public class QuickSearchCoordinatesFragment extends DialogFragment implements Os
view = inflater.inflate(R.layout.search_advanced_coords, container, false);
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
- toolbar.setNavigationIcon(app.getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material));
+ toolbar.setNavigationIcon(app.getIconsCache().getIcon(R.drawable.ic_arrow_back));
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java
index 9dd275470e..36666db1ae 100644
--- a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java
+++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java
@@ -409,7 +409,7 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
);
toolbar = (Toolbar) view.findViewById(R.id.toolbar);
- toolbar.setNavigationIcon(app.getIconsCache().getThemedIcon(R.drawable.abc_ic_ab_back_material));
+ toolbar.setNavigationIcon(app.getIconsCache().getThemedIcon(R.drawable.ic_arrow_back));
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setNavigationOnClickListener(
new OnClickListener() {
diff --git a/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java b/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java
index d7db3f3771..45939ba22f 100644
--- a/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java
+++ b/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java
@@ -52,10 +52,11 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe
private boolean wasCollapseButtonVisible;
private int previousMapPosition;
-
private boolean inChangeMarkerPositionMode;
private boolean isLayerOn;
+ private boolean nightMode;
+
public MapQuickActionLayer(MapActivity activity, ContextMenuLayer contextMenuLayer) {
this.mapActivity = activity;
this.contextMenuLayer = contextMenuLayer;
@@ -73,13 +74,14 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe
quickActionButton = (ImageButton) mapActivity.findViewById(R.id.map_quick_actions_button);
setQuickActionButtonMargin();
isLayerOn = quickActionRegistry.isQuickActionOn();
- quickActionButton.setImageResource(R.drawable.map_quick_action);
+ nightMode = app.getDaynightHelper().isNightModeForMapControls();
+ updateQuickActionButton(false);
quickActionButton.setContentDescription(mapActivity.getString(R.string.configure_screen_quick_action));
quickActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!showTutorialIfNeeded())
- setLayerState(quickActionsWidget.getVisibility() == View.VISIBLE);
+ setLayerState(!isWidgetVisible());
}
});
@@ -109,9 +111,9 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe
}
public void refreshLayer() {
- setLayerState(true);
+ setLayerState(false);
isLayerOn = quickActionRegistry.isQuickActionOn();
- setUpQuickActionBtnVisibility();
+ setupQuickActionBtnVisibility();
}
private boolean showTutorialIfNeeded() {
@@ -172,19 +174,22 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe
return result;
}
+ private boolean isWidgetVisible() {
+ return quickActionsWidget.getVisibility() == View.VISIBLE;
+ }
+
/**
- * @param isClosed
+ * @param showWidget
* @return true, if state was changed
*/
- public boolean setLayerState(boolean isClosed) {
- if ((quickActionsWidget.getVisibility() == View.VISIBLE) != isClosed) // check if state change is needed
+ public boolean setLayerState(boolean showWidget) {
+ if (isWidgetVisible() == showWidget) // check if state change is needed
return false;
- quickActionButton.setImageResource(isClosed ? R.drawable.map_quick_action : R.drawable.map_action_cancel);
- quickActionButton.setContentDescription(mapActivity.getString(isClosed ? R.string.configure_screen_quick_action : R.string.shared_string_cancel));
- quickActionsWidget.setVisibility(isClosed ? View.GONE : View.VISIBLE);
+ updateQuickActionButton(showWidget);
+ quickActionsWidget.setVisibility(!showWidget ? View.GONE : View.VISIBLE);
- if (isClosed) {
+ if (!showWidget) {
quitMovingMarker();
quickActionRegistry.setUpdatesListener(null);
quickActionsWidget.setSelectionListener(null);
@@ -198,6 +203,14 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe
return true;
}
+ private void updateQuickActionButton(boolean widgetVisible) {
+ quickActionButton.setImageDrawable(app.getIconsCache().getIcon(
+ !widgetVisible ? R.drawable.map_quick_action : R.drawable.map_action_cancel, !nightMode));
+ quickActionButton.setBackgroundResource(
+ nightMode ? R.drawable.btn_circle_night : R.drawable.btn_circle_trans);
+ quickActionButton.setContentDescription(mapActivity.getString(!widgetVisible ? R.string.configure_screen_quick_action : R.string.shared_string_cancel));
+ }
+
private void enterMovingMode(RotatedTileBox tileBox) {
previousMapPosition = view.getMapPosition();
view.setMapPosition(OsmandSettings.MIDDLE_CONSTANT);
@@ -276,7 +289,7 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe
@Override
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
if (isInChangeMarkerPositionMode() && !pressedQuickActionWidget(point.x, point.y)) {
- setLayerState(true);
+ setLayerState(false);
return true;
} else
return false;
@@ -288,14 +301,19 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe
@Override
public void onDraw(Canvas canvas, RotatedTileBox box, DrawSettings settings) {
+ boolean nightMode = settings != null && settings.isNightMode();
if (isInChangeMarkerPositionMode()) {
canvas.translate(box.getCenterPixelX() - contextMarker.getWidth() / 2, box.getCenterPixelY() - contextMarker.getHeight());
contextMarker.draw(canvas);
}
- setUpQuickActionBtnVisibility();
+ if (this.nightMode != nightMode) {
+ this.nightMode = nightMode;
+ updateQuickActionButton(isWidgetVisible());
+ }
+ setupQuickActionBtnVisibility();
}
- private void setUpQuickActionBtnVisibility() {
+ private void setupQuickActionBtnVisibility() {
boolean hideQuickButton = !isLayerOn ||
contextMenuLayer.isInChangeMarkerPositionMode() ||
contextMenuLayer.isInGpxDetailsMode() ||
@@ -325,7 +343,7 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe
@Override
public void onActionSelected(QuickAction action) {
QuickActionFactory.produceAction(action).execute(mapActivity);
- setLayerState(true);
+ setLayerState(false);
}
public PointF getMovableCenterPoint(RotatedTileBox tb) {
@@ -341,7 +359,7 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe
}
public boolean onBackPressed() {
- return setLayerState(true);
+ return setLayerState(false);
}
View.OnTouchListener onQuickActionTouchListener = new View.OnTouchListener() {
diff --git a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java
index 0dd2279973..81fdabad74 100644
--- a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java
+++ b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java
@@ -327,7 +327,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
final Toolbar topBar = new Toolbar(ctx);
topBar.setClickable(true);
- Drawable back = app.getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material);
+ Drawable back = app.getIconsCache().getIcon(R.drawable.ic_arrow_back);
topBar.setNavigationIcon(back);
topBar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
topBar.setTitle(title);
@@ -435,7 +435,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
final Toolbar topBar = new Toolbar(ctx);
topBar.setClickable(true);
- Drawable back = app.getIconsCache().getIcon(R.drawable.abc_ic_ab_back_material);
+ Drawable back = app.getIconsCache().getIcon(R.drawable.ic_arrow_back);
topBar.setNavigationIcon(back);
topBar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
topBar.setTitle(title);
diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java
index 000b30be7e..5c9ba0810a 100644
--- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java
+++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java
@@ -275,8 +275,8 @@ public class MapInfoWidgetsFactory {
int bgLightLandId = R.drawable.btn_round;
int bgDarkLandId = R.drawable.btn_round_night;
- int backBtnIconLightId = R.drawable.abc_ic_ab_back_material;
- int backBtnIconDarkId = R.drawable.abc_ic_ab_back_material;
+ int backBtnIconLightId = R.drawable.ic_arrow_back;
+ int backBtnIconDarkId = R.drawable.ic_arrow_back;
int backBtnIconClrLightId = R.color.icon_color;
int backBtnIconClrDarkId = 0;
diff --git a/OsmAndCore-sample/build.gradle b/OsmAndCore-sample/build.gradle
index 6bfbe775b0..95b9cd9c66 100644
--- a/OsmAndCore-sample/build.gradle
+++ b/OsmAndCore-sample/build.gradle
@@ -1,8 +1,8 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 23
- buildToolsVersion "23.0.3"
+ compileSdkVersion 26
+ buildToolsVersion "26.0.0"
dexOptions {
jumboMode true
diff --git a/README.md b/README.md
index 5e1434ecf4..4553b941a5 100644
--- a/README.md
+++ b/README.md
@@ -4,10 +4,14 @@ This project aims at providing comfortable map viewing and navigation (routing)
To get started, continue with the basic description below, then find more detail on our Welcome Wiki Pages, the Project Homepage, or the OpenStreetMap OsmAnd Wiki Page.
You are welcome to discuss any question regarding the project at the Google group OsmAnd. Please do not use comments on wiki pages because it is rather difficult to find them.
-
-
+
+
+
+
+
+
Functionality
-------------
diff --git a/build.gradle b/build.gradle
index 73a0b2433f..5cad9d08ae 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,9 +1,13 @@
buildscript {
repositories {
+ maven {
+ // Google Maven Repository
+ url 'https://maven.google.com'
+ }
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.1.3'
+ classpath 'com.android.tools.build:gradle:2.+'
classpath 'com.google.gms:google-services:3.0.0'
}
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index fc0a0f1d16..b12618a3f9 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-bin.zip