From 1976910231a53856c730ebc6e646859abaeedfad Mon Sep 17 00:00:00 2001 From: Bars107 Date: Wed, 24 Dec 2014 18:49:55 +0200 Subject: [PATCH 01/67] Replaced places with tabs --- OsmAnd/src/net/osmand/plus/dashboard/DashMapFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashMapFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashMapFragment.java index 62065708cd..c797d21af4 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashMapFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashMapFragment.java @@ -88,7 +88,7 @@ public class DashMapFragment extends DashBaseFragment implements IMapDownloaderC @Override public void onResume() { super.onResume(); - if (!getMyApplication().isApplicationInitializing()){ + if (!getMyApplication().isApplicationInitializing()) { updateMapImage(); } From db36f07c28d3c236126ef8eff9893150ee81bc67 Mon Sep 17 00:00:00 2001 From: Dieter Adriaenssens Date: Fri, 9 Jan 2015 15:31:56 +0100 Subject: [PATCH 02/67] Translated using Weblate (Dutch) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-nl/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 5bcac409f8..1083e716ce 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -2043,4 +2043,5 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A Toon spoorwegovergangen Toon voetgangers oversteekplaatsen Meld oversteekplaatsen - + Standaard + From 9c8aa3300c62547ce31b512e9caf7d251ab59a69 Mon Sep 17 00:00:00 2001 From: Denis Date: Fri, 9 Jan 2015 16:53:08 +0200 Subject: [PATCH 03/67] Added favourites updated event --- .../net/osmand/plus/FavouritesDbHelper.java | 21 +++++++++++++++++++ .../plus/activities/MainMenuActivity.java | 5 ----- .../plus/dashboard/DashFavoritesFragment.java | 14 +++++++++++-- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java index 92b98c0f24..3c8d580894 100644 --- a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java +++ b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java @@ -30,6 +30,12 @@ import net.osmand.plus.api.SQLiteAPI.SQLiteCursor; public class FavouritesDbHelper { + public interface FavoritesUpdatedListener { + void updateFavourites(); + } + + private List favoritesUpdatedListeners = new ArrayList(); + private static final org.apache.commons.logging.Log log = PlatformUtil.getLog(FavouritesDbHelper.class); public static final String FILE_TO_SAVE = "favourites.gpx"; //$NON-NLS-1$ @@ -82,10 +88,25 @@ public class FavouritesDbHelper { if(changed) { saveCurrentPointsIntoFile(); } + favouritesUpdated(); } + private void favouritesUpdated(){ + for (FavoritesUpdatedListener listener : favoritesUpdatedListeners){ + listener.updateFavourites(); + } + } + public void addFavoritesUpdatedListener(FavoritesUpdatedListener listener){ + if (!favoritesUpdatedListeners.contains(listener)){ + favoritesUpdatedListeners.add(listener); + } + } + + public void removeFavoritesUpdatedListener(FavoritesUpdatedListener listener){ + favoritesUpdatedListeners.remove(listener); + } private boolean merge(Map source, Map destination) { boolean changed = false; diff --git a/OsmAnd/src/net/osmand/plus/activities/MainMenuActivity.java b/OsmAnd/src/net/osmand/plus/activities/MainMenuActivity.java index 6c1e318d5e..ab4b9dc5cf 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MainMenuActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MainMenuActivity.java @@ -491,11 +491,6 @@ public class MainMenuActivity extends BaseDownloadActivity implements OsmAndLoca if (f instanceof DashDownloadMapsFragment && !f.isDetached()) { ((DashDownloadMapsFragment) f).refreshData(); } - //Needed to reliably initialize DashFavoritesFragement on devices without compass - // [Victor]: This doesn't look as a proper place, then it highly depends on internet connection and download list - if (f instanceof DashFavoritesFragment && !f.isDetached()) { - ((DashFavoritesFragment) f).setupFavorites(); - } } } diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java index dd490b8a63..2268e64816 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java @@ -38,7 +38,7 @@ import android.widget.TextView; /** * Created by Denis on 24.11.2014. */ -public class DashFavoritesFragment extends DashBaseFragment { +public class DashFavoritesFragment extends DashBaseFragment implements FavouritesDbHelper.FavoritesUpdatedListener { public static final String TAG = "DASH_FAVORITES_FRAGMENT"; private net.osmand.Location location = null; private LatLon loc = null; @@ -92,10 +92,16 @@ public class DashFavoritesFragment extends DashBaseFragment { } else { loc = new LatLon(0f, 0f); } + + getMyApplication().getFavorites().addFavoritesUpdatedListener(this); setupFavorites(); } - + @Override + public void onPause() { + super.onPause(); + getMyApplication().getFavorites().removeFavoritesUpdatedListener(this); + } public void setupFavorites(){ View mainView = getView(); @@ -250,4 +256,8 @@ public class DashFavoritesFragment extends DashBaseFragment { updateArrows(); } + @Override + public void updateFavourites() { + setupFavorites(); + } } From fe65fc3ce8f1e08fe6aab481aa65c52c2ff29616 Mon Sep 17 00:00:00 2001 From: Denis Date: Sat, 10 Jan 2015 12:25:16 +0200 Subject: [PATCH 04/67] Added run on ui thread --- .../osmand/plus/dashboard/DashFavoritesFragment.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java index 2268e64816..ab22ff2282 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java @@ -258,6 +258,14 @@ public class DashFavoritesFragment extends DashBaseFragment implements Favourite @Override public void updateFavourites() { - setupFavorites(); + if (getActivity() == null) { + return; + } + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + setupFavorites(); + } + }); } } From d479b775d4175e18df379e0b40f359786a905b25 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 11:31:25 +0100 Subject: [PATCH 05/67] Try re-initialize start point to check impact on Issue 2515 --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 99107511a0..9a79cc3763 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -778,8 +778,9 @@ public class RoutingHelper { public void recalculateRouteDueToSettingsChange() { //This should fix route-recalculation if settings change during ongoing calculation clearCurrentRoute(finalLocation, intermediatePoints); - recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, route, - true, false); + // Try re-initialize start point to check impact on Issue 2515 + lastFixedLocation = TargetPoint.create(settings.getPointToStart(), settings.getStartPointDescription()); + recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, route, true, false); } private void recalculateRouteInBackground(boolean force, final Location start, final LatLon end, final List intermediates, From d409081c9dd2cffb3700ca8292c1e0eb990fdcde Mon Sep 17 00:00:00 2001 From: Viktar Palstsiuk Date: Fri, 9 Jan 2015 18:33:32 +0100 Subject: [PATCH 06/67] Translated using Weblate (Belarusian) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-be/strings.xml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index cbe8a1940d..8bceac4ae1 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -26,8 +26,8 @@ Можна сьцягнуць: %1$s Максымальнае павелічэньне: %1$s Мінімальнае павелічэньне: %1$s - Зьвесткі квадрата: %1$s - Крыніца квадратаў мапы %1$s пасьпяхова захаваная + Зьвесткі фрагмэнту: %1$s + Крыніца фрагмэнтаў мапы %1$s пасьпяхова захаваная Эліптычны меркатар Максімальнае павелічэньне Тэрмін дзеяньня (у хвілінах) @@ -611,12 +611,12 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Сьцягваньне і кіраваньне файламі мапаў, што захоўваюцца на вашым прыстасаваньні Актывуйце модуль онлайн мапаў, каб выбіраць розныя крыніцы для мапаў Сеціўныя і растравыя мапы - Карыстацца сеціўнымі мапамі (cьцягнуць і захоўваць на картцы SD) + Карыстацца сеціўнымі мапамі (cьцягнуць і захоўваць фрагмэнты на картцы SD) Сеціўныя мапы - Настройка крыніц анлайн або кэшаваных растравых мапаў + Настройка крыніц сеціўных або кэшаваных растравых мапаў Налады мапы Налады адлюстраваньня мапы - Паказаць налады для канфігураваньня сеткавых ці кэшаваных мапаў як базавых мапаў ці як overlay/underlay мапаў. Гэтыя мапы могуць быць падрыхтаваныя папярэдне й скапіяваныя ў каталёг зьвестак OsmAnd. + Паказаць налады для канфігураваньня сеткавых ці кэшаваных растравых мапаў у якасьці асноўнай мапы ці дадатковым слоем. Гэтыя мапы могуць быць падрыхтаваныя папярэдне й скапіяваныя ў каталёг зьвестак OsmAnd. Паказаць налады для спэцыяльных магчымасьцяў даступнасьці. Пашыраныя налады @@ -978,7 +978,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Мапа для накладаньня Абраць мапу для накладаньня Мапа ўжо ўсталявана, налады будуць абноўлены - Выберыце (растравыя) мапы для ўстаноўкі або абнаўленьня + Выберыце (растравыя) мапы для ўсталёўкі або абнаўленьня Патрабуецца падключэнне да Інтэрнэту для выкананьня аперацыі, але яго няма Усталяваць яшчэ… Мінімальнае павелічэньне для выкарыстаньня вектарных мапаў @@ -992,7 +992,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Немагчыма апрацаваць запыт \'%s\' Пошук ў лакальных картах Сістэма - Абраць мову інтэрфэйсу + Выбар мовы інтэрфэйсу (перазапусьціце OsmAnd пасьля зьмены) Мова інтэрфэйсу няскончана Абраць крыніцу мапы @@ -1060,7 +1060,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Бліжэйшыя POI Свой фільтар Сеткавы NameFinder - Чытаньне кэшаваных растравых мапаў… + Чытаньне захаваных фрагмэнтаў… Недастаткова памяці для лакальнай мапы \'\'{0}\'\' Версія індэкса \'\'{0}\'\' не падтрымліваецца Навігацыя OsmAnd > 20 км @@ -1109,7 +1109,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Паказаць тэлефон POI набярыце каб фільтраваць Дысплей высокай рэзалюцыі - Не расьцягваць (з размыццём) растравыя мапы на дысплеях з высокай шчыльнасьцю + Не расьцягваць (з размыццём) фрагмэнты мапы на дысплеях з высокай шчыльнасьцю Сьцягнуць Шукаць грамадзкi транспарт Вынiк пошуку транспарту (няма цэлі): @@ -1249,7 +1249,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Пазасеціўны пошук Сеціўны пошук Максімальнае павелічэньне онлайн мапаў - Выберыце максімальны ўзровень павелічэньня для сьцягваньня растравых мапаў з Інтэрнэту + Выберыце максімальны ўзровень павелічэньня для сьцягваньня фрагмэнтаў мапы з Інтэрнэту Агульная адлегласьць %1$s, час у дарозе %2$d г. %3$d хв. Абраць сеціўны ці пазасеціўны сэрвіс навігацыі Сэрвіс навігацыі @@ -1320,7 +1320,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Сьляды будуць захаваныя ў каталог track падчас навігацыі Запісваць сьлед у GPX файл Абнавіць мапу - Абнавіць частку мапы + Абнавіць фрагмэнт мапы Цэль Адлюстроўваць OpenStreetBugs на мапе Паказаць OpenStreetBugs @@ -1339,7 +1339,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві 3D від Паказаць POI на мапе (выкарыстаць апошні абраны фільтар) Паказаць POI - Выберыце крыніцу анлайн або кэшаваных растравых мапаў + Выберыце крыніцу анлайн або кэшаваных фрагмэнтаў мапы Крыніца растравых мапаў Крыніца мапы Выкарыстоўваць Інтэрнэт From be6b6a3845fd062c379de80f37b481d45e83e506 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Fri, 9 Jan 2015 07:47:44 +0100 Subject: [PATCH 07/67] Translated using Weblate (Danish) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-da/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 95bd8de84f..65c261a0e1 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -761,7 +761,7 @@ Kunne ikke fortolke geografisk hensigt \'%s\' Søg geografisk placering System - Vælg sprog + Vælg sprog (genstart OsmAnd efter skift) Sprog ufuldstændig Vælg kortkilde From f8dae5268bef460f41888e5e87c847269695b83c Mon Sep 17 00:00:00 2001 From: Dieter Adriaenssens Date: Fri, 9 Jan 2015 15:35:06 +0100 Subject: [PATCH 08/67] Translated using Weblate (Dutch) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-nl/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 1083e716ce..205472c51e 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -376,7 +376,7 @@ Kan de geo intent \'%s\' niet verwerken Zoek adres in de offline kaarten Systeem - Kies de taal van het menu + Kies de taal van het menu (gelieve OsmAnd daarna te herstarten) Taal Kies een kaartbron @@ -1998,7 +1998,7 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A Tram- en treinverbindingen Zet het scherm aan Zet het scherm aan bij het naderen van een bocht - Selecteer op kaart + Selecteer op kaart… Vermijd wegen… Verberg Nooit @@ -2017,7 +2017,7 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A Gebruik snelle, hardware-gebaseerde OpenGL weergave (werkt niet op alle apparaten) Er is geen alternatieve weg gevonden Sluiten - Kan niet downloaden. Maak verbinding met internet om verder te gaan. + Kan niet downloaden, gelieve uw internetverbinding na te kijken. Alle downloads Updates Geïnstalleerd From ddf9c9a84ebb901a1414b7f37906996fe90f6ee3 Mon Sep 17 00:00:00 2001 From: Nicolas Palix Date: Fri, 9 Jan 2015 01:46:53 +0100 Subject: [PATCH 09/67] Translated using Weblate (French) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-fr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 8f7771a06e..6d82bef3fc 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -283,7 +283,7 @@ Ne peut interpréter le geo intent:\'%s\' Recherche d\'adresses dans les cartes hors-ligne Système - Sélectionnez la langue d\'affichage (veuillez redémarrer OsmAnd après modification) + Sélectionnez la langue à afficher (veuillez redémarrer OsmAnd après votre modification) Langue de l\'application Sélectionner une source de carte From 4ed07c7f90e695cad9f1d516ee203ae703bf352b Mon Sep 17 00:00:00 2001 From: Max Martin Richter Date: Fri, 9 Jan 2015 22:16:37 +0100 Subject: [PATCH 10/67] Translated using Weblate (German) Currently translated at 99.9% (1594 of 1595 strings) --- OsmAnd/res/values-de/strings.xml | 43 ++++++++------------------------ 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index f83c7c9506..72792cb5bc 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -1,4 +1,4 @@ - + Geschwindigkeitsbegrenzung Grenzkontrolle @@ -125,30 +125,7 @@ Auf Straße einrasten OsmAnd Karten & Navigation Globale Landkarten- und Navigations-Applikation für Offline und Online-Karten - - OsmAnd (OSM Automated Navigation Directions) - - OsmAnd ist eine Open-Source-Navigationsapplikation mit Zugriff auf eine große Vielfalt öffentlich zugänglicher OpenStreetMap (OSM) Karten weltweit. Alle Karten (Vektor- oder Kachelformate) können lokal auf der Speicherkarte abgelegt und offline verwendet werden. OsmAnd bietet ferner eine offline und online Routing-Funktion inklusive Sprachnavigation. - - Einige der Kernfunktionen: - - Komplette Offline-Funktionalität (Kartenmaterial kann auf dem Gerät abgelegt werden) - - Kompakte Vektorkarten für die ganze Welt verfügbar - - Direktes Herunterladen von Länder- oder Regionenkarten aus der App heraus - - Darstellung mehrerer überlagerter Kartenschichten wie GPX oder Navigations-Tracks, POIs (Points of Interest), Favoriten, Höhenlinien, ÖPNV-Haltestellen, zusätzliche Karten mit wählbarer Transparenz - - Offline Adress- und POI-Suche - - Offlinenavigation für kurze Distanzen (experimentell) - - Auto-, Fahrrad- und Fußgänger-Modus mit - - optionaler automatischer Tag-Nacht-Umschaltung der Anzeige - - optionalem geschwindigkeitsabhängigem Kartenmaßstab - - optionaler Kartenausrichtung nach Kompass oder Bewegungsrichtung - - optionaler Fahrspuranzeige, Geschwindigkeitswarnung, aufgenommene oder TTS Sprachansagen - - Einschränkungen dieser kostenlosen Version von OsmAnd: - - Anzahl der Kartendownloads - - Kein Zugriff auf Wikipedia Offline-POIs - - OsmAnd wird aktiv weiterentwickelt und das Projekt benötigt Mittel für die Entwicklung, die Komplettierung und den Test (Fahrten) neuer Funktionen. Bitte erwägen Sie den Kauf von OsmAnd+, die Förderung spezieller Funktionen oder eine allgemeine Spende auf osmand.net. - + " OsmAnd (OSM Automated Navigation Directions) OsmAnd ist eine Open-Source-Navigationsapplikation mit Zugriff auf eine große Vielfalt öffentlich zugänglicher OpenStreetMap (OSM) Karten weltweit. Alle Karten (Vektor- oder Kachelformate) können lokal auf der Speicherkarte abgelegt und offline verwendet werden. OsmAnd bietet ferner eine offline und online Routing-Funktion inklusive Sprachnavigation. Einige der Kernfunktionen: - Komplette Offline-Funktionalität (Kartenmaterial kann auf dem Gerät abgelegt werden) - Kompakte Vektorkarten für die ganze Welt verfügbar - Direktes Herunterladen von Länder- oder Regionenkarten aus der App heraus - Darstellung mehrerer überlagerter Kartenschichten wie GPX oder Navigations-Tracks, POIs (Points of Interest), Favoriten, Höhenlinien, ÖPNV-Haltestellen, zusätzliche Karten mit wählbarer Transparenz - Offline Adress- und POI-Suche - Offlinenavigation für kurze Distanzen (experimentell) - Auto-, Fahrrad- und Fußgänger-Modus mit - optionaler automatischer Tag-Nacht-Umschaltung der Anzeige - optionalem geschwindigkeitsabhängigem Kartenmaßstab - optionaler Kartenausrichtung nach Kompass oder Bewegungsrichtung - optionaler Fahrspuranzeige, Geschwindigkeitswarnung, aufgenommene oder TTS Sprachansagen Einschränkungen dieser kostenlosen Version von OsmAnd: - Anzahl der Kartendownloads - Kein Zugriff auf Wikipedia Offline-POIs OsmAnd wird aktiv weiterentwickelt und das Projekt benötigt Mittel für die Entwicklung, die Komplettierung und den Test (Fahrten) neuer Funktionen. Bitte erwägen Sie den Kauf von OsmAnd+, die Förderung spezieller Funktionen oder eine allgemeine Spende auf osmand.net. " OsmAnd+ Karten & Navigation Globale Landkarten- und Navigations-Applikation für Offline und Online-Karten @@ -966,9 +943,9 @@ vorherige Strecke zu passierende Haltestellen Streckenlänge - Öffentlicher Personenverkehr + ÖPNV OK - Öffentl. Haltestellen auf der Karte anzeigen + ÖPNV-Haltestellen auf der Karte anzeigen Haltestellen anzeigen Navigationsanwendung OsmAnd POI-Daten wurden erfolgreich aktualisiert ({0} wurden geladen) @@ -1538,9 +1515,9 @@ \n Hinweis 1: Die ursprünglichen Dateien bleiben hiervon unberührt, können aber nachfolgend manuell gelöscht werden. \n Hinweis 2: Die Dateien können dann nicht mehr von OsmAnd und OsmAnd+ gemeinsam genutzt werden." Soll OsmAnd auch die Dateien an den neuen Speicherort verschieben? Mit \'Nein\' wird OsmAnd den neuen Speicherort nur anlegen und als Standard verwenden. - Datei (%s) wird an den neuen Speicherort kopiert… - OsmAnd-Dateien werden zum neuen Speicherort (%s) kopiert… - OsmAnd-Dateien werden kopiert… + Datei (%s) wird an den neuen Speicherort kopiert… + OsmAnd-Dateien werden zum neuen Speicherort (%s) kopiert… + OsmAnd-Dateien werden kopiert… OsmAnd-Offline-Route berechnen LKW Navigations-Einstellungen @@ -1838,7 +1815,7 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an Geräte-ID Konfigurieren der Überwachungs-Einstellungen und des persönlichen Überwachungs-Kanals - "Erweiterte OpenStreetMap-basierte Live-Überwachung, siehe http://osmo.mobi … Ermöglicht die Positionsdarstellung in von einzelnen Geräten in Echtzeit. Bei anonym erstellten Gruppen sind die Optionen etwas eingeschränkt: Lebensdauer der Gruppe nur für einige Tage, auch ist keine zentrale Steuerung der Gruppe möglich. Es gibt verschiedene Einstellungen für zeitlich begrenzte oder Dauer-Aufzeichnung. Voll funktionsfähige Gruppen müssen auf der genannten Internetseite erstellt werden, auf die Gruppe haben nur registrierte Nutzer Zugriff." + "Erweiterte OpenStreetMap-basierte Live-Überwachung, siehe http://osmo.mobi … Ermöglicht die Positionsdarstellung in von einzelnen Geräten in Echtzeit. Bei anonym erstellten Gruppen sind die Optionen etwas eingeschränkt: Lebensdauer der Gruppe nur für einige Tage, auch ist keine zentrale Steuerung der Gruppe möglich. Es gibt verschiedene Einstellungen für zeitlich begrenzte oder Dauer-Aufzeichnung. Voll funktionsfähige Gruppen müssen auf der genannten Internetseite erstellt werden, auf die Gruppe haben nur registrierte Nutzer Zugriff. " OsMo (Erweiterte Live-Überwachung) OsMo OpenStreetMap-Überwachung OsMo Verbindungsproblem: @@ -1999,7 +1976,7 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an Bildschirm aktivieren Bildschirm bei Navigationsanweisung aktivieren Niemals - Auf Karte auswählen… + Auf Karte auswählen… Straße blockieren… Straßen- und Eisenbahnlinien Stadtbahnlinien @@ -2044,7 +2021,7 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an Eisenbahnübergänge anzeigen Fußgängerübergänge anzeigen Amerikanischer Straßenatlas - Routing v1.9 nicht verwenden + Routing-Regeln v1.9 nicht verwenden Neuen Routenalgorithmus nicht verwenden Fußgängerübergänge ankündigen From cc9dd4b38aa2f553cfd288c19103286876b9cb5a Mon Sep 17 00:00:00 2001 From: Mirco Zorzo Date: Sat, 10 Jan 2015 00:43:13 +0100 Subject: [PATCH 11/67] Translated using Weblate (Italian) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-it/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index 0edd93b05d..b55433c55a 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -275,7 +275,7 @@ Impossibile leggere geo intent \'%s\' Ricerca indirizzo usando le mappe offline Sistema - Seleziona lingua interfaccia + Seleziona lingua interfaccia (si prega di riavviare OsmAnd dopo il cambio) Lingua interfaccia Scegli una Fonte della Mappa From b79f75a582af8a2d1ae407c9db20a8b67fba997c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=20=EC=A1=B0?= Date: Fri, 9 Jan 2015 04:29:39 +0100 Subject: [PATCH 12/67] Translated using Weblate (Korean) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-ko/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-ko/strings.xml b/OsmAnd/res/values-ko/strings.xml index ff1922dfe5..d0e68fd57f 100644 --- a/OsmAnd/res/values-ko/strings.xml +++ b/OsmAnd/res/values-ko/strings.xml @@ -387,7 +387,7 @@ 지오 위치 검색 시스템 언어 - 표시 언어를 선택합니다 + 언어 선택 (OsmAnd를 재시작해 주세요) 언어 표시 지도 소스를 선택 @@ -2058,7 +2058,7 @@ 택시 노선 공유 무궤도 전차 노선 버스 노선 - 지도에서 선택 + 지도에서 선택… 도로 회피… 전차 및 기차 노선 숨기기 From 17997a53a2c83d70bd87a18a46e418be68f8728a Mon Sep 17 00:00:00 2001 From: Jurijus Date: Fri, 9 Jan 2015 07:23:48 +0100 Subject: [PATCH 13/67] Translated using Weblate (Lithuanian) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-lt/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-lt/strings.xml b/OsmAnd/res/values-lt/strings.xml index 3969db3592..06550780f2 100644 --- a/OsmAnd/res/values-lt/strings.xml +++ b/OsmAnd/res/values-lt/strings.xml @@ -477,7 +477,7 @@ Nepavyko suprasti geo poreikio \'%s\' Ieškoti adreso parsiųstuose žemėlapiuose Sistemos - Pasirinkite programos kalbą + Pasirinkite programos kalbą (pakeitę kalbą iš naujo aktyvuokite OsmAnd) Programos kalba Pasirinkti žemėlapių šaltinį From 416b578a4296fc757b0b5b4ab12804ed75e0f76f Mon Sep 17 00:00:00 2001 From: Krystian Biesaga Date: Fri, 9 Jan 2015 20:57:55 +0100 Subject: [PATCH 14/67] Translated using Weblate (Polish) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-pl/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index d6a088f8aa..ea22304339 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -177,7 +177,7 @@ Nie można zinterpretować \'%s\' Wyszukaj adres korzystając z map offline Systemowy - Wybierz język interfejsu + Wybierz język interfejsu (zrestartuj OsmAnd po zmianie) Język interfejsu Wybierz źródło mapy @@ -1949,7 +1949,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant Użyj bezpiecznego połączenia z serwerem Użyj HTTPS Zaawansowane - Dom + Ekran startowy Dostępne aktualizacje dla %1$s map Wyszukaj POKAŻ MAPĘ From 1e2b7e3f72744a2acc7fa8210ad639ebd86332d1 Mon Sep 17 00:00:00 2001 From: ace shadow Date: Fri, 9 Jan 2015 21:03:22 +0100 Subject: [PATCH 15/67] Translated using Weblate (Slovak) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-sk/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index fcc8f7fd29..42e3890d05 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -472,7 +472,7 @@ Nedá sa parsovať geo obsah: "%s" Nájsť adresu použitím stiahnutých máp Systémový - Zmeniť zobrazovaný jazyk + Zmeniť zobrazovaný jazyk (po zmene je potrebné reštartovať OsmAnd) Jazyk zobrazenia Vyberte zdroj mapy From 4bee9c393e8583e5af81acd6449215313da2def3 Mon Sep 17 00:00:00 2001 From: Leif Larsson Date: Fri, 9 Jan 2015 10:07:18 +0100 Subject: [PATCH 16/67] Translated using Weblate (Swedish) Currently translated at 99.4% (1587 of 1595 strings) --- OsmAnd/res/values-sv/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml index 8540b37a93..71610e4cc0 100644 --- a/OsmAnd/res/values-sv/strings.xml +++ b/OsmAnd/res/values-sv/strings.xml @@ -528,7 +528,7 @@ Det gick inte att tolka geo uppsåt \'%s\' Sök adress med hjälp av offline-kartor System -Välj visningsspråk +Välj visningsspråk (starta om OsmAnd efter språkbyte) Visningsspråk Kartkälla Användarprofil From 63af21531a3bf922bda705db1174fdabad378a07 Mon Sep 17 00:00:00 2001 From: Max Martin Richter Date: Fri, 9 Jan 2015 22:06:46 +0100 Subject: [PATCH 17/67] Translated using Weblate (German) Currently translated at 100.0% (611 of 611 strings) --- OsmAnd/res/values-de/phrases.xml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 5feadca1f5..8d2165df49 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -42,7 +42,7 @@ Australischer Fußball Babyartikel Babyklappe - Taschen + Taschengeschäft Gerichtsvollzieher Bäckerei Bank @@ -62,7 +62,7 @@ Badezimmereinrichtung Bettwarengeschäft Bienenzüchter - Getränke + Getränkegeschäft Fahrradständer Fahrradvermietung Fahrradgeschäft @@ -107,7 +107,7 @@ Partyservice Höhleneingang Friedhof - Chalet + Berghütte Ladestation Drogerie Schach @@ -146,7 +146,7 @@ Theaterklub Tourismusverein Veteranenklub - College + Hochschule Kommunikationstumr Gemeindezentrum Firma @@ -155,7 +155,7 @@ Computer-Geschäft Süßwaren Anlage - Lebensmittel + Lebensmittelgeschäft Copy-Shop Kosmetik Gerichtsgebäude @@ -209,10 +209,10 @@ Fjord Blumenhandlung Markthalle - Ford - Fort + Furt + Festung Brunnen - Rahmen + Bilderrahmen-Geschäft Tankstelle Bestatter Seilbahn @@ -307,7 +307,7 @@ Atombombenexplosionsgebiet Militärbereich Historisches Bergwerk - Mineshaft + Grubenschacht Minigolf Handy-Geschäft Kloster @@ -372,7 +372,7 @@ Shintoistische Kultstätte Sikh Kultstätte Taoistische Kultstätte - Plasterer + Stuckateur Spielplatz Installateur Fußpfleger @@ -497,7 +497,7 @@ Sportzentrum Sportartikel Quelle - Stadium + Stadion Baumeister Brunnen Bürobedarf From 7f086ee12e7c3e98283f0003330fbf5bb49b93e1 Mon Sep 17 00:00:00 2001 From: Krystian Biesaga Date: Fri, 9 Jan 2015 22:10:05 +0100 Subject: [PATCH 18/67] Translated using Weblate (Polish) Currently translated at 70.0% (428 of 611 strings) --- OsmAnd/res/values-pl/phrases.xml | 208 +++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) diff --git a/OsmAnd/res/values-pl/phrases.xml b/OsmAnd/res/values-pl/phrases.xml index 9856ff8ec7..07cbf358d4 100644 --- a/OsmAnd/res/values-pl/phrases.xml +++ b/OsmAnd/res/values-pl/phrases.xml @@ -247,4 +247,212 @@ Miasto Wieś Wioska + Szpital + Przychodnia + Klinika + Dentysta + Dom opieki + Okno życia + Weterynarz + Sanatorium + Medycyna alternatywna + Audiolog + Bank krwi + Centrum medyczne + Okulista + Fizjoterapeuta + Psychoterapeuta + Logopeda + Placówka medyczna + + Firma + Ubezpieczenia + Agent nieruchomości + Prawnik + Organizacja pozarządowa + Ratusz + Urząd pracy + Agencja reklamowa + Instytucja edukacyjna + Studio + Bukmacher + + Stadion + Centrum sportowe + Pole golfowe + Lodowisko + Boisko + Bieżnia + Tor wyścigów konnych + Tor wyścigowy + Łucznictwo + Lekkoatletyka + Futbol amerykański + Futbol australijski + Baseball + Koszykówka + Siatkówka plażowa + Futbol kanadyjski + Szachy + Krykiet + Jazda na rowerze + Nurkowanie + Nurkowanie z akwalungiem + Wyścigi psów + Golf + Gimnastyka + Piłka ręczna + Hokej + Wyścigi konne + Biegi na orientację + Paralotniarstwo + Wioślarstwo + Łyżwiarstwo + Jazda na nartach + Piłka nożna + Surfing + Pływanie + Tenis stołowy + Tenis + Siatkówka + + Muzeum + Pomnik + Wykopalisko archeologiczne + Kamień graniczny + Historyczne armaty + Zamek + Brama miasta + Fort + Fontanna + Zabytkowe ruiny + Kamień runiczny + Wrak statku + Zabytkowy statek + Monument + Zoo + Akwarium + Park rozrywki + + Atrakcja turystyczna + Diabelski młyn + Karuzela + Labirynt + Roller coaster + Zjeżdżalnia wodna + + Hotel + Pensjonat + Hostel + Motel + Miejsce kultu + Klasztor + Zabytkowy klasztor + Przydrożny krzyż + Przydrożna kapliczka + Informacja turystyczna + Zegar + Gejzer + Cmentarz + Cmentarzyk + Biblioteka + Centrum sztuki + Kino + Kasyno + Teatr + Cyrk + Parkiet taneczny + Klub nocny + Miejsce połowów + Port + Miniaturowy golf + Plac zabaw + Basen + Park wodny + Park + + Restauracja + Bar + Pub + Woda pitna + Grill + + Wikliniarz + Pszczelarz + Kowal + Browar + Introligator + Cieśla + Zegarmistrz + Krawiec + Elektryk + Ogrodnik + Ogrzewanie, wentylacja, klimatyzacja + Ślusarz + Optyk + Malarz + Fotograf + Laboratorium fotograficzne + Tynkarz + Hydraulik + Dekarz + Rymarz + Tartak + Monter rusztowań + Rzeźbiarz + Szewc + Kamieniarz + Krawiec + Glazurnik + Blacharz + Tapicer + Zegarmistrz + Salon piękności + Salon paznokci + Salon fryzjerski + Salon masażu + Salon tatuażu + Pralnia chemiczna + Pralnia + Wypożyczalnia samochodów + Dok + Toalety + Sauna + Dom publiczny + Kostnica + Krematorium + Kawiarenka internetowa + + Bank + Bankomat + Kantor + Księgowy + Płatność bitcoinami + + Szczyt + Wulkan + Krater + Wodospad + Rzeka + Strumień + Plaża + Zatoka + Fiord + Rafa + Rezerwat przyrody + Cieśnina + Wyspa + Wysepka + + Latarnia + Miejsce do cumowania + Suchy dok + Dok pływający + Port + Punkt orientacyjny + Strefa wojskowa + Lotnisko wojskowe + Bunkier wojskowy + Koszary + Poligon From 1c9e59a8cc26c186101232c4422aadc802cf97b8 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 12:07:31 +0100 Subject: [PATCH 19/67] get types correctly --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 9a79cc3763..8d1ded6f58 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -779,7 +779,10 @@ public class RoutingHelper { //This should fix route-recalculation if settings change during ongoing calculation clearCurrentRoute(finalLocation, intermediatePoints); // Try re-initialize start point to check impact on Issue 2515 - lastFixedLocation = TargetPoint.create(settings.getPointToStart(), settings.getStartPointDescription()); + if (settings.getPointToStart() != null) { + lastFixedLocation.setLatitude(settings.getPointToStart().getLatitude()); + lastFixedLocation.setLongitude(settings.getPointToStart().getLongitude()); + } recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, route, true, false); } From 39520c09aa918754238c512e3f319da90dec5f77 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 12:31:52 +0100 Subject: [PATCH 20/67] Back out Issue 2515 test code, no effect on bug it looks like --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 10 +++++----- .../plus/views/controls/MapRouteInfoControl.java | 7 ++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 8d1ded6f58..fe5ff0c220 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -778,11 +778,11 @@ public class RoutingHelper { public void recalculateRouteDueToSettingsChange() { //This should fix route-recalculation if settings change during ongoing calculation clearCurrentRoute(finalLocation, intermediatePoints); - // Try re-initialize start point to check impact on Issue 2515 - if (settings.getPointToStart() != null) { - lastFixedLocation.setLatitude(settings.getPointToStart().getLatitude()); - lastFixedLocation.setLongitude(settings.getPointToStart().getLongitude()); - } + //Test only: Try re-initialize start point to check impact on Issue 2515 + //if (settings.getPointToStart() != null) { + // lastFixedLocation.setLatitude(settings.getPointToStart().getLatitude()); + // lastFixedLocation.setLongitude(settings.getPointToStart().getLongitude()); + //} recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, route, true, false); } diff --git a/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java b/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java index a12b2352c9..e83d878b67 100644 --- a/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java +++ b/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java @@ -79,16 +79,13 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio getTargets().navigateToPoint(latlon, true, -1); } else { getTargets().setStartPoint(latlon, true, null); - //TODO: Hardy: Looks like there is a small bug somewhere: Re-selecting the "From" or "To" point during an ongoing route calculation (and only then) seems to only interrupt the ongoing route calculation. but not restart it, if (and only if) a route origin other than "Current position" is set. (Looks like this case is treated like a mere position update in our RoutingHelper, so normally no complete re-calculation is needed.) + //TODO: Issue 2515: Looks like there is a small bug somewhere: Re-selecting the "From" or "To" point during an ongoing route calculation (and only then) seems to only interrupt the ongoing route calculation. but not restart it, if (and only if) a route origin other than "Current position" is set. (Looks like this case is treated like a mere position update in our RoutingHelper, so normally no complete re-calculation is needed.) } contextMenu.setLocation(latlon, null); showDialog(); - //-Test code only-- - //Try force resuming route re-caculation if stopped due to Issue2515 + //Test code: Try force resuming route re-caculation here if stopped due to Issue 2515 // interesting: putting one or more of the next lines here destroys the alternating "interrupted route calculation won't re-start" behavior and causes the route calculation to NEVER re-start! //routingHelper.recalculateRouteDueToSettingsChange(); - //routingHelper.recalculateRouteDueToSettingsChange(); - //----------------- return true; } return super.onSingleTap(point, tileBox); From 97a5c1f63ba20996dd31ef406b3fe0ea56c07ab5 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 12:41:56 +0100 Subject: [PATCH 21/67] Try calling with previousRoute=null and check impact on Issue 2515 --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index fe5ff0c220..d1dacdbe4c 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -783,7 +783,9 @@ public class RoutingHelper { // lastFixedLocation.setLatitude(settings.getPointToStart().getLatitude()); // lastFixedLocation.setLongitude(settings.getPointToStart().getLongitude()); //} - recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, route, true, false); + //Try calling with previousRoute=null and check impact on Issue 2515 + //recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, route, true, false); + recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, null, true, false); } private void recalculateRouteInBackground(boolean force, final Location start, final LatLon end, final List intermediates, From fe6835dab46e5e11741463144f0517e85fda383b Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 12:55:42 +0100 Subject: [PATCH 22/67] Back out nulling previousRoute: No impact on Issue 2515 either --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index d1dacdbe4c..fe5ff0c220 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -783,9 +783,7 @@ public class RoutingHelper { // lastFixedLocation.setLatitude(settings.getPointToStart().getLatitude()); // lastFixedLocation.setLongitude(settings.getPointToStart().getLongitude()); //} - //Try calling with previousRoute=null and check impact on Issue 2515 - //recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, route, true, false); - recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, null, true, false); + recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, route, true, false); } private void recalculateRouteInBackground(boolean force, final Location start, final LatLon end, final List intermediates, From 326c9d76f9b0e3b85ce6d19e9fae0424e467d2db Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 13:42:15 +0100 Subject: [PATCH 23/67] Try re-initialize lastFixedLocation in clearCurrentRoute to check impact on Issue 2515 --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index fe5ff0c220..fa6e3322b6 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -156,6 +156,13 @@ public class RoutingHelper { }); this.finalLocation = newFinalLocation; this.intermediatePoints = newIntermediatePoints; + + //Test only: Try re-initialize start point to check impact on Issue 2515 + if (settings.getPointToStart() != null) { + this.lastFixedLocation.setLatitude(settings.getPointToStart().getLatitude()); + this.lastFixedLocation.setLongitude(settings.getPointToStart().getLongitude()); + } + if(currentRunningJob instanceof RouteRecalculationThread) { ((RouteRecalculationThread) currentRunningJob).stopCalculation(); } From bbed366ee43489aca29b4499238da5e61532750a Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 13:55:09 +0100 Subject: [PATCH 24/67] Back out, no impact on Issue 2515 either --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index fa6e3322b6..fe5ff0c220 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -156,13 +156,6 @@ public class RoutingHelper { }); this.finalLocation = newFinalLocation; this.intermediatePoints = newIntermediatePoints; - - //Test only: Try re-initialize start point to check impact on Issue 2515 - if (settings.getPointToStart() != null) { - this.lastFixedLocation.setLatitude(settings.getPointToStart().getLatitude()); - this.lastFixedLocation.setLongitude(settings.getPointToStart().getLongitude()); - } - if(currentRunningJob instanceof RouteRecalculationThread) { ((RouteRecalculationThread) currentRunningJob).stopCalculation(); } From 742be973ce1a266bb2c939a5d689dc4c3ef0ad58 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 14:36:45 +0100 Subject: [PATCH 25/67] Issue 2515: Try clearStartPoint(true) before changing setStartPoint --- .../src/net/osmand/plus/views/controls/MapRouteInfoControl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java b/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java index e83d878b67..5bdebd88b5 100644 --- a/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java +++ b/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java @@ -78,6 +78,8 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio if(selectFromMapForTarget) { getTargets().navigateToPoint(latlon, true, -1); } else { + //Temporary test this for Issue 2515: + getTargets().clearStartPoint(true); getTargets().setStartPoint(latlon, true, null); //TODO: Issue 2515: Looks like there is a small bug somewhere: Re-selecting the "From" or "To" point during an ongoing route calculation (and only then) seems to only interrupt the ongoing route calculation. but not restart it, if (and only if) a route origin other than "Current position" is set. (Looks like this case is treated like a mere position update in our RoutingHelper, so normally no complete re-calculation is needed.) } From 46ef4bf4bff66e0149015f602bbaec172ca7e131 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 14:57:30 +0100 Subject: [PATCH 26/67] Back out fix attempts for Issue 2515 and document current findings in comment --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 2 +- .../plus/views/controls/MapRouteInfoControl.java | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index fe5ff0c220..29ccb1b5aa 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -778,7 +778,7 @@ public class RoutingHelper { public void recalculateRouteDueToSettingsChange() { //This should fix route-recalculation if settings change during ongoing calculation clearCurrentRoute(finalLocation, intermediatePoints); - //Test only: Try re-initialize start point to check impact on Issue 2515 + //Issue 2515 test only: Try re-initialize start point here: No impact on Issue 2515 //if (settings.getPointToStart() != null) { // lastFixedLocation.setLatitude(settings.getPointToStart().getLatitude()); // lastFixedLocation.setLongitude(settings.getPointToStart().getLongitude()); diff --git a/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java b/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java index 5bdebd88b5..435f3b2bbf 100644 --- a/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java +++ b/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java @@ -78,16 +78,14 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio if(selectFromMapForTarget) { getTargets().navigateToPoint(latlon, true, -1); } else { - //Temporary test this for Issue 2515: - getTargets().clearStartPoint(true); getTargets().setStartPoint(latlon, true, null); - //TODO: Issue 2515: Looks like there is a small bug somewhere: Re-selecting the "From" or "To" point during an ongoing route calculation (and only then) seems to only interrupt the ongoing route calculation. but not restart it, if (and only if) a route origin other than "Current position" is set. (Looks like this case is treated like a mere position update in our RoutingHelper, so normally no complete re-calculation is needed.) + //TODO: Issue 2515: Re-selecting the "From" or "To" point, or any other route preference during an ongoing route calculation (and only then), and if the ""From" point is not "Current position" (and only then), always corretcly interrupts the ongoing route calculation, but restarts it exactly EVERY OTHER time only. } contextMenu.setLocation(latlon, null); showDialog(); - //Test code: Try force resuming route re-caculation here if stopped due to Issue 2515 - // interesting: putting one or more of the next lines here destroys the alternating "interrupted route calculation won't re-start" behavior and causes the route calculation to NEVER re-start! - //routingHelper.recalculateRouteDueToSettingsChange(); + //Issue 2515 test code: Try force resuming route re-caculation here if stopped due to Issue 2515 + // interesting: putting one or more of the next lines here destroys the alternating "interrupted route calculation won't re-start" behavior and causes the route calculation to NEVER re-start! + //routingHelper.recalculateRouteDueToSettingsChange(); return true; } return super.onSingleTap(point, tileBox); From 505dd6d2ba44337517696047f7e2ffd30ad6a4f8 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 17:20:41 +0100 Subject: [PATCH 27/67] Issue 2515: Try reset isCancelled after job is nulled --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 29ccb1b5aa..559b516735 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -734,6 +734,8 @@ public class RoutingHelper { RouteCalculationResult res = provider.calculateRouteImpl(params); if (params.calculationProgress.isCancelled) { currentRunningJob = null; +//Try this for Issue 2515 +params.calculationProgress.isCancelled = false; return; } final boolean onlineSourceWithoutInternet = !res.isCalculated() && params.type.isOnline() && !settings.isInternetConnectionAvailable(); From 82f3e5a4f63f668369224b68c278c2dfeb3ab3a4 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 17:36:24 +0100 Subject: [PATCH 28/67] Back out, no change --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 559b516735..29ccb1b5aa 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -734,8 +734,6 @@ public class RoutingHelper { RouteCalculationResult res = provider.calculateRouteImpl(params); if (params.calculationProgress.isCancelled) { currentRunningJob = null; -//Try this for Issue 2515 -params.calculationProgress.isCancelled = false; return; } final boolean onlineSourceWithoutInternet = !res.isCalculated() && params.type.isOnline() && !settings.isInternetConnectionAvailable(); From 2d728556c6ccc1ebb08d268604e8e73012ae9831 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 18:16:24 +0100 Subject: [PATCH 29/67] Test route.isEmpty for Issue 2515 --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 29ccb1b5aa..8686a52f8e 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -254,7 +254,7 @@ public class RoutingHelper { boolean calculateRoute = false; synchronized (this) { // 0. Route empty or needs to be extended? Then re-calculate route. - if(route.isEmpty()) { + if(route.isEmpty() || (settings.getPointToStart() != null)) { calculateRoute = true; } else { // 1. Update current route position status according to latest received location From f550348f15b46f7a48ea3a148027bc03d8db90df Mon Sep 17 00:00:00 2001 From: Yannis Gyftomitros Date: Sat, 10 Jan 2015 18:05:55 +0100 Subject: [PATCH 30/67] Translated using Weblate (Greek) Currently translated at 94.1% (1501 of 1595 strings) --- OsmAnd/res/values-el/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml index 890291e5c8..52b4c0348d 100644 --- a/OsmAnd/res/values-el/strings.xml +++ b/OsmAnd/res/values-el/strings.xml @@ -578,7 +578,7 @@ Δεν ήταν δυνατή η ανάλυση της γεωγρ πρόθεσης \'%s\' Αναζήτηση γεωγραφικής τοποθεσίας Σύστημα - Επιλέξτε γλώσσα εμφάνισης + Επιλέξτε γλώσσα εμφάνισης (επανεκκινήστε τον OsmAnd μετά την αλλαγή) Γλώσσα εμφάνισης Επιλογή Πηγής Χάρτη "Η πηγή χάρτη και οι στρώσεις χάρτη που εμφανίζονται αλλάζουν μέσω του \'Μενού\' → \'Διαμόρφωση χάρτη\'. From 4ac6037dd8dd1d9123235ba97bb54925e58c34bb Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 18:26:13 +0100 Subject: [PATCH 31/67] Back out, no impact --- OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 8686a52f8e..29ccb1b5aa 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -254,7 +254,7 @@ public class RoutingHelper { boolean calculateRoute = false; synchronized (this) { // 0. Route empty or needs to be extended? Then re-calculate route. - if(route.isEmpty() || (settings.getPointToStart() != null)) { + if(route.isEmpty()) { calculateRoute = true; } else { // 1. Update current route position status according to latest received location From 4afcfe411618a1075fba8672488ffaaee7638410 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 20:08:34 +0100 Subject: [PATCH 32/67] mend some typos --- .../src/net/osmand/plus/views/controls/MapRouteInfoControl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java b/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java index 435f3b2bbf..08ec6c0ccc 100644 --- a/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java +++ b/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java @@ -79,7 +79,7 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio getTargets().navigateToPoint(latlon, true, -1); } else { getTargets().setStartPoint(latlon, true, null); - //TODO: Issue 2515: Re-selecting the "From" or "To" point, or any other route preference during an ongoing route calculation (and only then), and if the ""From" point is not "Current position" (and only then), always corretcly interrupts the ongoing route calculation, but restarts it exactly EVERY OTHER time only. + //TODO: Issue 2515: Re-selecting the "From" or "To" point, or any other route preference during an ongoing route calculation (and only then), and if the "From" point is not "Current position" (and only then), always correctly interrupts the ongoing route calculation, but restarts it exactly EVERY OTHER time only. } contextMenu.setLocation(latlon, null); showDialog(); From b08c5806d9ffb20d7e5a88680ba7646145c82647 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 21:03:31 +0100 Subject: [PATCH 33/67] replace 1 : 0 by true : false --- .../net/osmand/plus/dialogs/ConfigureMapMenu.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 4b0777b86c..f80f3221b2 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -65,7 +65,7 @@ public class ConfigureMapMenu { createLayersItems(adapter, ma); if (!advanced){ adapter.item(R.string.btn_advanced_mode).icons(R.drawable.ic_action_settings_dark, R.drawable.ic_action_settings_light) - .selected(advanced ? 1 : 0) + .selected(advanced ? true : false) .listen(new OnContextMenuClick() { @Override public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int pos, boolean isChecked) { @@ -146,14 +146,14 @@ public class ConfigureMapMenu { LayerMenuListener l = new LayerMenuListener(activity, adapter); adapter.item(R.string.layers_category_show).setCategory(true).layout(R.layout.drawer_list_sub_header).reg(); // String appMode = " [" + settings.getApplicationMode().toHumanString(view.getApplication()) +"] "; - adapter.item(R.string.layer_poi).selected(settings.SHOW_POI_OVER_MAP.get() ? 1 : 0) + adapter.item(R.string.layer_poi).selected(settings.SHOW_POI_OVER_MAP.get() ? true : false) .icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light).listen(l).reg(); - adapter.item(R.string.layer_amenity_label).selected(settings.SHOW_POI_LABEL.get() ? 1 : 0) + adapter.item(R.string.layer_amenity_label).selected(settings.SHOW_POI_LABEL.get() ? true : false) .icons(R.drawable.ic_action_text_dark, R.drawable.ic_action_text_light).listen(l).reg(); - adapter.item(R.string.layer_favorites).selected(settings.SHOW_FAVORITES.get() ? 1 : 0) + adapter.item(R.string.layer_favorites).selected(settings.SHOW_FAVORITES.get() ? true : false) .icons(R.drawable.ic_action_fav_dark, R.drawable.ic_action_fav_light).listen(l).reg(); adapter.item(R.string.layer_gpx_layer).selected( - app.getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0) + app.getSelectedGpxHelper().isShowingAnyGpxFiles() ? true : false) // .icons(R.drawable.ic_action_foot_dark, R.drawable.ic_action_foot_light) .icons(R.drawable.ic_action_polygom_dark, R.drawable.ic_action_polygom_light) .listen(l).reg(); @@ -470,7 +470,7 @@ public class ConfigureMapMenu { refreshMapComplete(activity); return false; } - }).selected(pref.get() ? 1 : 0).reg(); + }).selected(pref.get() ? true : false).reg(); } else { final OsmandSettings.CommonPreference pref = view.getApplication().getSettings() .getCustomRenderProperty(p.getAttrName()); From 5889247ab62c44a646619cda4c639f196b5ef98e Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 21:10:06 +0100 Subject: [PATCH 34/67] revert, int was required --- .../net/osmand/plus/dialogs/ConfigureMapMenu.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index f80f3221b2..bbdf461f90 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -65,7 +65,7 @@ public class ConfigureMapMenu { createLayersItems(adapter, ma); if (!advanced){ adapter.item(R.string.btn_advanced_mode).icons(R.drawable.ic_action_settings_dark, R.drawable.ic_action_settings_light) - .selected(advanced ? true : false) + .selected(advanced ? 1 : 0) .listen(new OnContextMenuClick() { @Override public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int pos, boolean isChecked) { @@ -146,14 +146,14 @@ public class ConfigureMapMenu { LayerMenuListener l = new LayerMenuListener(activity, adapter); adapter.item(R.string.layers_category_show).setCategory(true).layout(R.layout.drawer_list_sub_header).reg(); // String appMode = " [" + settings.getApplicationMode().toHumanString(view.getApplication()) +"] "; - adapter.item(R.string.layer_poi).selected(settings.SHOW_POI_OVER_MAP.get() ? true : false) + adapter.item(R.string.layer_poi).selected(settings.SHOW_POI_OVER_MAP.get() ? 1 : 0) .icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light).listen(l).reg(); - adapter.item(R.string.layer_amenity_label).selected(settings.SHOW_POI_LABEL.get() ? true : false) + adapter.item(R.string.layer_amenity_label).selected(settings.SHOW_POI_LABEL.get() ? 1 : 0) .icons(R.drawable.ic_action_text_dark, R.drawable.ic_action_text_light).listen(l).reg(); - adapter.item(R.string.layer_favorites).selected(settings.SHOW_FAVORITES.get() ? true : false) + adapter.item(R.string.layer_favorites).selected(settings.SHOW_FAVORITES.get() ? 1 : 0) .icons(R.drawable.ic_action_fav_dark, R.drawable.ic_action_fav_light).listen(l).reg(); adapter.item(R.string.layer_gpx_layer).selected( - app.getSelectedGpxHelper().isShowingAnyGpxFiles() ? true : false) + app.getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0) // .icons(R.drawable.ic_action_foot_dark, R.drawable.ic_action_foot_light) .icons(R.drawable.ic_action_polygom_dark, R.drawable.ic_action_polygom_light) .listen(l).reg(); @@ -470,7 +470,7 @@ public class ConfigureMapMenu { refreshMapComplete(activity); return false; } - }).selected(pref.get() ? true : false).reg(); + }).selected(pref.get() ? 1 : 0).reg(); } else { final OsmandSettings.CommonPreference pref = view.getApplication().getSettings() .getCustomRenderProperty(p.getAttrName()); From 25aec78c459602c9dbd6ea55994e0085d31529a7 Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 23:53:02 +0100 Subject: [PATCH 35/67] Try re-initialiize tick mark for GPX track --- OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index bbdf461f90..73e8661723 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -131,6 +131,11 @@ public class ConfigureMapMenu { } else { ma.getMapLayers().showGPXFileLayer(getAlreadySelectedGpx(), ma.getMapView()); } + adapter.item(R.string.layer_gpx_layer).selected( + app.getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0) + //.icons(R.drawable.ic_action_foot_dark, R.drawable.ic_action_foot_light) + .icons(R.drawable.ic_action_polygom_dark, R.drawable.ic_action_polygom_light) + .listen(l).reg(); } else if (itemId == R.string.layer_transport_route) { ma.getMapLayers().getTransportInfoLayer().setVisible(isChecked); } From e94798d68c4a9b43b15eeb428cd9391fc72fb1ca Mon Sep 17 00:00:00 2001 From: Viktar Palstsiuk Date: Sat, 10 Jan 2015 21:32:14 +0100 Subject: [PATCH 36/67] Translated using Weblate (Belarusian) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-be/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 8bceac4ae1..22883af933 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -1076,7 +1076,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Не ўдалося атрымаць сьпіс зборак OsmAnd Загружаюцца зборкі OsmAnd… Выберыце зборку OsmAnd для ўстаноўкі - Праграма статуса GPS не ўсталяваная. Пашукаць яе ў Market? + Праграма стану GPS не ўсталяваная. Шукаць яе ў Google Play? Галасавыя каманды не даступныя. Калі ласка, перайдзіце ў \"Налады\" → \"Агульныя\" → \"Галасавыя дадзеныя\" і абярыце ці сьцягніце пакет галасавых падказак. Галасавыя падказкі не абраныя Дзень @@ -1271,7 +1271,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Пачаць навігацыю Абярыце спачатку месца прызначэньня Навігацыя - Паказаць статус GPS + Паказаць стан GPS Гадзіны працы Адкрыцьцё пакета паправак… Закрыцьцё пакета паправак… @@ -1539,7 +1539,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Абнавіць каналы ці і - Статус GPS + Стан GPS Запомніць мой выбар Сусьветная аглядная мапа Сусьветная лыжная мапа @@ -1927,7 +1927,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Падрабязнасьці Транспарт Паказаць - Статусны радок + Радок стану Правая панэль Левая панэль Іншыя атрыбуты мапы From 935768f49a85aeabd34b39eb371075267080f8db Mon Sep 17 00:00:00 2001 From: sonora Date: Sat, 10 Jan 2015 23:57:08 +0100 Subject: [PATCH 37/67] revert for now --- OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 73e8661723..bbdf461f90 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -131,11 +131,6 @@ public class ConfigureMapMenu { } else { ma.getMapLayers().showGPXFileLayer(getAlreadySelectedGpx(), ma.getMapView()); } - adapter.item(R.string.layer_gpx_layer).selected( - app.getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0) - //.icons(R.drawable.ic_action_foot_dark, R.drawable.ic_action_foot_light) - .icons(R.drawable.ic_action_polygom_dark, R.drawable.ic_action_polygom_light) - .listen(l).reg(); } else if (itemId == R.string.layer_transport_route) { ma.getMapLayers().getTransportInfoLayer().setVisible(isChecked); } From bbeb4211e0c2105d0cf69d615cdf4e59ba152cbd Mon Sep 17 00:00:00 2001 From: Lu Ca Date: Sun, 11 Jan 2015 01:49:32 +0100 Subject: [PATCH 38/67] Translated using Weblate (Sardinian) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-sc/strings.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 2b7b7ea64a..f7870f43a5 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -1228,7 +1228,7 @@ Si cussigiat de annànghere unu o prus puntos intermedios pro megiorare sas pres Impossìbile lèghere geo intent \'%s\' Chirca indiritzu impreande sas mapas non in lìnia Sistema - Ischerta limba interfàtzia + Ischerta limba interfàtzia (pro piaghere torra a allùere OsmAnd a pustis de su càmbiu) Limba interfàtzia non cumpridu Issèbera una Mitza pro sa Mapa @@ -1773,7 +1773,7 @@ Si cussigiat de annànghere unu o prus puntos intermedios pro megiorare sas pres Àndalas tram e trenu Allughe s\'ischermu Allughe s\'ischermu cando b\'est una bortada a curtzu - Ischerta in sa mapa + Ischerta in sa mapa… Istransi istradas… Cua Mai @@ -1818,4 +1818,5 @@ Si cussigiat de annànghere unu o prus puntos intermedios pro megiorare sas pres Ammustra sas rugradas ferroviàrias Ammustra sas istrìscias pedonales Annùntzia sos atraessamentos pedonales - + Predefinidu + From f9671069af5842004386712a4715b89af4085ba5 Mon Sep 17 00:00:00 2001 From: sonora Date: Sun, 11 Jan 2015 09:24:22 +0100 Subject: [PATCH 39/67] Try sync GPX track tick mark --- OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index bbdf461f90..26d19bdfd0 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -131,6 +131,8 @@ public class ConfigureMapMenu { } else { ma.getMapLayers().showGPXFileLayer(getAlreadySelectedGpx(), ma.getMapView()); } + //sync tick mark + cm.item(R.string.layer_gpx_layer).selected(ma.getMyApplication().getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0).reg(); } else if (itemId == R.string.layer_transport_route) { ma.getMapLayers().getTransportInfoLayer().setVisible(isChecked); } From cdc78b1ac77fdd8d11b16a9c5d896fcca4a1ebe8 Mon Sep 17 00:00:00 2001 From: Roberto GEB Date: Sun, 11 Jan 2015 03:06:51 +0100 Subject: [PATCH 40/67] Translated using Weblate (Spanish) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-es/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index b4719b2447..b0ce523d12 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -272,7 +272,7 @@ No se pudo analizar el filtro \'%s\' Buscar dirección usando mapas sin conexión Sistema - Selecciona el idioma de visualización + Selecciona el idioma de visualización (por favor, reinicie OsmAnd después del cambio) Idioma de la pantalla Elige una Fuente de mapa @@ -1832,7 +1832,7 @@ En las proximidades de "Cambios en 1.9: * Actualizados los estilos de los mapas con renderizado de la superficie de la carretera, capas de transporte y símbolos de senderismo * Búsqueda de puntos de interés a lo largo de la ruta * Marcar carretera como intransitable por sesión * Más sencillo la descarga y actualización de mapas * Recibir notificaciones visuales y sonoras al acercarse a un punto de la ruta * Imprimir itinerario e información de giros * Soporte de carriles de giro * Soporte a Android Wear * Muchos cambios en la IU * Acercamiento separado por tamaño de texto en el mapa * Notificación de audio especial en caso de que esté fuera de la ruta * Funcionalidad de inicio de sesión en OsMo * Corregidas incompatibilidades de versión de OsMo " Rutas - Seleccionar en el mapa + Seleccionar en el mapa… Evitar carreteras… Rutas de tranvía y tren Rutas de tren From 2ff500052a7a4fd1e8ae06354250e4a4f3a1133d Mon Sep 17 00:00:00 2001 From: sonora Date: Sun, 11 Jan 2015 09:40:46 +0100 Subject: [PATCH 41/67] sync tick mark in onRowItemClick, too --- OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 26d19bdfd0..1aafdd9e35 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -107,6 +107,8 @@ public class ConfigureMapMenu { return false; } else if(itemId == R.string.layer_gpx_layer && cm.getSelection(pos) == 1) { ma.getMapLayers().showGPXFileLayer(getAlreadySelectedGpx(), ma.getMapView()); + //sync tick mark + cm.item(R.string.layer_gpx_layer).selected(ma.getMyApplication().getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0).reg(); return false; } else { return super.onRowItemClick(adapter, view, itemId, pos); From dcd9cb9516dbf80f7aaeea712609cb609e128d72 Mon Sep 17 00:00:00 2001 From: sonora Date: Sun, 11 Jan 2015 09:54:14 +0100 Subject: [PATCH 42/67] notifyDataSetChanged --- OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 1aafdd9e35..3c4101e778 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -109,6 +109,7 @@ public class ConfigureMapMenu { ma.getMapLayers().showGPXFileLayer(getAlreadySelectedGpx(), ma.getMapView()); //sync tick mark cm.item(R.string.layer_gpx_layer).selected(ma.getMyApplication().getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0).reg(); + cm.notifyDataSetChanged(); return false; } else { return super.onRowItemClick(adapter, view, itemId, pos); @@ -135,6 +136,7 @@ public class ConfigureMapMenu { } //sync tick mark cm.item(R.string.layer_gpx_layer).selected(ma.getMyApplication().getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0).reg(); + cm.notifyDataSetChanged(); } else if (itemId == R.string.layer_transport_route) { ma.getMapLayers().getTransportInfoLayer().setVisible(isChecked); } From 8ebd6e198a039055fe1896ddcc0938eae699a278 Mon Sep 17 00:00:00 2001 From: sonora Date: Sun, 11 Jan 2015 10:03:12 +0100 Subject: [PATCH 43/67] try for adapter --- OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 3c4101e778..3a7670a9b7 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -109,7 +109,7 @@ public class ConfigureMapMenu { ma.getMapLayers().showGPXFileLayer(getAlreadySelectedGpx(), ma.getMapView()); //sync tick mark cm.item(R.string.layer_gpx_layer).selected(ma.getMyApplication().getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0).reg(); - cm.notifyDataSetChanged(); + adapter.notifyDataSetChanged(); return false; } else { return super.onRowItemClick(adapter, view, itemId, pos); @@ -136,7 +136,7 @@ public class ConfigureMapMenu { } //sync tick mark cm.item(R.string.layer_gpx_layer).selected(ma.getMyApplication().getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0).reg(); - cm.notifyDataSetChanged(); + adapter.notifyDataSetChanged(); } else if (itemId == R.string.layer_transport_route) { ma.getMapLayers().getTransportInfoLayer().setVisible(isChecked); } From 1f99120f9ce3b303f16d1b56f7081a3373c061cd Mon Sep 17 00:00:00 2001 From: sonora Date: Sun, 11 Jan 2015 10:12:10 +0100 Subject: [PATCH 44/67] remove notifyDatSetChanged --- OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 3a7670a9b7..1aafdd9e35 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -109,7 +109,6 @@ public class ConfigureMapMenu { ma.getMapLayers().showGPXFileLayer(getAlreadySelectedGpx(), ma.getMapView()); //sync tick mark cm.item(R.string.layer_gpx_layer).selected(ma.getMyApplication().getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0).reg(); - adapter.notifyDataSetChanged(); return false; } else { return super.onRowItemClick(adapter, view, itemId, pos); @@ -136,7 +135,6 @@ public class ConfigureMapMenu { } //sync tick mark cm.item(R.string.layer_gpx_layer).selected(ma.getMyApplication().getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0).reg(); - adapter.notifyDataSetChanged(); } else if (itemId == R.string.layer_transport_route) { ma.getMapLayers().getTransportInfoLayer().setVisible(isChecked); } From b44841b5bbffae69315e5f5659be44fc79641ee3 Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Sun, 11 Jan 2015 20:18:21 +0100 Subject: [PATCH 45/67] Translated using Weblate (Dutch) Currently translated at 100% (0 of 0 strings) Created new translation. --- OsmAnd/res/values-nl/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 OsmAnd/res/values-nl/phrases.xml diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml new file mode 100644 index 0000000000..a6b3daec93 --- /dev/null +++ b/OsmAnd/res/values-nl/phrases.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From 1edde1319dcb769a2ca7cff543d579dad3fdc213 Mon Sep 17 00:00:00 2001 From: 8c6311e901274f6baef2068792c8ab Date: Sun, 11 Jan 2015 13:25:03 +0100 Subject: [PATCH 46/67] =?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 71.2% (1136 of 1595 strings) --- OsmAnd/res/values-nb/strings.xml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 36e8fdaf6a..44e16198c7 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -267,7 +267,7 @@ Udefinert Fast Gjeldende posisjon… - Siste kartvisning + Gjeldende kartsenter Utgangspunkt: Søk nær her Lagre rute som GPX-spor @@ -324,7 +324,7 @@ \n\nFor å vise alle favorittpunkter direkte på kartet, aktiver på kartskjermen laget \'Favoritter\' i \'Meny\' → \'Still inn kart\'. " Søk geografisk plassering System - Velg visningsspråk + Velg visningsspråk (start OsmAnd på nytt etter endring) Visningsspråk Velg en kartkilde "Kartkilden og kartlag som vises endres via \'Meny\' → \'Still inn kart\'. @@ -391,7 +391,7 @@ km/t m Foreldet kartdataformat \'\'{0}\'\' støttes ikke - Nærmeste interessepunkt + Nærmeste interessepunkter Egendefinert filter Kan ikke finne den spesifiserte mappen. Datalagringsmappe @@ -463,7 +463,7 @@ Filter Velg taleveiledning for navigering Taleveiledning - Søk i nærheten av siste kartplassering + Søk i nærheten av gjeldende kartsenter Søk i nærheten Samme som enhet Portrett @@ -798,7 +798,7 @@ Programtillegg Bruk posisjon… Slå på skjermen - Velg på kart + Velg på kart… Unngå veier… Bussruter Skjul @@ -894,7 +894,7 @@ Angi kjøretøyets vekt som er tillatt på ruter Kopierer OsmAnd-datafiler til det nye stedet (%s)… Slett alle punkter - Bruk Kalmanfilter for å unngå kompassavvik + Reduserer støy i kompassavlesninger, men legger til treghet Bruk Kalmanfilter Annen Er tilgjengelig %1$d filer til nedlasting @@ -1190,4 +1190,5 @@ %1$s trenger denne tillatelsen til å slå av skjermen (Strømsparingsfunksjon). VIS ALLE Meld om fotgjengeroverganger - + Standard + From 787f27a6e16b9e650daa158f3d89a3eb1f6e4bc3 Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Sun, 11 Jan 2015 20:32:54 +0100 Subject: [PATCH 47/67] Translated using Weblate (Dutch) Currently translated at 6.2% (38 of 611 strings) --- OsmAnd/res/values-nl/phrases.xml | 44 ++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index a6b3daec93..692837184b 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -1,2 +1,42 @@ - - \ No newline at end of file + +Historische mijn + Paleontologische site + + Bakkerij + Drankwinkel + Supermarkt + Winkelcentrum + Drankwinkel + Vleesmarkt + Delicatessenwinkel + Boerderijwinkel + Groentewinkel + Viswinkel + Banketbakkerij + Kernexplosiesite +IJssalon + Supermarkt + Theewinkel + Zuivelwinkel + Verkoopautomaat + + Boekhandel + Fietswinkel + Animewinkel + Antiekwinkel + Kunstwinkel + Babywinkel + Tassenwinkel + Badkamermeubelwinkel + Slaapkamermeubelwinkel + Modezaak + Tapijtwinkel + Apotheek + Kledingwinkel + Kinderkledingwinkel + Schoenenwinkel + Computerwinkel + Kopieerzaak + Gordijnwinkel + Stoffenwinkel + From 22161a6470430bc522bfa82625e55b880eb2cbbf Mon Sep 17 00:00:00 2001 From: Thomas Tonino Date: Sun, 11 Jan 2015 20:40:38 +0100 Subject: [PATCH 48/67] Translated using Weblate (Dutch) Currently translated at 8.0% (49 of 611 strings) --- OsmAnd/res/values-nl/phrases.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index 692837184b..fd1982dd18 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -39,4 +39,15 @@ Kopieerzaak Gordijnwinkel Stoffenwinkel + Beddenwinkel + Duikbenodigdheden + Bouwmarkt + Sex-shop + Bloemenwinkel + Tuincentrum + Gasflessen + Cadeauwinkel + Glashandel + IJzerhandel + Hoorapparaten From 50804ae0ce0ee9496538ae436794de7eddb5494d Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Mon, 12 Jan 2015 02:02:35 +0100 Subject: [PATCH 49/67] Try to fix issue with route recalculation --- .../osmand/plus/routing/RoutingHelper.java | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 99107511a0..c117ff6f39 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -709,6 +709,7 @@ public class RoutingHelper { private final RouteCalculationParams params; private boolean paramsChanged; + private Thread prevRunningJob; public RouteRecalculationThread(String name, RouteCalculationParams params, boolean paramsChanged) { super(name); @@ -730,10 +731,23 @@ public class RoutingHelper { @Override public void run() { - + if(prevRunningJob != null) { + while(prevRunningJob.isAlive()){ + try { + Thread.sleep(50); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + synchronized (RoutingHelper.this) { + currentRunningJob = this; + } RouteCalculationResult res = provider.calculateRouteImpl(params); if (params.calculationProgress.isCancelled) { - currentRunningJob = null; + synchronized (RoutingHelper.this) { + currentRunningJob = null; + } return; } final boolean onlineSourceWithoutInternet = !res.isCalculated() && params.type.isOnline() && !settings.isInternetConnectionAvailable(); @@ -773,6 +787,10 @@ public class RoutingHelper { } lastTimeEvaluatedRoute = System.currentTimeMillis(); } + + public void setWaitPrevJob(Thread prevRunningJob) { + this.prevRunningJob = prevRunningJob; + } } public void recalculateRouteDueToSettingsChange() { @@ -787,9 +805,9 @@ public class RoutingHelper { if (start == null || end == null) { return; } - if (currentRunningJob == null) { + if (currentRunningJob == null || force) { // do not evaluate very often - if (force || System.currentTimeMillis() - lastTimeEvaluatedRoute > evalWaitInterval) { + if (System.currentTimeMillis() - lastTimeEvaluatedRoute > evalWaitInterval || force) { RouteCalculationParams params = new RouteCalculationParams(); params.start = start; params.end = end; @@ -807,7 +825,12 @@ public class RoutingHelper { updateProgress(params.calculationProgress); } synchronized (this) { - currentRunningJob = new RouteRecalculationThread("Calculating route", params, paramsChanged); //$NON-NLS-1$ + final Thread prevRunningJob = currentRunningJob; + RouteRecalculationThread newThread = new RouteRecalculationThread("Calculating route", params, paramsChanged); //$NON-NLS-1$ + currentRunningJob = newThread ; + if(prevRunningJob != null) { + newThread.setWaitPrevJob(prevRunningJob); + } currentRunningJob.start(); } } From de1e1040b7e26070ee9d7bb7126c79d9fd96c640 Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Sun, 11 Jan 2015 23:11:28 +0100 Subject: [PATCH 50/67] Translated using Weblate (Dutch) Currently translated at 18.6% (114 of 611 strings) --- OsmAnd/res/values-nl/phrases.xml | 67 ++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index fd1982dd18..49b045cf8a 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -50,4 +50,71 @@ Glashandel IJzerhandel Hoorapparaten + Hengelsportzaak + Fotolijstwinkel + Meubelwinkel + Winkel + Kruidenierszaak + Hi-Fi-winkel + Huishoudelijke winkel + Jachtwinkel + Interieurdecoratiewinkel + Juwelier + Kiosk + Keukengereiwinkel + Mobiele telefoon-winkel + Motorwinkel + Muziekinstrumentenwinkel + Persagentschap + Opticien + Biologische voedingswinkel + Outdoor-winkel + Verfwinkel + Dierenwinkel + Radiotechnics-winkel + Tweedehandswinkel + Scheepsbevoorrader + Sportwinkel + Briefpapierwinkel + Servieswinkel + Ticketwinkel + Tabakswinkel + Speelgoedwinkel + Handelspost + Stofzuigerwinkel + Variëteitenzaak + Videotheek + Rolluikenwinkel + Warenhuis + Elektronica-winkel + Autohandelaar + Auto-onderdelenwinkel + Quad-winkel + Cosmeticazaak + Marktplaats + Confectiewinkel + + Politie + Brandweer + Noodtelefoon + Brandkraan + Brandblusapparaat + Brandflapper + Brandslang + Brandwatervijver + Zoutbak + Ambulancestandplaats + SES-standplaats + Nood-toegangspunt + + Ford + Bergpas + Poort + Stadsmuur + Liftpoort + Tolpoort + Grenscontrole + Snelheidsdrempel + Bult + Kussen From 7f1d76852e873030394aeadc9de0d0530c79cfb9 Mon Sep 17 00:00:00 2001 From: Thomas Tonino Date: Mon, 12 Jan 2015 11:41:42 +0100 Subject: [PATCH 51/67] Translated using Weblate (Dutch) Currently translated at 18.6% (114 of 611 strings) --- OsmAnd/res/values-nl/phrases.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index 49b045cf8a..39f6fe2abf 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -24,14 +24,14 @@ Fietswinkel Animewinkel Antiekwinkel - Kunstwinkel + Galerie Babywinkel Tassenwinkel Badkamermeubelwinkel - Slaapkamermeubelwinkel + Beddenwinkel Modezaak Tapijtwinkel - Apotheek + Drogisterij Kledingwinkel Kinderkledingwinkel Schoenenwinkel @@ -53,7 +53,7 @@ Hengelsportzaak Fotolijstwinkel Meubelwinkel - Winkel + Winkel in diverse goederen Kruidenierszaak Hi-Fi-winkel Huishoudelijke winkel From d3d4da2e0c7472978a29858c9c7e3852b632c820 Mon Sep 17 00:00:00 2001 From: Denis Date: Mon, 12 Jan 2015 13:05:36 +0200 Subject: [PATCH 52/67] Removed bad code --- .../src/net/osmand/plus/dashboard/DashFavoritesFragment.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java index ab22ff2282..1ab66b2c07 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java @@ -258,9 +258,6 @@ public class DashFavoritesFragment extends DashBaseFragment implements Favourite @Override public void updateFavourites() { - if (getActivity() == null) { - return; - } getActivity().runOnUiThread(new Runnable() { @Override public void run() { From 4130beec858cfe35502c4b1ef44813d27f395caa Mon Sep 17 00:00:00 2001 From: Viktar Palstsiuk Date: Mon, 12 Jan 2015 12:22:44 +0100 Subject: [PATCH 53/67] Translated using Weblate (Belarusian) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-be/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 22883af933..ea698f5af5 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -1964,10 +1964,10 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Немагчыма cьцягнуць. Калі ласка, праверце ваша Інтэрнэт-злучэньне. Усе cьцягваньні Абнаўленьні - Лякальны + Лякальныя Зона - На поўнач - На ўсход + Па шыраце + Па даўгаце Мова мапы Прыпынкі транспарту Вы хочаце cьцягнуць якія-небудзь мапы? @@ -1982,7 +1982,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві Не выкарыстоўваць правілы маршрутызацыі ўведзеныя ў v1.9 Па змоўчаньні Стыль аўтадарог - Паказваць папярэджаньні для пешаходаў + Паказваць пешаходныя пераходы Пешаходны пераход Чыгуначны пераезд Паказваць чыгуначныя пераезды From 9b20946c8795ed5e71c73db257ff1a607fae5dbb Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Mon, 12 Jan 2015 13:33:06 +0100 Subject: [PATCH 54/67] Translated using Weblate (Dutch) Currently translated at 62.5% (382 of 611 strings) --- OsmAnd/res/values-nl/phrases.xml | 287 +++++++++++++++++++++++++++++++ 1 file changed, 287 insertions(+) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index 39f6fe2abf..a975b3cc78 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -117,4 +117,291 @@ Snelheidsdrempel Bult Kussen + Stoplicht + + Tankstation + Parking + Motorparking + Parkingsingang + Garages + + Halte voor openbaar vervoer + Bushalte + Trolleybushalte + Bushalte (verouderd) + Tramhalte + Tramhalte (verouderd) + Station voor openbaar vervoer + Busstation (verouderd) + Treinstation (verouderd) + Perron (verouderd) + Treinhalte (verouderd) + Metro-ingang + Metrostation + Taxistandplaats + + Luchthaven + Helikopterplatform + Landingsbaan + Terminal + Gate + + Scheepshelling + Veerstoep + Vuurtoren + + Fietsverhuur + Fietsenstalling + + Gondola + Watertoren + Dam + Elektriciteitscentrale + Postkantoor + Postbus + Telefoon + Communicatietoren + Pier + Observatorium + Sterrenwacht + Toren + Mast + Radar + Wijngaard + Boomgaard + School + Kleuterschool + Universiteit + + College + Gevangenis + Ambassade + Regering + Douane + Stad + Gehucht + Dorp + Gemeente + Buitenwijk + Geïsoleerde woning + Buurt + Nederzetting + Volkstuin + Boerderij + + Apotheek + Ziekenhuis + Kliniek + Dokters + Eerste hulp + Tandarts + Verpleeghuis + Vondelingenluik + Dierenarts + Sanatorium + Audioloog + Bloedbank + Fysiotherapeut + Opticien + Podoloog + Psychotherapeut + Bedrijf + Verzekeraar + Vastgoedmakelaar + Advocaat + NGO + Stadhuis + Reclamebureau + Onderwijsinstelling + Architectenkantoor + Onderzoekskantoor + Studio + Bookmaker + + Stadion + Museum + Gedenkteken + Archeologische site + Slagveld + Historisch kanon + Kasteel + Stadspoort + Fort + Fontein + Historische ruïnes + Historisch schip + Scheepswrak + Monument + Zoo + Aquarium + Toeristische attractie + Dier (attractie) + Reuzenrad + Draaimolen + Doolhof + Achtbaan + Attractie + Pretpark + + Glijbaan + Zomerrodelbaan + Zweefmolen + Trein (attractie) + Waterglijbaan + + Hotel + Hostel + Motel + Guest house + Berghut + Chalet + + Klooster + Historisch klooster + Gebedshuis: taoïstisch + Gebedshuis + Gebedshuis: christelijk + Gebedshuis: joods + Gebedshuis: islamitisch + Gebedshuis: sikh + Gebedshuis: boeddhistisch + Gebedshuis: hindu + Gebedshuis: shinto + Klok + Reisbureau + Bron + Warmwaterbron + Geiser + Begraafplaats + Kerkhof + Schuilplaats + Kabelbaan + Resort + + Kunstvereniging + Astronomievereniging + Computervereniging + Bordspellenvereniging + Motorvereniging + Sportvereniging + Spellenvereniging + Autovereniging + Schaakvereniging + Cinemavereniging + Fanclub + Visvereniging + Veteranenvereniging + Linuxvereniging + Theatervereniging + Geschiedenisvereniging + Muziekvereniging + Ethnische vereniging + Natuurvereniging + Fotografievereniging + Jachtvereniging + Schietvereniging + Toerismevereniging + Liefdadigheidsvereniging + + Bibliotheek + Kunstencentrum + Cinema + Casino + Gemeenschapscentrum + Sociaal centrum + Theater + Circus + Dansvloer + Nachtclub + Stripclub + Badplaats + Hondenpark + Visplaats + Jachttoren + Haven + Jachthaven + Minigolf + Speeltuin + Zwembad + Waterpretpark + Park + + Café + Biergarten + Restaurant + Fastfood + Bar + Kroeg + Barbecue + + Smid + Imker + Mandenvlechter + Brouwerij + Botenbouwer + Boekbinder + Timmerman + Elektricien + Tuinier + Slotenmaker + Juwelier + Sleutelsnijder + Opticien + Schilder + Fotograaf + Fotografisch laboratorium + Loodgieter + Stukadoor + Tuiger + Dakdekker + Zadelaar + Schoenmaker + Kleermaker + Schoonheidssalon + Nagelsalon + Kapper + Massagesalon + Tattoosalon + Autoverhuur + Dok + Toilet + Sauna + Bordeel + Mortuarium + Crematorium + Internetcafé + + Bank + Geldautomaat + Accountant + Grot-ingang + Bergtop + + Vulkaan + Krater + Bergrug + Gletsjer + Zinkgat + Waterval + Rivier + Stroom + Stroomversnellingen + Strand + Baai + Fjord + Rif + Drasland + Natuurreservaat + Eiland + Eilandje + + Dijk + Haven + Chicane + Rammelstrook + Plateau + Wegversmalling + Autoreparateur + Banden + Autokeuring From 8462a163f57fd9482e529b1973e1cc3aca768a9e Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Mon, 12 Jan 2015 13:33:25 +0100 Subject: [PATCH 55/67] Translated using Weblate (Dutch) Currently translated at 62.6% (383 of 611 strings) --- OsmAnd/res/values-nl/phrases.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index a975b3cc78..1933faa22d 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -404,4 +404,5 @@ Autoreparateur Banden Autokeuring + Wasstraat From d131819c44332ce95d6dfa2f647c0b5df36bad23 Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Mon, 12 Jan 2015 13:33:45 +0100 Subject: [PATCH 56/67] Translated using Weblate (Dutch) Currently translated at 62.8% (384 of 611 strings) --- OsmAnd/res/values-nl/phrases.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index 1933faa22d..d4967154e7 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -405,4 +405,5 @@ Banden Autokeuring Wasstraat + Oplaadpunt From 655ce5b2c2ec79a2815846bb59517c9869fcbdad Mon Sep 17 00:00:00 2001 From: Petr Kulhavy Date: Mon, 12 Jan 2015 13:41:02 +0100 Subject: [PATCH 57/67] Translated using Weblate (Czech) Currently translated at 100.0% (1595 of 1595 strings) --- OsmAnd/res/values-cs/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml index c5d1a15325..297a909d7c 100644 --- a/OsmAnd/res/values-cs/strings.xml +++ b/OsmAnd/res/values-cs/strings.xml @@ -1810,4 +1810,5 @@ s často kladenými otázkami. Nepoužívat routovací pravidla v1.9 Nepoužívat pravidla výpočtu trasy zavedené ve verzi 1.9 Oznamovat přechody pro chodce - + Výchozí + From d739144777da4da870b4c541b99ecb58a875cb60 Mon Sep 17 00:00:00 2001 From: Denis Date: Mon, 12 Jan 2015 18:17:39 +0200 Subject: [PATCH 58/67] Removed dashdownloads fragment from dashboard, temporary --- OsmAnd/res/layout/dashboard.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OsmAnd/res/layout/dashboard.xml b/OsmAnd/res/layout/dashboard.xml index 93038aec2a..b2d33870bf 100644 --- a/OsmAnd/res/layout/dashboard.xml +++ b/OsmAnd/res/layout/dashboard.xml @@ -47,12 +47,12 @@ android:layout_width="match_parent" android:layout_height="wrap_content"/> - + + + + + + Date: Mon, 12 Jan 2015 13:50:34 +0100 Subject: [PATCH 59/67] Translated using Weblate (Dutch) Currently translated at 67.4% (412 of 611 strings) --- OsmAnd/res/values-nl/phrases.xml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index d4967154e7..7207a293f7 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -406,4 +406,36 @@ Autokeuring Wasstraat Oplaadpunt + Voertuighelling + Perslucht + Kabelbaan + Stoeltjeslift + T-bar-lift + J-bar-lift + Knoplift + Gemengde lift + Sleeplift + Sleeplift + Goederenlift + Tapijtlift + + Tunnel + Brug + + Snelheidscamera + Draaicirkel + Knooppunt + + Waterput + Standpijp + Waterwerken + Scheepswerf + Afvalwaterstation + Schutsluis + Draaipunt van vaarweg + Stuw + Watermolen + + Onderstation + Transformator From 8f9e5a12384d5011bb6a15694e2ad9e565cf7c90 Mon Sep 17 00:00:00 2001 From: sonora Date: Mon, 12 Jan 2015 22:27:48 +0100 Subject: [PATCH 60/67] Add comment for TODO for Issue 2524 --- OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 1aafdd9e35..de621f0b3c 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -107,8 +107,7 @@ public class ConfigureMapMenu { return false; } else if(itemId == R.string.layer_gpx_layer && cm.getSelection(pos) == 1) { ma.getMapLayers().showGPXFileLayer(getAlreadySelectedGpx(), ma.getMapView()); - //sync tick mark - cm.item(R.string.layer_gpx_layer).selected(ma.getMyApplication().getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0).reg(); + // TODO: tick mark of "Show GPX" needs to be synced after return form sub-selection screen (user may or may not have selected files!) return false; } else { return super.onRowItemClick(adapter, view, itemId, pos); @@ -133,8 +132,7 @@ public class ConfigureMapMenu { } else { ma.getMapLayers().showGPXFileLayer(getAlreadySelectedGpx(), ma.getMapView()); } - //sync tick mark - cm.item(R.string.layer_gpx_layer).selected(ma.getMyApplication().getSelectedGpxHelper().isShowingAnyGpxFiles() ? 1 : 0).reg(); + // TODO: tick mark of "Show GPX" needs to be synced after return form sub-selection screen (user may or may not have selected files!) } else if (itemId == R.string.layer_transport_route) { ma.getMapLayers().getTransportInfoLayer().setVisible(isChecked); } From bcb730c488d853d2a38264cf774baab92d3f1af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B0=D1=88=D0=B0=20=D0=9F=D0=B5=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=9B?= Date: Mon, 12 Jan 2015 21:14:50 +0100 Subject: [PATCH 61/67] Translated using Weblate (Serbian) Currently translated at 15.4% (247 of 1595 strings) --- OsmAnd/res/values-sr/strings.xml | 38 +++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 88f6d8d1db..c3d75c4e82 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -20,13 +20,13 @@ Стилови мапа Истиче(минута): %1$s Максимално увеличање: %1$s - Elliptic mercator + Еклиптични приказ земљине кугле Максимално увеличање Минимално увеличање URL Изаберите постојећи… Име - FPS debug info + Подаци о грешкама брзине приказа сличица Јапан Сједињене Америчке Државе Канада @@ -223,4 +223,36 @@ Dropbox додатак омогућава да синхронизујете путање и аудио/видео белешке са вашим Dropbox налогом. Dropbox додатак Промени редослед - + Подразумевано + Подразумевано + Пешачки прелаз + Прикажи пешачке прелазе + Да ли желите да преузмете мапе за коришћење ван мреже? + Преузели сте %1$s мапа + Преузми нову мапу + Управљајте + Језик мапе + Да ли желите да Османд умножи и своје податке на ново место? Изаберите „Не“ да би Османд само направио и користио нову фасциклу. + Област + Сва преузимања + Надоградње + Месно + Преузимање је немогуће, проверите везу са Интернетом. + Откажи + Све датотеке су свеже + Користи ОпенГЛ за приказ + Користи хардверско убрзање ОпенГЛ-а за приказ (можда не ради на неким уређајима) + Користи безбедну везу са сервером + Користи ХТТПС + Напредно + Доступне су надоградње %1$s мапа + Потражи + ПРИКАЖИ МАПУ + ПРИКАЖИ СВЕ + Координате + Никад + Означи на мапи… + Сакриј + Појединости + Уклони све + From eaa25f3daafd8a2886eafbb3246582e3c5f4dc20 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 13 Jan 2015 00:04:08 +0100 Subject: [PATCH 62/67] Update zoom animation and add zoom fraction for autozoom (don't change density in autozoom). Add limit autozoom for different drive options --- .../net/osmand/binary/BinaryInspector.java | 2 +- .../src/net/osmand/data/RotatedTileBox.java | 24 ++++---- .../osmand/render/RenderingRulesStorage.java | 6 +- .../src/net/osmand/plus/OsmandSettings.java | 14 +++-- .../osmand/plus/activities/MapActivity.java | 14 ++--- .../plus/base/MapViewTrackingUtilities.java | 16 ++--- .../plus/dashboard/DashFavoritesFragment.java | 5 ++ .../osmand/plus/render/MapVectorLayer.java | 26 +++++---- .../plus/views/AnimateDraggingMapThread.java | 58 +++++++++++-------- .../osmand/plus/views/OsmandMapTileView.java | 49 +++++++++------- 10 files changed, 122 insertions(+), 92 deletions(-) diff --git a/OsmAnd-java/src/net/osmand/binary/BinaryInspector.java b/OsmAnd-java/src/net/osmand/binary/BinaryInspector.java index 2f24bddba8..0626ed9183 100644 --- a/OsmAnd-java/src/net/osmand/binary/BinaryInspector.java +++ b/OsmAnd-java/src/net/osmand/binary/BinaryInspector.java @@ -64,7 +64,7 @@ public class BinaryInspector { "-vmap", "-vmapobjects", // "-vrouting", // "-vaddress", "-vcities", "-vstreets", "-vstreetgroups","-vbuildings", - //"-zoom=16", +// "-zoom=16", // "-bbox=1.74,51.17,1.75,51.16", "/home/victor/projects/osmand/osm-gen/Map.obf" }); diff --git a/OsmAnd-java/src/net/osmand/data/RotatedTileBox.java b/OsmAnd-java/src/net/osmand/data/RotatedTileBox.java index 42e69f8f9e..707db0b662 100644 --- a/OsmAnd-java/src/net/osmand/data/RotatedTileBox.java +++ b/OsmAnd-java/src/net/osmand/data/RotatedTileBox.java @@ -11,6 +11,7 @@ public class RotatedTileBox { private int zoom; private double mapDensity = 1; private double zoomAnimation; + private double zoomFloatPart; private int cx; private int cy; private int pixWidth; @@ -42,6 +43,7 @@ public class RotatedTileBox { this.lon = r.lon; this.zoom = r.zoom; this.mapDensity = r.mapDensity; + this.zoomFloatPart = r.zoomFloatPart; this.zoomAnimation = r.zoomAnimation; this.rotate = r.rotate; this.density = r.density; @@ -67,7 +69,7 @@ public class RotatedTileBox { } public void calculateDerivedFields() { - zoomFactor = Math.pow(2, zoomAnimation ) * 256 * mapDensity; + zoomFactor = Math.pow(2, zoomAnimation + zoomFloatPart) * 256 * mapDensity; double rad = Math.toRadians(this.rotate); rotateCos = Math.cos(rad); rotateSin = Math.sin(rad); @@ -341,12 +343,18 @@ public class RotatedTileBox { public double getZoomAnimation() { return zoomAnimation; } - - public void setZoomAnimation(double z) { - this.zoomAnimation = z; - calculateDerivedFields(); + + public double getZoomFloatPart() { + return zoomFloatPart; } + public void setZoomAndAnimation(int zoom, double zoomAnimation, double zoomFloatPart) { + this.zoomAnimation = zoomAnimation; + this.zoomFloatPart = zoomFloatPart; + this.zoom = zoom; + calculateDerivedFields(); + } + public void setZoomAndAnimation(int zoom, double zoomAnimation) { this.zoomAnimation = zoomAnimation; this.zoom = zoom; @@ -406,12 +414,6 @@ public class RotatedTileBox { calculateDerivedFields(); } - public void setZoomWithAnimate(int zoom,double zoomToAnimate) { - this.zoom = zoom; - this.zoomAnimation = zoomToAnimate; - calculateDerivedFields(); - } - public float getRotate() { return rotate; } diff --git a/OsmAnd-java/src/net/osmand/render/RenderingRulesStorage.java b/OsmAnd-java/src/net/osmand/render/RenderingRulesStorage.java index 6cca8467bb..766cbb39b5 100644 --- a/OsmAnd-java/src/net/osmand/render/RenderingRulesStorage.java +++ b/OsmAnd-java/src/net/osmand/render/RenderingRulesStorage.java @@ -107,12 +107,10 @@ public class RenderingRulesStorage { if (renderingAttributes.containsKey(e.getKey())) { RenderingRule root = renderingAttributes.get(e.getKey()); List list = e.getValue().getIfElseChildren(); - e.getValue().addToBeginIfElseChildren(root); for (RenderingRule every : list) { - if(every != root) { - root.addIfElseChildren(every); - } + root.addIfElseChildren(every); } + e.getValue().addToBeginIfElseChildren(root); } else { renderingAttributes.put(e.getKey(), e.getValue()); } diff --git a/OsmAnd/src/net/osmand/plus/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/OsmandSettings.java index d16d0e443e..b3f975f0a9 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/OsmandSettings.java @@ -773,7 +773,7 @@ public class OsmandSettings { new EnumIntPreference("auto_zoom_map_new", AutoZoomMap.NONE, AutoZoomMap.values()).makeProfile().cache(); { - AUTO_ZOOM_MAP.setModeDefaultValue(ApplicationMode.CAR, AutoZoomMap.FARTHEST); + AUTO_ZOOM_MAP.setModeDefaultValue(ApplicationMode.CAR, AutoZoomMap.FAR); AUTO_ZOOM_MAP.setModeDefaultValue(ApplicationMode.BICYCLE, AutoZoomMap.NONE); AUTO_ZOOM_MAP.setModeDefaultValue(ApplicationMode.PEDESTRIAN, AutoZoomMap.NONE); } @@ -1869,16 +1869,18 @@ public class OsmandSettings { } public enum AutoZoomMap { - NONE(R.string.auto_zoom_none, 0f), - FARTHEST(R.string.auto_zoom_farthest, 1f), - FAR(R.string.auto_zoom_far, 1.4f), - CLOSE(R.string.auto_zoom_close, 2f) + NONE(R.string.auto_zoom_none, 0f, 18), + FARTHEST(R.string.auto_zoom_farthest, 1f, 17f), + FAR(R.string.auto_zoom_far, 1.4f, 18f), + CLOSE(R.string.auto_zoom_close, 2f, 19f) ; public final float coefficient; public final int name; - AutoZoomMap(int name, float coefficient) { + public final float maxZoom; + AutoZoomMap(int name, float coefficient, float maxZoom) { this.name = name; this.coefficient = coefficient; + this.maxZoom = maxZoom; } } diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 1d24a5f819..0e8faafd80 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -23,7 +23,6 @@ import net.osmand.map.MapTileDownloader.DownloadRequest; import net.osmand.map.MapTileDownloader.IMapDownloaderCallback; import net.osmand.plus.ApplicationMode; import net.osmand.plus.BusyIndicator; -import net.osmand.plus.DeviceAdminRecv; import net.osmand.plus.OsmAndConstants; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; @@ -42,7 +41,6 @@ import net.osmand.plus.render.RendererRegistry; import net.osmand.plus.resources.ResourceManager; import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.routing.RoutingHelper.RouteCalculationProgressCallback; -import net.osmand.plus.routing.VoiceRouter; import net.osmand.plus.views.AnimateDraggingMapThread; import net.osmand.plus.views.OsmAndMapLayersView; import net.osmand.plus.views.OsmAndMapSurfaceView; @@ -56,19 +54,15 @@ import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.ProgressDialog; -import android.app.admin.DevicePolicyManager; -import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.media.AudioManager; import android.net.Uri; -import android.opengl.GLSurfaceView; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.Message; -import android.os.PowerManager; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.KeyEvent; @@ -488,12 +482,18 @@ public class MapActivity extends AccessibleActivity { // if (settings.AUTO_ZOOM_MAP.get() == AutoZoomMap.NONE) { // changeLocation = false; // } + +// double curZoom = mapView.getZoom() + mapView.getZoomFractionalPart() + stp * 0.3; +// int newZoom = (int) Math.round(curZoom); +// double zoomFrac = curZoom - newZoom; + final int newZoom = mapView.getZoom() + stp; + final double zoomFrac = mapView.getZoomFractionalPart(); if (newZoom > 22) { AccessibleToast.makeText(this, R.string.edit_tilesource_maxzoom, Toast.LENGTH_SHORT).show(); //$NON-NLS-1$ return; } - mapView.getAnimatedDraggingThread().startZooming(newZoom, changeLocation); + mapView.getAnimatedDraggingThread().startZooming(newZoom, zoomFrac, changeLocation); if (app.accessibilityEnabled()) AccessibleToast.makeText(this, getString(R.string.zoomIs) + " " + newZoom, Toast.LENGTH_SHORT).show(); //$NON-NLS-1$ showAndHideMapPosition(); diff --git a/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java b/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java index c03ed9b260..e8b9d5acc6 100644 --- a/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java +++ b/OsmAnd/src/net/osmand/plus/base/MapViewTrackingUtilities.java @@ -197,19 +197,19 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc // decrease a bit zdelta += 1; } + double targetZoom = Math.max(tb.getZoom() + tb.getZoomFloatPart() + zdelta, settings.AUTO_ZOOM_MAP.get().maxZoom); int threshold = settings.AUTO_FOLLOW_ROUTE.get(); if (now - lastTimeAutoZooming > 4500 && (now - lastTimeAutoZooming > threshold || !isUserZoomed)) { isUserZoomed = false; lastTimeAutoZooming = now; - double settingsZoomScale = Math.log(mapView.getSettingsMapDensity()) / Math.log(2.0f); - double zoomScale = Math.log(tb.getMapDensity()) / Math.log(2.0f); - double complexZoom = tb.getZoom() + zoomScale + zdelta; +// double settingsZoomScale = Math.log(mapView.getSettingsMapDensity()) / Math.log(2.0f); +// double zoomScale = Math.log(tb.getMapDensity()) / Math.log(2.0f); +// double complexZoom = tb.getZoom() + zoomScale + zdelta; // round to 0.33 - double newZoom = Math.round((complexZoom - settingsZoomScale) * 3) / 3f; - int newIntegerZoom = (int)Math.round(newZoom); - double nzscale = newZoom - newIntegerZoom + settingsZoomScale; - mapView.setComplexZoom(newIntegerZoom, Math.pow(2, nzscale)); - // mapView.getAnimatedDraggingThread().startZooming(mapView.getFloatZoom() + zdelta, false); + targetZoom = Math.round(targetZoom * 3) / 3f; + int newIntegerZoom = (int)Math.round(targetZoom); + double zPart = targetZoom - newIntegerZoom; + mapView.getAnimatedDraggingThread().startZooming(newIntegerZoom, zPart, false); } } } diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java index dd490b8a63..f23eeedc40 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java @@ -71,6 +71,11 @@ public class DashFavoritesFragment extends DashBaseFragment { }); return view; } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + } @Override public void onResume() { diff --git a/OsmAnd/src/net/osmand/plus/render/MapVectorLayer.java b/OsmAnd/src/net/osmand/plus/render/MapVectorLayer.java index 2b4edd2897..235dc2e67a 100644 --- a/OsmAnd/src/net/osmand/plus/render/MapVectorLayer.java +++ b/OsmAnd/src/net/osmand/plus/render/MapVectorLayer.java @@ -4,7 +4,7 @@ import net.osmand.core.android.MapRendererView; import net.osmand.core.android.TileSourceProxyProvider; import net.osmand.core.jni.MapLayerConfiguration; import net.osmand.core.jni.PointI; -import net.osmand.data.QuadPointDouble; +import net.osmand.data.LatLon; import net.osmand.data.RotatedTileBox; import net.osmand.map.ITileSource; import net.osmand.plus.OsmandSettings; @@ -138,8 +138,8 @@ public class MapVectorLayer extends BaseMapLayer { // opengl renderer mapRenderer.setTarget(new PointI(tilesRect.getCenter31X(), tilesRect.getCenter31Y())); mapRenderer.setAzimuth(-tilesRect.getRotate()); - mapRenderer.setZoom((float) (tilesRect.getZoom() /* + tilesRect.getZoomScale() */+ tilesRect - .getZoomAnimation())); + mapRenderer.setZoom((float) (tilesRect.getZoom() + tilesRect + .getZoomAnimation() + tilesRect.getZoomFloatPart())); } else { if (!view.isZooming()) { if (resourceManager.updateRenderedMapNeeded(tilesRect, drawSettings)) { @@ -163,16 +163,22 @@ public class MapVectorLayer extends BaseMapLayer { boolean shown = false; if (bmp != null && bmpLoc != null) { float rot = -bmpLoc.getRotate(); - int cz = currentViewport.getZoom(); canvas.rotate(rot, currentViewport.getCenterPixelX(), currentViewport.getCenterPixelY()); final RotatedTileBox calc = currentViewport.copy(); calc.setRotate(bmpLoc.getRotate()); - QuadPointDouble lt = bmpLoc.getLeftTopTile(cz); - QuadPointDouble rb = bmpLoc.getRightBottomTile(cz); - final float x1 = calc.getPixXFromTile(lt.x, lt.y, cz); - final float x2 = calc.getPixXFromTile(rb.x, rb.y, cz); - final float y1 = calc.getPixYFromTile(lt.x, lt.y, cz); - final float y2 = calc.getPixYFromTile(rb.x, rb.y, cz); +// int cz = currentViewport.getZoom(); +// QuadPointDouble lt = bmpLoc.getLeftTopTile(cz); +// QuadPointDouble rb = bmpLoc.getRightBottomTile(cz); +// final float x1 = calc.getPixXFromTile(lt.x, lt.y, cz); +// final float x2 = calc.getPixXFromTile(rb.x, rb.y, cz); +// final float y1 = calc.getPixYFromTile(lt.x, lt.y, cz); +// final float y2 = calc.getPixYFromTile(rb.x, rb.y, cz); + LatLon lt = bmpLoc.getLeftTopLatLon(); + LatLon rb = bmpLoc.getRightBottomLatLon(); + final float x1 = calc.getPixXFromLatLon(lt.getLatitude(), lt.getLongitude()); + final float x2 = calc.getPixXFromLatLon(rb.getLatitude(), rb.getLongitude()); + final float y1 = calc.getPixYFromLatLon(lt.getLatitude(), lt.getLongitude()); + final float y2 = calc.getPixYFromLatLon(rb.getLatitude(), rb.getLongitude()); destImage.set(x1, y1, x2, y2); if (!bmp.isRecycled()) { canvas.drawBitmap(bmp, null, destImage, paintImg); diff --git a/OsmAnd/src/net/osmand/plus/views/AnimateDraggingMapThread.java b/OsmAnd/src/net/osmand/plus/views/AnimateDraggingMapThread.java index edc17517d1..1c7170263e 100644 --- a/OsmAnd/src/net/osmand/plus/views/AnimateDraggingMapThread.java +++ b/OsmAnd/src/net/osmand/plus/views/AnimateDraggingMapThread.java @@ -8,8 +8,6 @@ import net.osmand.util.MapUtils; import org.apache.commons.logging.Log; import android.os.SystemClock; -import android.util.FloatMath; -import android.view.MotionEvent; import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.DecelerateInterpolator; import android.view.animation.LinearInterpolator; @@ -23,10 +21,10 @@ public class AnimateDraggingMapThread { protected static final Log log = PlatformUtil.getLog(AnimateDraggingMapThread.class); private final static float DRAGGING_ANIMATION_TIME = 1200f; - private final static float ZOOM_ANIMATION_TIME = 800f; - private final static float ZOOM_MOVE_ANIMATION_TIME = 650f; - private final static float MOVE_MOVE_ANIMATION_TIME = 2000f; - private final static int DEFAULT_SLEEP_TO_REDRAW = 55; + private final static float ZOOM_ANIMATION_TIME = 500f; + private final static float ZOOM_MOVE_ANIMATION_TIME = 450f; + private final static float MOVE_MOVE_ANIMATION_TIME = 1300f; + private final static int DEFAULT_SLEEP_TO_REDRAW = 15; private volatile boolean stopped; private volatile Thread currentThread = null; @@ -36,6 +34,7 @@ public class AnimateDraggingMapThread { private double targetLatitude = 0; private double targetLongitude = 0; private int targetIntZoom = 0; + private int targetFloatZoom = 0; private boolean isAnimatingZoom; @@ -120,11 +119,13 @@ public class AnimateDraggingMapThread { public void startMoving(final double finalLat, final double finalLon, final int endZoom, final boolean notifyListener){ stopAnimatingSync(); - double startLat = tileView.getLatitude(); - double startLon = tileView.getLongitude(); - float rotate = tileView.getRotate(); - final int startZoom = tileView.getZoom(); final RotatedTileBox rb = tileView.getCurrentRotatedTileBox().copy(); + double startLat = rb.getLatitude(); + double startLon = rb.getLongitude(); + float rotate = rb.getRotate(); + final int startZoom = rb.getZoom(); + final double startZoomFP = rb.getZoomFloatPart(); + boolean skipAnimation = false; float mStX = rb.getPixXFromLatLon(startLat, startLon) - rb.getPixXFromLatLon(finalLat, finalLon); float mStY = rb.getPixYFromLatLon(startLat, startLon) - rb.getPixYFromLatLon(finalLat, finalLon); @@ -141,7 +142,7 @@ public class AnimateDraggingMapThread { skipAnimation = skipAnimation || (Math.abs(moveZoom - startZoom) >= 3 || Math.abs(endZoom - moveZoom) > 3); if (skipAnimation) { tileView.setLatLonAnimate(finalLat, finalLon, notifyListener); - tileView.setZoomAnimate(endZoom, notifyListener); + tileView.setFractionalZoom(endZoom, 0, notifyListener); return; } final float mMoveX = rb.getPixXFromLatLon(startLat, startLon) - rb.getPixXFromLatLon(finalLat, finalLon); @@ -155,7 +156,7 @@ public class AnimateDraggingMapThread { public void run() { setTargetValues(endZoom, finalLat, finalLon); if(moveZoom != startZoom){ - animatingZoomInThread(startZoom, moveZoom, ZOOM_MOVE_ANIMATION_TIME, notifyListener); + animatingZoomInThread(startZoom, startZoomFP, moveZoom, startZoomFP,ZOOM_MOVE_ANIMATION_TIME, notifyListener); } if(!stopped){ @@ -165,10 +166,10 @@ public class AnimateDraggingMapThread { tileView.setLatLonAnimate(finalLat, finalLon, notifyListener); } - if (!stopped && moveZoom != endZoom) { - animatingZoomInThread(moveZoom, endZoom, ZOOM_MOVE_ANIMATION_TIME, notifyListener); + if (!stopped && (moveZoom != endZoom || startZoomFP != 0)) { + animatingZoomInThread(moveZoom, startZoomFP, endZoom, 0, ZOOM_MOVE_ANIMATION_TIME, notifyListener); } - tileView.setZoomAnimate(endZoom, notifyListener); + tileView.setFractionalZoom(endZoom, 0, notifyListener); pendingRotateAnimation(); } @@ -203,12 +204,17 @@ public class AnimateDraggingMapThread { } - private void animatingZoomInThread(double zoomStart, int zoom, float animationTime, boolean notifyListener){ + private void animatingZoomInThread(int zoomStart, double zoomFloatStart, + int zoomEnd, double zoomFloatEnd, float animationTime, boolean notifyListener){ try { isAnimatingZoom = true; - double curZoom = zoomStart; - double zoomEnd = (zoom /*+ zoomScale*/); - animationTime *= Math.abs(zoomEnd - zoomStart); + // could be 0 ]-0.5,0.5], -1 ]-1,0], 1 ]0, 1] + int threshold = ((int)(zoomFloatEnd * 2)); + double beginZoom = zoomStart + zoomFloatStart; + double endZoom = zoomEnd + zoomFloatEnd; + + double curZoom = beginZoom; + animationTime *= Math.abs(endZoom - beginZoom); // AccelerateInterpolator interpolator = new AccelerateInterpolator(1); LinearInterpolator interpolator = new LinearInterpolator(); @@ -220,15 +226,17 @@ public class AnimateDraggingMapThread { break; } float interpolation = interpolator.getInterpolation(normalizedTime); - curZoom = interpolation * (zoomEnd - zoomStart) + zoomStart; - tileView.zoomToAnimate(curZoom, notifyListener); + curZoom = interpolation * (endZoom - beginZoom) + beginZoom; + int baseZoom = (int) Math.round(curZoom - 0.5 * threshold); + double zaAnimate = curZoom - baseZoom; + tileView.zoomToAnimate(baseZoom, zaAnimate, notifyListener); try { Thread.sleep(DEFAULT_SLEEP_TO_REDRAW); } catch (InterruptedException e) { stopped = true; } } - tileView.setZoomAnimate(zoom, notifyListener); + tileView.setFractionalZoom(zoomEnd, zoomFloatEnd, notifyListener); } finally { isAnimatingZoom = false; } @@ -238,14 +246,14 @@ public class AnimateDraggingMapThread { return isAnimatingZoom; } - public void startZooming(final int zoomEnd, final boolean notifyListener){ + public void startZooming(final int zoomEnd, final double zoomPart, final boolean notifyListener){ final float animationTime = ZOOM_ANIMATION_TIME; startThreadAnimating(new Runnable(){ @Override public void run() { - final double zoomStart = tileView.getZoom() ; + RotatedTileBox tb = tileView.getCurrentRotatedTileBox(); setTargetValues(zoomEnd, tileView.getLatitude(), tileView.getLongitude()); - animatingZoomInThread(zoomStart, zoomEnd, animationTime, notifyListener); + animatingZoomInThread(tb.getZoom(), tb.getZoomFloatPart(), zoomEnd, zoomPart, animationTime, notifyListener); pendingRotateAnimation(); } }); //$NON-NLS-1$ diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java index f04e296d05..70003988db 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java @@ -164,7 +164,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { @Override public void onTwoFingerTap() { afterTwoFingerTap = true; - getAnimatedDraggingThread().startZooming(getZoom()-1,true); + getAnimatedDraggingThread().startZooming(getZoom() - 1, currentViewport.getZoomFloatPart(), true); } }; @@ -290,7 +290,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { public void setIntZoom(int zoom) { if (mainLayer != null && zoom <= mainLayer.getMaximumShownMapZoom() && zoom >= mainLayer.getMinimumShownMapZoom()) { animatedDraggingThread.stopAnimating(); - currentViewport.setZoomAndAnimation(zoom, 0); + currentViewport.setZoomAndAnimation(zoom, 0, 0); currentViewport.setRotate(zoom > LOWEST_ZOOM_TO_ROTATE ? rotate : 0); refreshMap(); } @@ -299,7 +299,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { public void setComplexZoom(int zoom, double mapDensity) { if (mainLayer != null && zoom <= mainLayer.getMaximumShownMapZoom() && zoom >= mainLayer.getMinimumShownMapZoom()) { animatedDraggingThread.stopAnimating(); - currentViewport.setZoomWithAnimate(zoom, 0); + currentViewport.setZoomAndAnimation(zoom, 0); currentViewport.setMapDensity(mapDensity); currentViewport.setRotate(zoom > LOWEST_ZOOM_TO_ROTATE ? rotate : 0); refreshMap(); @@ -350,6 +350,10 @@ public class OsmandMapTileView implements IMapDownloaderCallback { public int getZoom() { return currentViewport.getZoom(); } + + public double getZoomFractionalPart() { + return currentViewport.getZoomFloatPart(); + } public double getSettingsMapDensity() { return (getSettings().MAP_DENSITY.get()) * Math.max(1, getDensity()); @@ -385,7 +389,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { if (mainLayer.getMinimumShownMapZoom() > zoom) { zoom = mainLayer.getMinimumShownMapZoom(); } - currentViewport.setZoomAndAnimation(zoom, 0); + currentViewport.setZoomAndAnimation(zoom, 0, 0); refreshMap(); } @@ -414,6 +418,12 @@ public class OsmandMapTileView implements IMapDownloaderCallback { final float x2 = calc.getPixXFromTile(rb.x, rb.y, cz); final float y1 = calc.getPixYFromTile(lt.x, lt.y, cz); final float y2 = calc.getPixYFromTile(rb.x, rb.y, cz); +// LatLon lt = bufferImgLoc.getLeftTopLatLon(); +// LatLon rb = bufferImgLoc.getRightBottomLatLon(); +// final float x1 = calc.getPixXFromLatLon(lt.getLatitude(), lt.getLongitude()); +// final float x2 = calc.getPixXFromLatLon(rb.getLatitude(), rb.getLongitude()); +// final float y1 = calc.getPixYFromLatLon(lt.getLatitude(), lt.getLongitude()); +// final float y2 = calc.getPixYFromLatLon(rb.getLatitude(), rb.getLongitude()); if (!bufferBitmap.isRecycled()) { RectF rct = new RectF(x1, y1, x2, y2); canvas.drawBitmap(bufferBitmap, null, rct, paintImg); @@ -678,8 +688,8 @@ public class OsmandMapTileView implements IMapDownloaderCallback { } } - protected void setZoomAnimate(int zoom, boolean notify) { - currentViewport.setZoomWithAnimate(zoom, 0); + protected void setFractionalZoom(int zoom, double zoomPart, boolean notify) { + currentViewport.setZoomAndAnimation(zoom, 0, zoomPart); refreshMap(); if (locationListener != null && notify) { locationListener.locationChanged(getLatitude(), getLongitude(), this); @@ -687,17 +697,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { } // for internal usage - protected void zoomToAnimate(double tzoom, boolean notify) { - int zoom = getZoom(); - double zoomToAnimate = tzoom - zoom; - if (zoomToAnimate >= 1) { - zoom += (int) zoomToAnimate; - zoomToAnimate -= (int) zoomToAnimate; - } - while (zoomToAnimate < 0) { - zoom--; - zoomToAnimate += 1; - } + protected void zoomToAnimate(int zoom, double zoomToAnimate, boolean notify) { if (mainLayer != null && mainLayer.getMaximumShownMapZoom() >= zoom && mainLayer.getMinimumShownMapZoom() <= zoom) { currentViewport.setZoomAndAnimation(zoom, zoomToAnimate); currentViewport.setRotate(zoom > LOWEST_ZOOM_TO_ROTATE ? rotate : 0); @@ -866,13 +866,22 @@ public class OsmandMapTileView implements IMapDownloaderCallback { final RotatedTileBox calc = initialViewport.copy(); calc.setLatLonCenter(initialCenterLatLon.getLatitude(), initialCenterLatLon.getLongitude()); - double calcZoom = initialViewport.getZoom() + dz ; float calcRotate = calc.getRotate() + angle; calc.setRotate(calcRotate); - calc.setZoomAnimation(dz); + calc.setZoomAndAnimation(initialViewport.getZoom(), + dz, initialViewport.getZoomFloatPart()); final LatLon r = calc.getLatLonFromPixel(cp.x + dx, cp.y + dy); setLatLon(r.getLatitude(), r.getLongitude()); - zoomToAnimate((float) calcZoom, true); + int baseZoom = initialViewport.getZoom(); + while(initialViewport.getZoomFloatPart() + dz > 1) { + dz --; + baseZoom ++; + } + while(initialViewport.getZoomFloatPart() + dz < 0) { + dz ++; + baseZoom --; + } + zoomToAnimate(baseZoom, dz, true); rotateToAnimate(calcRotate); } From 74a64cddd369246d3d6dbd44d2b527edbecc5d73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xos=C3=A9=20Calvo?= Date: Mon, 12 Jan 2015 23:14:21 +0100 Subject: [PATCH 63/67] Translated using Weblate (Galician) Currently translated at 99.6% (1589 of 1595 strings) --- OsmAnd/res/values-gl/strings.xml | 103 +++++++++++++++++-------------- 1 file changed, 57 insertions(+), 46 deletions(-) diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 87399d3515..cd76df3e0b 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -35,7 +35,7 @@ Gardar a pista actual no cartón SD agora Gardar a pista GPS actual Rexistrar a pista nun ficheiro GPX durante a navegación - As pistas gárdanse no directorio de pistas durante a navegación + As pistas gárdanse no cartafol de pistas durante a navegación Intervalo de rexistro Intervalo de rexistro durantea a navegación Escoller o intervalo de rexistro da gravación de pistas durante a navegación @@ -59,13 +59,13 @@ Destinos Anunciar os puntos de pasaxe do GPX Descargar os mapas que faltan, %1$s (%2$d MB)? - Máis... + Máis… Examinar o mapa Coche Bicicleta A pé Edificios cun código de cores segundo o seu tipo - Convidar... + Convidar… Confirma que desexa deixar o grupo %1$s? Indique o identificar Continuar coa navegación @@ -110,7 +110,7 @@ Conexión automática Servizo OsMo Descargouse a pista %1$s de OsMo. - Non hai nada que descargar; comprobe a conexión á Internet. + Non foi posíbel atopar descargas; comprobe a conexión á Internet. Non se atopou nada. Se non dá atopado a súa rexión, pódea crear vostede (vexa http://osmand.net). Non hai ningún ficheiro GPX seleccionado. Para seleccionar manteña premida unha das pistas dispoñíbeis. Anular a selección @@ -124,7 +124,7 @@ Gardar como grupo de favoritos Seleccionar puntos de pasaxe Nomes dos puntos - A cargar %1$s … + A cargar %1$s… Hora actual Punto de pasaxe \n\nManteña premido para ver no mapa @@ -225,7 +225,7 @@ Identificador de seguimento persoal Prema para ver ou compartir o identificador de seguimento. Cando se empregan dispositivos conectados polo identificador de seguimento é posíbel vixiar todos os movementos deste dispositivo! Para desconectar, seleccione a opcións «Xerar de novo». Token da sesión: %1$s - A agardar pola autorización... + A agardar pola autorización… "Situacións enviadas %1$d (en buffer %2$d) " "Conexión estabelecida: %1$s " "Problema de conexión con OsMo: " @@ -306,10 +306,10 @@ Calcular de ruta de OsmAnd para o primeiro e o último segmento Desexa empregar a pista mostrada para a navegación? Engadir como punto de destino - Seleccionar GPX … + Seleccionar GPX… Seleccionar destino - Seleccionar no mapa … - Favorito … + Seleccionar no mapa… + Favorito… Preferencias da ruta Información sobre a ruta Preferir as autoestradas @@ -326,11 +326,11 @@ Evitar as autoestradas Peso máximo Indique o peso do vehículo permitido nos itinerarios - "Desde a versión KitKat é posíbel descargar e actualizar os mapas no lugar de almacenamento anterior (%s). Desexa cambiar a un sitio con permiso e copiar nel todos os ficheiros?\n Nota: os ficheiros antigos fican sen seren tocados.\n Nota: non será posíbel compartir ficheiros entre OsmAnd e OsmAnd+. " + Desde a versión 4.4 (KitKat) non é posíbel descargar e actualizar os mapas no lugar de almacenamento anterior (%s). Desexa cambiar a un sitio con permiso e copiar nel todos os ficheiros?\n Nota 1: Os ficheiros antigos fican sen seren tocados (poden ser eliminados manualmente).\n Nota 2: No novo almacén non é posíbel compartir ficheiros entre OsmAnd e OsmAnd+. Desexa que OsmAnd copie tamén os seus ficheiros de datos ao novo destino? Seleccione «Non» para que OsmAnd simplemente cree e empregue o novo cartafol. - A copiar o ficherio (%s) ao seu novo destino... - A copiar os ficheiros de OsmAnd ao seu novo destino (%s) - A copiar os ficheiros de OsmAnd + A copiar o ficherio (%s) ao seu novo destino… + A copiar os ficheiros de OsmAnd ao seu novo destino (%s)… + A copiar os ficheiros de OsmAnd… Calcular ruta de OsmAnd sen conexión Camión Preferencias de navegación @@ -354,7 +354,7 @@ Escoller os perfís de uso visíbeis no aplicativo Perfís do aplicativo Elementos restantes: - Renderizado do mapa: + Renderizado do mapa Sendeirismo Moto Embarcación @@ -378,7 +378,7 @@ Ampliador do mapa Mapa de base mundial Estilos de mapa - "OsmAnd admite mostrar os mapas vectoriais sen conexión en estilos de mapa diferentes que se axeiten a distintas necesidades:\n\nAdemais do equilibrado estilo de mapa «predeterminado» é posíbel, por exemplo, seleccionar en «Menú» → «Configurar a pantalla» → «Estilo de mapa»\n\t→\t* O estilo «Vista de visita», que contén a información máis detallada posíbel para viaxar e visitar, incluída a optimización para condutores profesionais (maior contraste, estradas distinguíbeis), opcións para excursionismo alpino (escala SAC), ciclovías, sinais de sendeirismo, etc.\n\t→\t* «Estradas de alto contraste» mostra as estradas en cores moi intensas para situación de iluminación ambiente brillantes\n\t→\t* «Inverno e esquí» crea unha vista da paisaxe invernal (coberta de neve) e mostra as pistas e remontes de esquí de todo o mundo (en conexión coa descarga do mapa «Esquí mundial») " + "OsmAnd admite mostrar os mapas vectoriais sen conexión en estilos de mapa diferentes que se axeiten a distintas necesidades:\n\nAdemais do equilibrado estilo de mapa «predeterminado» é posíbel, por exemplo, seleccionar en «Menú» → «Configurar o mapa» → «Estilo de mapa»\n\t→\t* O estilo «Vista de visita», que contén a información máis detallada posíbel para viaxar e visitar, incluída a optimización para condutores profesionais (maior contraste, estradas distinguíbeis), opcións para excursionismo alpino (escala SAC), ciclovías, sinais de sendeirismo, etc.\n\t→\t* «Estradas de alto contraste» mostra as estradas en cores moi intensas para situación de iluminación ambiente brillantes\n\t→\t* «Inverno e esquí» crea unha vista da paisaxe invernal (coberta de neve) e mostra as pistas e remontes de esquí de todo o mundo (en conexión coa descarga do mapa «Esquí mundial») " Versión : Sobre Información sobre a versión, licenzas, participantes no proxecto @@ -486,7 +486,7 @@ Gardar como GPX Abrir un GPX existente Agarde até que remate a tarefa actual - Empregar o filtro Kalman para evitar as aberracións magnéticas + Reduce o ruído nas lecturas do compás mais engade inercia Empregar o filtro Kalman Modo de accesibilidade: seleccione primeiro o destino Empregar o sensor magnético para determinar o valor do compás no canto do sensor de orientación @@ -691,7 +691,7 @@ Modo avanzado… Aparcamento Urxencia - Transporte públcio + Transporte público Entretemento Aloxamento Restaurantes @@ -723,7 +723,7 @@ " OsmAnd (OSM Automated Navigation Directions, «Indicacións de navegación automatizadas de OSM») é un aplicativo de mapas e de navegación con acceso aos datos libres, mundiais e de alta calidade de OpenStreetMap (OSM). Todos os datos dos mapas poden ser almacenados no cartón de memoria dos dispositivos para empregalos sen conexión. Mediante o GPS do dispositivo, OsmAnd ofrece cálculo de rutas con guía visual e de voz para coches, bicicletas e peóns. Todas as funcionalidades funcionan tanto con conexión como sen conexión (non se precisa da Internet). Algunhas das funcionalidades principais: Navegación - Funciona con conexión (rápido) ou sen conexión (sen cobros telefónicos no estranxeiro) - Guía por voz paso a paso (voces gravadas e sintetizadas) - Guía opcional nas faixas das estradas, nomes das rúas e hora estimada de chegada - Admite puntos intermedios no itinerario - Recalcula as rutas automaticamente cando se producen desvíos da ruta - Busca de lugares por enderezo, por tipo (p.ex. restaurante, hotel, gasolineira, museo) ou por coordenadas xeográficas Vista de mapa - Mostra a posición e orientación no mapa - Aliña opcionalmente o mapa co compás ou coa dirección do movemento - Garda os lugares máis importantes como «favoritos» - Mostra os puntos de interese (PDI) que haxa preto - Pode mostrar mapas de teselas especializados con conexión - Pode mostrar a vista de satélite (de Bing) - Pode mostrar diferentes sobreposición, como pistas de GPX de visitas ou navegación e mapas adicionais con transparencia regulábel - Pode mostrar os mapas opcionalmente en inglés, na lingua local ou escritas de maneira fonética Uso dos datos de OpenStreetMap e da Wikipedia - Información de boa calidade procedente dos mellores proxectos colaborativos do mundo - Mapas globais procedentes de OpenStreetMap, dispoñíbeis por país ou rexión - Puntos de interese da Wikipedia, óptimos para facer visitas (non dispoñíbeis na versión gratuíta) - Descarga gratuíta ilimitada directamente desde o aplicativo (o límite de descargas é de dezaseis na versión gratuíta) - Mapas sempre actualizados (actualizados cando menos unha vez ao mes) - Mapas vectoriais sen conexións compactos - Selección entre os datos completos dos mapas ou só a rede viaria (Exemplo: Xapón completo son 700 MB mais a rede viaria ocupa só 200 MB) - Tamén admite mapas de teselas con conexión ou na caché Funcionalidades de seguranza - Vistas diúrna e nocturna automatizadas opcionais - Límites de velocidade opcionais, con recordatorio se se exceden - Ampliación opcional do mapa dependente da velocidade - Pódese compartir a situación para que as amizades podan localizalo Funcionalidades para bicicletas e peóns - Os mapas inclúen pistas para peóns, sendeirismo, óptimos para actividades ao ar libre - Modos especiais de cálculo de rutas e pantalla para bicicletas e peóns - Paradas de transporte público opcionais (bus, tranvía, tren), incluídos os nomes das liñas - Gravación opcional das viaxes nun ficheiro GPX local ou nun servizo con conexión - Visualización opcional da velocidade e a altitude - Visualización das curvas de nivel e o sombreado (cun engadido adicional) Achegas directas a OpenStreetMap - Informes de fallos nos mapas - Envío de pistas GPX a OSM directamente desde o aplicativo - Adición de puntos de interese e envío automático a OSM (ou posteriormente, se non houber conexión) - Gravación opcional das viaxes tamén no modo de fondo (mentres o dispositivo está en modo de durmir) OsmAnd é código aberto e está a ser desenvolvido activamente. Calquera pode contribuír co aplicativo informando de fallos, mellorando as traducións ou escribindo código para funcionalidades novas. O proxecto está nun estado vivo de mellora continua mediante todo esas formas de interacción entre desenvolvedores e usuarios. O progreso tamén depende da contribución financeira para financiar o desenvolvemento, o código e as probas das funcionalidades novas. Ao comprar OmsAnd+ axúdase a que o aplicativo sexa aínda mellor. Tamén é posíbel financiar funcionalidades novas específicas ou de realizar unha doazón xeral en osmand.net. Cobertura e calidade aproximada dos mapas: - Europa Occidental: **** - Europa Oriental: *** - Rusia: *** - Norteamérica: *** - Sudamérica: ** - Asia: ** - Xapón e Corea: *** - Oriente Medio: ** - África: ** - Antártida: * Lista de países (basicamente todo o mundo!): Afganistán, Albania, Algeria, Andorra, Angola, Anguilla, Antigua e Barbuda, Arxentina, Armenia, Aruba, Australia, Austria, Azerbaixán, Bahamas, Bahrain, Bangladesh, Barbados, Bielorrusia, Bélxica, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia e Herzegovina, Botswana, Brasil, Illas Virxes Británicas, Brunei, Bulgaria, Burkina Faso, Burundi, Camboxa, Camerún, Canadá, Cabo Verde, República Centroafricana, Chad, Chile, China, Colombia, Comoros, Congo, Costa Rica, Costa de Marfín, Croacia, Cuba, Curaçao, Cyprus, República Checa, Dinamarca, Xibuti, Dominica, República Dominicana, Ecuador, Exipto, El Salvador, Guiné Ecuatorial, Eritrea, Estonia, Etiopía, Fixi, Finlandia, Francia, Guiana Francesa, Polinesia Francesa, Gabón, Gambia, Xeorgia, Alemaña , Ghana, Xibraltar, Grecia, Groenland, Granada, Guadalupe, Guam, Guatemala, Guernsey, Guiné, Guiné-Bissau, Guyana, Haití, Vaticano, Honduras, Hong Kong, Hungría, Islandia, India, Indonesia, Iran, Iraq, Irlanda, Illa de Man, Israel, Italia, Xamaica, Xapón, Jersey, Xordania, Kazakhstan, Kenia, Kiribati, Corea do Norte e Corea do Sur, Kuwait, Quirgizstan, Laos, Letonia, Líbano, Lesotho, Liberia, Libia, Liechtenstein, Lituania, Luxemburgo, Macao, Macedonia, Madagascar, Malawi, Malasia, Maldivas, Mali, Malta, Martinica, Mauritania, Mauricio, Mayotte, México, Micronesia, Moldavia, Mónaco, Mongolia, Montenegro, Montserrat, Marrocos, Mozambique, Myanmar, Namibia, Nauru, Nepal, Países Baixos, Antillas Holandesas, Nova Caledonia, Nova Celandia, Nicaragua, Níxer, Nixeria, Noruega, Oman, Paquistán, Palau, Territorio Palestino, Panamá, Papua New Guinea, Paraguai, Perú, Filipinas, Polonia, Portugal, Puerto Rico, Qatar, Rumanía, Rusia, Ruanda, San Bartolomeu, Santa Helena, Saint Kitts e Nevis, Santa Lucía, San Martin, Saint Pierre e Miquelon, Saint Vincent e as Granadinas, Samoa, San Marino, Arabia Saudi, Senegal, Serbia, Seychelles, Serra Leoa, Singapur, Eslovaquia, Eslovenia, Somalia, Sudáfrica, Xeorxia do Sul, Sudán do Sul, España, Sri Lanka, Sudán, Surinam, Swazilandia, Suecia, Suíza, Siria, Taiwan, Taxikistan, Tanzania, Tailandia, Timor-Leste, Togo, Tokelau, Tonga, Trindade e Tobago, Tunicia, Turquía, Turcomenistan, Tuvalu, Uganda, Ucraína, Emiratos Árabes Unidos, Reino Unido (UK), Estados Unidos de América (USA), Uruguai, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis e Futuna, Sáhara Occidental, Iemen, Zambia, Zimbabwe. " Mapas e navegación de OsmAnd+ Visualización e navegación móbil de mapas globais para mapas de OSM con e sen conexión - " OsmAnd+ (Indicacións de navegación automatizadas de OSM) é un aplicativo de navegación de código aberto con acceso a unha ampla variedade de datos globais de OpenStreetMap (OSM). Todos os mapas dos datos (mapas vectoriais ou teselas) poden ser almacenados no cartón de memoria do teléfono para empregalos sen conexión. OsmAnd tamen ofrece funcionalidade de cálculo de rutas sen conexión, incluíndo a guía por voz paso a paso. OsmAnd+ é a versión de pago, mais ao comprala vostede apoia o proxecto, financia o desenvolvemento de funcionalidades novas e recibe as últimas actualizacións.\n\t\t\n\t\tAlgunhas das funcionalidade principais:\n\t\t - Funcionalidade completa sen conexión (os mapas vectoriais ou de teselas descargados almacénanse no cartafol que se seleccione)\n\t\t - Mapas vectoriais compactos sen conexión para todo o mundo\n\t\t - Pódense descargar mapas de países ou rexións directamente desde o aplicativo\n\t\t - É posíbel sobrepor varias capas de mapas, como pistas de GPX ou de navegación, puntos de interese, favoritos, curvas de nivel, paradas de transporte público ou mapas adicionais con transparencia regulábel.\n\t\t - Busca sen conexión de enderezos e lugares (PDI)\n\t\t - Cálculo de rutas sen conexión para distancias curtas (experimental)\n\t\t - Modos para coche, bicicleta e péons, con:\n\t\t - Vistas diúrna e nocturna automatizadas opcionais\n\t\t - Ampliación opcional do mapa dependendo da velocidade\n\t\t - Aliñamento opcional do mapa dependendo do compás ou da dirección do movemento\n\t\t - Guía opcional de faixas da estrada, límites de velocidade e voces gravadas e TTS " + " OsmAnd+ (Indicacións de navegación automatizadas de OSM) é un aplicativo de navegación de código aberto con acceso a unha ampla variedade de datos globais de OpenStreetMap (OSM). Todos os mapas dos datos (mapas vectoriais ou teselas) poden ser almacenados no cartón de memoria do teléfono para empregalos sen conexión. OsmAnd tamen ofrece funcionalidade de cálculo de rutas sen conexión, incluíndo a guía por voz paso a paso. OsmAnd+ é a versión de pago, mais ao comprala vostede apoia o proxecto, financia o desenvolvemento de funcionalidades novas e recibe as últimas actualizacións.\n\t\t\n\t\tAlgunhas das funcionalidade principais:\n\t\t - Funcionalidade completa sen conexión (os mapas vectoriais ou de teselas descargados almacénanse no cartafol que se seleccione)\n\t\t - Mapas vectoriais compactos sen conexión para todo o mundo\n\t\t - Pódense descargar mapas de países ou rexións directamente desde o aplicativo\n\t\t - É posíbel sobrepor varias capas de mapas, como pistas de GPX ou de navegación, puntos de interese, favoritos, curvas de nivel, paradas de transporte público ou mapas adicionais con transparencia regulábel.\n\t\t - Busca sen conexión de enderezos e lugares (PDI)\n\t\t - Cálculo de rutas sen conexión para distancias curtas (experimental)\n\t\t - Modos para coche, bicicleta e péons, con:\n\t\t - Vistas diúrna e nocturna automatizadas opcionais\n\t\t - Ampliación opcional do mapa dependendo da velocidade\n\t\t - Aliñamento opcional do mapa dependendo do compás ou da dirección do movemento\n\t\t - Guía opcional de faixas da estrada, límites de velocidade e voces gravadas e TTS " " OsmAnd (OSM Automated Navigation Directions, «Indicacións de navegación automatizadas de OSM») é un aplicativo de mapas e de navegación con acceso aos datos libres, mundiais e de alta calidade de OpenStreetMap (OSM). Todos os datos dos mapas poden ser almacenados no cartón de memoria dos dispositivos para empregalos sen conexión. Mediante o GPS do dispositivo, OsmAnd ofrece cálculo de rutas con guía visual e de voz para coches, bicicletas e peóns. Todas as funcionalidades funcionan tanto con conexión como sen conexión (non se precisa da Internet). OsmAnd+ é a versión paga do aplicativo. Ao comprala apóiase o proxecto, finánciase o desenvolvemento de funcionalidades novas e recíbense as actualizacións máis recentes. Pódese probar o aplicativo antes de compralo instalando a versión gratuíta chamada OsmAnd. Algunhas das funcionalidades principais: Navegación - Funciona con conexión (rápido) ou sen conexión (sen cobros telefónicos no estranxeiro) - Guía por voz paso a paso (voces gravadas e sintetizadas) - Guía opcional nas faixas das estradas, nomes das rúas e hora estimada de chegada - Admite puntos intermedios no itinerario - Recalcula as rutas automaticamente cando se producen desvíos da ruta - Busca de lugares por enderezo, por tipo (p.ex. restaurante, hotel, gasolineira, museo) ou por coordenadas xeográficas Vista de mapa - Mostra a posición e orientación no mapa - Aliña opcionalmente o mapa co compás ou coa dirección do movemento - Garda os lugares máis importantes como «favoritos» - Mostra os puntos de interese (PDI) que haxa preto - Pode mostrar mapas de teselas especializados con conexión - Pode mostrar a vista de satélite (de Bing) - Pode mostrar diferentes sobreposición, como pistas de GPX de visitas ou navegación e mapas adicionais con transparencia regulábel - Pode mostrar os mapas opcionalmente en inglés, na lingua local ou escritas de maneira fonética Uso dos datos de OpenStreetMap e da Wikipedia - Información de boa calidade procedente dos mellores proxectos colaborativos do mundo - Mapas globais procedentes de OpenStreetMap, dispoñíbeis por país ou rexión - Puntos de interese da Wikipedia, óptimos para facer visitas - Descarga gratuíta ilimitada directamente desde o aplicativo - Mapas sempre actualizados (actualizados cando menos unha vez ao mes) - Mapas vectoriais sen conexións compactos - Selección entre os datos completos dos mapas ou só a rede viaria (Exemplo: Xapón completo son 700 MB mais a rede viaria ocupa só 200 MB) - Tamén admite mapas de teselas con conexión ou na caché Funcionalidades de seguranza - Vistas diúrna e nocturna automatizadas opcionais - Límites de velocidade opcionais, con recordatorio se se exceden - Ampliación opcional do mapa dependente da velocidade - Pódese compartir a situación para que as amizades podan localizalo Funcionalidades para bicicletas e peóns - Os mapas inclúen pistas para peóns, sendeirismo, óptimos para actividades ao ar libre - Modos especiais de cálculo de rutas e pantalla para bicicletas e peóns - Paradas de transporte público opcionais (bus, tranvía, tren), incluídos os nomes das liñas - Gravación opcional das viaxes nun ficheiro GPX local ou nun servizo con conexión - Visualización opcional da velocidade e a altitude - Visualización das curvas de nivel e o sombreado (cun engadido adicional) Achegas directas a OpenStreetMap - Informes de fallos nos mapas - Envío de pistas GPX a OSM directamente desde o aplicativo - Adición de puntos de interese e envío automático a OSM (ou posteriormente, se non houber conexión) - Gravación opcional das viaxes tamén no modo de fondo (mentres o dispositivo está en modo de durmir) OsmAnd é código aberto e está a ser desenvolvido activamente. Calquera pode contribuír co aplicativo informando de fallos, mellorando as traducións ou escribindo código para funcionalidades novas. O proxecto está nun estado vivo de mellora continua mediante todo esas formas de interacción entre desenvolvedores e usuarios. O progreso tamén depende da contribución financeira para financiar o desenvolvemento, o código e as probas das funcionalidades novas. Ao comprar OmsAnd+ axúdase a que o aplicativo sexa aínda mellor. Tamén é posíbel financiar funcionalidades novas específicas ou de realizar unha doazón xeral en osmand.net. Cobertura e calidade aproximada dos mapas: - Europa Occidental: **** - Europa Oriental: *** - Rusia: *** - Norteamérica: *** - Sudamérica: ** - Asia: ** - Xapón e Corea: *** - Oriente Medio: ** - África: ** - Antártida: * Lista de países (basicamente todo o mundo!): Afganistán, Albania, Algeria, Andorra, Angola, Anguilla, Antigua e Barbuda, Arxentina, Armenia, Aruba, Australia, Austria, Azerbaixán, Bahamas, Bahrain, Bangladesh, Barbados, Bielorrusia, Bélxica, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia e Herzegovina, Botswana, Brasil, Illas Virxes Británicas, Brunei, Bulgaria, Burkina Faso, Burundi, Camboxa, Camerún, Canadá, Cabo Verde, República Centroafricana, Chad, Chile, China, Colombia, Comoros, Congo, Costa Rica, Costa de Marfín, Croacia, Cuba, Curaçao, Cyprus, República Checa, Dinamarca, Xibuti, Dominica, República Dominicana, Ecuador, Exipto, El Salvador, Guiné Ecuatorial, Eritrea, Estonia, Etiopía, Fixi, Finlandia, Francia, Guiana Francesa, Polinesia Francesa, Gabón, Gambia, Xeorgia, Alemaña , Ghana, Xibraltar, Grecia, Groenland, Granada, Guadalupe, Guam, Guatemala, Guernsey, Guiné, Guiné-Bissau, Guyana, Haití, Vaticano, Honduras, Hong Kong, Hungría, Islandia, India, Indonesia, Iran, Iraq, Irlanda, Illa de Man, Israel, Italia, Xamaica, Xapón, Jersey, Xordania, Kazakhstan, Kenia, Kiribati, Corea do Norte e Corea do Sur, Kuwait, Quirgizstan, Laos, Letonia, Líbano, Lesotho, Liberia, Libia, Liechtenstein, Lituania, Luxemburgo, Macao, Macedonia, Madagascar, Malawi, Malasia, Maldivas, Mali, Malta, Martinica, Mauritania, Mauricio, Mayotte, México, Micronesia, Moldavia, Mónaco, Mongolia, Montenegro, Montserrat, Marrocos, Mozambique, Myanmar, Namibia, Nauru, Nepal, Países Baixos, Antillas Holandesas, Nova Caledonia, Nova Celandia, Nicaragua, Níxer, Nixeria, Noruega, Oman, Paquistán, Palau, Territorio Palestino, Panamá, Papua New Guinea, Paraguai, Perú, Filipinas, Polonia, Portugal, Puerto Rico, Qatar, Rumanía, Rusia, Ruanda, San Bartolomeu, Santa Helena, Saint Kitts e Nevis, Santa Lucía, San Martin, Saint Pierre e Miquelon, Saint Vincent e as Granadinas, Samoa, San Marino, Arabia Saudi, Senegal, Serbia, Seychelles, Serra Leoa, Singapur, Eslovaquia, Eslovenia, Somalia, Sudáfrica, Xeorxia do Sul, Sudán do Sul, España, Sri Lanka, Sudán, Surinam, Swazilandia, Suecia, Suíza, Siria, Taiwan, Taxikistan, Tanzania, Tailandia, Timor-Leste, Togo, Tokelau, Tonga, Trindade e Tobago, Tunicia, Turquía, Turcomenistan, Tuvalu, Uganda, Ucraína, Emiratos Árabes Unidos, Reino Unido (UK), Estados Unidos de América (USA), Uruguai, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis e Futuna, Sáhara Occidental, Iemen, Zambia, Zimbabwe. " Actualización de mapas sen conexión "Ter os datos dos mapas actualizados é esencial para velos sen conexión, para a busca por puntos de interese e para a navegación sen conexión. OsmAnd fornece un xestor de ficheiros de mapas para descargar estes mapas sen conexión e para comprobar se hai actualizacións. @@ -849,7 +849,7 @@ Busca por puntos de interese (PDI) Busca polo enderezo Coordenadas - Busca por transporte + Busca de transporte público Busca por favoritos Historial de buscas A navegación sen conexión de OsmAnd non está dispoñíbel temporalmente. @@ -872,7 +872,7 @@ Configurar as fontes de mapas en teselas con conexión ou gardados temporalmente Configuración do mapa Configurar a Visualización do mapa - Mostrar as opcións para configurar diversos mapas en teselas con conexión ou gardados temporalmente como mapa base ou como mapas sobrepostos ou submetidos. Estes mapas tamén poden ser preparados sen conexión e copiados ao cartafol de OsmAnd. + Mostrar as opcións para configurar diversos mapas en teselas con conexión ou gardados temporalmente como mapa base ou como mapas sobrepostos ou submetidos. Estes mapas tamén poden ser preparados sen conexión e copiados ao cartafol de datos de OsmAnd. Mostrar as opcións para as funcionalidades de accesibilidade especiais. Configuración avanzada @@ -1029,8 +1029,8 @@ Oceanía Mapas mundi e temáticos Puntos de interese mundiais da Wikipedia - Paquetes de voz (gravados, funcionalidade limitada) - Paquetes de voz (sintetizados con TTS, preferíbeis) + Indicacións de voz (gravadas, funcionalidade limitada) + Indicacións de voz (sintetizadas con TTS, preferíbeis) Wikipedia (sen conexión) Definido polo usuairo Xa existe un ficheiro con favoritos exportados previamente. Desexa substituílo? @@ -1051,10 +1051,10 @@ Orientación do mapa "É posíbel alternar se xirar o mapa e como premendo repetidas veces na icona do compás da pantalla do mapa.\n\nAs opcións son:\n\t→\t* «Non xirar» (o norte está arriba): O mapa non se xira. O norte está sempre arriba\n\t→\t* «Na dirección do movemento»: O mapa alíñase continuamente co rumbo\n\t→\t* «Co compás»: O mapa alíñase continuamente coa lectura que dea o compás do dispositivo " "A descarga foi correcta. -\n\t\n\tPara utilizar, active «Menú» → «Capas de mapas» → «Fonte de mapas…» → «Mapas vectoriais sen conexión». " +\n\t\n\tPara utilizar, active «Menú» → «Capas o mapa» → «Fonte de mapas…» → «Mapas vectoriais sen conexión». " Modo diúrno/nocturo "É posíbel cambiar a aparencia dos mapas vectoriais sen conexión entre diúrna (máis clara) e noctura (máis escura). Os cores nocturnos son máis seguros e máis cómodos para conducir de noite. -\n\nPódese estabelecer unha política para alternar entre a aparencia diúrna e nocturna en «Menú» → «Configurar a pantalla» → «Mapa diúrno/nocturno». +\n\nPódese estabelecer unha política para alternar entre a aparencia diúrna e nocturna en «Menú» → «Configurar o mapa» → «Mapa diúrno/nocturno». \n\nAs opcións son: \n\t* «Amencer/Solpor: modo automático controlado pola posición do sol (predeterminado) \n\t* «Día»: empregar sempre o tema diúrno @@ -1129,8 +1129,8 @@ Sen definir Fixada Posición actual… - Última vista do mapa - Buscar preto de: + Centro do mapa actual + Orixe: Buscar preto de aquí "cambios recentes para 0.6.7: \n\t- Offline data manager (download, delete, activate / deactivate offline data directly in OsmAnd) @@ -1180,7 +1180,7 @@ Descargar Datos de PDI Datos de enderezos - Datos de transporte + Datos de transporte público Datos de mapas Desactivado Datos de voz (TTS) @@ -1212,7 +1212,7 @@ Inverter a dirección do GPX Empregar o destino actual Pasar por toda a pista - Hai un mapa vectorial se conexión para este sitio.\n\t\n\tPara empregalo active «Menú» → «Capas de mapas» → «Fonte de mapas…» → «Mapas vectoriais sen conexión». + Hai un mapa vectorial se conexión para este sitio.\n\t\n\tPara empregalo active «Menú» → «Configurar o mapa» → «Fonte de mapas…» → «Mapas vectoriais sen conexión». Saída da orientación por voz Escoller a canle pola que reproducir a orientación por voz (dependente do sistema) Son de chamada telefónica @@ -1232,7 +1232,7 @@ Escoller o mapa sobreposto O mapa xa está instalado; vaise actualizar a configuración Seleccione os mapas (teselas) que desexa instalar ou actualizar - A conexión á Internet requirida pola operación non está dispoñ´ibel + Esta operación require unha conexión á Internet mais non hai ningunha dispoñíbel Instalar máis… Nivel de ampliación mínimo para empregar mapas vectoriais Nivel de ampliación vectorial mínimo @@ -1240,17 +1240,17 @@ "É posíbel compartir a situación de lugares interesantes das viaxes coa familia ou con amizadas mediante o menú de contexto «Empregar a situación» → «Compartir a situación». \n\nThen chose a way to share your location. The choices are: E-Mail, SMS(text), or just copy the location coordinates to the device clipboard. " Puntos favoritos - "Os puntos que se empreguen con frecuencia poden ser gardados como «favoritos» da seguinte maneira:\n\nNo menú de contexto «Empregar a situación» de calquera punto seleccione a opción «Engadir aos favoritos» e introduza un nome.\n\nUnha vez gardado o favorito, xa está accesíbel en «Menú» → «Os meus sitios». Ao tocar en calquera entrada da lista de favoritos aparecen opcións para el, como navegar até alí, editalo ou eliminalo.\n\nPara mostrar todos os puntos favoritos directamente no mapa, active a capa «Favoritos» na pantalla do pama en «Menú» → «Capas do mapa». " + "Os puntos que se empreguen con frecuencia poden ser gardados como «favoritos» da seguinte maneira:\n\nNo menú de contexto «Empregar a situación» de calquera punto seleccione a opción «Engadir aos favoritos» e introduza un nome.\n\nUnha vez gardado o favorito, xa está accesíbel en «Menú» → «Os meus sitios». Ao tocar en calquera entrada da lista de favoritos aparecen opcións para el, como navegar até alí, editalo ou eliminalo.\n\nPara mostrar todos os puntos favoritos directamente no mapa, active a capa «Favoritos» na pantalla do pama en «Menú» → «Configurar o mapa». " Online OSM con imaxes Produciuse un erro na busca sen conexión Non foi posíbel entender a ligazón «%s» Buscar a situación xeográfica Sistema - Seleccione o idioma da pantalla + Seleccione o idioma da pantalla (e reinicie OsmAnd despois de cambialo) Idioma da pantalla incompleto Seleccione unha fonte de mapas - "A fonte dos mapas e as capas que se desexe ver cámbianse en «Menú» → «Capas de mapa».\n\nEn «Fonte de mapas...» pódese escoller entre empregar os mapas vectoriais sen conexión precargados (predeterminado, necesarios tamén para a navegación sen conexión), as fontes de teselas (con conexión ou gardadas temporalmente) predeterminadas (hai que activar o engadido «Mapas con conexión» en «Configuración» → «Engadidos» para isto) e mapas que se creen manualmente empregando, por exemplo OsmAndMapCreator nun computador.\n\nOsmAnd admite tamén fontes personalizadas. " + "A fonte dos mapas e as capas que se desexe ver cámbianse en «Menú» → «Configurar o mapa».\n\nEn «Fonte de mapas...» pódese escoller entre empregar os mapas vectoriais sen conexión precargados (predeterminado, necesarios tamén para a navegación sen conexión), as fontes de teselas (con conexión ou gardadas temporalmente) predeterminadas (hai que activar o engadido «Mapas con conexión» en «Configuración» → «Engadidos» para isto) e mapas que se creen manualmente empregando, por exemplo OsmAndMapCreator nun computador.\n\nOsmAnd admite tamén fontes personalizadas. " Usar perfil "OsmAnd admite diferentes perfís (personalizábeis) do aplicativo para diferentes casos de uso.\n\nÉ posíbel cambiar os perfís co botón de perfís do recuncho inferior esquerdo da pantalla do mapa (icona do coche, a bicicleta ou o peón) ou ao crear un itinerario («modo de transporte»). " Menú «Empregar a situación» @@ -1313,8 +1313,8 @@ OsmAnd navigation >20km Empregar a navegación sen conexión de OsmAnd só para itinerarios > 20 km (experimental) A navegación sen conexión de OsmAnd é unha funcionalidade experimental e non funciona para distancias maiores duns 20 km.\n\nO servizo de navegación vai pasar temporalmente ao CloudMade, con conexión. - Non é posíbel atopar o directorio indicado. - Directorio de almacenamento + Non é posíbel atopar o cartafol indicado. + Cartafol de almacenamento de datos Xa hai unha versión anterior de OsmAnd instalada. Todos os datos sen conexión son utilizábeis polo novo aplicativo. Porén, os puntos favoritos hainos que exportar co aplicativo antigo e despois importalos co novo. A compilación {0} foi instalada correctamente ({1}). @@ -1324,7 +1324,7 @@ A cargar as compilacións de OsmAnd… Seleccione a compilación de OsmAnd que desexe instalar O aplicativo de estado do GPS non está instalado. Desexa buscalo no Market? - A orientación por voz non está dispoñíbel. Vaia á conifguración, escolla o paquete de datos de voz que prefira e descárgueo. + A orientación por voz non está dispoñíbel. Vaia á «Configuración» → «Xeral» →«Indicacións con voz» e seleccione ou descargue un paquete de datos de voz. A orientación por voz non está seleccionada Diúrno Nocturno @@ -1358,16 +1358,16 @@ Pantalla de alta resolución Non estirar (e perder a nitidez) das teselas do mapa en pantallas de alta densidade Download - Buscar transporte + Buscar transporte público Resultados de transporte (sen destino): Resultados de transporte ({0} ao destino): none Restaurar a busca de transporte Mapa - Voz + Voz gravada Os mapas vectoriais non están cargados Navegar empregando GPX - Non foi posíbel atopar os ficheiros GPX no directorio /tracks + Non foi posíbel atopar ficheiros GPX no cartafol de pistas Pista de GPX… Produciuse un erro ao ler os datos de GPX Mapas vectoriais sen conexión @@ -1448,7 +1448,7 @@ Despois Descargar rexións A buscar o sinal… - Buscar preto da última situación do mapa + Buscar preto do centro actual do mapa Buscar preto A mesma que o dispositivo Portrait @@ -1501,7 +1501,7 @@ Distancia total %1$s, tempo de viaxe %2$d h %3$d m. Escoller un servizo de navegación con ou sen conexión Navigation service - O directorio para gardar no cartón SD non é accesíbel + O cartafol de almacenamento de datos do cartón SD non é accesíbel! Download {0} - {1} ? Xa existen datos sen conexión para {0} ({1}). Desexa actualizalos ({2}) ? Address @@ -1701,7 +1701,7 @@ Tolerancia no límite de velocidade Seleccione a marxe de tolerancia do límite de velocidade por riba da cal desexa ser avisado por voz. - Desexa descargar un mapa para empregar sen conexión? + Desexa descargar mapas para empregar sen conexión? Ten descargados %1$s mapas Descargar un mapa novo Xestionar @@ -1713,7 +1713,7 @@ Local Non é posíbel descargar. Conéctese a unha rede con wi-fi para proseguir. Desbotar - Todo está actualizado + Todos os ficheiros están actualizados Empregar o renderizado con OpenGL Empregar renderizado con OpenGL acelerado co hardware (podería non funcionar nalgúns dispositivos) Non foi posíbel atopar a estrada máis próxima @@ -1721,7 +1721,7 @@ Empregar unha conexión segura co servidor Empregar HTTPS Avanzado - Ten %1$s mapas que hai que actualizar + Hai actualizacións dispoñíbeis para %1$s mapas Buscar MOSTRAR O MAPA MOSTRAR TODO @@ -1729,9 +1729,9 @@ Rutas de tranvía e de tren %1$s require este permiso para apagar a pantalla para a funcionalidade de aforro de enerxía. Acender a pantalla - Acender a pantalla do teléfono ao aproximarse unha manobra + Acender a pantalla do dispositivo ao aproximarse unha manobra Nunca - Seleccionar no mapa + Seleccionar no mapa… Evitar estradas… "Cambios en 1.9: * Updated maps styles with road surface rendering, transport layers and hiking symbols * Search POI along the route * Mark road as impassable per session * Easier to download and update maps * Get visual and audio notification by approaching to waypoint * Print itinerary and turn information * Support of turn lanes * Support Android Wear * Lots UI changes * Separate zoom for Text Size on the map * Special audio notifications in case you are off the route * OsMo login functionality * Fix OsMo version incompatibilities " Rutas de tren @@ -1756,4 +1756,15 @@ Os usuarios anónimos non poden:\n - crear grupos;\n - sincronizar grupos e dispositivos co servidor;\n - xestionar grupos e dispositivos nunha oficina privada. Usuario anónimo Identificado como %1$s - + Predeterminado + Anunciar os pasos de peón + Estilo de estrada + Predeterminado + Laranxa + Atlas de estradas alemáns + Paso de peóns + Mostrar os pasos de peóns + Atlas de estradas norteamericanos + Non seguir as regras de v1.9 + Non empregar as retras para itinerarios introducidas na versión 1.9 + From ac687519c3e9dd606e7e98b898e6b7a94590d894 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 13 Jan 2015 00:19:50 +0100 Subject: [PATCH 64/67] Update zoom animation and add zoom fraction for autozoom (don't change density in autozoom). Add limit autozoom for different drive options --- .../src/net/osmand/plus/render/MapRenderRepositories.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java b/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java index d24d2fe14b..9a16b360b4 100644 --- a/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java +++ b/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java @@ -668,10 +668,11 @@ public class MapRenderRepositories { currentRenderingContext.polygonMinSizeToDisplay = renderingReq.getIntPropertyValue(renderingReq.ALL.R_ATTR_INT_VALUE); } final QuadPointDouble lt = requestedBox.getLeftTopTile(requestedBox.getZoom()); - lt.x *= requestedBox.getMapDensity(); - lt.y *= requestedBox.getMapDensity(); + double cfd = MapUtils.getPowZoom(requestedBox.getZoomFloatPart())* requestedBox.getMapDensity(); + lt.x *= cfd; + lt.y *= cfd; // LatLon ltn = requestedBox.getLeftTopLatLon(); - final double tileDivisor = MapUtils.getPowZoom(31 - requestedBox.getZoom()) / requestedBox.getMapDensity(); + final double tileDivisor = MapUtils.getPowZoom(31 - requestedBox.getZoom()) / cfd; currentRenderingContext.leftX = lt.x; currentRenderingContext.topY = lt.y; From 27e1015386caa439dd860f44dc6137f99ae583a7 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 13 Jan 2015 00:32:36 +0100 Subject: [PATCH 65/67] Fix recalculation issue --- .../osmand/plus/routing/RoutingHelper.java | 77 +++++++++---------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index c235793e87..1c0780d3ce 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -318,7 +318,7 @@ public class RoutingHelper { } if (calculateRoute) { - recalculateRouteInBackground(false, currentLocation, finalLocation, intermediatePoints, currentGPXRoute, + recalculateRouteInBackground(currentLocation, finalLocation, intermediatePoints, currentGPXRoute, previousRoute.isCalculated() ? previousRoute : null, false, !targetPointsChanged); } else { Thread job = currentRunningJob; @@ -731,6 +731,9 @@ public class RoutingHelper { @Override public void run() { + synchronized (RoutingHelper.this) { + currentRunningJob = this; + } if(prevRunningJob != null) { while(prevRunningJob.isAlive()){ try { @@ -739,10 +742,10 @@ public class RoutingHelper { e.printStackTrace(); } } - } - synchronized (RoutingHelper.this) { - currentRunningJob = this; - } + synchronized (RoutingHelper.this) { + currentRunningJob = this; + } + } RouteCalculationResult res = provider.calculateRouteImpl(params); if (params.calculationProgress.isCancelled) { synchronized (RoutingHelper.this) { @@ -794,49 +797,43 @@ public class RoutingHelper { } public void recalculateRouteDueToSettingsChange() { - //This should fix route-recalculation if settings change during ongoing calculation clearCurrentRoute(finalLocation, intermediatePoints); - //Issue 2515 test only: Try re-initialize start point here: No impact on Issue 2515 - //if (settings.getPointToStart() != null) { - // lastFixedLocation.setLatitude(settings.getPointToStart().getLatitude()); - // lastFixedLocation.setLongitude(settings.getPointToStart().getLongitude()); - //} - recalculateRouteInBackground(true, lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, route, true, false); + recalculateRouteInBackground(lastFixedLocation, finalLocation, intermediatePoints, currentGPXRoute, route, true, false); } - private void recalculateRouteInBackground(boolean force, final Location start, final LatLon end, final List intermediates, + private void recalculateRouteInBackground(final Location start, final LatLon end, final List intermediates, final GPXRouteParamsBuilder gpxRoute, final RouteCalculationResult previousRoute, boolean paramsChanged, boolean onlyStartPointChanged){ if (start == null || end == null) { return; } - if (currentRunningJob == null || force) { - // do not evaluate very often - if (System.currentTimeMillis() - lastTimeEvaluatedRoute > evalWaitInterval || force) { - RouteCalculationParams params = new RouteCalculationParams(); - params.start = start; - params.end = end; - params.intermediates = intermediates; - params.gpxRoute = gpxRoute == null ? null : gpxRoute.build(start, settings); - params.onlyStartPointChanged = onlyStartPointChanged; - params.previousToRecalculate = previousRoute; - params.leftSide = settings.DRIVING_REGION.get().leftHandDriving; - params.fast = settings.FAST_ROUTE_MODE.getModeValue(mode); - params.type = settings.ROUTER_SERVICE.getModeValue(mode); - params.mode = mode; - params.ctx = app; - if (previousRoute == null && params.type == RouteService.OSMAND) { - params.calculationProgress = new RouteCalculationProgress(); - updateProgress(params.calculationProgress); - } - synchronized (this) { - final Thread prevRunningJob = currentRunningJob; - RouteRecalculationThread newThread = new RouteRecalculationThread("Calculating route", params, paramsChanged); //$NON-NLS-1$ - currentRunningJob = newThread ; - if(prevRunningJob != null) { - newThread.setWaitPrevJob(prevRunningJob); - } - currentRunningJob.start(); + // do not evaluate very often + if ((currentRunningJob == null && System.currentTimeMillis() - lastTimeEvaluatedRoute > evalWaitInterval) + || paramsChanged || !onlyStartPointChanged) { + RouteCalculationParams params = new RouteCalculationParams(); + params.start = start; + params.end = end; + params.intermediates = intermediates; + params.gpxRoute = gpxRoute == null ? null : gpxRoute.build(start, settings); + params.onlyStartPointChanged = onlyStartPointChanged; + params.previousToRecalculate = previousRoute; + params.leftSide = settings.DRIVING_REGION.get().leftHandDriving; + params.fast = settings.FAST_ROUTE_MODE.getModeValue(mode); + params.type = settings.ROUTER_SERVICE.getModeValue(mode); + params.mode = mode; + params.ctx = app; + if (previousRoute == null && params.type == RouteService.OSMAND) { + params.calculationProgress = new RouteCalculationProgress(); + updateProgress(params.calculationProgress); + } + synchronized (this) { + final Thread prevRunningJob = currentRunningJob; + RouteRecalculationThread newThread = new RouteRecalculationThread( + "Calculating route", params, paramsChanged); //$NON-NLS-1$ + currentRunningJob = newThread; + if (prevRunningJob != null) { + newThread.setWaitPrevJob(prevRunningJob); } + currentRunningJob.start(); } } } From af1d4ae24c5e2c933c3a3a634361ae1ab23c7bd5 Mon Sep 17 00:00:00 2001 From: sonora Date: Tue, 13 Jan 2015 02:47:26 +0100 Subject: [PATCH 66/67] Remove obsolete test code --- .../net/osmand/plus/views/controls/MapRouteInfoControl.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java b/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java index 08ec6c0ccc..853fbe4bd3 100644 --- a/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java +++ b/OsmAnd/src/net/osmand/plus/views/controls/MapRouteInfoControl.java @@ -79,13 +79,9 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio getTargets().navigateToPoint(latlon, true, -1); } else { getTargets().setStartPoint(latlon, true, null); - //TODO: Issue 2515: Re-selecting the "From" or "To" point, or any other route preference during an ongoing route calculation (and only then), and if the "From" point is not "Current position" (and only then), always correctly interrupts the ongoing route calculation, but restarts it exactly EVERY OTHER time only. } contextMenu.setLocation(latlon, null); showDialog(); - //Issue 2515 test code: Try force resuming route re-caculation here if stopped due to Issue 2515 - // interesting: putting one or more of the next lines here destroys the alternating "interrupted route calculation won't re-start" behavior and causes the route calculation to NEVER re-start! - //routingHelper.recalculateRouteDueToSettingsChange(); return true; } return super.onSingleTap(point, tileBox); From 80bbf423ca78cce16a9bca43b38b41f16f6a42ab Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 13 Jan 2015 10:25:56 +0100 Subject: [PATCH 67/67] Reimplement turn:lanes merge --- .../osmand/router/RouteResultPreparation.java | 187 ++++++++++++------ .../plus/resources/ResourceManager.java | 1 - 2 files changed, 123 insertions(+), 65 deletions(-) diff --git a/OsmAnd-java/src/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/net/osmand/router/RouteResultPreparation.java index 3e1d852af1..2cd20bb3a3 100644 --- a/OsmAnd-java/src/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/net/osmand/router/RouteResultPreparation.java @@ -42,8 +42,10 @@ public class RouteResultPreparation { splitRoadsAndAttachRoadSegments(ctx, result); // calculate time calculateTimeSpeed(ctx, result); - + addTurnInfo(ctx.leftSideNavigation, result); + determineTurnsToMerge(ctx.leftSideNavigation, result); + addTurnInfoDescriptions(result); return result; } @@ -331,8 +333,6 @@ public class RouteResultPreparation { private void addTurnInfo(boolean leftside, List result) { - int prevSegment = -1; - float dist = 0; int next = 1; for (int i = 0; i <= result.size(); i = next) { TurnType t = null; @@ -341,47 +341,31 @@ public class RouteResultPreparation { t = getTurnInfo(result, i, leftside); // justify turn if(t != null && i < result.size() - 1) { - boolean tl = TurnType.TL == t.getValue(); - boolean tr = TurnType.TR == t.getValue(); - if(tl || tr) { - TurnType tnext = getTurnInfo(result, i + 1, leftside); - if (tnext != null && result.get(i).getDistance() < 35) { // - boolean ut = true; - if (i > 0) { - double uTurn = MapUtils.degreesDiff(result.get(i - 1).getBearingEnd(), result - .get(i + 1).getBearingBegin()); - if (Math.abs(uTurn) < 120) { - ut = false; - } - } - String highway = result.get(i).getObject().getHighway(); - if(highway == null || highway.endsWith("track") || highway.endsWith("services") || highway.endsWith("service") - || highway.endsWith("path")) { - ut = false; - } - if (ut) { - if (tl && TurnType.TL == tnext.getValue()) { - next = i + 2; - t = TurnType.valueOf(TurnType.TU, false); - } else if (tr && TurnType.TR == tnext.getValue()) { - next = i + 2; - t = TurnType.valueOf(TurnType.TU, true); - } - } - } + TurnType jt = justifyUTurn(leftside, result, i, t); + if(jt != null) { + t = jt; + next = i + 2; } } result.get(i).setTurnType(t); } - if (t != null || i == result.size()) { + } + } + + protected void addTurnInfoDescriptions(List result) { + int prevSegment = -1; + float dist = 0; + for (int i = 0; i <= result.size(); i++) { + if (i == result.size() || result.get(i).getTurnType() != null) { if (prevSegment >= 0) { String turn = result.get(prevSegment).getTurnType().toString(); if (result.get(prevSegment).getTurnType().getLanes() != null) { turn += Arrays.toString(result.get(prevSegment).getTurnType().getLanes()); } - result.get(prevSegment).setDescription(turn + MessageFormat.format(" and go {0,number,#.##} meters", dist)); - if(result.get(prevSegment).getTurnType().isSkipToSpeak()) { - result.get(prevSegment).setDescription("-*"+result.get(prevSegment).getDescription()); + result.get(prevSegment).setDescription( + turn + MessageFormat.format(" and go {0,number,#.##} meters", dist)); + if (result.get(prevSegment).getTurnType().isSkipToSpeak()) { + result.get(prevSegment).setDescription("-*" + result.get(prevSegment).getDescription()); } } prevSegment = i; @@ -391,8 +375,37 @@ public class RouteResultPreparation { dist += result.get(i).getDistance(); } } + } - determineTurnsToMerge(leftside, result); + protected TurnType justifyUTurn(boolean leftside, List result, int i, TurnType t) { + boolean tl = TurnType.TL == t.getValue(); + boolean tr = TurnType.TR == t.getValue(); + if(tl || tr) { + TurnType tnext = getTurnInfo(result, i + 1, leftside); + if (tnext != null && result.get(i).getDistance() < 35) { // + boolean ut = true; + if (i > 0) { + double uTurn = MapUtils.degreesDiff(result.get(i - 1).getBearingEnd(), result + .get(i + 1).getBearingBegin()); + if (Math.abs(uTurn) < 120) { + ut = false; + } + } + String highway = result.get(i).getObject().getHighway(); + if(highway == null || highway.endsWith("track") || highway.endsWith("services") || highway.endsWith("service") + || highway.endsWith("path")) { + ut = false; + } + if (ut) { + if (tl && TurnType.TL == tnext.getValue()) { + return TurnType.valueOf(TurnType.TU, false); + } else if (tr && TurnType.TR == tnext.getValue()) { + return TurnType.valueOf(TurnType.TU, true); + } + } + } + } + return null; } private void determineTurnsToMerge(boolean leftside, List result) { @@ -420,14 +433,21 @@ public class RouteResultPreparation { continue; } - // Only allow slight turns that are nearby to be merged. - if (currentSegment.getDistance() < 60 && nextTurn.getLanes().length <= currentTurn.getLanes().length - && TurnType.isSlightTurn(currentTurn.getValue())) { + // Only allow slight turns that are nearby to be merged. + // [disabled cause it is valuable for two consequent sharp turns as well] + // the distance could be longer on highways and shorter in city + String hw = currentSegment.getObject().getHighway(); + double mergeDistance = 200; + if(hw != null && (hw.startsWith("trunk") || hw.startsWith("motorway"))) { + mergeDistance = 400; + } + if (currentSegment.getDistance() < mergeDistance/* + && TurnType.isSlightTurn(currentTurn.getValue())*/) { mergeTurnLanes(leftside, currentSegment, nextSegment); } } } - + private void mergeTurnLanes(boolean leftSide, RouteSegmentResult currentSegment, RouteSegmentResult nextSegment) { TurnType currentTurn = currentSegment.getTurnType(); TurnType nextTurn = nextSegment.getTurnType(); @@ -435,36 +455,75 @@ public class RouteResultPreparation { && TurnType.getPrimaryTurn(nextTurn.getLanes()[0]) != 0; if (isUsingTurnLanes) { int[] lanes = new int[currentTurn.getLanes().length]; - // Unset the allowed lane bit - for (int i = 0; i < lanes.length; i++) { - lanes[i] = currentTurn.getLanes()[i] & ~1; - } - - // Find the first lane that matches (based on the turn being taken), and how many lanes match - int matchingIndex = 0; - int maxMatchedLanes = 0; - for (int i = 0; i < lanes.length; i++) { - int matchedLanes = 0; - for (int j = 0; j < nextTurn.getLanes().length - i; j++) { - if (TurnType.getPrimaryTurn(nextTurn.getLanes()[j]) - == TurnType.getPrimaryTurn(currentTurn.getLanes()[i + j])) { - matchedLanes++; + int activeIndex = -1; + int activeLen = 0; + // define enabled lanes + for(int i = 0; i < lanes.length; i++) { + int ln = currentTurn.getLanes()[i]; + lanes[i] = ln & ~1; + if((ln & 1) > 0) { + if(activeIndex == -1) { + activeIndex = i; + activeLen++; } else { - break; + activeLen++; } } - if (matchedLanes > maxMatchedLanes) { - matchingIndex = i; - maxMatchedLanes = matchedLanes; - } } - if (maxMatchedLanes <= 1) { + if(activeLen < 2) { return; } - - // Copy the allowed bit from the next segment's lanes to the current segment's matching lanes - for (int i = matchingIndex; i - matchingIndex < nextTurn.getLanes().length; i++) { - lanes[i] |= nextTurn.getLanes()[i - matchingIndex] & 1; + int targetActiveIndex = -1; + int targetActiveLen = 0; + int[] nextLanes = nextTurn.getLanes(); + for(int i = 0; i < nextLanes.length; i++) { + int ln = nextLanes[i]; + if((ln & 1) > 0) { + if(targetActiveIndex == -1) { + targetActiveIndex = i; + targetActiveLen++; + } else { + targetActiveLen++; + } + } + } + if(targetActiveIndex == -1) { + return; + } + boolean changed = false; + // next turn is left + if(targetActiveIndex == 0) { + // let only the most left lanes be enabled + if(targetActiveLen <= activeLen) { + activeLen = targetActiveLen; + changed = true; + } + } else if(targetActiveIndex + targetActiveLen == nextLanes.length) { + // next turn is right + // let only the most right lanes be enabled + if(targetActiveLen <= activeLen) { + activeIndex += (activeLen - targetActiveLen); + changed = true; + } + } else { + // next turn is get through (take out the left and the right turn) + if(nextLanes.length >= activeLen) { + float ratio = (nextLanes.length / (float)activeLen); + activeLen = (int) Math.ceil(targetActiveLen * ratio); + activeIndex = (int) Math.floor(targetActiveIndex / ratio); + changed = true; + } + } + if(!changed) { + return; + } + + + // set the allowed lane bit + for (int i = 0; i < lanes.length; i++) { + if(i >= activeIndex && i < activeIndex + activeLen) { + lanes[i] |= 1; + } } currentTurn.setLanes(lanes); int turn = inferTurnFromLanes(lanes); diff --git a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java index edc25babda..8f513e2b96 100644 --- a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java +++ b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java @@ -45,7 +45,6 @@ import net.osmand.plus.R; import net.osmand.plus.SQLiteTileSource; import net.osmand.plus.SearchByNameFilter; import net.osmand.plus.Version; -import net.osmand.plus.download.BaseDownloadActivity; import net.osmand.plus.render.MapRenderRepositories; import net.osmand.plus.render.NativeOsmandLibrary; import net.osmand.plus.resources.AsyncLoadingThread.MapLoadRequest;