diff --git a/OsmAnd/res/drawable-hdpi/bt_round_long_day.9.png b/OsmAnd/res/drawable-hdpi/bt_round_long_day.9.png
new file mode 100644
index 0000000000..05f542c298
Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/bt_round_long_day.9.png differ
diff --git a/OsmAnd/res/drawable-hdpi/bt_round_long_night.9.png b/OsmAnd/res/drawable-hdpi/bt_round_long_night.9.png
new file mode 100644
index 0000000000..79f1bb3874
Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/bt_round_long_night.9.png differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_sdcard_16.png b/OsmAnd/res/drawable-hdpi/ic_sdcard_16.png
new file mode 100644
index 0000000000..45194b7973
Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/ic_sdcard_16.png differ
diff --git a/OsmAnd/res/drawable-mdpi/bt_round_long_day.9.png b/OsmAnd/res/drawable-mdpi/bt_round_long_day.9.png
new file mode 100644
index 0000000000..edab49a486
Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/bt_round_long_day.9.png differ
diff --git a/OsmAnd/res/drawable-mdpi/bt_round_long_night.9.png b/OsmAnd/res/drawable-mdpi/bt_round_long_night.9.png
new file mode 100644
index 0000000000..857a0499f6
Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/bt_round_long_night.9.png differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_sdcard_16.png b/OsmAnd/res/drawable-mdpi/ic_sdcard_16.png
new file mode 100644
index 0000000000..3962ada988
Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/ic_sdcard_16.png differ
diff --git a/OsmAnd/res/drawable-xhdpi/bt_round_long_day.9.png b/OsmAnd/res/drawable-xhdpi/bt_round_long_day.9.png
new file mode 100644
index 0000000000..ba2a39bd5d
Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/bt_round_long_day.9.png differ
diff --git a/OsmAnd/res/drawable-xhdpi/bt_round_long_night.9.png b/OsmAnd/res/drawable-xhdpi/bt_round_long_night.9.png
new file mode 100644
index 0000000000..8b3336777a
Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/bt_round_long_night.9.png differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_sdcard_16.png b/OsmAnd/res/drawable-xhdpi/ic_sdcard_16.png
new file mode 100644
index 0000000000..c94318f851
Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/ic_sdcard_16.png differ
diff --git a/OsmAnd/res/drawable-xxhdpi/bt_round_long_day.9.png b/OsmAnd/res/drawable-xxhdpi/bt_round_long_day.9.png
new file mode 100644
index 0000000000..e22158c48c
Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/bt_round_long_day.9.png differ
diff --git a/OsmAnd/res/drawable-xxhdpi/bt_round_long_night.9.png b/OsmAnd/res/drawable-xxhdpi/bt_round_long_night.9.png
new file mode 100644
index 0000000000..fa0b086d00
Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/bt_round_long_night.9.png differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_sdcard_16.png b/OsmAnd/res/drawable-xxhdpi/ic_sdcard_16.png
new file mode 100644
index 0000000000..3314db26c1
Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/ic_sdcard_16.png differ
diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml
index 920fef76b9..97e630ce27 100644
--- a/OsmAnd/res/values-ar/strings.xml
+++ b/OsmAnd/res/values-ar/strings.xml
@@ -2848,7 +2848,7 @@
حُذف
تم تعديله
تمت إضافة
- تغيير طلب البحث.
+ تغيير البحث.
%s علامة مفعلة.
اضغط علامة على الخريطة لتحريكها الى أعلى العلامات المفعلة دون فتح قائمة السياق.
تدوين ملاحظات!
diff --git a/OsmAnd/res/values-be-rBY/strings.xml b/OsmAnd/res/values-be-rBY/strings.xml
index 90fd35c999..057c737ae9 100644
--- a/OsmAnd/res/values-be-rBY/strings.xml
+++ b/OsmAnd/res/values-be-rBY/strings.xml
@@ -961,7 +961,7 @@ Miesca parkoŭkі і čas vіdać na paneli kіravańnia OsmAnd і na vіdžecie
Uklučyć
Vyklučyć
Pavodle hlabalnych naładaŭ systemy
- Nazad da meniu
+ Nazad da mieniu
Addalić
Nablizіć
Maštab
@@ -2888,7 +2888,7 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd
Impartavać jak GPX-fajł
Impartavać jak Ulubionyja
Impartavać fajł
- Dotyk na mapie chavaje knopki kiravańnia i vidžety.
+ Dotyk na mapie pierakliučaje knopki kiravańnia i vidžety.
Poŭnyekranny režym
Pakazać na vierchniaj paneli
Adznačyć prajdzienyja
@@ -2943,4 +2943,24 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd
\n • Čas chadźby ŭ zaliežnasci ad miascovasci (padjomu) (pravila Niejsmita)
\n
\n
-
+ Što tut:
+ praparkavany na
+ Uziać da
+ Biez abmiežavannia času
+ Čytać uvieś artykul
+ Čytać artykul
+ Usie kropki hrupy
+ Adčyniena ad
+ Adčyniena da
+ Budzie začyniena a
+ Budzie adčyniena a
+ Budzie adčyniena
+ Dadatkovyja dziejanni
+ GPX-fajl z kaardynatami i danymi vybranych natatak.
+ GPX-fajl z kaardynatami i danymi ŭsich natatak.
+ Dziejanni
+ Markier
+ Zmien %1$s, suma %2$s mBTC
+ OSM-atrymaĺniki
+ Usiaho achviaravanniaŭ
+
diff --git a/OsmAnd/res/values-be/phrases.xml b/OsmAnd/res/values-be/phrases.xml
index 032e1992c7..46dd6526c9 100644
--- a/OsmAnd/res/values-be/phrases.xml
+++ b/OsmAnd/res/values-be/phrases.xml
@@ -3698,4 +3698,6 @@
Плацёжны цэнтр
Грашовы перавод
-
+Метро
+
+
diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml
index 96b3dd8b7e..f0c5ded4a6 100644
--- a/OsmAnd/res/values-be/strings.xml
+++ b/OsmAnd/res/values-be/strings.xml
@@ -488,7 +488,7 @@
Рэжым даступнасьці
Уключыць уласцівасьці даступнасці.
Паводле глябальных наладаў сыстэмы
- Назад да мэню
+ Назад да меню
Аддаліць
Наблізіць
Маштаб
@@ -2937,7 +2937,7 @@
Імпартаваць як GPX-файл
Імпартаваць як Улюбёныя
Імпартаваць файл
- Дотык на мапе хавае кнопкі кіраваньня і віджэты.
+ Дотык на мапе пераключае кнопкі кіраваньня і віджэты.
Поўныэкранны рэжым
Паказаць на верхняй панэлі
Адзначыць прайдзеныя
@@ -2992,4 +2992,24 @@
\n • Час хадзьбы ў залежнасці ад мясцовасці (пад\'ёму) (правіла Нейсміта)
\n
\n
-
+ Што тут:
+ прапаркаваны на
+ Узяць да
+ Без абмежавання часу
+ Чытаць увесь артыкул
+ Чытаць артыкул
+ Усе кропкі групы
+ Адчынена ад
+ Адчынена да
+ Будзе зачынена а
+ Будзе адчынена а
+ Будзе адчынена
+ Дадатковыя дзеянні
+ GPX-файл з каардынатамі і данымі выбраных нататак.
+ GPX-файл з каардынатамі і данымі ўсіх нататак.
+ Дзеянні
+ Маркер
+ Змен %1$s, сума %2$s mBTC
+ OSM-атрымальнікі
+ Усяго ахвяраванняў
+
diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml
index 277ea395d8..6528ee62aa 100644
--- a/OsmAnd/res/values-ca/strings.xml
+++ b/OsmAnd/res/values-ca/strings.xml
@@ -2690,7 +2690,7 @@ Abasta l\'àrea: %1$s x %2$s
Importa com un arxiu GPX
Importa com punts Preferits
Importa fitxer
- Prement en el mapa s\'oculten els botons de control i els ginys.
+ Prement el mapa canvien els botons de control i els ginys.
Mode de pantalla completa
Mostra a la barra superior
Marca com passat
@@ -2745,4 +2745,24 @@ Abasta l\'àrea: %1$s x %2$s
\n
\n
S\'activa amb un toc
-
+ El que hi ha aquí:
+ aparcat a
+ Treure abans de
+ Sense límit de temps
+ Llegiu l\'article complet
+ Llegiu l\'article
+ Tots els punts del grup
+ Obert des de
+ Obert fins a
+ Es tancarà a
+ S\'obrirà a
+ S\'obrirà el
+ Accions addicionals
+ Arxiu GPX amb coordenades i dades de les notes seleccionades.
+ Fitxer GPX amb coordenades i dades de totes les notes.
+ Accions
+ Marcador
+ %1$s edicions, %2$s mBTC en total
+ Receptors OSM
+ Total de donacions
+
diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml
index 39c5af4a4e..8e3f763c1b 100644
--- a/OsmAnd/res/values-da/phrases.xml
+++ b/OsmAnd/res/values-da/phrases.xml
@@ -3743,4 +3743,6 @@
Betalingscenter
Pengeoverførsel
-
+Metro
+
+
diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml
index 717bd6e8e7..445f8dec9e 100644
--- a/OsmAnd/res/values-da/strings.xml
+++ b/OsmAnd/res/values-da/strings.xml
@@ -2994,4 +2994,24 @@ Repræsenterer område: %1$s x %2$s
\n• Vandretid tager hensyn til terræn (stigning) (Naismiths regel)
\n
\n
+ GPX fil med koordinaterne og data for de valgte noter.
+ GPX-fil med koordinater og data for alle noter.
+ Redigeringer %1$s, sum %2$s mBTC
+ OSM modtagere
+ Samlede donationer
+Hvad er der her:
+ parkeret på
+ Hent til
+ Uden tidsbegrænsning
+ Læs hele artiklen
+ Læs artikel
+ Alle punkter i gruppen
+ Åben fra
+ Åben til
+ Vil være lukket på
+ Vil blive åbnet på
+ Der åbnes på
+ Yderligere handlinger
+ Handlinger
+ Markør
diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml
index b95284eae0..3d1fa42a87 100644
--- a/OsmAnd/res/values-de/strings.xml
+++ b/OsmAnd/res/values-de/strings.xml
@@ -471,8 +471,8 @@
Min. Vektor-Zoomstufe
Online OSM Klassifizierung mit Bildern.
- Fehler in der Offline-Suche aufgetreten
- Konnte geointent nicht verarbeiten: \'%s\'
+ Fehler in der Offline-Suche aufgetreten.
+ Konnte geo intent nicht verarbeiten: \'%s\'.
Adresssuche mit Offline-Daten
Systemeinstellung
Anzeigesprache wählen (App nach Änderungen neu starten).
@@ -1276,7 +1276,7 @@ Proportionaler Speicher %4$s MB (Android Limit %5$s MB, Dalvik %6$s MB).Möchten Sie die angezeigte Strecke zur Navigation verwenden?
Als letztes Ziel hinzufügen
GPX-Datei auswählen…
- Ziel auswählen.
+ Ziel auswählen
Sprachansagen pausieren (nicht nur dämpfen) Musikwiedergabe.
Standort immer in Bildschirmmitte anzeigen
Stimme
@@ -1300,7 +1300,7 @@ Proportionaler Speicher %4$s MB (Android Limit %5$s MB, Dalvik %6$s MB).Meine Favoriten
Meine Orte
%1$s wird geladen …
- Uhrzeit
+ Aktuelle Zeit
"
\n
\nZur Darstellung auf der Karte lange drücken"
@@ -2655,7 +2655,7 @@ Abgedeckte Fläche: %1$s x %2$s
Ziel hinzufügen
Ziel ersetzen
Ersten Zwischenstopp hinzufügen
- Drücken der Aktionstaste fügt die zum Bildschirmmittelpunkt gehörende Position als Ziel hinzu. Ursprüngliches Ziel wird zum letzten Zwischenstopp.
+ Drücken der Aktionstaste fügt die zum Bildschirmmittelpunkt gehörende Position als Ziel hinzu. Das zuvor eingestellte Ziel wird zum letzten Zwischenziel.
Drücken der Aktionstaste ersetzt das Ziel durch die dem Bildschirmmittelpunkt entsprechende Position.
Drücken der Aktionstaste fügt die zum Bildschirmmittelpunkt gehörende Position als ersten Zwischenstopp ein.
Fehler
@@ -2896,7 +2896,7 @@ Abgedeckte Fläche: %1$s x %2$s
Suche nach Spuren mit Wegpunkten
Mehr
Darstellung auf der Karte
- Favoriten Kategorie
+ Favoritenkategorie
Gruppe hinzufügen
Kartenmarkierungen erstellen!
Gruppen importieren
@@ -2909,7 +2909,7 @@ Abgedeckte Fläche: %1$s x %2$s
Zum nächsten Feld gehen
Markierung umbenennen
Markierung passiert
- Track-Wegpunkte
+ Spuren-Wegpunkte
Suchanfrage verändern.
Erstellen oder ändern von OSM-Objekten
OSM-POI erstellen oder verändern, OSM-Notizen eröffnen oder bearbeiten, und aufgezeichnete GPX-Dateien hinzufügen.
@@ -2924,7 +2924,7 @@ Abgedeckte Fläche: %1$s x %2$s
kann als Favoriten-Punkte oder als Track-Datei importiert werden.
Audio-, Video- oder Fotonotizen zu jedem Punkt auf der Karte über Widget oder Kontextmenü hinzufügen.
Notizen nach Datum
- Berührung der Karte verbirgt Steuerungselementen und Widgets.
+ Ein Tippen auf die Karte schaltet die Steuerschaltflächen und Bedienelemente um.
• Erkennung von Stoppschildern jetzt nach Fahrtrichtung
\n
\n• Neuer Algorithmus für die Bereitstellung von sinnvollen Auf-/Abstieg-Werten für GPX-tracks
@@ -2933,4 +2933,33 @@ Abgedeckte Fläche: %1$s x %2$s
\n
\n
Aktiviren mit einem Tap
-
+ Was ist hier:
+ Ohne Zeitbegrenzung
+ Ganzen Artikel lesen
+ Artikel lesen
+ Alle Punkte der Gruppe
+ Geöffnet ab
+ Geöffnet bis
+ Schließt um
+ Öffnet um
+ Öffnet am
+ Zusätzliche Aktionen
+ geparkt um
+ Abholung bis
+ GPX-Datei mit Koordinaten und Daten der ausgewählten Notizen.
+ GPX-Datei mit Koordinaten und Daten aller Notizen.
+ Aktionen
+ Markierung
+ Wählen Sie eine Spur aus, um ihre Wegpunkte zu den Markierungen hinzuzufügen. (Nur Spuren mit Wegpunkten werden aufgelistet.)
+ Wählen Sie eine Favoritenkategorie aus, die Sie den Markierungen hinzufügen möchten.
+ Sie können Gruppen aus Favoriten oder Spuren-Wegpunkten importieren.
+ Tippen Sie Orte lang oder kurz an, tippen Sie anschließend auf die Markierungsfahnenschaltfläche.
+ Sie können Favoritengruppen oder Spuren-Wegpunkte als Markierungen importieren.
+ Hilfslinien von Ihrem Standort bis zu den aktiven Markierungspunkten anzeigen.
+ Ein oder zwei Pfeile anzeigen, die die Richtung zu den aktiven Markierungen angeben.
+ Wählen Sie aus, wie der Abstand zu aktiven Markierungen angezeigt werden soll.
+ Wählen Sie aus, wie viele Richtungsanzeiger angezeigt werden sollen.
+ %1$s bearbeitet, Summe %2$s mBTC
+ OSM-Empfänger
+ Spenden insgesamt
+
diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml
index 999d609788..abecd09ce7 100644
--- a/OsmAnd/res/values-es-rAR/phrases.xml
+++ b/OsmAnd/res/values-es-rAR/phrases.xml
@@ -3709,4 +3709,6 @@
Centro de pagos
Transferencia de dinero
-
+Subte
+
+
diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml
index c475ffb52f..e34c5e327d 100644
--- a/OsmAnd/res/values-es-rAR/strings.xml
+++ b/OsmAnd/res/values-es-rAR/strings.xml
@@ -968,7 +968,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
Ubicación compartida
Buscar el auto del estacionamiento
Advertencia
- Una notificación para recoger tu automóvil se añadió al Calendario. Permanecerá allí hasta que la borres manualmente.
+ Una notificación para recoger el automóvil se añadió al Calendario. Permanecerá allí hasta que la borres manualmente.
Definir el tiempo límite del estacionamiento
¿Quieres borrar el marcador del estacionamiento?
Quitar marcador de estacionamiento
@@ -1049,7 +1049,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
Modo accesibilidad
Activa las funciones de accesibilidad.
Usar ajuste global del sistema
- Volver al Menú
+ Volver al menú
Alejar
Acercar
El nivel de ampliación es
@@ -2812,10 +2812,10 @@ Proporciona un código completo
Importar como archivo GPX
Importar como favoritos
Importar archivo
- Una pulsación en el mapa oculta los botones de la interfaz y los controles.
+ Una pulsación en el mapa alterna los botones de la interfaz y los controles.
Modo de pantalla completa
Mostrar en la barra superior
- Descartar marcador
+ Descartar
Renombrar marcador
Número de dígitos decimales
Derecha
@@ -2867,4 +2867,24 @@ Proporciona un código completo
\n • El tiempo de caminata es consciente del terreno ascendente (regla de Naismith).
\n
\n
+ Archivo GPX con coordenadas y datos de las notas elegidas.
+ Archivo GPX con coordenadas y datos de todas las notas.
+ Ediciones %1$s, sum %2$s mBTC
+ Destinatarios de OSM
+ Total de donaciones
+Aquí hay:
+ estacionado a las
+ Recoger hasta las
+ Sin límite de tiempo
+ Leer artículo completo
+ Leer artículo
+ Todos los puntos del grupo
+ Abierto de
+ Abierto hasta las
+ Cerrará a las
+ Abrirá a las
+ Abrirá sobre las
+ Acciones adicionales
+ Acciones
+ Marcador
diff --git a/OsmAnd/res/values-es-rUS/phrases.xml b/OsmAnd/res/values-es-rUS/phrases.xml
index 9298438932..3c8d5bf8e0 100644
--- a/OsmAnd/res/values-es-rUS/phrases.xml
+++ b/OsmAnd/res/values-es-rUS/phrases.xml
@@ -3471,4 +3471,6 @@
Centro de pagos
Transferencia de dinero
-
+Metro
+
+
diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml
index 4587a1bc2b..b5215e61c8 100644
--- a/OsmAnd/res/values-es-rUS/strings.xml
+++ b/OsmAnd/res/values-es-rUS/strings.xml
@@ -981,7 +981,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
Ubicación compartida
Buscar el auto del estacionamiento
Advertencia
- Una notificación para recoger tu automóvil se añadió al Calendario. Permanecerá allí hasta que la borres manualmente.
+ Una notificación para recoger el automóvil se añadió al Calendario. Permanecerá allí hasta que la borres manualmente.
Definir el tiempo límite del estacionamiento
¿Quieres borrar el marcador del estacionamiento?
Quitar marcador de estacionamiento
@@ -1062,7 +1062,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
Modo accesibilidad
Activa las funciones de accesibilidad.
Usar ajuste global del sistema
- Volver al Menú
+ Volver al menú
Alejar
Acercar
El nivel de ampliación es
@@ -2826,10 +2826,10 @@ Proporciona un código completo
Importar como archivo GPX
Importar como favoritos
Importar archivo
- Una pulsación en el mapa oculta los botones de la interfaz y los controles.
+ Una pulsación en el mapa alterna los botones de la interfaz y los controles.
Modo de pantalla completa
Mostrar en la barra superior
- Descartar marcador
+ Descartar
Número de dígitos decimales
Derecha
Izquierda
@@ -2881,4 +2881,24 @@ Proporciona un código completo
\n • El tiempo de caminata es consciente del terreno ascendente (regla de Naismith).
\n
\n
-
+ Aquí hay:
+ estacionado a las
+ Recoger hasta las
+ Tiempo ilimitado
+ Leer artículo completo
+ Leer artículo
+ Todos los puntos del grupo
+ Abierto de
+ Abierto hasta las
+ Cerrará a las
+ Abrirá a las
+ Abrirá sobre las
+ Acciones adicionales
+ Archivo GPX con coordenadas y datos de las notas elegidas.
+ Archivo GPX con coordenadas y datos de todas las notas.
+ Acciones
+ Marcador
+ %1$s ediciones, suman %2$s mBTC
+ Destinatarios de OSM
+ Total de donaciones
+
diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml
index d5578a2e3d..74d507d24a 100644
--- a/OsmAnd/res/values-es/phrases.xml
+++ b/OsmAnd/res/values-es/phrases.xml
@@ -3685,10 +3685,19 @@
Tamaño del mapa: Ciudad
Tamaño del mapa: Región
-Barranco estrecho
+Couloir (barranco estrecho y empinado)
Estación de carga
Depósito
Buzón
-
+ Metro
+
+ Calle
+ Número de portal
+ Piso de oficina
+
+ Centro de pago
+ Transferencia de dinero
+
+
diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml
index 35e1911a51..6d731403bb 100644
--- a/OsmAnd/res/values-es/strings.xml
+++ b/OsmAnd/res/values-es/strings.xml
@@ -659,7 +659,7 @@ El espacio de almacenamiento usado es {1} MB.
Activado
Desactivado
De acuerdo con el ajuste global del sistema
- Volver al Menú
+ Volver al menú
Alejar
Acercar
El nivel de zoom es
@@ -2746,7 +2746,7 @@ Por favor proporciona un código completo
Atrás
Ver
Puntos de ruta añadidos a marcadores de mapa
- Una pulsación en el mapa alterna la vista de la interfaz y los controles.
+ Una pulsación en el mapa alterna los botones y los controles.
Modo de pantalla completa
Mostrar en la barra superior
Descartar marcador
@@ -2805,4 +2805,24 @@ Por favor proporciona un código completo
Notas por fecha
Por fecha
Por tipo
-
+ Lo que hay aquí:
+ Aparcado en
+ Recoger hasta las
+ Tiempo ilimitado
+ Leer el artículo completo
+ Leer artículo
+ Todos los puntos del grupo
+ Abierto desde
+ Abierto hasta
+ Se cerrará en
+ Se abrirá en
+ Se abrirá en
+ Acciones adicionales
+ Archivo GPX con coordenadas y datos de las notas seleccionadas.
+ Archivo GPX con las coordenadas y los datos de todas las notas.
+ Acciones
+ Marcador
+ Ediciones %1$s, suma %2$s mBTC
+ Destinatarios de OSM
+ Total de donaciones
+
diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml
index a64f1e2d11..80228baec7 100644
--- a/OsmAnd/res/values-fa/strings.xml
+++ b/OsmAnd/res/values-fa/strings.xml
@@ -2986,4 +2986,24 @@
\n • در نظر گرفتن ناهمواری (صعود) برای محاسبهٔ زمان پیادهگردی (قاعدهٔ نایاسمیت)
\n
\n
-
+ اینجا کجاست:
+ ساعت پارککردن
+ برداشتن تا
+ بدون محدودیت زمانی
+ مقالهٔ کامل را بخوانید
+ خواندن مقاله
+ همهٔ نقاط این گروه
+ ساعت بازشدن
+ ساعت کاری تا
+ ساعت تعطیلکردن
+ ساعت بازکردن
+ روز بازکردن
+ عملیات بیشتر
+ فایل GPX با مختصات و دادههای یادداشتهای انتخابشده
+ فایل GPX با مختصات و دادههای همهٔ یادداشتها
+ عملیاتها
+ نشانه
+ ویرایشها
+ گیرندگان OSM
+ کل پرداختها
+
diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml
index a517261396..2bf27e1e4c 100644
--- a/OsmAnd/res/values-fr/phrases.xml
+++ b/OsmAnd/res/values-fr/phrases.xml
@@ -2153,7 +2153,7 @@
Automatisé
Type
Type de carburant
- Type
+ Type de carburant (avions)
Type de paiement
Son
Bande podotactile
@@ -3013,7 +3013,7 @@
Mammifères
Poissons
- Balise de voie
+ Balise de chemin
Autorisé uniquement à pied
Arrière-pays
@@ -3036,7 +3036,7 @@
Sans balai
Location bateaux
-Accès toilettes : communauté
+Accès aux toilettes : propriété collective
Péage par automate
Décoration de façade
@@ -3122,4 +3122,62 @@
Réservation : non
Réservation : membres uniquement
+ État opérationnel
+ Mode de distribution de l\'eau
+ Ampérage
+ Boite aux lettres
+ Rue
+ Plat
+
+ Centre de paiement
+ Bureau médical
+ Stationnement payant : oui
+ Stationnement payant : non
+ Oiseaux
+ Location
+ Location : non
+ Réparation
+ Réparation : non
+ Pièces détachées
+ Pièces détachées : non
+ Pneus
+ Pneus : non
+ Propriétaire
+
+ Direction : sens horaire
+ Direction : sens anti-horaire
+ Direction : entrée
+ Direction : sortie
+ Location de bateau
+ Bateaux à voile : oui
+ Bateaux à voile : non
+ Réseau
+
+ Archive
+ Service public
+ Canal VHF
+
+ Zone montagneuse
+
+ Cassé
+ A réparer
+
+ Aucune
+ Osmose inverse
+ Pompe
+ Implantation
+ Type de fortification : rempart
+ Référence du pont
+ Référence du tunnel
+
+ Spécialité médicale : pédiatrie : non
+ Spécialité médicale : médecine d\'urgence : non
+ Spécialité médicale : médecine tropicale : non
+ Spécialité médicale : obstétrique (postnatale) : non
+ Spécialité médicale : obstétrique (prénatale) : non
+ Spécialité médicale : pédiatrie sociale : non
+ Spécialité médicale : obstétrique (césarienne) : non
+ Addictologie
+ Orthophonie
+ Thérapie manuelle
diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml
index 68994c7f86..33d1d52ef2 100644
--- a/OsmAnd/res/values-fr/strings.xml
+++ b/OsmAnd/res/values-fr/strings.xml
@@ -725,7 +725,7 @@ Au-delà la navigation bascule automatiquement sur le service en ligne CloudMade
Oui
Non
Selon les paramètres globaux
- Retour menu
+ Retour au menu
Zoom -
Zoom +
Le niveau de zoom est
@@ -2988,7 +2988,7 @@ représentant la zone : %1$s x %2$s
Importer comme fichier GPX
Importer comme Favoris
Importer fichier
- Un appui sur la carte masque les boutons et gadgets.
+ Un appui sur la carte bascule les boutons et gadgets.
Mode plein écran
Afficher dans la barre supérieure
Marquer comme visité
@@ -3043,4 +3043,24 @@ représentant la zone : %1$s x %2$s
\n • Durée d\'ascension en fonction du terrain (basé sur la règle de Naismith)
\n
\n
+ Total des dons
+Fichier GPX comprenant les coordonnées et le contenu des notes sélectionnées.
+ Fichier GPX contenant les coordonnées et les notes.
+ Modifications : %1$s, Total : %2$s mBTC
+ Destinataires OSM
+ Ce qu\'il y a ici :
+ stationné à
+ A récupérer avant
+ Sans limite de temps
+ Lire l\'article complet
+ Lire l\'article
+ Tous les points du groupe
+ Ouvert depuis
+ Ouvert depuis
+ Fermera à
+ Ouvrira à
+ Sera ouvert le
+ Actions supplémentaires
+ Actions
+ Marque
diff --git a/OsmAnd/res/values-hu/phrases.xml b/OsmAnd/res/values-hu/phrases.xml
index 82afa6fee2..76cda90a27 100644
--- a/OsmAnd/res/values-hu/phrases.xml
+++ b/OsmAnd/res/values-hu/phrases.xml
@@ -3668,4 +3668,6 @@
Befizetőpont
Pénzküldő
-
+Metró
+
+
diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml
index fbd6238e5f..3eeb977ea8 100644
--- a/OsmAnd/res/values-pt-rBR/strings.xml
+++ b/OsmAnd/res/values-pt-rBR/strings.xml
@@ -507,7 +507,7 @@
Iniciar automaticamente a viagem e enviar posições após o início do aplicativo.
Iniciar automaticamente a viagem
Identificador do rastreador
- Toque para ver ou compartilhar id de rastreio. Ao usar id de rastreio, aparelhos conectados poderão ver todos os movimentos deste aparelho! Para desconectar-se selecione a opção restaurar.
+ Toque para ver o ID de rastreio.
Token de sessão: %1$s
À espera de autorização…
"Posição enviada %1$d (in buffer %2$d) "
@@ -1450,7 +1450,7 @@ Pôr do Sol: %2$s
segundos
min.
Definir intervalo de ativação usado pelo serviço em segundo plano
- Escolher o provedor de posição usado pelo serviço em segundo plano
+ Escolher o provedor de posição usado pelo serviço em segundo plano.
Provedor de posição
Executar OsmAnd em segundo plano para monitorar sua posição enquanto a tela estiver desligada
Executar em segundo plano
@@ -1952,7 +1952,7 @@ Pôr do Sol: %2$s
Distância:
Tempo:
App não tem permissão para usar o cartão SD
-App não tem permissão para acessar os dados de localização.
+O aplicativo não tem permissão para acessar os dados de localização.
App não tem permissão para acessar a câmera.
App não tem permissão para acessar o microfone.
Escolha as vias que quer evitar durante a navegação.
@@ -2097,7 +2097,7 @@ Pôr do Sol: %2$s
Ordenar
Modo mapa
Médio
- Reportar
+ Relatório
Aberto 24 horas
Velocidade média
Altitude média
@@ -2191,7 +2191,7 @@ Pôr do Sol: %2$s
Nome de usuário
Você pode filtrar imagens por quem submeteu ou por data. Os filtros só se aplicam para ampliação bem próxima.
Permissões
- O OsmAnd não pode importar o arquivo. Favor verificar se o OsmAnd tem permissão para ler arquivo do local.
+ O OsmAnd não pode importar o arquivo. Favor verificar se o OsmAnd tem permissão para ler arquivo de sua localização.
Distância corrigida
Imagem do Mapillary
Abrir o Mapillary
@@ -2301,7 +2301,7 @@ Pôr do Sol: %2$s
Marcadores marcados como visitados aparecerão nesta tela.
Dois
Um
- Exibir as linhas de guia desde a sua posição até as localizações dos marcadores ativos.
+ Exibir as linhas de guia desde a sua posição até os locais dos marcadores ativos.
Exibir uma ou duas setas indicando a direção para os marcadores ativos.
Escolher como exibir a distância para os marcadores ativos.
Escolher quantos indicadores de mudança de direção são exibidos.
@@ -2428,22 +2428,154 @@ Pôr do Sol: %2$s
Arquivo %1$s não possui pontos de passagem, importe-o como uma trilha?
Adicionar a uma trilha GPX
Adicionar nota de áudio, vídeo ou foto para cada ponto no mapa, usando o widget ou o menu de contexto.
- Tocando no botão de ação adicionará um destino na localização do centro da tela. O destino anteriormente definido se torna o último destino intermediário.
- Tocando no botão de ação substituirá o destino com a localização do centro da tela.
- Tocando no botão de ação adicionará um primeiro ponto intermédio na localização do centro da tela.
- Se inscreva na nossa lista de e-mail sobre descontos do app e obtenha mais 3 downloads de mapa!
+ Tocando no botão de ação adicionará um destino no local do centro da tela. O destino anteriormente definido se torna o último destino intermediário.
+ Tocando no botão de ação substituirá o destino com o local do centro da tela.
+ Tocando no botão de ação adicionará um primeiro ponto intermédio no local do centro da tela.
+ Assine a nossa lista de e-mail sobre descontos do aplicativo e obtenha mais 3 downloads de mapa!
OsmAnd coleta informações sobre quais partes do aplicativo você abrir. A sua localização nunca é enviada, nem qualquer coisa digitada no aplicativo ou detalhes das áreas que você visualizar, pesquisar ou baixar.
Autodividir gravações após um intervalo
Iniciar novo segmento após intervalo de 6 min, um novo trajeto após intervalo de 2 h, ou um novo arquivo depois de um longo intervalo se a data foi alterada.
Você pode enviar sua nota de OSM anonimamente ou usando seu perfil OpenStreetMap.org.
Exiba uma notificação de sistema que permite iniciar a gravação de viagem.
Antecipando os feriados de Natal e ano novo, você pode optar por exibir o POI associado com o Natal: árvores de Natal, mercados, etc.
- Assinatura será cobrada mensalmente. Você pode cancelar sua assinatura no Google Play a qualquer momento.
- Parte de sua doação será enviada aos usuários OSM que enviam alterações ao OpenStreetMap. O custo da inscrição permanece o mesmo.
- Assinatura permite atualizações a cada hora, diariamente e semanais, e downloads ilimitados para todos os mapas globalmente.
+ A assinatura será cobrada mensalmente. Você pode cancelar a sua assinatura no Google Play a qualquer momento.
+ Parte de sua doação será enviada aos usuários OSM que enviam alterações ao OpenStreetMap. O custo da assinatura permanece o mesmo.
+ A assinatura permite atualizações a cada hora, diariamente e semanais, e downloads ilimitados para todos os mapas globalmente.
Adquira já
Adquira por %1$s
Adquira por %1$s mês
Obter downloads ilimitados de mapa e atualizações de mapas mais de uma vez por mês: por hora, diária ou semanal.
- Tocando o botão de ação adicionará um ponto de passagem de GPX na localização do centro da tela.
+ Tocando o botão de ação adicionará um ponto de passagem GPX no local do centro da tela.
+ Arquivo GPX com coordenadas e dados de todas as notas.
+ Armazenamento de dados do OsmAnd (para mapas, trilhas, etc.): %1$s.
+ Obtenha direções e descobra novos lugares sem precisar de conexão com Internet
+ Objetos superficiais
+ Vamos começar
+ %1$s paradas antes
+ Pesquisar a %1$s daqui
+ Trajeto atual
+ Resposta sonora de direção
+ Indicar a direção do ponto de destino por som.
+ Resposta tátil de direção
+ Indica a direção do ponto de destino por vibração.
+ Ativar a navegação por mudanças do OsmAnd Live.
+ Rumo magnético
+ Rumo relativo
+ Sem recálculo de rota depois de deixá-la
+ Sem recálculo de rota para a direção oposta
+ Auto-anúncio inteligente
+ Lista recolhida
+ Lista-árvore
+ Por favor, adicione marcadores de mapa pelo mapa
+ Não há pontos de passagem encontrados
+ Agora o aplicativo tem permissão para gravar no armazenamento externo. Reiniciar o aplicativo manualmente é necessário.
+ Mover para cima
+ Mover para baixo
+ Finalizar a navegação
+ Evitar estrada
+ Assinatura OsmAnd Live
+ Assinar
+ Nome Público
+ Não mostre meu nome em relatórios
+ Região de suporte
+ Custo mensal
+ Pagamento mensal.
+ Ativo
+ Inativo
+ Por favor insira um endereço de e-mail válido
+ Total de doações
+O que há aqui:
+ estacionado em
+ Pegar até
+ Sem limite de tempo
+ Leia o artigo completo
+ Leia o artigo
+ Todos os pontos do grupo
+ Aberto a partir de
+ Aberto até
+ Fechará às
+ Abrirá às
+ Ficará aberto aos/às
+ Ações adicionais
+ Arquivo GPX com coordenadas e dados das notas selecionadas.
+ Ações
+ Marcador
+ Período de auto-anúncio
+ Mapa está vinculado a localização
+ Navegue até
+ %s arquivos GPX selecionados
+ Mais fino
+ Fino
+ Grosso
+ A pasta de armazenamento de dados selecionada é somente leitura. A pasta de armazenamento foi alterada temporariamente para memória interna. Por favor, escolha uma pasta de armazenamento válida.
+ Memória compartilhada
+ Relatório completo
+ Edições %1$s, classificação %2$s, total de edições %3$s
+ Edições %1$s, soma de %2$s mBTC
+ Necessários para fornecer-lhe informações sobre as contribuições.
+ Por favor, digite o Nome Público
+ Obrigado por assinar as atualizações ao vivo!
+ Parte da sua doação será enviada para os usuários OSM que enviam alterações para o mapa da região.
+ Configurações de assinatura
+ Por favor, adquira a assinatura OsmAnd Live primeiro
+ Esta assinatura permite atualizações a cada hora para todos os mapas ao redor do mundo. Parte da renda retorna à Comunidade OSM e é pago por cada contribuição OSM. Se você ama OsmAnd e OSM e quer apoiá-los, esta é a maneira perfeita de fazê-lo.
+ Selecione marcador de mapa
+ Outros marcadores
+ Enviar anonimamente
+ Mostrar transparência seekbar
+ Enviar Nota OSM
+ Primeiro marcador de mapa
+ Segundo marcador de mapa
+ Barra de ferramentas
+ Widgets
+ Amarelo escuro
+ Rosa translúcida
+ Espanhol (americano)
+ Asturiano
+ Open Location Code
+ Inválido OLC
+\n
+ Média
+ %1$d de %2$d
+ Subida/Descida
+ Tempo em movimento
+ Máx/Mín
+ Mín/Máx
+ Inglês (Reino Unido)
+ Bielo-russo (latim)
+ Húngaro (formal)
+ Canarês
+ Sérvio (latino)
+ Chinês (Hong Kong)
+ Austrália
+ O plugin de mapas de ski Skiing OsmAnd permite que você veja pistas de ski com nível de complexidade e algumas informações adicionais, como localização de elevadores e outras facilidades.
+ Buffer de tempo para rastreamento on-line
+ Nome contém muitas letras maiúsculas. Você quer continuar?
+ Nome do arquivo contém caracteres ilegais
+ Ação rápida
+ Ação %d
+ Tela %d
+ Adicionar marcador de mapa
+ Adicionar POI
+ Mudar estilo de mapa
+ O estilo do mapa foi alterado para \"%s\".
+ Tome nota de áudio
+ Tome nota de vídeo
+ Tome nota de foto
+ Adicionar Nota OSM
+ Ligar/desligar voz
+ A voz está desligada
+ A voz está ligada
+ Adicionar ponto de passagem GPX
+ Adicionar lugar de estacionamento
+ Adicionar ação
+ Editar ação
+ Adicionar favorito
+ Adicionar ação
+ Apagar ação
+ Tem certeza de que deseja apagar a ação \"%s\"?
+ Mostrar diálogo favoritos
+ Nome do preset
+ Tocando o botão de ação adicionará um marcador de mapa no local do centro da tela.
+ Tocar o botão de ação adicionará um lugar de estacionamento no local do centro da tela.
diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml
index a6be4c71c7..d5f81e40fb 100644
--- a/OsmAnd/res/values-ru/strings.xml
+++ b/OsmAnd/res/values-ru/strings.xml
@@ -965,7 +965,7 @@
Включён
Отключён
Использовать системную настройку
- Главное меню
+ Назад к меню
Уменьшить
Увеличить
Масштаб
@@ -2640,7 +2640,7 @@
Направо
Налево
Показать цифровую панель
- Нажатие на карте скрывает кнопки управления и виджеты.
+ Нажатие на карте переключает кнопки управления и виджеты.
Показать на верхней панели
могут быть импортированы как избранные точки или как трек файл.
Больше
@@ -2789,4 +2789,22 @@
\n• Время ходьбы в зависимости от местности (подъема) (правило Нейсмита)
\n
\n
+ Правок %1$s, сумма %2$s mBTC
+ OSM получатели
+ Всего пожертвований
+Что здесь:
+ припаркован в
+ Забрать до
+ Без ограничения по времени
+ Читать статью целиком
+ Читать статью
+ Все точки группы
+ Открыто с
+ Открыто до
+ Закроется в
+ Откроется в
+ Откроется
+ Дополнительные действия
+ Действия
+ Маркер
diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml
index 287b40606d..f2850442ad 100644
--- a/OsmAnd/res/values-sk/strings.xml
+++ b/OsmAnd/res/values-sk/strings.xml
@@ -2989,4 +2989,24 @@ Zodpovedá oblasti: %1$s x %2$s
\n • Čas pešej trasy zohľadňuje terén/stúpanie (Naismithovo pravidlo)
\n
\n
-
+ Čo je tu:
+ zaparkované o
+ Vyzdvihnúť do
+ Bez časového obmedzenia
+ Prečítať celý článok
+ Prečítať článok
+ Všetky body skupiny
+ Otvorené od
+ Otvorené do
+ Bude zatvorené o
+ Bude otvorené o
+ Bude otvorené v
+ Ďalšie akcie
+ Súbor GPX so súradnicami a údajmi vybraných poznámok.
+ Súbor GPX so súradnicami a údajmi všetkých poznámok.
+ Akcie
+ Značka
+ Počet úprav %1$s, suma %2$s mBTC
+ Prijímatelia OSM
+ Celkové príspevky
+
diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml
index 0cb8c66ce8..374904720e 100644
--- a/OsmAnd/res/values-sl/strings.xml
+++ b/OsmAnd/res/values-sl/strings.xml
@@ -366,7 +366,7 @@ Sorazmerna velikost pomnilnika je %4$s MB (omejitev na androidu je %5$s MB, na d
Obvestilo, da odpeljite vozilo s parkirišča, je bilo dodano v koledar. Ostalo bo zapisano, dokler ga ne izbrišete ročno.
Nastavi časovno omejitev parkiranja
Ali želite izbrisati označbo mesta, kjer je vozilo parkirano?
- Izbriši mesto parkiranja
+ Izbriši označbo mesta parkiranja
Izbira vrste parkiranja
Časovno omejeno
Časovno neomejeno
@@ -375,12 +375,12 @@ Sorazmerna velikost pomnilnika je %4$s MB (omejitev na androidu je %5$s MB, na d
Časovno neomejeno parkiranje
Položaj parkiranega vozila: %1$s
Prevzem vozila ob:
- Točka parkiranja
+ Mesto parkiranja
Vstavek za parkiranje omogoča enostavno shranjevanje mesta parkiranja vozila in časa parkirne ure. Podatki so prikazani na zaslonu za enostavno opozarjanje.
Omogoča tudi dodajanje opomb v koledar za prikaz opomnikov ob daljših časih parkiranja (letališča, letovišča …).
Parkiranje (mesto in čas)
- Označi kot kraj parkiranja
+ Označi kot mesto parkiranja
Izbriši označbo parkirnega mesta
Podatki usmerjanja
Izbor priljubljene točke …
@@ -1074,7 +1074,7 @@ Omogoča tudi dodajanje opomb v koledar za prikaz opomnikov ob daljših časih p
nadmorska višina
Točka
Ime datoteke GPX
- Datoteka GPX uspešno shranjena v {0}
+ Datoteka GPX je uspešno shranjena v {0}
Ne pokaži več
Začni z merjenjem razdalje
Končaj določanje razdalje
@@ -1107,12 +1107,9 @@ Omogoča tudi dodajanje opomb v koledar za prikaz opomnikov ob daljših časih p
Podatki izohips
Poteka prejemanje
* Pritisnite za določitev točke.
-
-* Zadržite pritisk na zemljevidu za brisanje prejšnje točke.
-
-* Zadržite pritisk na točki za ogled ali dodajanje opisa.
-
-* Kliknite na gradnik za merjenje za prikaz več možnosti.
+\n* Zadržite pritisk na zemljevidu za brisanje predhodne točke.
+\n* Zadržite pritisk na točki za ogled in dodajanje opisa.
+\n* Za prikaz več možnosti, kliknite na gradnik za merjenje.
"
OsmAnd (OSM Automated Navigation Directions - Avtomatsko usmerjanje), je zemljevid in program za navigacijo z dostopom do svetovnih brezplačnih, zelo kakovostnih OpenStreetMap (OSM) podatkov. Vse podatke map je mogoče shraniti na pomnilniško kartico vašega telefona za uporabo brez povezave. OsmAnd ponuja usmerjanje preko sledilnika GPS naprave, s prikazom na zaslonu in glasovno, za avto, kolo in pešce. Vse glavne funkcije delujejo tako v povezavi kot brez nje (internet ni potreben).
@@ -2451,7 +2448,7 @@ Del prihodka se vrne skupnosti OSM in se izplačuje za vsako opravljeno dejavnos
Zabeleži
Ni podatkov
Božične točke POI
- Ali želite prikaz Božičnih točk POI?
+ Ali želite omogočiti prikaz prazničnih prizorišč?
Svetlorjava
Temnorjava
Kakovost površine ceste
@@ -2468,13 +2465,13 @@ Del prihodka se vrne skupnosti OSM in se izplačuje za vsako opravljeno dejavnos
Filter: nastavitev najmanjše natančnosti beleženja točk na zemljevidu.
Objavi
Pokaži obvestilo za možnost začetka beleženja potovanja.
- \\022 Dejavne ikone na zemljevidu
+ • Gradnik Dejavne ikone na zemljevidu
\n
\n • Zmogljivo iskanje točk POI: iskanje na primer restavracij po vrsti kuhinje, ali pa prostore za kampiranje s posebnimi zahtevami
\n
\n • Topo – Nov slog zemljevida za kolesarje in pohodnike
\n
-\n • Izboljšano beleženje potovanja
+\n • Izboljšano beleženje potovanja
\n
\n • Prilagojena obvestila navigacije za različne naprave (Android Wear)
\n
@@ -2482,7 +2479,7 @@ Del prihodka se vrne skupnosti OSM in se izplačuje za vsako opravljeno dejavnos
\n
\n in še veliko več …
Barvna shema izohips
- Ob koncu leta je mogoče izbrati prikaz točk POI, ki so povezane z božičnimi in novoletnimi dogodki: božična in novoletna drevesca, prodajalne, razstave ...
+ V zadnjih dneh koledarskega leta je mogoče izbrati prikaz točk POI, ki so povezane z božičnimi in novoletnimi dogodki: postavljena novoletna drevesca, božične jasli, prodajalne, razstave ...
Barvna shema izohips
Pošlji točko POI
Izračunavanje poti
@@ -2790,12 +2787,12 @@ Koda predstavlja območje: %1$s x %2$s
OsmAnd je odprtokodni program, ki je v neprestanem razvoju. Vsakdo lahko sodeluje pri razvoju z objavljanjem hroščev, pregledom prevodov in razvojem programske opreme. Pri programu sodeluje živahna odprtokodna skupnost s celega sveta. Napredek razvoja je odvisen tudi od donacij za programiranje in preizkušanje programske opreme. Ocena kakovosti in pokritosti zemljevidov: • Zahodna Evropa: **** • Vzhodna Evropa: *** • Rusija: *** • Severna Amerika: *** • Južna Amerika: ** • Azija: ** • Japonska in Koreja: *** • Bližnji vzhod: ** • Afrika: ** • Antarktika: * Večina zemljevidov držav je na voljo za prejem! Uporabite zanesljiv navigacijski sistem za različne države – Francijo, Nemčijo, Mehiko, Združeno kraljestvo, Španijo, Nizozemsko, Združene države, Rusijo, Brazilijo in mnoge druge.
Nadaljuj/Ustavi navigacijo
Začni/Končaj navigacijo
- \\022 Vstavek Mapillary za slikovno podporo ulic
-\n
-\n • Gradnik ravnila za merjenje razdalj
-\n
-\n • Razdelitev intervalov GPX za podrobnejši prikaz poti
-\n
+ • Vstavek Mapillary za slikovno podporo ulic
+\n
+\n • Gradnik Ravnilo za merjenje razdalj
+\n
+\n • Razdelitev intervalov GPX za podrobnejši prikaz poti
+\n
\n • Druge posodobitve in razrešene napake
\n
\n
@@ -2960,14 +2957,14 @@ Koda predstavlja območje: %1$s x %2$s
Vmesne točke so dodane med označbe zemljevida.
Za uporabo te zmožnosti je treba dodati vsaj eno označbo.
Označba zemljevida je premaknjena med dejavne
- \\022 Popolnoma predelane označbe zemljevida z vodilnimi črtami in načrtovanjem poti
-\n
-\n • Orodje za merjenje razdalje sedaj omogoča prilagajanje potem in shranjevanje točk kot sledi
-\n
-\n • OsmAnd Live: odprava hroščev, posodobitve, ki so samodejno vključene v navigacijo, se objavljajo vsakih 30 minut
+ • Popolnoma predelane označbe zemljevida z vodilnimi črtami in načrtovanjem poti
+\n
+\n • Orodje za merjenje razdalje sedaj omogoča prilagajanje potem in shranjevanje točk kot sledi
+\n
+\n • OsmAnd Live: razrešeni hrošči in posodobitve, ki so samodejno vključene v navigacijo, se objavljajo vsakih 30 minut
\n
\n
- \\022 Zaznava znakov STOP po novem vpliva na usmerjanje vožnje
+ • Zaznava znakov STOP po novem vpliva na usmerjanje vožnje
\n
\n • Z novim algoritmom so vrednosti spustov in vzponov na sledeh GPX bolj smiselne
\n
@@ -2976,8 +2973,28 @@ Koda predstavlja območje: %1$s x %2$s
\n
Ustvari ali spremeni točke POI, ureja opombe OSM in omogoča objavljanje zabeleženih sledi GPX.
Samodejno preklopi na naslednje polje, ko je vpisana %1$d decimalka.
- S pritiskom na zemljevid se skrijejo gumbi in gradniki.
+ S pritiskom na zemljevid se preklopi prikaz gumbov in gradnikov.
"je lahko uvožen med priljubljene točke ali kot datoteka sledi."
Način določanja razdalje in smeri do označb zemljevida na zaslonu:
Hitrost, pri kateri se usmerjenost preklopi »iz smeri gibanja« na »kompas«.
-
+ Kaj je tu:
+ parkirano
+ Odpelji do
+ Brez časovne omejitve
+ Preberi celotno objavo
+ Preberi objavo
+ Vse točke skupine
+ Odprto od
+ Odprto do
+ Zapre se ob
+ Odpre se ob
+ Odprto bo na
+ Dodatna dejanja
+ Datoteka GPX s koordinatami in podatki izbranih sporočil.
+ Datoteka GPX s koordinatami in podatki vseh sporočil.
+ Dejanja
+ Označba
+ Število urejanj %1$s, vsota %2$s mBTC
+ Prejemniki skupine OSM
+ Skupno donacij
+
diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml
index c5bc9eecad..14b9972712 100644
--- a/OsmAnd/res/values-zh-rTW/phrases.xml
+++ b/OsmAnd/res/values-zh-rTW/phrases.xml
@@ -3677,4 +3677,16 @@
充電站
+捷運
+
+ 車站
+
+ 信箱
+ 街
+ 門牌號碼
+ 平地
+
+ 支付中心
+ 匯款
+
diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml
index 6c7d46feb0..239b0c9896 100644
--- a/OsmAnd/res/values-zh-rTW/strings.xml
+++ b/OsmAnd/res/values-zh-rTW/strings.xml
@@ -228,7 +228,7 @@
開啟
關閉
配合整體的系統設定
- 回主選單
+ 回到選單
縮小
放大
縮放程度為
@@ -2921,7 +2921,7 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式
匯入為 GPX 檔案
匯入為我的收藏
匯入檔案
- 在地圖上輕點以隱藏控制按鈕和小工具。
+ 在地圖上輕點以切換控制按鈕和小工具。
全螢幕模式
在頂列上顯示
已經過標記
@@ -2976,4 +2976,24 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式
\n• 地形(上坡)察覺登山健行時間(尼史密夫定律)
\n
\n
+ 包括座標和所選註解資料的 GPX 檔案。
+ 包括座標和所有註解資料的 GPX 檔案。
+ 編輯 %1$s,合計 %2$s mBTC
+ OSM 收件人
+ 捐款總計
+停在
+ 沒有時間限制
+ 閱讀全文
+ 閱讀文章
+ 群組的全部標點
+ 已開啟自
+ 已開啟直到
+ 將關閉于
+ 將開啟于
+ 這裡的內容:
+ 取得直到
+ 將被開啟
+ 輔助的操作
+ 操作
+ 標記
diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index bb1b048ded..68fe9d8c22 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -11,11 +11,11 @@
-->
What\'s here:
parked at
- Pick up till
+ Pick up until
Without time limit
Read full article
Read article
- All points of group
+ All points of the group
Opened from
Opened till
Will be closed at
@@ -75,7 +75,7 @@
%1$d digits
Go to next field
Rename marker
- A tap on the map hide the control buttons and widgets.
+ A tap on the map toggles the control buttons and widgets.
Full screen mode
Mark passed
can be imported as Favorites points, or as track file.
@@ -2033,7 +2033,7 @@
Accessibility mode
Turns on the accessibility features.
According to the global system setting
- Back To Menu
+ Back to menu
Zoom out
Zoom in
Zoom level is
@@ -2837,6 +2837,6 @@
File %1$s does not contain waypoints, import it as a track?
Move Point
Add to a GPX track
- OSM Recipients
- Total Donations
+ OSM recipients
+ Total donations
diff --git a/OsmAnd/src/net/osmand/plus/activities/actions/AppModeDialog.java b/OsmAnd/src/net/osmand/plus/activities/actions/AppModeDialog.java
index d062b09db2..e471eede5b 100644
--- a/OsmAnd/src/net/osmand/plus/activities/actions/AppModeDialog.java
+++ b/OsmAnd/src/net/osmand/plus/activities/actions/AppModeDialog.java
@@ -47,12 +47,7 @@ public class AppModeDialog {
public static View prepareAppModeView(Activity a, final List values , final Set selected,
ViewGroup parent, final boolean singleSelection, boolean drawer, boolean useMapTheme, final View.OnClickListener onClickListener) {
View ll = a.getLayoutInflater().inflate(R.layout.mode_toggles, parent);
- boolean nightMode;
- if (useMapTheme) {
- nightMode = ((OsmandApplication) a.getApplication()).getDaynightHelper().isNightModeForMapControls();
- } else {
- nightMode = !((OsmandApplication) a.getApplication()).getSettings().isLightContent();
- }
+ boolean nightMode = isNightMode(((OsmandApplication) a.getApplication()), useMapTheme);
ll.setBackgroundColor(ContextCompat.getColor(a, nightMode ? R.color.route_info_bg_dark : R.color.route_info_bg_light));
final View[] buttons = new View[values.size()];
int k = 0;
@@ -75,12 +70,7 @@ public class AppModeDialog {
final ApplicationMode mode = visible.get(i);
final boolean checked = selected.contains(mode);
ImageView iv = (ImageView) tb.findViewById(R.id.app_mode_icon);
- boolean nightMode;
- if (useMapTheme) {
- nightMode = ctx.getDaynightHelper().isNightModeForMapControls();
- } else {
- nightMode = !ctx.getSettings().isLightContent();
- }
+ boolean nightMode = isNightMode(ctx, useMapTheme);
if (checked) {
iv.setImageDrawable(ctx.getIconsCache().getIcon(mode.getSmallIconDark(), nightMode ? R.color.route_info_checked_mode_icon_color_dark : R.color.route_info_checked_mode_icon_color_light));
iv.setContentDescription(String.format("%s %s", mode.toHumanString(ctx), ctx.getString(R.string.item_checked)));
@@ -129,13 +119,7 @@ public class AppModeDialog {
int metricsY = (int) ctx.getResources().getDimension(R.dimen.route_info_modes_height);
View tb = layoutInflater.inflate(R.layout.mode_view, null);
ImageView iv = (ImageView) tb.findViewById(R.id.app_mode_icon);
- boolean nightMode;
- if (useMapTheme) {
- nightMode = ctx.getDaynightHelper().isNightModeForMapControls();
- } else {
- nightMode = !ctx.getSettings().isLightContent();
- }
- iv.setImageDrawable(ctx.getIconsCache().getIcon(mode.getSmallIconDark(), nightMode ? R.color.route_info_checked_mode_icon_color_dark : R.color.route_info_checked_mode_icon_color_light));
+ iv.setImageDrawable(ctx.getIconsCache().getIcon(mode.getSmallIconDark(), isNightMode(ctx, useMapTheme) ? R.color.route_info_checked_mode_icon_color_dark : R.color.route_info_checked_mode_icon_color_light));
iv.setContentDescription(mode.toHumanString(ctx));
// tb.setCompoundDrawablesWithIntrinsicBounds(null, ctx.getIconsCache().getIcon(mode.getIconId(), R.color.app_mode_icon_color), null, null);
LayoutParams lp = new LinearLayout.LayoutParams(metricsX, metricsY);
@@ -143,4 +127,14 @@ public class AppModeDialog {
layout.addView(tb, lp);
return tb;
}
+
+ private static boolean isNightMode(OsmandApplication ctx, boolean useMapTheme) {
+ boolean nightMode;
+ if (useMapTheme) {
+ nightMode = ctx.getDaynightHelper().isNightModeForMapControls();
+ } else {
+ nightMode = !ctx.getSettings().isLightContent();
+ }
+ return nightMode;
+ }
}
diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteMenuBuilder.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteMenuBuilder.java
index 5362db7acc..1b213df41e 100644
--- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteMenuBuilder.java
+++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNoteMenuBuilder.java
@@ -43,7 +43,7 @@ public class AudioVideoNoteMenuBuilder extends MenuBuilder {
DateFormat timeFormat = android.text.format.DateFormat.getTimeFormat(view.getContext());
Date date = new Date(recording.getFile().lastModified());
buildRow(view, R.drawable.ic_action_data, dateFormat.format(date) + " — " + timeFormat.format(date),
- 0, false, null, false, 0, false, null);
+ 0, false, null, false, 0, false, null, false);
buildPlainMenuItems(view);
diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java
index ffb7762a7b..66f88b8cec 100644
--- a/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java
+++ b/OsmAnd/src/net/osmand/plus/liveupdates/ReportsFragment.java
@@ -134,9 +134,9 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
int monthItemPosition = monthReportsSpinner.getSelectedItemPosition();
String monthUrlString = monthsForReportsAdapter.getQueryString(monthItemPosition);
String countryUrlString = selectedCountryItem.getDownloadName();
- if (countryUrlString.length() > 0) {
+ boolean isRecipientsReport = v.getId() == R.id.numberOfRecipientsLayout;
+ if (countryUrlString.length() > 0 || isRecipientsReport) {
Bundle bl = new Bundle();
- boolean isRecipientsReport = v.getId() == R.id.numberOfRecipientsLayout;
bl.putString(UsersReportFragment.URL_REQUEST,
String.format(isRecipientsReport ? RECIPIENTS_BY_MONTH : USERS_RANKING_BY_MONTH, monthUrlString, countryUrlString));
userReportFragment.setArguments(bl);
@@ -281,7 +281,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
clearTextViewResult(recipientsTextView);
clearTextViewResult(donationsTextView);
clearTextViewResult(donationsTotalTextView);
-
+
String recfinalUrl = String.format(RECIPIENTS_BY_MONTH, monthUrlString, regionUrlString);
recChangesByMontAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, recfinalUrl);
}
diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java
index 9d03c3ccf8..bba2d2155c 100644
--- a/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java
+++ b/OsmAnd/src/net/osmand/plus/liveupdates/UsersReportFragment.java
@@ -122,6 +122,7 @@ public class UsersReportFragment extends BaseOsmAndDialogFragment {
text2.setTextColor(textSecondaryColor);
text1.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null);
text1.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.list_content_padding));
+ text2.setPadding(text1.getTotalPaddingLeft(), text1.getTotalPaddingTop(), text1.getTotalPaddingRight(), text1.getTotalPaddingBottom());
Object item = getItem(position);
if (item instanceof UserRankingByMonth) {
UserRankingByMonth rankingByMonth = (UserRankingByMonth) item;
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java
index c213597ffd..01230da531 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java
@@ -290,15 +290,14 @@ public class MenuBuilder {
if (showTitleIfTruncated) {
buildTitleRow(view);
}
+ if (showTransportRoutes()) {
+ buildRow(view, 0, app.getString(R.string.transport_Routes), 0, true, getCollapsableTransportStopRoutesView(view.getContext(), false),
+ false, 0, false, null, true);
+ }
buildNearestWikiRow(view);
if (needBuildPlainMenuItems()) {
buildPlainMenuItems(view);
}
- if (routes.size() > 0) {
- buildRow(view, 0, app.getString(R.string.transport_Routes), 0, true, getCollapsableTransportStopRoutesView(view.getContext(), false),
- false, 0, false, null);
- matchWidthDivider = true;
- }
buildInternal(view);
if (showOnlinePhotos) {
buildNearestPhotosRow(view);
@@ -307,6 +306,10 @@ public class MenuBuilder {
buildAfter(view);
}
+ private boolean showTransportRoutes() {
+ return routes.size() > 0;
+ }
+
void onHide() {
hidden = true;
}
@@ -324,7 +327,7 @@ public class MenuBuilder {
protected void buildPlainMenuItems(View view) {
for (PlainMenuItem item : plainMenuItems) {
buildRow(view, item.getIconId(), item.getText(), 0, item.collapsable, item.collapsableView,
- item.isNeedLinks(), 0, item.isUrl(), item.getOnClickListener());
+ item.isNeedLinks(), 0, item.isUrl(), item.getOnClickListener(), false);
}
}
@@ -348,7 +351,7 @@ public class MenuBuilder {
if (mapContextMenu != null) {
String title = mapContextMenu.getTitleStr();
if (title.length() > TITLE_LIMIT) {
- buildRow(view, R.drawable.ic_action_note_dark, title, 0, false, null, false, 0, false, null);
+ buildRow(view, R.drawable.ic_action_note_dark, title, 0, false, null, false, 0, false, null, false);
}
}
}
@@ -357,7 +360,7 @@ public class MenuBuilder {
if (processNearstWiki() && nearestWiki.size() > 0) {
buildRow(view, R.drawable.ic_action_wikipedia, app.getString(R.string.wiki_around) + " (" + nearestWiki.size()+")", 0,
true, getCollapsableWikiView(view.getContext(), true),
- false, 0, false, null);
+ false, 0, false, null, false);
}
}
@@ -380,7 +383,7 @@ public class MenuBuilder {
}
});
buildRow(view, R.drawable.ic_action_photo_dark, app.getString(R.string.online_photos), 0, true,
- collapsableView, false, 1, false, null);
+ collapsableView, false, 1, false, null, false);
if (needUpdateOnly && onlinePhotoCards != null) {
onlinePhotoCardsRow.setCards(onlinePhotoCards);
@@ -425,7 +428,7 @@ public class MenuBuilder {
}
protected void buildAfter(View view) {
- buildRowDivider(view, false);
+ buildRowDivider(view);
}
public boolean isFirstRow() {
@@ -438,23 +441,17 @@ public class MenuBuilder {
public View buildRow(View view, int iconId, String text, int textColor,
boolean collapsable, final CollapsableView collapsableView,
- boolean needLinks, int textLinesLimit, boolean isUrl, OnClickListener onClickListener) {
+ boolean needLinks, int textLinesLimit, boolean isUrl, OnClickListener onClickListener, boolean matchWidthDivider) {
return buildRow(view, iconId == 0 ? null : getRowIcon(iconId), text, textColor, null, collapsable, collapsableView,
- needLinks, textLinesLimit, isUrl, onClickListener);
- }
-
- public View buildRow(final View view, Drawable icon, final String text, int textColor,
- boolean collapsable, final CollapsableView collapsableView, boolean needLinks,
- int textLinesLimit, boolean isUrl, OnClickListener onClickListener) {
- return buildRow(view, icon, text, textColor, null, collapsable, collapsableView, needLinks, textLinesLimit, isUrl, onClickListener);
+ needLinks, textLinesLimit, isUrl, onClickListener, matchWidthDivider);
}
public View buildRow(final View view, Drawable icon, final String text, int textColor, String secondaryText,
boolean collapsable, final CollapsableView collapsableView, boolean needLinks,
- int textLinesLimit, boolean isUrl, OnClickListener onClickListener) {
+ int textLinesLimit, boolean isUrl, OnClickListener onClickListener, boolean matchWidthDivider) {
if (!isFirstRow()) {
- buildRowDivider(view, false);
+ buildRowDivider(view);
}
LinearLayout baseView = new LinearLayout(view.getContext());
@@ -598,9 +595,15 @@ public class MenuBuilder {
rowBuilt();
+ setDividerWidth(matchWidthDivider);
+
return ll;
}
+ protected void setDividerWidth(boolean matchWidthDivider) {
+ this.matchWidthDivider = matchWidthDivider;
+ }
+
protected void copyToClipboard(String text, Context ctx) {
((ClipboardManager) app.getSystemService(Activity.CLIPBOARD_SERVICE)).setText(text);
Toast.makeText(ctx,
@@ -650,15 +653,11 @@ public class MenuBuilder {
rowBuilt();
}
- public void buildRowDivider(View view, boolean matchWidth) {
- if (matchWidthDivider) {
- matchWidth = true;
- matchWidthDivider = false;
- }
+ public void buildRowDivider(View view) {
View horizontalLine = new View(view.getContext());
LinearLayout.LayoutParams llHorLineParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, dpToPx(1f));
llHorLineParams.gravity = Gravity.BOTTOM;
- if (!matchWidth) {
+ if (!matchWidthDivider) {
llHorLineParams.setMargins(dpToPx(64f), 0, 0, 0);
}
horizontalLine.setLayoutParams(llHorLineParams);
@@ -711,82 +710,9 @@ public class MenuBuilder {
);
}
- private View buildTransportRowItem(View view, TransportStopRoute route, OnClickListener listener) {
- LinearLayout baseView = new LinearLayout(view.getContext());
- baseView.setOrientation(LinearLayout.HORIZONTAL);
- LinearLayout.LayoutParams llBaseViewParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- baseView.setLayoutParams(llBaseViewParams);
- baseView.setPadding(dpToPx(16), 0, dpToPx(16), dpToPx(12));
- baseView.setBackgroundResource(AndroidUtils.resolveAttribute(view.getContext(), android.R.attr.selectableItemBackground));
-
- TextViewEx transportRect = new TextViewEx(view.getContext());
- LinearLayout.LayoutParams trParams = new LinearLayout.LayoutParams(dpToPx(32), dpToPx(18));
- trParams.setMargins(0, dpToPx(16), 0, 0);
- transportRect.setLayoutParams(trParams);
- transportRect.setGravity(Gravity.CENTER);
- transportRect.setAllCaps(true);
- transportRect.setTypeface(FontCache.getRobotoMedium(view.getContext()));
- transportRect.setTextColor(Color.WHITE);
- transportRect.setTextSize(10);
-
- GradientDrawable shape = new GradientDrawable();
- shape.setShape(GradientDrawable.RECTANGLE);
- shape.setCornerRadius(dpToPx(3));
- shape.setColor(route.getColor(mapActivity.getMyApplication(), !light));
-
- transportRect.setBackgroundDrawable(shape);
- transportRect.setText(route.route.getRef());
- baseView.addView(transportRect);
-
- LinearLayout infoView = new LinearLayout(view.getContext());
- infoView.setOrientation(LinearLayout.VERTICAL);
- LinearLayout.LayoutParams infoViewLayoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
- infoViewLayoutParams.setMargins(dpToPx(16), dpToPx(12), dpToPx(16), 0);
- infoView.setLayoutParams(infoViewLayoutParams);
- baseView.addView(infoView);
-
- TextView titleView = new TextView(view.getContext());
- LinearLayout.LayoutParams titleParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
- titleView.setLayoutParams(titleParams);
- titleView.setTextSize(16);
- titleView.setTextColor(app.getResources().getColor(light ? R.color.ctx_menu_bottom_view_text_color_light : R.color.ctx_menu_bottom_view_text_color_dark));
- titleView.setText(route.getDescription(getMapActivity().getMyApplication(), true));
- infoView.addView(titleView);
-
- LinearLayout typeView = new LinearLayout(view.getContext());
- typeView.setOrientation(LinearLayout.HORIZONTAL);
- LinearLayout.LayoutParams typeViewParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
- typeViewParams.setMargins(0, dpToPx(8), 0, 0);
- typeView.setGravity(Gravity.CENTER);
- typeView.setLayoutParams(typeViewParams);
- infoView.addView(typeView);
-
- ImageView typeImageView = new ImageView(view.getContext());
- LinearLayout.LayoutParams typeImageParams = new LinearLayout.LayoutParams(dpToPx(16), dpToPx(16));
- typeImageParams.setMargins(dpToPx(4), 0, dpToPx(4), 0);
- typeImageView.setLayoutParams(typeImageParams);
- int drawableResId = route.type == null ? R.drawable.ic_action_polygom_dark : route.type.getResourceId();
- typeImageView.setImageDrawable(getRowIcon(drawableResId));
- typeView.addView(typeImageView);
-
- TextView typeTextView = new TextView(view.getContext());
- LinearLayout.LayoutParams typeTextParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
- typeTextView.setLayoutParams(typeTextParams);
- typeTextView.setText(route.getTypeStrRes());
- typeView.addView(typeTextView);
-
- baseView.setOnClickListener(listener);
-
- ((ViewGroup) view).addView(baseView);
-
- return baseView;
- }
-
- private void buildTransportRouteRow(ViewGroup parent, TransportStopRoute r, OnClickListener listener, boolean showDivider) {
- buildTransportRowItem(parent, r, listener);
-
- if (showDivider) {
- buildRowDivider(parent, false);
+ private void buildTransportRouteRow(ViewGroup parent, TransportStopRoute r, OnClickListener listener) {
+ if (!isFirstRow()) {
+ buildRowDivider(parent);
}
}
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java
index cf0c6129a6..fb33160461 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/AmenityMenuBuilder.java
@@ -63,18 +63,18 @@ public class AmenityMenuBuilder extends MenuBuilder {
private void buildRow(View view, int iconId, String text, String textPrefix,
boolean collapsable, final CollapsableView collapsableView,
int textColor, boolean isWiki, boolean isText, boolean needLinks,
- boolean isPhoneNumber, boolean isUrl) {
+ boolean isPhoneNumber, boolean isUrl, boolean matchWidthDivider) {
buildRow(view, iconId == 0 ? null : getRowIcon(iconId), text, textPrefix, collapsable, collapsableView, textColor,
- isWiki, isText, needLinks, isPhoneNumber, isUrl);
+ isWiki, isText, needLinks, isPhoneNumber, isUrl, matchWidthDivider);
}
protected void buildRow(final View view, Drawable icon, final String text, final String textPrefix,
boolean collapsable, final CollapsableView collapsableView,
int textColor, boolean isWiki, boolean isText, boolean needLinks,
- boolean isPhoneNumber, boolean isUrl) {
+ boolean isPhoneNumber, boolean isUrl, boolean matchWidthDivider) {
if (!isFirstRow()) {
- buildRowDivider(view, false);
+ buildRowDivider(view);
}
final String txt;
@@ -244,8 +244,6 @@ public class AmenityMenuBuilder extends MenuBuilder {
button.setCompoundDrawablesWithIntrinsicBounds(compoundDrawable, null, null, null);
button.setCompoundDrawablePadding(dpToPx(8f));
llText.addView(button);
-
- matchWidthDivider = true;
}
((LinearLayout) view).addView(baseView);
@@ -300,6 +298,8 @@ public class AmenityMenuBuilder extends MenuBuilder {
}
rowBuilt();
+
+ setDividerWidth(matchWidthDivider);
}
@Override
@@ -449,15 +449,16 @@ public class AmenityMenuBuilder extends MenuBuilder {
isUrl = true;
}
+ boolean matchWidthDivider = !isDescription && isWiki;
if (isDescription) {
descriptions.add(new AmenityInfoRow(key, R.drawable.ic_action_note_dark, textPrefix,
- vl, collapsable, collapsableView, 0, false, true, true, 0, "", false, false));
+ vl, collapsable, collapsableView, 0, false, true, true, 0, "", false, false, matchWidthDivider));
} else if (icon != null) {
infoRows.add(new AmenityInfoRow(key, icon, textPrefix, vl, collapsable, collapsableView,
- textColor, isWiki, isText, needLinks, poiTypeOrder, poiTypeKeyName, isPhoneNumber, isUrl));
+ textColor, isWiki, isText, needLinks, poiTypeOrder, poiTypeKeyName, isPhoneNumber, isUrl, matchWidthDivider));
} else {
infoRows.add(new AmenityInfoRow(key, iconId, textPrefix, vl, collapsable, collapsableView,
- textColor, isWiki, isText, needLinks, poiTypeOrder, poiTypeKeyName, isPhoneNumber, isUrl));
+ textColor, isWiki, isText, needLinks, poiTypeOrder, poiTypeKeyName, isPhoneNumber, isUrl, matchWidthDivider));
}
}
@@ -500,7 +501,7 @@ public class AmenityMenuBuilder extends MenuBuilder {
AmenityInfoRow wikiInfo = new AmenityInfoRow(
"nearest_wiki", R.drawable.ic_action_wikipedia, null, app.getString(R.string.wiki_around) + " (" + nearestWiki.size() + ")", true,
getCollapsableWikiView(view.getContext(), true),
- 0, false, false, false, 1000, null, false, false);
+ 0, false, false, false, 1000, null, false, false, false);
buildAmenityRow(view, wikiInfo);
}
@@ -517,11 +518,11 @@ public class AmenityMenuBuilder extends MenuBuilder {
link = "https://www.openstreetmap.org/way/";
}
buildRow(view, R.drawable.ic_action_info_dark, link + (amenity.getId() >> 1),
- 0, false, null, true, 0, true, null);
+ 0, false, null, true, 0, true, null, false);
}
buildRow(view, R.drawable.ic_action_get_my_location, PointDescription.getLocationName(app,
amenity.getLocation().getLatitude(), amenity.getLocation().getLongitude(), true)
- .replaceAll("\n", " "), 0, false, null, false, 0, false, null);
+ .replaceAll("\n", " "), 0, false, null, false, 0, false, null, false);
//if (st.COORDINATES_FORMAT.get() != PointDescription.OLC_FORMAT)
// buildRow(view, R.drawable.ic_action_get_my_location, PointDescription.getLocationOlcName(
// amenity.getLocation().getLatitude(), amenity.getLocation().getLongitude())
@@ -532,10 +533,10 @@ public class AmenityMenuBuilder extends MenuBuilder {
public void buildAmenityRow(View view, AmenityInfoRow info) {
if (info.icon != null) {
buildRow(view, info.icon, info.text, info.textPrefix, info.collapsable, info.collapsableView,
- info.textColor, info.isWiki, info.isText, info.needLinks, info.isPhoneNumber, info.isUrl);
+ info.textColor, info.isWiki, info.isText, info.needLinks, info.isPhoneNumber, info.isUrl, info.matchWidthDivider);
} else {
buildRow(view, info.iconId, info.text, info.textPrefix, info.collapsable, info.collapsableView,
- info.textColor, info.isWiki, info.isText, info.needLinks, info.isPhoneNumber, info.isUrl);
+ info.textColor, info.isWiki, info.isText, info.needLinks, info.isPhoneNumber, info.isUrl, info.matchWidthDivider);
}
}
@@ -570,11 +571,12 @@ public class AmenityMenuBuilder extends MenuBuilder {
private boolean isUrl;
private int order;
private String name;
+ private boolean matchWidthDivider;
public AmenityInfoRow(String key, Drawable icon, String textPrefix, String text,
boolean collapsable, CollapsableView collapsableView,
int textColor, boolean isWiki, boolean isText, boolean needLinks,
- int order, String name, boolean isPhoneNumber, boolean isUrl) {
+ int order, String name, boolean isPhoneNumber, boolean isUrl, boolean matchWidthDivider) {
this.key = key;
this.icon = icon;
this.textPrefix = textPrefix;
@@ -589,12 +591,13 @@ public class AmenityMenuBuilder extends MenuBuilder {
this.name = name;
this.isPhoneNumber = isPhoneNumber;
this.isUrl = isUrl;
+ this.matchWidthDivider = matchWidthDivider;
}
public AmenityInfoRow(String key, int iconId, String textPrefix, String text,
boolean collapsable, CollapsableView collapsableView,
int textColor, boolean isWiki, boolean isText, boolean needLinks,
- int order, String name, boolean isPhoneNumber, boolean isUrl) {
+ int order, String name, boolean isPhoneNumber, boolean isUrl, boolean matchWidthDivider) {
this.key = key;
this.iconId = iconId;
this.textPrefix = textPrefix;
@@ -609,6 +612,7 @@ public class AmenityMenuBuilder extends MenuBuilder {
this.name = name;
this.isPhoneNumber = isPhoneNumber;
this.isUrl = isUrl;
+ this.matchWidthDivider = matchWidthDivider;
}
}
}
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/FavouritePointMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/FavouritePointMenuBuilder.java
index 4f919d6b4d..05097d55f2 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/FavouritePointMenuBuilder.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/FavouritePointMenuBuilder.java
@@ -78,9 +78,9 @@ public class FavouritePointMenuBuilder extends MenuBuilder {
int disabledColor = light ? R.color.secondary_text_light : R.color.secondary_text_dark;
color = favoriteGroup.visible ? (color | 0xff000000) : view.getResources().getColor(disabledColor);
String name = view.getContext().getString(R.string.context_menu_points_of_group);
- buildRow(view, app.getIconsCache().getPaintedIcon(R.drawable.ic_action_folder, color), name, 0,
+ buildRow(view, app.getIconsCache().getPaintedIcon(R.drawable.ic_action_folder, color), name, 0, null,
true, getCollapsableFavouritesView(view.getContext(), true, favoriteGroup, fav),
- false, 0, false, null);
+ false, 0, false, null, false);
}
}
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/GpxItemMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/GpxItemMenuBuilder.java
index 3e60a8952d..10d61daf3e 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/GpxItemMenuBuilder.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/GpxItemMenuBuilder.java
@@ -34,7 +34,7 @@ public class GpxItemMenuBuilder extends MenuBuilder {
String description = GpxUiHelper.getDescription(app, item.analysis, false);
String[] lines = description.split("\n");
for (String line : lines) {
- buildRow(view, R.drawable.ic_action_info_dark, line, 0, false, null, false, 0, false, null);
+ buildRow(view, R.drawable.ic_action_info_dark, line, 0, false, null, false, 0, false, null, false);
}
}
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/WptPtMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/WptPtMenuBuilder.java
index c979304ccb..9553e96d39 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/WptPtMenuBuilder.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/WptPtMenuBuilder.java
@@ -44,23 +44,23 @@ public class WptPtMenuBuilder extends MenuBuilder {
DateFormat timeFormat = android.text.format.DateFormat.getTimeFormat(view.getContext());
Date date = new Date(wpt.time);
buildRow(view, R.drawable.ic_action_data,
- dateFormat.format(date) + " — " + timeFormat.format(date), 0, false, null, false, 0, false, null);
+ dateFormat.format(date) + " — " + timeFormat.format(date), 0, false, null, false, 0, false, null, false);
}
if (wpt.speed > 0) {
buildRow(view, R.drawable.ic_action_speed,
- OsmAndFormatter.getFormattedSpeed((float)wpt.speed, app), 0, false, null, false, 0, false, null);
+ OsmAndFormatter.getFormattedSpeed((float)wpt.speed, app), 0, false, null, false, 0, false, null, false);
}
if (!Double.isNaN(wpt.ele)) {
buildRow(view, R.drawable.ic_action_altitude,
- OsmAndFormatter.getFormattedDistance((float) wpt.ele, app), 0, false, null, false, 0, false, null);
+ OsmAndFormatter.getFormattedDistance((float) wpt.ele, app), 0, false, null, false, 0, false, null, false);
}
if (!Double.isNaN(wpt.hdop)) {
buildRow(view, R.drawable.ic_action_gps_info,
Algorithms.capitalizeFirstLetterAndLowercase(app.getString(R.string.plugin_distance_point_hdop)) + ": " + (int)wpt.hdop, 0,
- false, null, false, 0, false, null);
+ false, null, false, 0, false, null, false);
}
if (!Algorithms.isEmpty(wpt.desc)) {
- final View row = buildRow(view, R.drawable.ic_action_note_dark, wpt.desc, 0, false, null, true, 10, false, null);
+ final View row = buildRow(view, R.drawable.ic_action_note_dark, wpt.desc, 0, false, null, true, 10, false, null, false);
row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -71,7 +71,7 @@ public class WptPtMenuBuilder extends MenuBuilder {
}
if (!Algorithms.isEmpty(wpt.comment)) {
final View rowc = buildRow(view, R.drawable.ic_action_note_dark, wpt.comment, 0,
- false, null, true, 10, false, null);
+ false, null, true, 10, false, null, false);
rowc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -98,7 +98,7 @@ public class WptPtMenuBuilder extends MenuBuilder {
int color = getPointColor(wpt, getFileColor(selectedGpxFile));
buildRow(view, app.getIconsCache().getPaintedIcon(R.drawable.ic_type_waypoints_group, color), title, 0, gpxName,
true, getCollapsableWaypointsView(view.getContext(), true, gpx, wpt),
- false, 0, false, null);
+ false, 0, false, null, false);
}
}
}
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java
index 553ef313a0..3bf9257b97 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java
@@ -65,17 +65,15 @@ public class AmenityMenuController extends MenuController {
new MapMarkerMenuController(mapActivity, marker.getPointDescription(mapActivity), marker);
leftTitleButtonController = markerMenuController.getLeftTitleButtonController();
rightTitleButtonController = markerMenuController.getRightTitleButtonController();
- } else {
- if (amenity.getType().isWiki()) {
- leftTitleButtonController = new TitleButtonController() {
- @Override
- public void buttonPressed() {
- POIMapLayer.showWikipediaDialog(mapActivity, mapActivity.getMyApplication(), amenity);
- }
- };
- leftTitleButtonController.caption = getMapActivity().getString(R.string.context_menu_read_article);
- leftTitleButtonController.leftIcon = getIcon(R.drawable.ic_action_note_dark, isLight() ? R.color.ctx_menu_controller_button_text_color_light_n : R.color.ctx_menu_controller_button_text_color_dark_n);
- }
+ } else if (amenity.getType().isWiki()) {
+ leftTitleButtonController = new TitleButtonController() {
+ @Override
+ public void buttonPressed() {
+ POIMapLayer.showWikipediaDialog(mapActivity, mapActivity.getMyApplication(), amenity);
+ }
+ };
+ leftTitleButtonController.caption = getMapActivity().getString(R.string.context_menu_read_article);
+ leftTitleButtonController.leftIcon = getIcon(R.drawable.ic_action_note_dark, isLight() ? R.color.ctx_menu_controller_button_text_color_light_n : R.color.ctx_menu_controller_button_text_color_dark_n);
}
openingHoursInfo = processOpeningHours(amenity);
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java
index f122e8d4dd..701c4d7195 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java
@@ -20,10 +20,14 @@ import net.osmand.plus.mapcontextmenu.editors.FavoritePointEditor;
import net.osmand.plus.mapcontextmenu.editors.FavoritePointEditorFragment;
import net.osmand.util.Algorithms;
+import java.util.ArrayList;
+import java.util.List;
+
public class FavouritePointMenuController extends MenuController {
private FavouritePoint fav;
private MapMarker mapMarker;
+ private List routes = new ArrayList<>();
private OpeningHoursInfo openingHoursInfo;
public FavouritePointMenuController(MapActivity mapActivity, PointDescription pointDescription, final FavouritePoint fav) {
@@ -44,7 +48,8 @@ public class FavouritePointMenuController extends MenuController {
if (getObject() instanceof TransportStop) {
TransportStop stop = (TransportStop) getObject();
TransportStopController transportStopController = new TransportStopController(getMapActivity(), pointDescription, stop);
- transportStopController.processTransportStop(builder);
+ routes = transportStopController.processTransportStop();
+ builder.setRoutes(routes);
}
Object originObject = getBuilder().getOriginObject();
@@ -65,6 +70,11 @@ public class FavouritePointMenuController extends MenuController {
return fav;
}
+ @Override
+ public List getTransportStopRoutes() {
+ return routes;
+ }
+
@Override
public boolean handleSingleTapOnMap() {
Fragment fragment = getMapActivity().getSupportFragmentManager().findFragmentByTag(FavoritePointEditor.TAG);
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TransportStopController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TransportStopController.java
index 1ea2b94949..deb05a905b 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TransportStopController.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/TransportStopController.java
@@ -36,14 +36,16 @@ public class TransportStopController extends MenuController {
PointDescription pointDescription, TransportStop transportStop) {
super(new MenuBuilder(mapActivity), pointDescription, mapActivity);
this.transportStop = transportStop;
- processTransportStop(builder);
+ routes = processTransportStop();
+ builder.setRoutes(routes);
}
@Override
protected void setObject(Object object) {
if (object instanceof TransportStop) {
this.transportStop = (TransportStop) object;
- processTransportStop(builder);
+ routes = processTransportStop();
+ builder.setRoutes(routes);
}
}
@@ -81,8 +83,8 @@ public class TransportStopController extends MenuController {
return getPointDescription().getTypeName();
}
- public void processTransportStop(MenuBuilder builder) {
- routes.clear();
+ public List processTransportStop() {
+ ArrayList routes = new ArrayList<>();
List reps = getMapActivity().getMyApplication()
.getResourceManager().searchTransportRepositories(transportStop.getLocation().getLatitude(),
transportStop.getLocation().getLongitude());
@@ -93,14 +95,14 @@ public class TransportStopController extends MenuController {
if (t.acceptTransportStop(transportStop)) {
boolean empty = transportStop.getReferencesToRoutes() == null || transportStop.getReferencesToRoutes().length == 0;
if(!empty) {
- addRoutes(useEnglishNames, t, transportStop, transportStop, 0);
+ addRoutes(routes, useEnglishNames, t, transportStop, transportStop, 0);
}
ArrayList ls = new ArrayList<>();
QuadRect ll = MapUtils.calculateLatLonBbox(transportStop.getLocation().getLatitude(), transportStop.getLocation().getLongitude(), 150);
t.searchTransportStops(ll.top, ll.left, ll.bottom, ll.right, -1, ls, null);
for(TransportStop tstop : ls) {
if(tstop.getId().longValue() != transportStop.getId().longValue() || empty) {
- addRoutes(useEnglishNames, t, tstop, transportStop,
+ addRoutes(routes, useEnglishNames, t, tstop, transportStop,
(int) MapUtils.getDistance(tstop.getLocation(), transportStop.getLocation()));
}
}
@@ -122,10 +124,10 @@ public class TransportStopController extends MenuController {
}
});
- builder.setRoutes(routes);
+ return routes;
}
- private void addRoutes(boolean useEnglishNames, TransportIndexRepository t, TransportStop s, TransportStop refStop, int dist) {
+ private void addRoutes(List routes, boolean useEnglishNames, TransportIndexRepository t, TransportStop s, TransportStop refStop, int dist) {
Collection rts = t.getRouteForStop(s);
if (rts != null) {
for (TransportRoute rs : rts) {
@@ -133,7 +135,7 @@ public class TransportStopController extends MenuController {
if (topType == null && type != null && type.isTopType()) {
topType = type;
}
- if (!containsRef(rs)) {
+ if (!containsRef(routes, rs)) {
TransportStopRoute r = new TransportStopRoute();
r.type = type;
r.desc = useEnglishNames ? rs.getEnName(true) : rs.getName();
@@ -141,13 +143,13 @@ public class TransportStopController extends MenuController {
r.refStop = refStop;
r.stop = s;
r.distance = dist;
- this.routes.add(r);
+ routes.add(r);
}
}
}
}
- private boolean containsRef(TransportRoute transportRoute) {
+ private boolean containsRef(List routes, TransportRoute transportRoute) {
for (TransportStopRoute route : routes) {
if (route.route.getRef().equals(transportRoute.getRef())) {
return true;
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java
index 782c3ac0ce..79fe4c1d08 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java
@@ -33,13 +33,13 @@ public class MultiSelectionArrayAdapter extends ArrayAdapter