diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/edit/Entity.java b/OsmAnd-java/src/main/java/net/osmand/osm/edit/Entity.java
index 6005f85035..7bb8edbf49 100644
--- a/OsmAnd-java/src/main/java/net/osmand/osm/edit/Entity.java
+++ b/OsmAnd-java/src/main/java/net/osmand/osm/edit/Entity.java
@@ -114,6 +114,8 @@ public abstract class Entity implements Serializable {
public static final int MODIFY_DELETED = -1;
public static final int MODIFY_MODIFIED = 1;
public static final int MODIFY_CREATED = 2;
+ public static final String POI_TYPE_TAG = "poi_type_tag";
+ public static final String REMOVE_TAG_PREFIX = "----";
public Entity(long id) {
this.id = id;
@@ -241,6 +243,11 @@ public abstract class Entity implements Serializable {
return Collections.unmodifiableMap(tags);
}
+ public boolean isNotValid(String tag) {
+ String val = getTag(tag);
+ return val == null || val.length() == 0 || tag.length() == 0
+ || tag.startsWith(REMOVE_TAG_PREFIX) || tag.equals(POI_TYPE_TAG);
+ }
public Collection getTagKeySet() {
if (tags == null) {
diff --git a/OsmAnd-telegram/res/values-es/strings.xml b/OsmAnd-telegram/res/values-es/strings.xml
index 63c0fcf19b..29442e4212 100644
--- a/OsmAnd-telegram/res/values-es/strings.xml
+++ b/OsmAnd-telegram/res/values-es/strings.xml
@@ -268,4 +268,8 @@
Última respuesta: hace %1$shace %1$sERR
+ Exportar
+ Búfer de Logcat
+ Selecciona y comparte logs detallados de la app
+ Enviar informe
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-nl/strings.xml b/OsmAnd-telegram/res/values-nl/strings.xml
index b77535908e..ebddf36454 100644
--- a/OsmAnd-telegram/res/values-nl/strings.xml
+++ b/OsmAnd-telegram/res/values-nl/strings.xml
@@ -257,4 +257,8 @@
Afstand eenhedenDefinieer de eenheid voor snelheid.Eenheid van snelheid
+ Stuur rapport
+ Exporteer naar OSM
+ Logcat buffer
+ Controleer en deel gedetailleerde logs van de app
\ No newline at end of file
diff --git a/OsmAnd/res/layout/follow_track_options.xml b/OsmAnd/res/layout/follow_track_options.xml
index 60c6a885b3..0877fcc307 100644
--- a/OsmAnd/res/layout/follow_track_options.xml
+++ b/OsmAnd/res/layout/follow_track_options.xml
@@ -55,6 +55,17 @@
android:textSize="@dimen/default_list_text_size"
osmand:typeface="@string/font_roboto_medium" />
+
+
diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml
index 697326c31c..20b7fd68f2 100644
--- a/OsmAnd/res/values-de/strings.xml
+++ b/OsmAnd/res/values-de/strings.xml
@@ -3933,4 +3933,6 @@
Für das Schneemobilfahren mit speziellen Straßen und Tracks.Durchführen eines OAuth-Logins zur Nutzung der osmedit-Funktionen2-Phasen-A*-Routing-Algorithmus verwenden
+ %1$s Daten sind nur auf den Straßen verfügbar, Sie müssen eine Route mit \"Route zwischen Punkten\" berechnen, um sie zu erhalten.
+ %1$s — %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml
index ece67180a8..c469f7f4bd 100644
--- a/OsmAnd/res/values-eo/strings.xml
+++ b/OsmAnd/res/values-eo/strings.xml
@@ -3932,4 +3932,6 @@
Datumoj de %1$s estas disponeblaj nur por vojoj, vi devas kalkuli la kurson uzante “kalkuli kurson inter punktoj” por akiri ĝin.Atendado ĝis la kurso estos rekalkulita.
\nDiagramo estos videbla post rekalkulado.
+ %1$s — %2$s
+ Manko
\ No newline at end of file
diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml
index 4da8d4966b..ad60cd64f0 100644
--- a/OsmAnd/res/values-es-rAR/strings.xml
+++ b/OsmAnd/res/values-es-rAR/strings.xml
@@ -3551,14 +3551,14 @@
Guardando el nuevo perfilNo se pudo respaldar el perfil.¿Borrar los datos registrados\?
- Importación de datos de %1$s
- Importación
+ Importando de datos de «%1$s»
+ ImportandoOsmAnd comprueba %1$s para ver si hay duplicados con los elementos existentes en la aplicación.
\n
\nPuede llevar algún tiempo.Elementos añadidosImportación completa
- Todos los datos de %1$s son importados, puedes usar los botones de abajo para abrir la parte necesaria de la aplicación para manejarla.
+ Todos los datos de «%1$s» fueron importados. Puedes usar los botones de abajo para gestionar la sección necesaria de la aplicación.Min%1$s de %2$sTerreno
diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml
index 2a4458f148..3dda9b8adc 100644
--- a/OsmAnd/res/values-fr/strings.xml
+++ b/OsmAnd/res/values-fr/strings.xml
@@ -3801,7 +3801,7 @@
Sélectionnez un fichier de trace à ouvrir.TerminéRemplacer la trace
- Sélectionnez comment relier les points : par une ligne droite ou en calculant un itinéraire reliant les points comme indiqué ci-dessous.
+ Définissez comment relier les points : par une ligne droite ou en calculant un itinéraire avec le profil ci-dessous.Toute la trace sera recalculée en utilisant le profil sélectionné.Seul le prochain segment sera recalculé en utilisant le profil sélectionné.Ensuite, sélectionnez le profil de navigation pour détecter les routes autorisées et le seuil de distance afin de déplacer votre trace.
diff --git a/OsmAnd/res/values-is/phrases.xml b/OsmAnd/res/values-is/phrases.xml
index 07ff354d7e..564d5dfea5 100644
--- a/OsmAnd/res/values-is/phrases.xml
+++ b/OsmAnd/res/values-is/phrases.xml
@@ -3802,7 +3802,7 @@
Vatnsyfirborð: í kafiVatnsyfirborð: að hluta í kafiGróft
- Merki til að finna staurinn
+ Internetaðgangur: viðskiptavinirStaða dælu: vantar bitaSogUndir þrýstingi
@@ -3830,4 +3830,8 @@
LNGBrottfaratafla: neiBrottfaratafla
+ Meðfram götu
+ Skýli
+ Á þaki
+ GPX-punktur
\ No newline at end of file
diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml
index c5ce396f03..182d438a1c 100644
--- a/OsmAnd/res/values-is/strings.xml
+++ b/OsmAnd/res/values-is/strings.xml
@@ -3777,7 +3777,7 @@
\n
\nVeldu %2$s: öllum gögnum sem tengjast hraðamyndavélum; t.d. aðvaranir, tilkynningar, staðsetningar o.fl. verður eytt þar til OsmAnd er sett inn aftur frá grunni.Veldu ferilskrá þar sem nýjum bút verður bætt inn.
- Veldu hvernig eigi að tengja punkta; með beinni línu eða reikna leið milli þeirra eins og tiltekið er hér að neðan.
+ Veldu hvernig eigi að tengja punktana; með beinni línu eða reikna leið milli þeirra eins og tiltekið er hér að neðan.Allur ferillinn verður endurreiknaður með völdu sniði.Lokaður OSM-minnispunkturAllur ferillinn
@@ -3914,4 +3914,35 @@
Veldu millibil skráninga í almenna leiðarskráningu (virkjað með viðmótshlutanum fyrir GPX-skráningu á kortinu).Setja skráningu í biðHalda áfram með skráningu
+ • Uppfærðar aðgerðir í skipulagningu leiða: mismunandi leiðsögn á hverjum bút auk slóða
+\n
+\n • Ný útlitsvalmynd fyrir slóðir: val á lit, þykkt, birting stefnuörva, táknmynda við upphaf/endi
+\n
+\n • Bættur sýnileiki hjólreiðahnúta.
+\n
+\n • Hægt að ýta á slóðir, hafa samhengisvalmynd með grunnupplýsingum.
+\n
+\n • Bætt reiknirit leitar
+\n
+\n • Bættir valkostir fyrir \'Fylgja slóð\' í leiðsögn
+\n
+\n • Lagfærð vandamál við inn/útflutning á stillingum sniða
+\n
+\n
+ Bíddu eftir endurútreikningi leiðar.
+\nGrafið verður tiltækt eftir endurútreikning.
+ Fyrir akstur vélsleða á sérstökum vegum og slóðum.
+ %1$s gögn aðeins tiltæk á vegunum, þú þarft að reikna leið með “Leið milli punkta” til að fá hana.
+ Skrá hefur þegar verið flutt inn í OsmAnd
+ Bil
+ Takk fyrir að kaupa \'Hæðarlínur\'
+ Áskriftargjaldið verður rukkað miðað við valið tímabil. Þú getur sagt áskriftinni upp hvenær sem er á AppGallery.
+ Nota 2-umferða A* leiðararútreikning
+ Greiðsla verður gjaldfærð á AppGallery reikninginn þinn við staðfestingu á kaupunum.
+\n
+\n Áskrift endurnýjast sjálfkrafa nema hún sé felld niður fyrir endurnýjunardag. Reikningur þinn verður einungis gjaldfærður fyrir endurnýjunartímabil (mánuður / þrír mánuðir / ár) á endurnýjunardegi.
+\n
+\n Þú getur stýrt og aflýst áskriftunum þínum með því að fara í AppGallery stillingarnar þínar.
+ Graf
+ %1$s — %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml
index 7b4c8ad764..e950feca34 100644
--- a/OsmAnd/res/values-it/strings.xml
+++ b/OsmAnd/res/values-it/strings.xml
@@ -3718,7 +3718,7 @@
Questi elementi sono nascosti dal menu, ma le opzioni rappresentate o i plugins continueranno a funzionare.Nascondere le opzioni le reimposta al loro valore originale.Azioni principali
- Puoi accedere a queste azioni toccando il pulsante \"Azioni aggiuntive\".
+ Puoi accedere a queste azioni toccando il pulsante “%1$s”.Puoi spostare gli elementi solo all\'interno di questa categoria.Seleziona i linguaggi in cui gli articoli di Wikipedia appariranno sulla mappa. Puoi cambiare fra tutte le lingue disponibili mentre leggi questo articolo.Alcuni articoli di Wikipedia potrebbero non essere disponibili nella tua lingua.
diff --git a/OsmAnd/res/values-ja/phrases.xml b/OsmAnd/res/values-ja/phrases.xml
index 865fa35edc..495b894b2c 100644
--- a/OsmAnd/res/values-ja/phrases.xml
+++ b/OsmAnd/res/values-ja/phrases.xml
@@ -1479,7 +1479,7 @@
持ち帰り不可テイクアウト・持ち帰りのみ遺跡の種類
- 医療機関
+ 専門分野総合診療医眼科婦人科
@@ -1487,7 +1487,7 @@
整形外科耳鼻咽喉科小児科
- 医療機関:小児科:無し
+ 専門分野:小児科:無し皮膚科泌尿器科一般外科
diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml
index 85f13702a1..12e10abaef 100644
--- a/OsmAnd/res/values-nb/strings.xml
+++ b/OsmAnd/res/values-nb/strings.xml
@@ -628,7 +628,7 @@
Oversiktskart (verden)Skikart (verden)Kroatisk
- Nettfrakoblet beregning av OsmAnd-rutesegment
+ Frakoblet beregning av OsmAnd-rutesegmentBeregn OsmAnd-rute for første og siste rutesegmentStatuslinjeForetrukket språk for påskrifter på kartet (hvis utilgjengelig brukes engelsk eller lokale navn).
@@ -3694,7 +3694,7 @@
EgendefinertRetningspilertonn
- Rute mellom punkter
+ Rut mellom punkterEnduro-motorsykkelSkjermkontrollBruk systemets skjermtidsavbrudd
@@ -3706,7 +3706,7 @@
Snu ruteOverskriv sporHele sporet blir beregnet på nytt med den valgte profilen.
- Velg hvordan punkter skal forbindes; med en rett linje, eller beregn en rute mellom dem som spesifisert nedenfor.
+ Velg hvordan punktene skal forbindes; med en rett linje, eller beregn en rute mellom dem som spesifisert nedenfor.Kun det neste segmentet blir beregnet på nytt med den valgte profilen.Hele sporetNeste segment
@@ -3872,4 +3872,6 @@
\nGraf vil være tilgjengelig etter omberegning.
%1$s — %2$sGraf
+ %1$s-data er tilgjengelig kun på veiene, du må beregne en rute med “Rut mellom punkter”.
+ Spor rute
\ No newline at end of file
diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml
index 54c11b5a67..6557da422c 100644
--- a/OsmAnd/res/values-nl/strings.xml
+++ b/OsmAnd/res/values-nl/strings.xml
@@ -12,7 +12,7 @@
KijkrichtingTransparante widgetscontinu
- Vectorkaarten worden vaak sneller weergegeven. Werkt niet op sommige apparaten.
+ Vectorkaarten worden vaak sneller weergegeven. Werkt niet op alle toestellen.Kies een stem en test door aankondigingen af te spelen:OsmAnd fout-opsporing en ontwikkelingInterne kaartgeneratie
@@ -218,7 +218,7 @@
Taal niet ondersteundDe gekozen taal wordt niet ondersteund door de geïnstalleerde Android TTS (tekst-naar-spraak) stemgenerator. De standaard TTS taal zal worden gebruikt. Zoek een andere TTS stemgenerator op de markt\?Ontbrekende gegevens
- Geen gegevens voor de geselecteerde taal geïnstalleerd. Wil je naar de Play-store gaan om deze te installeren?
+ Geen gegevens voor de geselecteerde taal geïnstalleerd. Ga naar \"Play Store\" om deze te installeren\?Keer richting van GPX-track omHuidige bestemming gebruikenVolg de gehele track
@@ -251,7 +251,7 @@
Fout bij offline zoeken.Zoek adres in de offline kaartenSysteem
- App toon talen (OsmAnd dient opnieuw gestart).
+ App \"Toon talen\" (OsmAnd dient opnieuw gestart).Toon talenWijzig de eenheid van afstand voor metingen.Afstand eenheden
@@ -433,7 +433,7 @@
Naar signaal zoeken…Zoek bij het midden van de kaartZoek dichtbij
- Zelfde als apparaat-instelling
+ Zelfde als apparaatinstellingPortretLandschapKaartscherm-oriëntatie
@@ -642,7 +642,7 @@
\n
\nRasterkaarten zijn direct via online bronnen verkrijgbaar of kunnen voor offline gebruik gereedgemaakt worden (en handmatig gekopieerd naar de OsmAnd gegevensmap) als SQLite database door diverse hulpprogramma\'s van derden.
Instellingen om tracking en navigatie te kunnen gebruiken met het scherm uit (schakelt de GPS periodiek in).
- "Maakt de toegankelijkheidsopties van het toestel rechtstreeks beschikbaar in OsmAnd. Hiermee kan o.a. de spreeksnelheid van tekst-naar-spraak-stemmen aangepast worden, D-pad schermnavigatie geconfigureerd worden, een trackball gebruikt worden voor de zoomregeling, of het gebruiken van meldingen via tekst-naar-spraak, bijvoorbeeld het automatisch melden van de positie."
+ Maakt de toegankelijkheidsopties van het toestel rechtstreeks beschikbaar in OsmAnd. Hiermee kan o.a. de spreeksnelheid van tekst-naar-spraak stemmen aangepast worden, D-pad schermnavigatie geconfigureerd worden, een trackball gebruikt worden voor de zoomregeling, of het gebruiken van meldingen via tekst-naar-spraak, bijvoorbeeld het automatisch melden van de positie.Deze plug-in toont de instellingen voor ontwikkel- en debug-opties, zoals routetest en -simulatie, schermweergave-prestaties, en spraaksturing. Deze instellingen zijn bedoeld voor programmeurs die OsmAnd willen verbeteren en zijn niet nodig voor normaal gebruik.Plugins beherenSchakel plugins in voor speciale functies en extra instellingen.
@@ -750,7 +750,7 @@
OsmAnd is een open-source navigatiesysteem met online en offline kaartenOsmAnd (OSM Automated Navigation Directions)
\n
-\n OsmAnd is een open-source navigatie-app die toegang geeft tot een grote variëteit aan wereldwijde OSM-gegevens. Alle kaartgegevens (vector- of rasterkaarten) kunnen in het telefoongeheugen worden opgeslagen voor offline gebruik. OsmAnd biedt ook zowel offline als online routeaanwijzingen, met stembegeleiding.
+\nOsmAnd is een open-source navigatie-app die toegang geeft tot een grote variëteit aan wereldwijde OSM-gegevens. Alle kaartgegevens (vector- of rasterkaarten) kunnen in het telefoongeheugen worden opgeslagen voor offline gebruik. OsmAnd biedt ook zowel offline als online routeaanwijzingen, met stembegeleiding.
\n
\n Enkele van de belangrijkste mogelijkheden:
\n - Volledig offline gebruik (gedownloade vector- of rasterkaarten worden opgeslagen op het apparaat)
@@ -767,9 +767,9 @@
\n
\n Beperkingen van deze gratis versie van OsmAnd:
\n - Beperkt aantal kaartdownloads
-\n - Geen toegang tot offline Wikipedia POI\'s.
+\n - Geen toegang tot offline Wikipedia POI\'s
\n
-\n OsmAnd wordt actief ontwikkeld en ons project en de verdere vooruitgang ervan is afhankelijk van
+\nOsmAnd wordt actief ontwikkeld en ons project en de verdere vooruitgang ervan is afhankelijk van
\nfinanciële bijdragen om de ontwikkeling en testen van nieuwe functionaliteit te kunnen bekostigen.
\nWij verzoeken je om OsmAnd+ te kopen, of om een donatie over te maken via https://osmand.net.OsmAnd+ (OSM Automated Navigation Directions)
@@ -1283,7 +1283,7 @@
Widgets Linker KolomKaart instellenBinnen
- Anonieme gebruikesr kunnen geen
+ Anonieme gebruikers kunnen geen
\n- groepen aanmaken;
\n- groepen en apparaten synchroniseren met de server;
\n- groepen en apparaten beheren in een eigen omgeving op de website.
@@ -1437,7 +1437,7 @@
StartStopImporteren
- Export naar OSM
+ Exporteer naar OSMMeer…Meer actiesToon niet meer
@@ -2285,10 +2285,10 @@
\n • Toon POIs (Points Of Interest) in uw omgeving
\n • Draai de kaart in uw bewegingsrichting (of kompasrichting)
\n • Toon uw positie en waar u naar kijkt
-\n • Deel uw lokatie met vrienden
+\n • Deel uw locatie met vrienden
\n • Bewaar belangrijke plaatsen in ‘Favorieten’
\n • Toon namen in het Engels, de lokale taal, of fonetisch
-\n • Toon extra online tiles, zoals een satellietfoto (van Bing), verschillende extra lagen zoals GPX-tracks voor navigatie e.d. met instelbare transparantie
+\n • Toon extra online tegels, zoals een satellietfoto (van Bing), verschillende extra lagen zoals GPX-tracks voor navigatie e.d. met instelbare transparantie
\nSkiën
\nMet de OsmAnd Ski plug-in ziet u pistes met hun moeilijkheidsgraad, en extra informatie zoals liften en andere faciliteiten.
@@ -2302,7 +2302,7 @@
\n • De kaart toont voetpaden en wandelpaden
\n • Wikipedia kan je veel vertellen tijdens een stadswandeling, in je eigen taal
\n • OV-haltes (tram, bus, trein, metro), inclusief lijnnummers, helpen je bij het reizen in een onbekende stad
-\n • GPS-navigatie in voetgangermodus gebruikt voor het berekenen van de route voet- en wandelpaden
+\n • GPS-navigatie in voetgangersmodus gebruikt voor het berekenen van de route voet- en wandelpaden
\n • Upload en volg een GPX-route of neem er zelf één op en deel deze.
\nDraag bij aan OpenStreetMap (OSM)
@@ -2384,7 +2384,7 @@
\n • Kaart draaien in kompas- of bewegingsrichting
\n • Bewaar belangrijke plaatsen in ‘Favorieten’.
\n • Toon POI’s (points of interest) in de buurt
-\n • Toon specifieke online tiles, satellietbeelden (van Bing), en extra lagen zoals GPX-tracks met rit-/routeinformatie e.d., met instelbare transparantie
+\n • Toon specifieke online tegels, satellietbeelden (van Bing), en extra lagen zoals GPX-tracks met rit-/routeinformatie e.d., met instelbare transparantie
\n • Toon plaatsnamen in het Engels, de lokale taal of fonetisch weergegeven
\nGebruik OSM- en Wikipedia-gegevens
@@ -3235,7 +3235,7 @@
\'Freeride\' en \'Off-piste\' zijn officieuze routes en passages. Meestal onverzorgd en niet onderhouden, en niet \'s avonds gecontroleerd. Betreden op eigen risico.Verzamelde dataLaatste OsmAnd uitvoering gecrasht. Help ons alstublieft OsmAnd te verbeteren door de foutmelding te delen.
- Personal transporter
+ Persoonlijke transporteurOffroadWunderLINQWegtype
@@ -3298,24 +3298,24 @@
UitschakelenNieuwe plug-in toegevoegdSegmenten samenvoegen
- • App profiles: Create a custom profile for your own needs, with a custom icon and color
-\n
-\n • Nu aan te passen standaard en min / max snelheden voor elk profiel
-\n
-\n • Widget toegevoegd voor de huidige coördinaten
-\n
-\n • Opties toegevoegd om het kompas en een straalliniaal op de kaart te tonen
-\n
-\n • Fix background track logging
-\n
-\n • Improved background map downloads
-\n
-\n • \'Zet scherm aan\' optie is terug
-\n
-\n • Wikipedia taalkeuze aangepast
-\n
-\n • Vast kompasknop tijdens navigatie
-\n
+ • App-profielen: maak een eigen profiel, met een aangepast pictogram en kleur
+\n
+\n • Nu aan te passen standaard en min / max snelheden voor elk profiel
+\n
+\n • Widget toegevoegd voor de huidige coördinaten
+\n
+\n • Opties toegevoegd om het kompas en een straalliniaal op de kaart te tonen
+\n
+\n • Trackregistratie op de achtergrond herstellen
+\n
+\n • Verbeterde downloads van achtergrondkaarten
+\n
+\n • \'Zet scherm aan\' optie is terug
+\n
+\n • Wikipedia taalkeuze aangepast
+\n
+\n • Vast kompasknop tijdens navigatie
+\n
\n • Andere fouten verholpen
\n
\n
@@ -3567,7 +3567,7 @@
Vervang een ander punt door dit punt.ToerskiënSneeuwscooter
- Aangepaste OsmAnd-plug-in
+ Aangepaste OsmAnd plug-inElementenWijzigingen toegepast op het \'%1$s\'-profiel.Kon niet lezen van \'%1$s\'.
@@ -3579,7 +3579,7 @@
Alle talenOm Wikipedia-POI’s op de kaart te tonen zijn extra kaarten nodig.Selecteer de talen voor Wikipedia-artikelen op de kaart. Tijdens het lezen van het artikel kan omgeschakeld worden naar een andere beschikbare taal.
- Sommige Wikipedia-artikelen zijn mogelijk niet beschikbaar in de eigen taal.
+ Sommige Wikipedia-artikelen zijn mogelijk niet beschikbaar in je eigen taal.KantoneesMinnanyuYoruba
@@ -3624,8 +3624,8 @@
App-profiel wijzigingenWereldoverzichtskaart (gedetailleerd)Niet ondersteund type
- Geef de voertuigbreedte op, er zijn mogelijk routebeperkingen voor brede voertuigen.
- Geef de voertuighoogte op, er zijn mogelijk routebeperkingen voor hoge voertuigen.
+ Geef de voertuigbreedte op, er zijn mogelijk routebeperkingen voor te brede voertuigen.
+ Geef de voertuighoogte op, er zijn mogelijk routebeperkingen voor te hoge voertuigen.Geef het voertuiggewicht op, er zijn mogelijk routebeperkingen voor zwaar verkeer.OsmAnd GPX is corrupt, neem contact op met het support team voor verder onderzoek.Altijd
@@ -3636,7 +3636,7 @@
Scherm aanzetten bij elke routeaanwijzing.RouteaanwijzingenUitgeschakeld. De instelling ‘Timeout na wakker worden’ moet ingesteld zijn op ‘Scherm aanlaten’.
- Door op de aan/uit-knop te drukken gaat het scherm aan met OsmAnd op de voorgrond van het vergrendelscherm.
+ Door op de aan/uit knop te drukken gaat het scherm aan met OsmAnd op de voorgrond van het vergrendelde scherm.Aan/uit-knopNabijheidssensorSelecteer de schermtimeout na wakker worden. (Kies “%1$s” om geen timeout te gebruiken.)
@@ -3682,7 +3682,7 @@
Kies hoe gedownloade rasterkaartsegmenten worden opgeslagen.Geen overeenkomende profielen gevonden.Time-out van het scherm
- Inschakelen om het zoomniveau van de kaart in te stellen met de volumeknoppen.
+ Regel het zoomniveau, van de kaart, met de volumeknop op het apparaat.Gebruik volumeknoppen om in en uit te zoomenVerkrijg informatie over POIs uit Wikipedia. Het is je offline reisgidsje - schakel de Wikipedia-plug-in in en geniet van artikelen over de bezienswaardigheden in je omgeving.Geef de voertuiglengte op, er zijn mogelijk routebeperkingen voor lange voertuigen.
@@ -3707,7 +3707,7 @@
Het toegevoegde punt zal niet zichtbaar zijn op de kaart, aangezien de geselecteerde groep verborgen is, je kan het vinden in \"%s\".StandaardRoute tussen punten
- "Vervolgens, zet uw track vast op de dichtstbijzijnde toegestane weg met een van uw navigatieprofielen om deze optie te gebruiken."
+ Vervolgens, zet uw track vast op de dichtstbijzijnde toegestane weg met een van uw navigatieprofielen om deze optie te gebruiken.%1$s gegevens alleen beschikbaar op de wegen, u moet een route berekenen met behulp van \"Route tussen punten\" om deze te krijgen.Selecteer hoe de punten verbonden worden, via een rechte lijn, of een route berekenen tussen de punten zoals hieronder aangegeven.Alleen het volgende segment wordt opnieuw berekend met het geselecteerde profiel.
@@ -3744,7 +3744,7 @@
Alleen de routelijn wordt opgeslagen, de waypoints worden verwijderd.BewaarRoute omkeren
- "Selecteer een track waaraan je een nieuw segment wil toevoegen."
+ Selecteer een track waaraan je een nieuw segment wil toevoegen.Selecteer een trackbestand om te openen.Weet u zeker dat u alle wijzigingen in de geplande route wilt annuleren door deze te sluiten\?Opsmukken voor
@@ -3771,4 +3771,12 @@
Maak een nieuwe routeOpen een bestaande trackPlan een route
+ Gebruik 2-fasen A* routeringsalgoritme
+ Grafiek
+ Wacht op de herberekening van de route.
+\nDe grafiek is beschikbaar na herberekening.
+ %1$s — %2$s
+ Kies een trackbestand om te volgen of importeer het, vanaf uw apparaat.
+ Kloof
+ Op maat
\ No newline at end of file
diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml
index 43ef613eb1..f6e3fc9f64 100644
--- a/OsmAnd/res/values-pt-rBR/strings.xml
+++ b/OsmAnd/res/values-pt-rBR/strings.xml
@@ -3819,7 +3819,7 @@
Rota reversaA trilha inteira será recalculada usando o perfil selecionado.Apenas o próximo segmento será recalculado usando o perfil selecionado.
- Selecione como conectar pontos, por uma linha reta, ou calcular uma rota entre eles conforme especificado abaixo.
+ Escolha como conectar os pontos, por uma linha reta, ou calcular uma rota entre eles conforme especificado abaixo.Trilha inteiraPróximo segmentoPara usar esta opção, OsmAnd precisa ajustar sua trilha para as estradas do mapa.
diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml
index e01741d9c3..c25c031f20 100644
--- a/OsmAnd/res/values-zh-rTW/strings.xml
+++ b/OsmAnd/res/values-zh-rTW/strings.xml
@@ -3821,7 +3821,7 @@
反向路線整個軌跡都會使用選定的設定檔重新計算。僅下一個片段會使用選定的設定檔重新計算。
- 選取如何連接點,透過直線或以下面選定的方法計算其間的路徑。
+ 選擇如何連接點,透過直線或以下面選定的方法計算其間的路徑。整個軌道下一段接下來,使用您其中一個導航設定檔來將路線貼齊到最近可用的道路上以使用此選項。
diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index 1905c224db..d5287d60bb 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -21,6 +21,7 @@
AmenityGap%1$s — %2$s
+ Local mapsWait for the route recalculation.\nGraph will be available after recalculation.%1$s data available only on the roads, you need to calculate a route using “Route between points” to get it.Graph
diff --git a/OsmAnd/src/net/osmand/plus/SQLiteTileSource.java b/OsmAnd/src/net/osmand/plus/SQLiteTileSource.java
index b3d7ceb144..da9af5dca9 100644
--- a/OsmAnd/src/net/osmand/plus/SQLiteTileSource.java
+++ b/OsmAnd/src/net/osmand/plus/SQLiteTileSource.java
@@ -509,26 +509,27 @@ public class SQLiteTileSource implements ITileSource {
if(db == null || coordinatesZoom > 25 ){
return null;
}
- SQLiteCursor q ;
+ SQLiteCursor cursor ;
if (inversiveZoom) {
int minZoom = (17 - minZ) + 1;
// 17 - z = zoom, x << (25 - zoom) = 25th x tile = 8 + z,
- q = db.rawQuery("SELECT max(x << (8+z)), min(x << (8+z)), max(y << (8+z)), min(y << (8+z))" +
+ cursor = db.rawQuery("SELECT max(x << (8+z)), min(x << (8+z)), max(y << (8+z)), min(y << (8+z))" +
" from tiles where z < "
+ minZoom, new String[0]);
} else {
- q = db.rawQuery("SELECT max(x << (25-z)), min(x << (25-z)), max(y << (25-z)), min(y << (25-z))"
+ cursor = db.rawQuery("SELECT max(x << (25-z)), min(x << (25-z)), max(y << (25-z)), min(y << (25-z))"
+ " from tiles where z > " + minZ,
new String[0]);
}
- q.moveToFirst();
- int right = (int) (q.getInt(0) >> (25 - coordinatesZoom));
- int left = (int) (q.getInt(1) >> (25 - coordinatesZoom));
- int top = (int) (q.getInt(3) >> (25 - coordinatesZoom));
- int bottom = (int) (q.getInt(2) >> (25 - coordinatesZoom));
+ cursor.moveToFirst();
+ int right = (int) (cursor.getInt(0) >> (25 - coordinatesZoom));
+ int left = (int) (cursor.getInt(1) >> (25 - coordinatesZoom));
+ int top = (int) (cursor.getInt(3) >> (25 - coordinatesZoom));
+ int bottom = (int) (cursor.getInt(2) >> (25 - coordinatesZoom));
+
+ cursor.close();
+
return new QuadRect(left, top, right, bottom);
-
-
}
public void deleteImage(int x, int y, int zoom) {
diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java
index c28b110c85..b8d4ef0c92 100644
--- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java
+++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java
@@ -44,6 +44,7 @@ import net.osmand.IProgress;
import net.osmand.IndexConstants;
import net.osmand.Location;
import net.osmand.PlatformUtil;
+import net.osmand.StateChangedListener;
import net.osmand.data.DataTileManager;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
@@ -158,7 +159,7 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
public static final int AV_CAMERA_FOCUS_CONTINUOUS = 5;
// photo shot:
private static int shotId = 0;
- private SoundPool sp = null;
+ private SoundPool soundPool = null;
public static final int FULL_SCEEN_RESULT_DELAY_MS = 3000;
public final CommonPreference AV_CAMERA_PICTURE_SIZE;
@@ -596,6 +597,17 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
@Override
public boolean init(@NonNull final OsmandApplication app, Activity activity) {
+ if (AV_PHOTO_PLAY_SOUND.get()) {
+ loadCameraSound();
+ }
+ AV_PHOTO_PLAY_SOUND.addListener(new StateChangedListener() {
+ @Override
+ public void stateChanged(Boolean change) {
+ if (AV_PHOTO_PLAY_SOUND.get() && soundPool == null) {
+ loadCameraSound();
+ }
+ }
+ });
// initializeRemoteControlRegistrationMethods();
// AudioManager am = (AudioManager) app.getSystemService(Context.AUDIO_SERVICE);
// if (am != null) {
@@ -604,6 +616,21 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
return true;
}
+ private void loadCameraSound() {
+ if (soundPool == null) {
+ soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
+ }
+ if (shotId == 0) {
+ try {
+ AssetFileDescriptor assetFileDescriptor = app.getAssets().openFd("sounds/camera_click.ogg");
+ shotId = soundPool.load(assetFileDescriptor, 1);
+ assetFileDescriptor.close();
+ } catch (Exception e) {
+ log.error("cannot get shotId for sounds/camera_click.ogg");
+ }
+ }
+ }
+
@Override
public void registerLayers(MapActivity activity) {
this.mapActivity = activity;
@@ -1338,21 +1365,6 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
- // load sound befor shot
- if (AV_PHOTO_PLAY_SOUND.get()) {
- if (sp == null)
- sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
- if (shotId == 0) {
- try {
- AssetFileDescriptor assetFileDescriptor = app.getAssets().openFd("sounds/camera_click.ogg");
- shotId = sp.load(assetFileDescriptor, 1);
- assetFileDescriptor.close();
- } catch (Exception e) {
- log.error("cannot get shotId for sounds/camera_click.ogg");
- }
- }
- }
-
Parameters parameters = cam.getParameters();
parameters.setPictureSize(selectedCamPicSize.width, selectedCamPicSize.height);
log.debug("takePhotoWithCamera() set Picture size: width=" + selectedCamPicSize.width
@@ -1734,6 +1746,11 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
@Override
public void disable(OsmandApplication app) {
+ if (soundPool != null) {
+ soundPool.release();
+ soundPool = null;
+ shotId = 0;
+ }
// AudioManager am = (AudioManager) app.getSystemService(Context.AUDIO_SERVICE);
// if (am != null) {
// unregisterMediaListener(am);
@@ -2043,8 +2060,8 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
photoJpegData = data;
if (AV_PHOTO_PLAY_SOUND.get()) {
- if (sp != null && shotId != 0) {
- sp.play(shotId, 0.7f, 0.7f, 0, 0, 1);
+ if (soundPool != null && shotId != 0) {
+ soundPool.play(shotId, 0.7f, 0.7f, 0, 0, 1);
}
}
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/AddPOIAction.java b/OsmAnd/src/net/osmand/plus/osmedit/AddPOIAction.java
index 81462b1d4d..1db6bd0542 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/AddPOIAction.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/AddPOIAction.java
@@ -58,7 +58,7 @@ import java.util.List;
import java.util.Map;
import static net.osmand.plus.osmedit.AdvancedEditPoiFragment.addPoiToStringSet;
-import static net.osmand.plus.osmedit.EditPoiData.POI_TYPE_TAG;
+import static net.osmand.osm.edit.Entity.POI_TYPE_TAG;
public class AddPOIAction extends QuickAction {
public static final QuickActionType TYPE = new QuickActionType(13,
@@ -140,7 +140,7 @@ public class AddPOIAction extends QuickAction {
Node newNode = new Node(node.getLatitude(), node.getLongitude(), node.getId());
OsmPoint.Action action = newNode.getId() < 0 ? OsmPoint.Action.CREATE : OsmPoint.Action.MODIFY;
for (Map.Entry tag : editPoiData.getTagValues().entrySet()) {
- if (tag.getKey().equals(EditPoiData.POI_TYPE_TAG)) {
+ if (tag.getKey().equals(POI_TYPE_TAG)) {
final PoiType poiType = editPoiData.getAllTranslatedSubTypes().get(tag.getValue().trim().toLowerCase());
if (poiType != null) {
newNode.putTagNoLC(poiType.getEditOsmTag(), poiType.getEditOsmValue());
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java
index 3eabf35f6c..b538ccd0c5 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/AdvancedEditPoiFragment.java
@@ -28,6 +28,7 @@ import net.osmand.osm.MapPoiTypes;
import net.osmand.osm.PoiCategory;
import net.osmand.osm.PoiFilter;
import net.osmand.osm.PoiType;
+import net.osmand.osm.edit.Entity;
import net.osmand.osm.edit.OSMSettings;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
@@ -112,7 +113,7 @@ public class AdvancedEditPoiFragment extends BaseOsmAndFragment
if (Algorithms.objectEquals(anyTag, OSMSettings.OSMTagKey.NAME.getValue())) {
updateName();
}
- if (Algorithms.objectEquals(anyTag, EditPoiData.POI_TYPE_TAG)) {
+ if (Algorithms.objectEquals(anyTag, Entity.POI_TYPE_TAG)) {
updatePoiType();
}
}
@@ -197,9 +198,9 @@ public class AdvancedEditPoiFragment extends BaseOsmAndFragment
currentPoiTypeKey = pt.getEditOsmTag();
}
for (Entry tag : editPoiData.getTagValues().entrySet()) {
- if (tag.getKey().equals(EditPoiData.POI_TYPE_TAG)
+ if (tag.getKey().equals(Entity.POI_TYPE_TAG)
|| tag.getKey().equals(OSMSettings.OSMTagKey.NAME.getValue())
- || tag.getKey().startsWith(EditPoiData.REMOVE_TAG_PREFIX)
+ || tag.getKey().startsWith(Entity.REMOVE_TAG_PREFIX)
|| tag.getKey().equals(currentPoiTypeKey))
continue;
addTagView(tag.getKey(), tag.getValue());
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuBuilder.java b/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuBuilder.java
index 9a47563fe4..eb2b7b8c2b 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuBuilder.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuBuilder.java
@@ -5,6 +5,7 @@ import android.view.View;
import androidx.annotation.NonNull;
import net.osmand.osm.PoiType;
+import net.osmand.osm.edit.Entity;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.mapcontextmenu.MenuBuilder;
@@ -12,6 +13,8 @@ import net.osmand.plus.render.RenderingIcons;
import java.util.Map;
+import static net.osmand.osm.edit.Entity.POI_TYPE_TAG;
+
public class EditPOIMenuBuilder extends MenuBuilder {
private final OsmPoint osmPoint;
@@ -38,7 +41,7 @@ public class EditPOIMenuBuilder extends MenuBuilder {
OpenstreetmapPoint point = (OpenstreetmapPoint) osmPoint;
for (Map.Entry e : point.getEntity().getTags().entrySet()) {
- if (EditPoiData.POI_TYPE_TAG.equals(e.getKey())) {
+ if (POI_TYPE_TAG.equals(e.getKey())) {
String poiTranslation = e.getValue();
Map poiTypeMap = app.getPoiTypes().getAllTranslatedNames(false);
PoiType poiType = poiTypeMap.get(poiTranslation.toLowerCase());
@@ -63,8 +66,8 @@ public class EditPOIMenuBuilder extends MenuBuilder {
}
for (Map.Entry e : point.getEntity().getTags().entrySet()) {
- if (EditPoiData.POI_TYPE_TAG.equals(e.getKey()) ||
- e.getKey().startsWith(EditPoiData.REMOVE_TAG_PREFIX)) {
+ if (POI_TYPE_TAG.equals(e.getKey()) ||
+ e.getKey().startsWith(Entity.REMOVE_TAG_PREFIX)) {
continue;
}
String text = e.getKey() + "=" + e.getValue();
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuController.java b/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuController.java
index 7d04c73252..8134e5a3be 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuController.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/EditPOIMenuController.java
@@ -18,6 +18,8 @@ import net.osmand.util.Algorithms;
import java.util.Map;
+import static net.osmand.osm.edit.Entity.POI_TYPE_TAG;
+
public class EditPOIMenuController extends MenuController {
private OsmPoint osmPoint;
@@ -166,7 +168,7 @@ public class EditPOIMenuController extends MenuController {
if (osmPoint.getGroup() == OsmPoint.Group.POI) {
OpenstreetmapPoint osmP = (OpenstreetmapPoint) osmPoint;
int iconResId = 0;
- String poiTranslation = osmP.getEntity().getTag(EditPoiData.POI_TYPE_TAG);
+ String poiTranslation = osmP.getEntity().getTag(POI_TYPE_TAG);
MapActivity mapActivity = getMapActivity();
if (poiTranslation != null && mapActivity != null) {
Map poiTypeMap = mapActivity.getMyApplication().getPoiTypes().getAllTranslatedNames(false);
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiData.java b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiData.java
index b11c828436..7dab7780b0 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiData.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiData.java
@@ -17,15 +17,15 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
+import static net.osmand.osm.edit.Entity.POI_TYPE_TAG;
+
public class EditPoiData {
private static final Log LOG = PlatformUtil.getLog(EditPoiData.class);
private Set mListeners = new HashSet<>();
- private LinkedHashMap tagValues = new LinkedHashMap();
+ private final LinkedHashMap tagValues = new LinkedHashMap();
private boolean isInEdit = false;
private Entity entity;
-
- public static final String POI_TYPE_TAG = "poi_type_tag";
- public static final String REMOVE_TAG_PREFIX = "----";
+
public static final String REMOVE_TAG_VALUE = "DELETE";
private boolean hasChangesBeenMade = false;
private Map allTranslatedSubTypes;
@@ -123,7 +123,7 @@ public class EditPoiData {
checkNotInEdit();
try {
isInEdit = true;
- tagValues.remove(REMOVE_TAG_PREFIX+tag);
+ tagValues.remove(Entity.REMOVE_TAG_PREFIX + tag);
String oldValue = tagValues.get(tag);
if (oldValue == null || !oldValue.equals(value)) {
changedTags.add(tag);
@@ -154,9 +154,9 @@ public class EditPoiData {
public void removeTag(String tag) {
checkNotInEdit();
- try {
+ try {
isInEdit = true;
- tagValues.put(REMOVE_TAG_PREFIX+tag, REMOVE_TAG_VALUE);
+ tagValues.put(Entity.REMOVE_TAG_PREFIX + tag, REMOVE_TAG_VALUE);
tagValues.remove(tag);
changedTags.remove(tag);
notifyDatasetChanged(tag);
@@ -216,7 +216,7 @@ public class EditPoiData {
PoiType pt = getPoiTypeDefined();
String editOsmTag = pt != null ? pt.getEditOsmTag() : null;
if (editOsmTag != null) {
- removeTypeTagWithPrefix(!tagValues.containsKey(REMOVE_TAG_PREFIX + editOsmTag));
+ removeTypeTagWithPrefix(!tagValues.containsKey(Entity.REMOVE_TAG_PREFIX + editOsmTag));
currentPoiType = pt;
String tagVal = pt.getEditOsmValue() != null ? pt.getEditOsmValue() : "";
tagValues.put(editOsmTag, tagVal);
@@ -237,11 +237,11 @@ public class EditPoiData {
private void removeTypeTagWithPrefix(boolean needRemovePrefix) {
if (currentPoiType != null) {
if (needRemovePrefix) {
- tagValues.put(REMOVE_TAG_PREFIX + currentPoiType.getEditOsmTag(), REMOVE_TAG_VALUE);
- tagValues.put(REMOVE_TAG_PREFIX + currentPoiType.getOsmTag2(), REMOVE_TAG_VALUE);
+ tagValues.put(Entity.REMOVE_TAG_PREFIX + currentPoiType.getEditOsmTag(), REMOVE_TAG_VALUE);
+ tagValues.put(Entity.REMOVE_TAG_PREFIX + currentPoiType.getOsmTag2(), REMOVE_TAG_VALUE);
} else {
- tagValues.remove(REMOVE_TAG_PREFIX + currentPoiType.getEditOsmTag());
- tagValues.remove(REMOVE_TAG_PREFIX + currentPoiType.getOsmTag2());
+ tagValues.remove(Entity.REMOVE_TAG_PREFIX + currentPoiType.getEditOsmTag());
+ tagValues.remove(Entity.REMOVE_TAG_PREFIX + currentPoiType.getOsmTag2());
}
removeCurrentTypeTag();
}
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java
index 7c0edb7168..ecdc776c78 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java
@@ -90,6 +90,8 @@ import java.util.Set;
import studio.carbonylgroup.textfieldboxes.ExtendedEditText;
+import static net.osmand.osm.edit.Entity.POI_TYPE_TAG;
+
public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
public static final String TAG = EditPoiDialogFragment.class.getSimpleName();
private static final Log LOG = PlatformUtil.getLog(EditPoiDialogFragment.class);
@@ -499,21 +501,21 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
Action action = entity.getId() < 0 ? Action.CREATE : Action.MODIFY;
for (Map.Entry tag : editPoiData.getTagValues().entrySet()) {
- if (!Algorithms.isEmpty(tag.getKey()) && !Algorithms.isEmpty(tag.getValue()) &&
- !tag.getKey().equals(EditPoiData.POI_TYPE_TAG)) {
+ if (!Algorithms.isEmpty(tag.getKey()) && !Algorithms.isEmpty(tag.getValue()) &&
+ !tag.getKey().equals(POI_TYPE_TAG)) {
entity.putTagNoLC(tag.getKey(), tag.getValue());
}
}
- String poiTypeTag = editPoiData.getTagValues().get(EditPoiData.POI_TYPE_TAG);
+ String poiTypeTag = editPoiData.getTagValues().get(POI_TYPE_TAG);
String comment = "";
if (poiTypeTag != null) {
final PoiType poiType = editPoiData.getAllTranslatedSubTypes().get(poiTypeTag.trim().toLowerCase());
if (poiType != null) {
entity.putTagNoLC(poiType.getEditOsmTag(), poiType.getEditOsmValue());
- entity.removeTag(EditPoiData.REMOVE_TAG_PREFIX + poiType.getEditOsmTag());
+ entity.removeTag(Entity.REMOVE_TAG_PREFIX + poiType.getEditOsmTag());
if (poiType.getOsmTag2() != null) {
entity.putTagNoLC(poiType.getOsmTag2(), poiType.getOsmValue2());
- entity.removeTag(EditPoiData.REMOVE_TAG_PREFIX + poiType.getOsmTag2());
+ entity.removeTag(Entity.REMOVE_TAG_PREFIX + poiType.getOsmTag2());
}
} else if (!Algorithms.isEmpty(poiTypeTag)) {
PoiCategory category = editPoiData.getPoiCategory();
@@ -522,7 +524,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
}
}
if (offlineEdit && !Algorithms.isEmpty(poiTypeTag)) {
- entity.putTagNoLC(EditPoiData.POI_TYPE_TAG, poiTypeTag);
+ entity.putTagNoLC(POI_TYPE_TAG, poiTypeTag);
}
String actionString = action == Action.CREATE ? getString(R.string.default_changeset_add) : getString(R.string.default_changeset_edit);
comment = actionString + " " + poiTypeTag;
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapLocalUtil.java b/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapLocalUtil.java
index c55e2099ed..26eda5f4e5 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapLocalUtil.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapLocalUtil.java
@@ -24,6 +24,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import static net.osmand.osm.edit.Entity.POI_TYPE_TAG;
+
public class OpenstreetmapLocalUtil implements OpenstreetmapUtil {
public final static Log LOG = PlatformUtil.getLog(OpenstreetmapLocalUtil.class);
@@ -122,7 +124,7 @@ public class OpenstreetmapLocalUtil implements OpenstreetmapUtil {
entity = new Node(loc.getLatitude(), loc.getLongitude(), entityId);
}
if (poiType != null) {
- entity.putTagNoLC(EditPoiData.POI_TYPE_TAG, poiType.getTranslation());
+ entity.putTagNoLC(POI_TYPE_TAG, poiType.getTranslation());
if (poiType.getOsmTag2() != null) {
entity.putTagNoLC(poiType.getOsmTag2(), poiType.getOsmValue2());
}
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapPoint.java b/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapPoint.java
index 69bc753ab4..d7c17c1ec2 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapPoint.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapPoint.java
@@ -28,7 +28,7 @@ public class OpenstreetmapPoint extends OsmPoint {
String type = "amenity";
for (String k : entity.getTagKeySet()) {
if (!OSMTagKey.NAME.getValue().equals(k) && !OSMTagKey.OPENING_HOURS.getValue().equals(k) &&
- !k.startsWith(EditPoiData.REMOVE_TAG_PREFIX)) {
+ !k.startsWith(Entity.REMOVE_TAG_PREFIX)) {
type = k;
break;
}
@@ -75,6 +75,20 @@ public class OpenstreetmapPoint extends OsmPoint {
this.comment = comment;
}
+ public String getTagsString() {
+ StringBuilder sb = new StringBuilder();
+ for (String tag : entity.getTagKeySet()) {
+ String val = entity.getTag(tag);
+ if (entity.isNotValid(tag)) {
+ continue;
+ }
+ sb.append(tag).append(" : ");
+ sb.append(val).append("; ");
+ }
+ return sb.toString();
+ }
+
+
@Override
public String toString() {
return new StringBuffer("Openstreetmap Point ").append(this.getAction()).append(" ").append(this.getName())
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java b/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java
index b90a22c0b9..8940093c19 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java
@@ -39,7 +39,8 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.ExecutionException;
+
+import static net.osmand.osm.edit.Entity.POI_TYPE_TAG;
public class OpenstreetmapRemoteUtil implements OpenstreetmapUtil {
@@ -273,8 +274,8 @@ public class OpenstreetmapRemoteUtil implements OpenstreetmapUtil {
throws IllegalArgumentException, IllegalStateException, IOException {
for (String k : entity.getTagKeySet()) {
String val = entity.getTag(k);
- if (val.length() == 0 || k.length() == 0 || EditPoiData.POI_TYPE_TAG.equals(k) ||
- k.startsWith(EditPoiData.REMOVE_TAG_PREFIX) || k.contains(EditPoiData.REMOVE_TAG_PREFIX))
+ if (val.length() == 0 || k.length() == 0 || POI_TYPE_TAG.equals(k) ||
+ k.startsWith(Entity.REMOVE_TAG_PREFIX) || k.contains(Entity.REMOVE_TAG_PREFIX))
continue;
ser.startTag(null, "tag"); //$NON-NLS-1$
ser.attribute(null, "k", k); //$NON-NLS-1$
@@ -455,7 +456,7 @@ public class OpenstreetmapRemoteUtil implements OpenstreetmapUtil {
}
private boolean deletedTag(Entity entity, String tag) {
- return entity.getTagKeySet().contains(EditPoiData.REMOVE_TAG_PREFIX + tag);
+ return entity.getTagKeySet().contains(Entity.REMOVE_TAG_PREFIX + tag);
}
@Override
@@ -542,12 +543,12 @@ public class OpenstreetmapRemoteUtil implements OpenstreetmapUtil {
PoiType poiType = type.getPoiTypeByKeyName(subType);
if (poiType != null && poiType.getEditOsmValue().equals(entity.getTag(poiType.getEditOsmTag()))) {
entity.removeTag(poiType.getEditOsmTag());
- entity.putTagNoLC(EditPoiData.POI_TYPE_TAG, poiType.getTranslation());
+ entity.putTagNoLC(POI_TYPE_TAG, poiType.getTranslation());
} else {
for (PoiType pt : type.getPoiTypes()) {
if (pt.getEditOsmValue().equals(entity.getTag(pt.getEditOsmTag()))) {
entity.removeTag(pt.getEditOsmTag());
- entity.putTagNoLC(EditPoiData.POI_TYPE_TAG, pt.getTranslation());
+ entity.putTagNoLC(POI_TYPE_TAG, pt.getTranslation());
}
}
}
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java
index ea779a93b1..5b9b9eb7ce 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java
@@ -5,8 +5,12 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
+import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
+import android.text.SpannableString;
+import android.text.TextUtils;
+import android.text.style.StyleSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ArrayAdapter;
@@ -57,6 +61,7 @@ import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_C
import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_OPEN_OSM_NOTE;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.OSM_EDITS;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.OSM_NOTES;
+import static net.osmand.osm.edit.Entity.POI_TYPE_TAG;
import static net.osmand.plus.ContextMenuAdapter.makeDeleteAction;
@@ -528,6 +533,15 @@ public class OsmEditingPlugin extends OsmandPlugin {
}
}
+ public static SpannableString getTitle(OsmPoint osmPoint, Context ctx) {
+ SpannableString title = new SpannableString(getName(osmPoint));
+ if (TextUtils.isEmpty(title)) {
+ title = SpannableString.valueOf(getCategory(osmPoint, ctx));
+ title.setSpan(new StyleSpan(Typeface.ITALIC), 0, title.length(), 0);
+ }
+ return title;
+ }
+
public static String getName(OsmPoint point) {
if (point.getGroup() == OsmPoint.Group.POI) {
return ((OpenstreetmapPoint) point).getName();
@@ -541,7 +555,7 @@ public class OsmEditingPlugin extends OsmandPlugin {
public static String getCategory(OsmPoint osmPoint, Context context) {
String category = "";
if (osmPoint.getGroup() == OsmPoint.Group.POI) {
- category = ((OpenstreetmapPoint) osmPoint).getEntity().getTag(EditPoiData.POI_TYPE_TAG);
+ category = ((OpenstreetmapPoint) osmPoint).getEntity().getTag(POI_TYPE_TAG);
if (Algorithms.isEmpty(category)) {
category = context.getString(R.string.shared_string_without_name);
}
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsAdapter.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsAdapter.java
index f965318109..d4c2ad099f 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsAdapter.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsAdapter.java
@@ -1,11 +1,7 @@
package net.osmand.plus.osmedit;
import android.content.Context;
-import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
-import android.text.SpannableString;
-import android.text.TextUtils;
-import android.text.style.StyleSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -21,6 +17,7 @@ import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import net.osmand.osm.PoiType;
+import net.osmand.osm.edit.Entity;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.UiUtilities;
@@ -182,7 +179,7 @@ public class OsmEditsAdapter extends ArrayAdapter