From 2a50f7d1d82937c377086bd9585b954410a6433e Mon Sep 17 00:00:00 2001 From: MadWasp79 Date: Mon, 30 Nov 2020 19:41:20 +0200 Subject: [PATCH 01/21] Wikivoyage to OBF migration: Show detailed articles. --- .../main/java/net/osmand/data/Amenity.java | 1 + .../plus/wikivoyage/data/TravelObfHelper.java | 107 ++++++++++++++++-- 2 files changed, 97 insertions(+), 11 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java index f7be034cbe..1759e79034 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java @@ -43,6 +43,7 @@ public class Amenity extends MapObject { public static final String IS_PART = "is_part"; public static final String IS_AGGR_PART = "is_aggr_part"; public static final String CONTENT_JSON = "content_json"; + public static final String ROUTE_ID = "route_id"; private String subType; diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java b/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java index 3f6b27129e..298d0f3d9d 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java @@ -25,10 +25,13 @@ import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; +import gnu.trove.map.TLongObjectMap; +import gnu.trove.map.hash.TLongObjectHashMap; public class TravelObfHelper implements TravelHelper{ @@ -46,13 +49,14 @@ public class TravelObfHelper implements TravelHelper{ private List existingTravelBooks = new ArrayList<>(); private List popularArticles = new ArrayList(); - private BinaryMapIndexReader index = null; + private TLongObjectMap cachedArticles; public TravelObfHelper(OsmandApplication application) { this.application = application; collator = OsmAndCollator.primaryCollator(); localDataHelper = new TravelLocalDataHelper(application); + cachedArticles = new TLongObjectHashMap<>(); } public static boolean checkIfObfFileExists(OsmandApplication app) { @@ -194,7 +198,9 @@ public class TravelObfHelper implements TravelHelper{ while (it.hasNext()) { Amenity a = it.next(); if (!a.getName(language).equals("")) { - popularArticles.add(readArticle(a, language)); + TravelArticle article = readArticle(a, language); + popularArticles.add(article); + writeToCache(article); } } } @@ -205,7 +211,6 @@ public class TravelObfHelper implements TravelHelper{ return popularArticles; } - private TravelArticle readArticle(Amenity amenity, String lang) { TravelArticle res = new TravelArticle(); @@ -215,13 +220,22 @@ public class TravelObfHelper implements TravelHelper{ res.lat = amenity.getLocation().getLatitude(); res.lon = amenity.getLocation().getLongitude(); res.imageTitle = amenity.getTagContent(Amenity.IMAGE_TITLE, lang) == null ? "" : amenity.getTagContent(Amenity.IMAGE_TITLE, lang); - res.tripId = amenity.getId(); //? + long tripId = -1; + String val = amenity.getTagContent(Amenity.ROUTE_ID, null); + if (val != null && val.startsWith("Q")) { + try { + tripId = Long.parseLong(val.substring(1)); + } catch (NumberFormatException nfe) { + LOG.error(nfe.getMessage()); + } + } + res.tripId = tripId; res.originalId = 0; //? res.lang = lang; res.contentsJson = amenity.getTagContent(Amenity.CONTENT_JSON, lang) == null ? "" : amenity.getTagContent(Amenity.CONTENT_JSON, lang); res.aggregatedPartOf = amenity.getTagContent(Amenity.IS_AGGR_PART, lang) == null ? "" : amenity.getTagContent(Amenity.IS_AGGR_PART, lang); -// crash in some places, need to fix it +// occasional crashes // try { // String gpxContent = amenity.getAdditionalInfo("gpx_info"); // res.gpxFile = GPXUtilities.loadGPXFile(new ByteArrayInputStream(gpxContent.getBytes("UTF-8"))); @@ -254,14 +268,75 @@ public class TravelObfHelper implements TravelHelper{ return null; } - @Override - public TravelArticle getArticle(long cityId, String lang) { - return null; + private void writeToCache(TravelArticle article) { + cachedArticles.put(article.tripId, article); + } + + private TravelArticle getArticleFromCache(long tripId, String lang) { + + TravelArticle article = cachedArticles.get(tripId); +// if (aa != null) { +// article = readArticle(aa, lang); +// } + return article; } @Override - public TravelArticle getArticle(String title, String lang) { - return null; + public TravelArticle getArticle(long resId, String lang) { + TravelArticle article = getArticleFromCache(resId, lang); + if (article != null) { + return article; + } + String name = ""; //??? + return getArticle(name, lang); + } + + @Override + public TravelArticle getArticle(final String title, final String lang) { + TravelArticle res = null; + List amenities = Collections.emptyList(); + try { + BinaryMapIndexReader indexReader = getBookBinaryIndex(); + if (indexReader != null) { + int left = 0; + int top = 0; + int right = Integer.MAX_VALUE; + int bottom = Integer.MAX_VALUE; + final List results = new ArrayList<>(); + + LatLon ll = application.getMapViewTrackingUtilities().getMapLocation(); + + BinaryMapIndexReader.SearchRequest req = BinaryMapIndexReader.buildSearchPoiRequest( + MapUtils.get31TileNumberX(ll.getLongitude()), + MapUtils.get31TileNumberY(ll.getLatitude()), title, + left, top, right, bottom, + new ResultMatcher() { + @Override + public boolean publish(Amenity object) { + if (object.getName(lang).equals(title)) { + results.add(object); + return true; + } + return false; + } + + @Override + public boolean isCancelled() { + return false; + } + }); + + amenities = indexReader.searchPoiByName(req); + } + } catch (IOException e) { + //todo + } + if (!amenities.isEmpty()) { + for (Amenity a : amenities) { + LOG.debug("searched article: " + a); + } + } + return res; } @Override @@ -269,9 +344,19 @@ public class TravelObfHelper implements TravelHelper{ return 0; } + + //TODO finish stub @Override public ArrayList getArticleLangs(long cityId) { - return null; + ArrayList res = new ArrayList<>(); + res.add("en"); + + for (TravelArticle article : popularArticles) { + if (article.getTripId() == cityId) { + res.add(article.getLang()); + } + } + return res; } @Override From 22aa0cdfbde656daf1e130b3efd1604494a85f8b Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Sun, 29 Nov 2020 11:09:07 +0000 Subject: [PATCH 02/21] Translated using Weblate (French) Currently translated at 99.9% (3569 of 3572 strings) --- OsmAnd/res/values-fr/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 9e64844dfd..7973ff27cd 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3976,4 +3976,5 @@ Impossible d\'envoyer l\'image, veuillez réessayer plus tard Sélectionnez une image %1$s * %2$s + Allemand (courant) \ No newline at end of file From 352a82bf8a0479890dcd4933f7a07b1a3ff1231d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Babos=20G=C3=A1bor?= Date: Sun, 29 Nov 2020 16:28:09 +0000 Subject: [PATCH 03/21] Translated using Weblate (Hungarian) Currently translated at 99.9% (3571 of 3572 strings) --- OsmAnd/res/values-hu/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 495bb2bca2..ec57f089ad 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3990,4 +3990,6 @@ A dev.openstreetmap.org használata Nem lehet feltölteni a képet, kérjük, próbálja meg később Kép kijelölése + német (tegeződő) + %1$s * %2$s \ No newline at end of file From 44cc6931e3bda493db3a6520ba12cb5c47065099 Mon Sep 17 00:00:00 2001 From: Ihor Hordiichuk Date: Sun, 29 Nov 2020 20:21:18 +0000 Subject: [PATCH 04/21] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3572 of 3572 strings) --- OsmAnd/res/values-uk/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 3e9e76b023..2a9bae4b58 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -3996,4 +3996,5 @@ Не вдається завантажити зображення, повторіть спробу пізніше Вибрати зображення %1$s * %2$s + Німецька (неформальна) \ No newline at end of file From 889a304401578dd55f6aeea594ded2d60b55dfc2 Mon Sep 17 00:00:00 2001 From: x Date: Mon, 30 Nov 2020 23:09:37 +0000 Subject: [PATCH 05/21] Translated using Weblate (Italian) Currently translated at 89.3% (3191 of 3572 strings) --- OsmAnd/res/values-it/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index c83c5e1385..b382c3973a 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -3952,7 +3952,7 @@ Aggiungi foto Registrati su \nOpenPlaceReviews.org - Per contribuire delle altre foto autenticati nel sito del progetto a sorgente aperto OpenPlaceReviews.org. + Le foto sono fornite dal progetto open data OpenPlaceReviews.org. Per caricare le tue foto devi registrarti sul sito web. Crea un nuovo account Ho già un account Cronologia di ricerca @@ -3960,7 +3960,7 @@ Motoscafo Connettiti a OpenStreetMap Connettiti a OpenStreetMap.org - Registrati con OpenStreetMap + Accedi con OpenStreetMap Devi fare il login per inviare nuove modifiche o dei cambiamenti. \n \nPuoi fare login utilizzando il metodo sicuro OAuth o il nomeutente e password. From ccedaa4a8bf25e75e334c61ff3816f6b8623f151 Mon Sep 17 00:00:00 2001 From: Mirco Zorzo Date: Mon, 30 Nov 2020 18:58:50 +0000 Subject: [PATCH 06/21] Translated using Weblate (Italian) Currently translated at 89.3% (3191 of 3572 strings) --- OsmAnd/res/values-it/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index b382c3973a..0a6aae70fe 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -3998,4 +3998,5 @@ Impossibile caricare l\'immagine, riprovare in seguito Scegli la foto %1$s * %2$s + German (casual) \ No newline at end of file From e721695a87e7d2a38854ea70fd82c9ad6f5d7a3b Mon Sep 17 00:00:00 2001 From: ace shadow Date: Mon, 30 Nov 2020 06:20:37 +0000 Subject: [PATCH 07/21] Translated using Weblate (Slovak) Currently translated at 99.8% (3568 of 3572 strings) --- OsmAnd/res/values-sk/strings.xml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index 840c817c8e..54f7a87f39 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -3953,13 +3953,13 @@ Predplatné OsmAnd Live skončilo Predplatné OsmAnd Live je pozastavené Predplatné OsmAnd Live je zablokované - Prihlásenie pre OpenStreetMap - Prihlásenie pre OpenStreetMap.org - Prihlásiť sa do OpenStreetMap - Prihláste sa pre odoslanie nových alebo zmenených údajov, + Prihlásiť sa do OpenStreetMap + Prihlásiť sa do OpenStreetMap.org + Zaregistrovať sa do OpenStreetMap + Musíte sa prihlásiť pre odoslanie nových alebo zmenených údajov. \n -\nbuď pomocou metódy OAuth alebo pomocou mena a hesla. - Prihlásiť sa menom a heslom +\nMôžete sa prihlásiť pomocou bezpečnej metódy OAuth alebo pomocou mena a hesla. + Použiť meno a heslo Účet Prihlasovacie meno História značiek @@ -3967,11 +3967,11 @@ Zadajte značky oddelené čiarkou. Zatvoriť OSM poznámku Komentovať OSM poznámku - Prihláste sa bezpečnou metódou OAuth alebo použite meno a heslo. + Môžete sa prihlásiť bezpečnou metódou OAuth alebo použite meno a heslo. Pridať foto Zaregistrovať na \nOpenPlaceReviews.org - Prihláste sa na webstránke projektu OpenPlaceReviews.org s otvorenými dátami pre odoslanie ďalších fotografií. + Fotografie sú poskytované projektom OpenPlaceReviews.org s otvorenými dátami. Na odoslanie vašich fotiek sa musíte zaregistrovať na webovej stránke. Vytvoriť nový účet Už mám účet História hľadania @@ -3993,6 +3993,8 @@ Zvoľte položky, ktoré budú importované. Prepnúť na dev.openstreetmap.org namiesto openstreetmap.org pre otestovanie odosielania OSM poznámok / bodov záujmu / GPX stôp. Použiť dev.openstreetmap.org - - + Nedá sa odoslať obrázok, prosím skúste neskôr + Zvoľte obrázok + Nemecky (Deutsch) úsporne + %1$s * %2$s \ No newline at end of file From f714d730fb002412b419a2a2cebea2e773dd9b29 Mon Sep 17 00:00:00 2001 From: D M Date: Mon, 30 Nov 2020 13:41:10 +0000 Subject: [PATCH 08/21] Translated using Weblate (Serbian) Currently translated at 100.0% (3572 of 3572 strings) --- OsmAnd/res/values-sr/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 734562aaca..5b5058fea5 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -1648,7 +1648,7 @@ Холандски Грузијски Хебрејски - Хинди + Индијски Мађарски (званични) Канада Летонски @@ -3993,4 +3993,5 @@ Пређите на употребу dev.openstreetmap.org уместо на openstreetmap.org да бисте тестирали отпремање ОСМ белешке / ПОИ / ГПКС. Употреби dev.openstreetmap.org %1$s * %2$s + Немачки (говорни) \ No newline at end of file From c3ad48bb46198f8a424d3067861fe18e6fe11b4b Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sun, 29 Nov 2020 13:18:37 +0000 Subject: [PATCH 09/21] Translated using Weblate (Hebrew) Currently translated at 99.8% (3568 of 3572 strings) --- OsmAnd/res/values-iw/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml index 179d8ee142..f8d10bfa90 100644 --- a/OsmAnd/res/values-iw/strings.xml +++ b/OsmAnd/res/values-iw/strings.xml @@ -3982,7 +3982,7 @@ היסטוריית חיפוש קיאק סירת מנוע - + משאבים גודל קובץ משוערך נא לבחור את הנתונים שייוצאו לקובץ. @@ -4001,4 +4001,6 @@ להשתמש ב־dev.openstreetmap.org לא ניתן להעלות תמונה, נא לנסות שוב מאוחר יותר בחירת תמונה + גרמנית (עממית) + ‏%1$s‏ * %2$s \ No newline at end of file From 0ccefc5dece9a1dbf314b928d52ee830e657c8e9 Mon Sep 17 00:00:00 2001 From: WaldiS Date: Sun, 29 Nov 2020 18:30:29 +0000 Subject: [PATCH 10/21] Translated using Weblate (Polish) Currently translated at 99.6% (3558 of 3572 strings) --- OsmAnd/res/values-pl/strings.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 2d58273576..35ff35b4ee 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -3972,12 +3972,12 @@ Historia znaczników Wyślij plik GPX do OpenStreetMap Wpisz tagi oddzielone przecinkami. - Możliwość śledzenia oznacza, że ślad nie pojawi się na żadnej publicznej liście, ale punkty śledzenia będą nadal dostępne za pośrednictwem publicznego API GPS ze znacznikami czasu. Inni użytkownicy będą mogli pobrać tylko te przetworzone punkty śledzenia z Twojego śladu, których nie można powiązać bezpośrednio z Tobą. + „Śledzenie” oznacza, że ślad nie pojawia się w żadnych publicznych wykazach, ale przetworzone punkty śledzenia z sygnaturami czasowymi (których nie można bezpośrednio powiązać z Tobą) są pobierane z publicznego interfejsu GPS API. Zaloguj się przy użyciu bezpiecznej metody autoryzacji OAuth lub użyj swojej nazwy użytkownika i hasła. Dodaj zdjęcie Zarejestruj się w \nOpenPlaceReviews.org - Zaloguj się na stronie projektu otwartych danych OpenPlaceReviews.org, aby przesłać jeszcze więcej zdjęć. + Zdjęcia są dostarczane przez otwarty projekt OpenPlaceReviews.org. Aby przesłać swoje zdjęcia, musisz zarejestrować się na stronie. Utwórz nowe konto Mam już konto Wybierz grupy, które zostaną zaimportowane. @@ -3999,4 +3999,6 @@ Motorówka Dodaj do Mapillary Dodaj do OpenPlaceReviews + „Prywatny” oznacza, że ślad nie pojawia się w żadnych publicznych wykazach, ale punkty śledzenia z niego w kolejności niechronologicznej są dostępne za pośrednictwem publicznego interfejsu API GPS bez sygnatur czasowych. + \"Możliwe do zidentyfikowania\" oznacza, że ślad zostanie podany publicznie w śladach GPS i w publicznych wykazach śledzenia GPS, czyli inni użytkownicy będą mogli pobrać surowy ślad i skojarzyć go z twoją nazwą użytkownika. Publiczne dane śledzenia sygnatury czasowej z interfejsu API GPS obsługiwane za pośrednictwem interfejsu API punktów śladowych będą odwoływać się do oryginalnej strony śledzenia. \ No newline at end of file From f0226f29aa48fd1930642028062b1984739c7c65 Mon Sep 17 00:00:00 2001 From: Michal L Date: Sun, 29 Nov 2020 13:39:33 +0000 Subject: [PATCH 11/21] Translated using Weblate (Polish) Currently translated at 99.6% (3558 of 3572 strings) --- OsmAnd/res/values-pl/strings.xml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 35ff35b4ee..e0572077bc 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -3369,7 +3369,7 @@ Szacuje czas przyjazdu dla nieznanego rodzaju dróg i ograniczenia prędkości na wszystkich drogach (może zmienić trasę) Odwróć początek i cel Zapisano ślad - Nazwa pliku jest pusta + Pusta nazwa pliku Przywróć Przycisk umożliwiający wyśrodkowanie ekranu w punkcie wyjścia. Następnie poprosi o ustawienie miejsca docelowego lub uruchomi obliczanie trasy. Wyczyścić %1$s\? @@ -3958,14 +3958,14 @@ Musisz dodać co najmniej dwa punkty Wystąpił problem z Twoją subskrypcją. Kliknij przycisk, aby przejść do ustawień subskrypcji Google Play i naprawić metodę płatności. Subskrypcja OsmAnd Live jest wstrzymana - Nazwa użytkownika + Login Zaloguj się do OpenStreetMap Zaloguj się do OpenStreetMap.org Zaloguj się za pomocą OpenStreetMap Zaloguj się, aby przesłać nowe lub zmodyfikowane zmiany, \n \nza pomocą protokołu OAuth lub nazwy użytkownika i hasła. - Zaloguj się za pomocą nazwy użytkownika i hasła + Użyj loginu i hasła Konto Zamknij uwagę OSM Skomentuj uwagę OSM @@ -3973,7 +3973,7 @@ Wyślij plik GPX do OpenStreetMap Wpisz tagi oddzielone przecinkami. „Śledzenie” oznacza, że ślad nie pojawia się w żadnych publicznych wykazach, ale przetworzone punkty śledzenia z sygnaturami czasowymi (których nie można bezpośrednio powiązać z Tobą) są pobierane z publicznego interfejsu GPS API. - Zaloguj się przy użyciu bezpiecznej metody autoryzacji OAuth lub użyj swojej nazwy użytkownika i hasła. + Możesz zalogować się za pomocą bezpiecznej metody autoryzacji OAuth lub przy użyciu swojego loginu i hasła. Dodaj zdjęcie Zarejestruj się w \nOpenPlaceReviews.org @@ -4001,4 +4001,7 @@ Dodaj do OpenPlaceReviews „Prywatny” oznacza, że ślad nie pojawia się w żadnych publicznych wykazach, ale punkty śledzenia z niego w kolejności niechronologicznej są dostępne za pośrednictwem publicznego interfejsu API GPS bez sygnatur czasowych. \"Możliwe do zidentyfikowania\" oznacza, że ślad zostanie podany publicznie w śladach GPS i w publicznych wykazach śledzenia GPS, czyli inni użytkownicy będą mogli pobrać surowy ślad i skojarzyć go z twoją nazwą użytkownika. Publiczne dane śledzenia sygnatury czasowej z interfejsu API GPS obsługiwane za pośrednictwem interfejsu API punktów śladowych będą odwoływać się do oryginalnej strony śledzenia. + Wybierz zdjęcie + Nie można przesłać obrazu, spróbuj ponownie później + %1$s * %2$s \ No newline at end of file From 141184b104e10de78f940bb7cc2f2bbf1edda5a3 Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood Date: Mon, 30 Nov 2020 03:16:33 +0000 Subject: [PATCH 12/21] Translated using Weblate (Arabic) Currently translated at 100.0% (3572 of 3572 strings) --- OsmAnd/res/values-ar/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index c218ee7f72..e4937c35f5 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -3987,4 +3987,5 @@ لا يمكن تحميل الصورة، من فضلك، حاول مرة أخرى في وقت لاحق تحديد صورة %1$s * %2$s + الألمانية (تقليدية) \ No newline at end of file From 137e35ad3dde4ad6654039068130dc261e2b7f52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sun, 29 Nov 2020 13:30:58 +0000 Subject: [PATCH 13/21] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 50.6% (1810 of 3572 strings) --- OsmAnd/res/values-nb/strings.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index c2f36f8a9e..e0c2624bce 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -2799,8 +2799,9 @@ \n• Andre feilrettinger \n Sender inn vei… - Vi kommer til å sende inn ditt søk \"%1$s\", sammen med din plassering. -\nIngen personlig informasjon samles inn, søkedata brukes kun for å forbedre søkealgoritmen. + Vi kommer til å sende inn ditt søk «%1$s», sammen med din plassering. +\n +\nIngen personlig info samles inn, søkedata brukes kun for å forbedre søkealgoritmen. Trykk på en knapp og lytt til den tilhørende talemeldingen for å høre om den mangler eller er feil • Fikset krasj ved oppstart som skjedde på noen enheter \n From cbc2f543baf22d5ed9c8493ba9dceb20e7c866c8 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Sun, 29 Nov 2020 12:11:46 +0000 Subject: [PATCH 14/21] Translated using Weblate (Sardinian) Currently translated at 99.7% (3563 of 3572 strings) --- OsmAnd/res/values-sc/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 8d461da61d..9ea89f1e1d 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3997,4 +3997,5 @@ Impossìbile carrigare s\'immàgine, torra a proare prus a tardu Ischerta un\'immàgine %1$s * %2$s + Tedescu (informale) \ No newline at end of file From e095de2685431f2f036af438f55b6aaf9b2d9c87 Mon Sep 17 00:00:00 2001 From: Franco Date: Mon, 30 Nov 2020 12:57:45 +0000 Subject: [PATCH 15/21] Translated using Weblate (Spanish (Argentina)) Currently translated at 99.9% (3571 of 3572 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index e92749d57b..ad7cfd72c1 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -4004,4 +4004,6 @@ Usar dev.openstreetmap.org No se puede subir la imagen, inténtalo más tarde Elegir imagen + Alemán (casual) + %1$s * %2$s \ No newline at end of file From 56bad60ecc46bfb0d0f122759f73ca491a6d6861 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira Date: Mon, 30 Nov 2020 12:28:18 +0000 Subject: [PATCH 16/21] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3572 of 3572 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 5a6b16d427..408aa0149c 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3995,4 +3995,5 @@ Não é possível carregar a imagem, por favor, tente novamente mais tarde Selecione a foto %1$s * %2$s + Alemão (casual) \ No newline at end of file From 6a7ca84bb2b77bb7785c8b86cc17b6e84951bccc Mon Sep 17 00:00:00 2001 From: Verdulo Date: Sun, 29 Nov 2020 20:04:33 +0000 Subject: [PATCH 17/21] Translated using Weblate (Esperanto) Currently translated at 100.0% (3572 of 3572 strings) --- OsmAnd/res/values-eo/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 2d58674ff2..eeaea93c09 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3999,4 +3999,5 @@ Ne povas alŝuti la bildon, reprovu poste Elektu bildon %1$s * %2$s + Germana (ordinara) \ No newline at end of file From 5ccbf00b84b3341badd307f10b9060629c4d0390 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Mon, 30 Nov 2020 01:55:48 +0000 Subject: [PATCH 18/21] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3572 of 3572 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 1b6bd9fee5..a5994b6225 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3994,4 +3994,6 @@ 使用 dev.openstreetmap.org 無法上傳圖片,請稍後再試 選取圖片 + 德語(非正式) + %1$s * %2$s \ No newline at end of file From d2adbcae3a6e3de1b6c72d6988a2be4386f0e687 Mon Sep 17 00:00:00 2001 From: D M Date: Mon, 30 Nov 2020 14:59:57 +0000 Subject: [PATCH 19/21] Translated using Weblate (Serbian) Currently translated at 98.1% (3789 of 3860 strings) --- OsmAnd/res/values-sr/phrases.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-sr/phrases.xml b/OsmAnd/res/values-sr/phrases.xml index 69b1046618..e511263c30 100644 --- a/OsmAnd/res/values-sr/phrases.xml +++ b/OsmAnd/res/values-sr/phrases.xml @@ -3329,7 +3329,7 @@ Највиша тачка Ледени језик Остатак - Полица + Плато Стена Ледопад Висећи @@ -3421,8 +3421,8 @@ Пречник круне Обим Пењачке руте - Дневник врха пењања: не - Дневник врха пењања: да + Брвно врха пењања: не + Брвно врха пењања: да Оријентација зида: СЗ Оријентација зида: З Оријентација зида: ЈЗ @@ -3774,7 +3774,7 @@ Цев Мрежа за поновно доливање питке воде Доливање воде за пиће: не - Доливање воде за пиће: да + Да Опструкција Ниво воде: испод средњег нивоа Ниво воде: изнад средњег нивоа @@ -3789,7 +3789,7 @@ Примитивно Контрастно Дозвољено је само при ходању - Сигнал за проналазак пола + Приступ интернету: купци Не Да Тип кабине From 5a84df2dde0cb179478eb999df976538c1157867 Mon Sep 17 00:00:00 2001 From: MadWasp79 Date: Tue, 1 Dec 2020 10:45:06 +0200 Subject: [PATCH 20/21] Wikivoyage to OBF migration: Show detailed articles. PR fixes --- .../plus/wikivoyage/data/TravelObfHelper.java | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java b/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java index 298d0f3d9d..0b9398a908 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/data/TravelObfHelper.java @@ -205,9 +205,8 @@ public class TravelObfHelper implements TravelHelper{ } } } catch (Exception e) { - e.printStackTrace(); + LOG.error(e.getMessage()); } - return popularArticles; } @@ -220,16 +219,7 @@ public class TravelObfHelper implements TravelHelper{ res.lat = amenity.getLocation().getLatitude(); res.lon = amenity.getLocation().getLongitude(); res.imageTitle = amenity.getTagContent(Amenity.IMAGE_TITLE, lang) == null ? "" : amenity.getTagContent(Amenity.IMAGE_TITLE, lang); - long tripId = -1; - String val = amenity.getTagContent(Amenity.ROUTE_ID, null); - if (val != null && val.startsWith("Q")) { - try { - tripId = Long.parseLong(val.substring(1)); - } catch (NumberFormatException nfe) { - LOG.error(nfe.getMessage()); - } - } - res.tripId = tripId; + res.tripId = getTripId(amenity); res.originalId = 0; //? res.lang = lang; res.contentsJson = amenity.getTagContent(Amenity.CONTENT_JSON, lang) == null ? "" : amenity.getTagContent(Amenity.CONTENT_JSON, lang); @@ -246,6 +236,19 @@ public class TravelObfHelper implements TravelHelper{ return res; } + private long getTripId(Amenity amenity) { + long tripId = -1; + String val = amenity.getTagContent(Amenity.ROUTE_ID, null); + if (val != null && val.startsWith("Q")) { + try { + tripId = Long.parseLong(val.substring(1)); + } catch (NumberFormatException nfe) { + LOG.error(nfe.getMessage()); + } + } + return tripId; + } + private BinaryMapIndexReader getBookBinaryIndex() throws IOException { application.getSettings().SELECTED_TRAVEL_BOOK.set(selectedTravelBook.getName()); try { @@ -302,10 +305,7 @@ public class TravelObfHelper implements TravelHelper{ int top = 0; int right = Integer.MAX_VALUE; int bottom = Integer.MAX_VALUE; - final List results = new ArrayList<>(); - LatLon ll = application.getMapViewTrackingUtilities().getMapLocation(); - BinaryMapIndexReader.SearchRequest req = BinaryMapIndexReader.buildSearchPoiRequest( MapUtils.get31TileNumberX(ll.getLongitude()), MapUtils.get31TileNumberY(ll.getLatitude()), title, @@ -314,7 +314,6 @@ public class TravelObfHelper implements TravelHelper{ @Override public boolean publish(Amenity object) { if (object.getName(lang).equals(title)) { - results.add(object); return true; } return false; From 5611f638d9c0a444a4d10518243c804b7069555e Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 1 Dec 2020 12:40:34 +0200 Subject: [PATCH 21/21] Add all profiles which support navigation to intent api --- .../plus/helpers/ExternalApiHelper.java | 54 ++++++++----------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/helpers/ExternalApiHelper.java b/OsmAnd/src/net/osmand/plus/helpers/ExternalApiHelper.java index da5f6359b0..c2b1c25591 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/ExternalApiHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/ExternalApiHelper.java @@ -31,8 +31,6 @@ import net.osmand.data.PointDescription; import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.GpxSelectionHelper; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; -import net.osmand.plus.mapmarkers.MapMarkersHelper; -import net.osmand.plus.mapmarkers.MapMarker; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; @@ -41,6 +39,8 @@ import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity.ShowQuickSearchMode; import net.osmand.plus.audionotes.AudioVideoNotesPlugin; import net.osmand.plus.mapcontextmenu.MapContextMenu; +import net.osmand.plus.mapmarkers.MapMarker; +import net.osmand.plus.mapmarkers.MapMarkersHelper; import net.osmand.plus.monitoring.OsmandMonitoringPlugin; import net.osmand.plus.quickaction.QuickAction; import net.osmand.plus.quickaction.QuickActionRegistry; @@ -160,14 +160,6 @@ public class ExternalApiHelper { public static final String PARAM_QUICK_ACTION_PARAMS = "quick_action_params"; public static final String PARAM_QUICK_ACTION_NUMBER = "quick_action_number"; - public static final ApplicationMode[] VALID_PROFILES = new ApplicationMode[]{ - ApplicationMode.CAR, - ApplicationMode.BICYCLE, - ApplicationMode.PEDESTRIAN - }; - - public static final ApplicationMode DEFAULT_PROFILE = ApplicationMode.CAR; - // RESULT_OK == -1 // RESULT_CANCELED == 0 // RESULT_FIRST_USER == 1 @@ -258,15 +250,8 @@ public class ExternalApiHelper { } else if (API_CMD_NAVIGATE.equals(cmd)) { String profileStr = uri.getQueryParameter(PARAM_PROFILE); - final ApplicationMode profile = ApplicationMode.valueOfStringKey(profileStr, DEFAULT_PROFILE); - boolean validProfile = false; - for (ApplicationMode mode : VALID_PROFILES) { - if (mode == profile) { - validProfile = true; - break; - } - } - if (!validProfile) { + final ApplicationMode profile = findNavigationProfile(app, profileStr); + if (profile == null) { resultCode = RESULT_CODE_ERROR_INVALID_PROFILE; } else { String startName = uri.getQueryParameter(PARAM_START_NAME); @@ -325,19 +310,12 @@ public class ExternalApiHelper { } else if (API_CMD_NAVIGATE_SEARCH.equals(cmd)) { String profileStr = uri.getQueryParameter(PARAM_PROFILE); - final ApplicationMode profile = ApplicationMode.valueOfStringKey(profileStr, DEFAULT_PROFILE); - boolean validProfile = false; - for (ApplicationMode mode : VALID_PROFILES) { - if (mode == profile) { - validProfile = true; - break; - } - } + final ApplicationMode profile = findNavigationProfile(app, profileStr); final boolean showSearchResults = uri.getBooleanQueryParameter(PARAM_SHOW_SEARCH_RESULTS, false); final String searchQuery = uri.getQueryParameter(PARAM_DEST_SEARCH_QUERY); if (Algorithms.isEmpty(searchQuery)) { resultCode = RESULT_CODE_ERROR_EMPTY_SEARCH_QUERY; - } else if (!validProfile) { + } else if (profile == null) { resultCode = RESULT_CODE_ERROR_INVALID_PROFILE; } else { String startName = uri.getQueryParameter(PARAM_START_NAME); @@ -642,6 +620,18 @@ public class ExternalApiHelper { return result; } + private ApplicationMode findNavigationProfile(@NonNull OsmandApplication app, @Nullable String profileStr) { + if (!ApplicationMode.DEFAULT.getStringKey().equals(profileStr)) { + ApplicationMode profile = ApplicationMode.valueOfStringKey(profileStr, ApplicationMode.CAR); + for (ApplicationMode mode : ApplicationMode.values(app)) { + if (mode == profile && !Algorithms.isEmpty(mode.getRoutingProfile())) { + return mode; + } + } + } + return null; + } + public static void saveAndNavigateGpx(MapActivity mapActivity, final GPXFile gpxFile, final boolean force) { final WeakReference mapActivityRef = new WeakReference<>(mapActivity); @@ -732,10 +722,10 @@ public class ExternalApiHelper { } static private void startNavigation(MapActivity mapActivity, - GPXFile gpx, - LatLon from, PointDescription fromDesc, - LatLon to, PointDescription toDesc, - ApplicationMode mode) { + GPXFile gpx, + LatLon from, PointDescription fromDesc, + LatLon to, PointDescription toDesc, + ApplicationMode mode) { OsmandApplication app = mapActivity.getMyApplication(); RoutingHelper routingHelper = app.getRoutingHelper(); if (gpx == null) {