diff --git a/OsmAnd-java/src/net/osmand/map/OsmandRegions.java b/OsmAnd-java/src/net/osmand/map/OsmandRegions.java index 9619dc81a0..63fdea375f 100644 --- a/OsmAnd-java/src/net/osmand/map/OsmandRegions.java +++ b/OsmAnd-java/src/net/osmand/map/OsmandRegions.java @@ -38,16 +38,16 @@ public class OsmandRegions { public static final String MAP_TYPE = "region_map"; - public static final String FIELD_LEFT_HAND_DRIVING = "left_hand_driving"; public static final String FIELD_DOWNLOAD_NAME = "download_name"; public static final String FIELD_NAME = "name"; public static final String FIELD_NAME_EN = "name:en"; public static final String FIELD_REGION_PARENT_NAME = "region_parent_name"; public static final String FIELD_REGION_FULL_NAME = "region_full_name"; - public static final String FIELD_LANG = "lang"; - public static final String FIELD_METRIC = "metric"; - public static final String FIELD_ROAD_SIGNS = "road_signs"; - + public static final String FIELD_LANG = "region_lang"; + public static final String FIELD_METRIC = "region_metric"; + public static final String FIELD_ROAD_SIGNS = "region_road_signs"; + public static final String FIELD_LEFT_HAND_DRIVING = "region_left_hand_navigation"; + private BinaryMapIndexReader reader; private String locale = "en"; private static final org.apache.commons.logging.Log LOG = PlatformUtil.getLog(OsmandRegions.class); @@ -164,10 +164,10 @@ public class OsmandRegions { return rd.getLocaleName(); } if(parentParent.getRegionId().equals(WorldRegion.RUSSIA_REGION_ID)) { - return parentParent.getRegionId() + " " + rd.getLocaleName(); + return parentParent.getLocaleName() + " " + rd.getLocaleName(); } if(parentParent.getRegionId().equals(WorldRegion.JAPAN_REGION_ID)) { - return parentParent.getRegionId() + " " + rd.getLocaleName(); + return parentParent.getLocaleName() + " " + rd.getLocaleName(); } return parent.getLocaleName() + " " + rd.getLocaleName(); } else { @@ -389,10 +389,10 @@ public class OsmandRegions { rd.regionName = mapIndexFields.get(mapIndexFields.nameType, object); rd.regionNameLocale = mapIndexFields.get(mapIndexFields.nameLocaleType, object); rd.regionNameEn = mapIndexFields.get(mapIndexFields.nameEnType, object); - rd.regionLang = mapIndexFields.get(mapIndexFields.langType, object); - rd.regionLeftHandDriving = mapIndexFields.get(mapIndexFields.leftHandDrivingType, object); - rd.regionMetric = mapIndexFields.get(mapIndexFields.metricType, object); - rd.regionRoadSigns = mapIndexFields.get(mapIndexFields.roadSignsType, object); + rd.params.regionLang = mapIndexFields.get(mapIndexFields.langType, object); + rd.params.regionLeftHandDriving = mapIndexFields.get(mapIndexFields.leftHandDrivingType, object); + rd.params.regionMetric = mapIndexFields.get(mapIndexFields.metricType, object); + rd.params.regionRoadSigns = mapIndexFields.get(mapIndexFields.roadSignsType, object); rd.regionSearchText = getSearchIndex(object); rd.regionMapDownload = isDownloadOfType(object, MAP_TYPE); return rd; diff --git a/OsmAnd-java/src/net/osmand/map/WorldRegion.java b/OsmAnd-java/src/net/osmand/map/WorldRegion.java index 980aa081c0..c14adbedd7 100644 --- a/OsmAnd-java/src/net/osmand/map/WorldRegion.java +++ b/OsmAnd-java/src/net/osmand/map/WorldRegion.java @@ -25,10 +25,7 @@ public class WorldRegion { protected List subregions; // filled by osmand regions - protected String regionLeftHandDriving; - protected String regionLang; - protected String regionMetric; - protected String regionRoadSigns; + protected RegionParams params = new RegionParams(); protected String regionFullName; protected String regionParentFullName; protected String regionName; @@ -38,6 +35,30 @@ public class WorldRegion { protected String regionDownloadName; protected boolean regionMapDownload; protected LatLon regionCenter; + + public static class RegionParams { + protected String regionLeftHandDriving; + protected String regionLang; + protected String regionMetric; + protected String regionRoadSigns; + + public String getRegionLeftHandDriving() { + return regionLeftHandDriving; + } + + public String getRegionLang() { + return regionLang; + } + + public String getRegionMetric() { + return regionMetric; + } + + public String getRegionRoadSigns() { + return regionRoadSigns; + } + } + public boolean isRegionMapDownload() { @@ -65,19 +86,11 @@ public class WorldRegion { public String getRegionDownloadNameLC() { return regionDownloadName == null ? null : regionDownloadName.toLowerCase(); } - - public String getRegionLeftHandDriving() { - return regionLeftHandDriving; + + public RegionParams getParams() { + return params; } - - public String getRegionMetric() { - return regionMetric; - } - - public String getRegionRoadSigns() { - return regionRoadSigns; - } - + public LatLon getRegionCenter() { return regionCenter; } @@ -85,11 +98,6 @@ public class WorldRegion { public String getRegionSearchText() { return regionSearchText; } - - public String getRegionLang() { - return regionLang; - } - public WorldRegion getSuperregion() { return superregion; diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 5880d4677c..713fb9b671 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -2135,7 +2135,7 @@ Eventuelle ikke-gemte ændringer vil gå tabt. Fortsæt? Sikker? Stop simulering af position - Simuler ved brug af optaget GPX eller beregnet rute + Simuler ved brug af beregnet rute eller optaget GPX %1$s filhentninger tilbage Veje Favoritinformation @@ -2189,11 +2189,11 @@ Udklipsholder geo: QR-kode - Nulstiller flag, der angiver første opstart, beholder andre indstillinger i deres oprindelige tilstand - Simuler første opstart + Sætter flag, der angiver første programstart, beholder alle andre indstillinger uændret + Simuler første programstart Del placering Send Hej tomme fragment Vælg hvor kortfilerne skal gemmes. -OsmAnd vil starte på kortskærmen +\'Fra\' starter direkte på kortskærmen diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 499052d9a7..21339a331b 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -2156,7 +2156,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et Fichier GPX avec notes aménité Arrêter de simuler votre position - Simuler la position à partir d\'un fichier GPX ou d\'une route + Simuler à partir d\'un fichier GPX ou d\'une route calculée Etes-vous certain ? Les modifications non enregistrées seront perdues. Souhaitez-vous poursuivre ? %1$s téléchargement(s) restant(s) @@ -2218,7 +2218,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et Envoyer Sélectionnez l\'emplacement pour enregistrer les cartes. Simuler un premier démarrage - Efface le compteur de démarrages afin de simuler un premier démarrage (ne modifie aucun autre paramètre) + Efface le compteur de démarrages afin de simuler un premier démarrage (conserve tous les autres paramètres) Hello fragment vide - L\'application OmsAnd s\'éxecutera depuis la carte + Si inactif démarre l\'application en mode carte diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 53d65da498..5b67470587 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -110,10 +110,10 @@ Európa - Franciaország Európa - Németország Európa - Európa/Ázsia - Oroszország + Oroszország Afrika Ázsia - Óceánia + Ausztrália és Óceánia Világtérkép, tematikus térképek Wikipédia Hangutasítás (felvett, korlátozott lehetőségek) @@ -261,11 +261,11 @@ Térképadat Deaktivált - Beszédadat (TTS) + Gépi hang (TTS) Beszédadat (felvett) - Online térképcsempék - Offline térképek + Online és gyorsítótárazott térképcsempék + Normál térképek (vektoros) POI-adat TTS felolvasó hang Új keresés @@ -831,7 +831,7 @@ Internetes és tárolt raszteres térképek beállításai - "Ezzel a bővítménnyel az online (úgynevezett csempés vagy raszteres) térképek több típusához is hozzáférhet az előre meghatározott Openstreetmap csempéktől kezdve (mint például a Mapnik) a műholdképekig és a speciális célú rétegekig, úgymint időjárási térképek, éghajlati térképek, földtani térképek, domborzatnyékolási rétegek, stb.\n\nEzen térképek bármelyike használható az OsmAnd térkép képernyőjén megjelenítendő fő (alap) térképként, vagy egy másik alaptérkép borításaként vagy alátétjeként (mint például az OsmAnd szokásos kapcsolat nélküli térképei). Bármely alátét térkép jobban láthatóbbá tételének érdekében az OsmAnd vektoros térképeinek bizonyos elemei igény szerint könnyedén elrejthetők a „Térkép beállítása” menün keresztül.\n\nA csempés térképek internetes forrásokon keresztül szerezhetők be, vagy előkészíthetők kapcsolat nélküli használathoz (és kézzel átmásolva az OsmAnd adatmappájába) egy olyan sqlite adatbázisként, amelyet különféle harmadik féltől származó térkép-előkészítő eszközök állíthatnak elő. " + "Ezzel a bővítménnyel az online (úgynevezett csempés vagy raszteres) térképek több típusához is hozzáférhet az előre meghatározott Openstreetmap csempéktől kezdve (mint például a Mapnik) a műholdképekig és a speciális célú rétegekig, úgymint időjárási térképek, éghajlati térképek, földtani térképek, domborzatnyékolási rétegek, stb.\n\nEzen térképek bármelyike használható az OsmAnd térkép képernyőjén megjelenítendő fő (alap) térképként, vagy egy másik alaptérkép borításaként vagy alátétjeként (mint például az OsmAnd normál kapcsolat nélküli térképei). Bármely alátét térkép jobban láthatóbbá tételének érdekében az OsmAnd vektoros térképeinek bizonyos elemei igény szerint könnyedén elrejthetők a „Térkép beállítása” menün keresztül.\n\nA csempés térképek internetes forrásokon keresztül szerezhetők be, vagy előkészíthetők kapcsolat nélküli használathoz (és kézzel átmásolva az OsmAnd adatmappájába) egy olyan sqlite adatbázisként, amelyet különféle harmadik féltől származó térkép-előkészítő eszközök állíthatnak elő. " "Megjeleníti a háttér üzemmódban (kikapcsolt képernyővel) való útvonalrögzítéshez és navigációhoz tartozó beállításokat. (A készülék bizonyos időközönként felébreszti a GPS-t.)" Ez a bővítmény elérhetővé teszi az eszköz akadálymentesítési lehetőségeit közvetlenül az OsmAnd programban. Ez megkönnyíti például a TTS hangok beszédsebességének állítását, az irányító gombok képernyő navigációjának beállítását, egy görgető használatát a nagyítás vezérléséhez, vagy szövegfelolvasó visszajelzés használatát, például a pozíció automatikus bejelentésénél. @@ -1061,8 +1061,8 @@ Válaszd ki, mikor jelenjenek meg a csak-út térképek: Csak-út térképek Csak utak - Szokásos térképek - Csak-út térképek + Normál térkép + Csak-út térkép hiányos Nem található épület. További települések/irányítószám keresése @@ -1091,7 +1091,7 @@ Hangjegyzetek Hang- és videojegyzetek - "Ez a bővítmény egy szintvonal borítást és egy (domborzati) árnyékolás réteget biztosít, amelyek az OsmAnd kapcsolat nélküli térképein jelennek meg. Ezt a funkcionalitást nagyon fogják értékelni a sportolók, túrázók, nyomvonalrögzítők és mindenki, akiket a táj domborzati szerkezete érdekel.\n\nA globális adatok (az északi 70° és déli 70° szélesség között) az SRTM (Shuttle Radar Topography Mission) és az ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer) mérésein alapulnak, amely a NASA Earsh Observing System zászlóshajójának, a Terra műholdnak a képalkotó berendezése. Az ASTER a NASA, a Japán Gazdasági, Kereskedelmi és Ipari Minisztérium (METI), valamint a Japán Űrügynökség (J-spacesystems) közös projektje. " + "Ez a bővítmény egy szintvonal borítást és egy (domborzati) árnyékolás réteget biztosít, amelyek az OsmAnd normál térképein jelennek meg. Ezt a funkcionalitást nagyon fogják értékelni a sportolók, túrázók, nyomvonalrögzítők és mindenki, akiket a táj domborzati szerkezete érdekel.\n\nA globális adatok (az északi 70° és déli 70° szélesség között) az SRTM (Shuttle Radar Topography Mission) és az ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer) mérésein alapulnak, amely a NASA Earsh Observing System zászlóshajójának, a Terra műholdnak a képalkotó berendezése. Az ASTER a NASA, a Japán Gazdasági, Kereskedelmi és Ipari Minisztérium (METI), valamint a Japán Űrügynökség (J-spacesystems) közös projektje. " Hang/videofelvétel elindult. Leállításhoz nyomd meg az A/V vezérlő stop gombját. @@ -1128,7 +1128,7 @@ A felvétel közben hiba történt A kamera nem elérhető Leállítás - "Ez a bővítmény egy szintvonal borítást és egy (domborzati) árnyékolás réteget biztosít, amelyek az OsmAnd kapcsolat nélküli térképein jelennek meg. Ezt a funkcionalitást nagyon fogják értékelni a sportolók, túrázók, nyomvonalrögzítők és mindenki, akiket a táj domborzati szerkezete érdekel.\n\nA globális adatok (az északi 70° és déli 70° szélesség között) az SRTM (Shuttle Radar Topography Mission) és az ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer) mérésein alapulnak, amely a NASA Earsh Observing System zászlóshajójának, a Terra műholdnak a képalkotó berendezése. Az ASTER a NASA, a Japán Gazdasági, Kereskedelmi és Ipari Minisztérium (METI), valamint a Japán Űrügynökség (J-spacesystems) közös projektje. " + "Ez a bővítmény egy szintvonal borítást és egy (domborzati) árnyékolás réteget biztosít, amelyek az OsmAnd normál térképein jelennek meg. Ezt a funkcionalitást nagyon fogják értékelni a sportolók, túrázók, nyomvonalrögzítők és mindenki, akiket a táj domborzati szerkezete érdekel.\n\nA globális adatok (az északi 70° és déli 70° szélesség között) az SRTM (Shuttle Radar Topography Mission) és az ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer) mérésein alapulnak, amely a NASA Earsh Observing System zászlóshajójának, a Terra műholdnak a képalkotó berendezése. Az ASTER a NASA, a Japán Gazdasági, Kereskedelmi és Ipari Minisztérium (METI), valamint a Japán Űrügynökség (J-spacesystems) közös projektje. " Válaszd ki a vezérlőgomb alapértelmezett működési módját Alapértelmezett mód Felvétel %1$s %3$s %2$s @@ -1215,7 +1215,7 @@ "Az 1.3 kiadás újdonságai: \n\* Holo téma (személyre szabható témák) " - Szintvonal adat + Szintvonalak Kérlek várd meg, amíg a jelenlegi befejeződik Letöltés idő @@ -1821,7 +1821,7 @@ Adatvédelem Pontok - Saját helyzetem + Saját pozícióm Kezelés Elindítod a navigációt a nyomvonal mentén? @@ -1952,7 +1952,7 @@ Az utakon engedélyezett járműmagasság megadása Intelligens útvonal újraszámítás Hosszú utaknál csak az útvonal kezdeti részének újraszámítása -Helyzetem megosztása +Pozícióm megosztása Naplózás ki Letiltva Színezés az útvonal hálózati szerepe szerint @@ -2092,7 +2092,7 @@ Navigáció Háttérben fut Pozíció szimulálás leállítása - Szimuláció felvett GPX-szel vagy megtervezett útvonallal + Szimuláció megtervezett útvonallal vagy felvett GPX-szel Cím még nem ismert GPX fájl jegyzet helyszínnel Helyszín @@ -2122,7 +2122,12 @@ Biztosan letöltesz csak utakat tartalmazó térképet, annak ellenére, hogy már van teljes térképed? %1$.1f / %2$.1f MB %.1f MB -Összes frissítése (%1$s Mb) +Összes frissítése (%1$s MB) Elhasznált ingyenes letöltés Beállíthatod, mennyi ingyenes letöltést használtál - +Az első indítást jelző flag visszaállítása, a többi beállítás megmaradt + Alkalmazás első indításának szimulálása + geo: + Pozíció megosztása + Küldés + diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index 6ca7d63f01..f699399451 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -2233,7 +2233,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz geo: Invia "Resetta l\'indicatore del primo avvio, non modificare tutte le altre impostazioni" - Simula il primo avvio + Simula il primo avvio dell\'app Condivisi la posizione Pulisci il segmento Scegli dove vuoi salvare i file delle mappe. diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 83a8576a32..161b9071ea 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -836,7 +836,7 @@ Configureer online of bewaarde kaartbronnen - "Geeft toegang tot vele soorten online (zogenaamde tegel of raster) kaarten, van vooraf gedefinieerde OpenStreetMap tegels (zoals Mapnik) tot satellietbeelden en lagen voor speciale doeleinden zoals weerkaarten, klimaat kaarten, geologische kaarten, reliëflagen, enz.\n\nAl deze kaarten kunnen worden gebruikt als de hoofd(basis)kaart, of als een extra laag of een achtergrondlaag bij een andere basiskaart (zoals de gewone offline kaarten van OsmAnd). Om een achtergrond laag beter zichtbaar te maken, kunnen enkele elementen van de OsmAnd kaarten eenvoudig worden verborgen via het menu \'Kaart instellen\'.\n\nTegelkaarten zijn direct via online bronnen verkrijgbaar of kunnen voor offline gebruik gereedgemaakt worden (en handmatig gekopieerd naar de OsmAnd gegevensfolder) als SQLite database door een verscheidenheid aan 3de-partij kaart bewerkingsapplicaties. " + "Geeft toegang tot vele soorten online (zogenaamde tegel of raster) kaarten, van vooraf gedefinieerde OpenStreetMap tegels (zoals Mapnik) tot satellietbeelden en lagen voor speciale doeleinden zoals weerkaarten, klimaatkaarten, geologische kaarten, reliëflagen, enz.\n\nAl deze kaarten kunnen worden gebruikt als de hoofd(basis)kaart, of als een extra laag of een achtergrondlaag bij een andere basiskaart (zoals de normale offline kaarten van OsmAnd). Om een achtergrondlaag beter te klunnen zien, kunt u elementen van de OsmAnd kaarten eenvoudig verbergen via het menu \'Kaart instellen\'.\n\nTegelkaarten zijn direct via online bronnen verkrijgbaar of kunnen voor offline gebruik gereedgemaakt worden (en handmatig gekopieerd naar de OsmAnd gegevensmap) als SQLite database door diverse hulpprogramma\'s van derden. " Toont de instellingen om tracking en navigatie tijdens slaapmodus (scherm uit) in te schakelen door periodiek ontwaken van het GPS-toestel. Maakt de toegankelijkheid-opties van uw toestel beschikbaar in OsmAnd. Het vergemakkelijkt o.a. het aanpassen van de spreeksnelheid, het configureren van D-pad scherm navigatie door gebruik van een trackbal voor zoomregeling of het gebruiken van tekst-naar-spraak opties voor het automatisch aankondigen van uw positie. @@ -2306,4 +2306,8 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A Vermijd shuttle-trein Vermijd shuttle-trein Wikipedia + deo: + Deel locatie + Verzenden + Op achtergrond actief diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 71caaa2a5a..430098f76c 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -63,8 +63,8 @@ Выберите как отображать только дорожные карты: Карты только дорог Только дороги - Полные карты - Карты только дорог + Стандартная карта + Карта дорог Запустить приложение в безопасном режиме (замедляет работу приложения, используя только Android функции). Безопасный режим Приложение запущено в безопасном режиме (отключите в Настройках). @@ -110,8 +110,8 @@ Для работы большинства основных возможностей приложения требуются детальные карты регионов, которые можно загрузить из Интернета с помощью пункта меню \"Настройки\" → \"Управление файлами карт\". После загрузки Вы сможете просматривать карты, осуществлять поиск адресов, POI и общественного транспорта. Базовая карта необходима для корректной работы приложения и автоматически была выбрана для загрузки. Ничего не было найдено. Вы можете создать карту самостоятельно (смотрите на osmand.net). - Онлайн карты (растровые) - Локальные карты (векторные) + Онлайн и кэшированные карты (растровые) + Стандартные карты (векторные) Загрузка и управление локальными файлами карт на вашем устройстве Активируйте плагин онлайн карт, чтобы выбирать различные источники карт @@ -328,8 +328,8 @@ Карта Архивировано - Голосовые данные (TTS) - Голосовые данные (запись) + Голосовые подсказки (TTS) + Голосовые подсказки (запись) Данные POI Голос TTS @@ -1148,7 +1148,7 @@ Сделать фото Плагин Dropbox позволяет синхронизировать треки и видео/аудио заметки с вашим аккаунтом dropbox. Плагин Dropbox - "Плагин обеспечивает наложение контурных линии и (рельефа) затемняющего слоя, которые будут отображаться поверх оффлайн карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта.\n\nГлобальные данные (между 70 градусов на севере и 70 градусов на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), инструментом визуализации Terra, флагманского спутника Земли системы наблюдения NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), космических систем Японии (J-spacesystems). " + "Плагин обеспечивает наложение контурных линии и (рельефа) затемняющего слоя, которые будут отображаться поверх стандартных карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта.\n\nГлобальные данные (между 70 градусов на севере и 70 градусов на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), инструментом визуализации Terra, флагманского спутника Земли системы наблюдения NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), космических систем Японии (J-spacesystems). " Фото %1$s %2$s Аудио/Видео данные Вы уверены, что хотите остановить навигацию? @@ -1164,7 +1164,7 @@ \n\t* добавлен пакет затемнённого рельефа местности для плагина контурных линий \n\t* исправлены ошибки (неоптимальной маршрутизации) - Карты с затемнённым рельефом + Карты с рельефом местности Использовать системную программу для фото Использовать приложение Камера OpenMaps - Европа @@ -1262,7 +1262,7 @@ Режим доступности: Пожалуйста, выберите сначала пункт назначения Использовать магнитный датчик вместо датчика ориентации Другие - Данные горизонталей + Контурные линии Загрузка Плагин добавляет виджет на экран карты, позволяющий создавать маршруты, нажав на карте, а также использовать или изменять существующие файлы GPX, планировать поездку и измерять расстояние между точками. Результаты могут быть сохранены в виде файла GPX, который впоследствии может быть использован для навигации. Пункт назначения @@ -1534,7 +1534,7 @@ Название группы Подключиться к группе Создать группу - Отправлять координаты + Отправить моё местоположение Описание дней Интервал отправки @@ -2153,4 +2153,6 @@ гео: Поделиться местоположением Отправить - + Выберите место где вы хотите сохранить файлы карт. + Приложение будет запускаться с экрана карты + diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml index 55ee83db98..1b3a46ff13 100644 --- a/OsmAnd/res/values-sv/strings.xml +++ b/OsmAnd/res/values-sv/strings.xml @@ -2000,7 +2000,7 @@ Är du säker? Alla osparade ändringar kommer att förloras. Fortsätta ändå? Sluta simulera din plats - Simulera med inspelad GPX eller beräknad rutt + Simulera med beräknad rutt eller med inspelad GPX %1$s nedladdningar kvar Information om favoriter Vägar @@ -2056,4 +2056,5 @@ Dela plats Sänd Skuggad relief-lager inaktiverat - + OsmAnd kommer att starta från kartskärmen + diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 9caf3c81d7..bc60cfea61 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -2114,7 +2114,7 @@ 您確定嗎? 任何未儲存的變更將會失去。要繼續嗎? 停止模擬您的位置 - 模擬使用記錄的 GPX 或計算的路線 + 使用模擬計算一條路線或記錄成一個 GPX 檔 離開下載的 %1$s 我的最愛資訊 增加到我的最愛 @@ -2166,7 +2166,7 @@ 免費下載使用 您可以設置,您有使用多少免費下載 重置標誌指示第一次啟動,保持著其它設定在原來的狀態 - 模擬初始啟動 + 模擬第一次應用程式啟動 地理: 分享位置 發送 diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index ceb10ec9ca..98a6fc5b6b 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -9,8 +9,8 @@ 3. All your modified/created strings are in the top of the file (to make easier find what\'s translated). PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy --> - "Resets flag indicating first startup, keep other settings in the original state" - Simulate initial startup + "Sets the flag indicating first app startup, keeps all other settings unchanged" + Simulate first app start geo: Share location Send @@ -44,7 +44,7 @@ GPS wake-up interval Favorite information Stop simulating your position - Simulate using recorded GPX or calculated route + Simulate using a calculated route or a recorded GPX Address is not known yet GPX file with note locations Locations @@ -2027,5 +2027,5 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A Hello blank fragment Choose where you want to save map files. - OsmAnd app will start from map screen + \'Off\' directly launches map screen diff --git a/OsmAnd/src/net/osmand/plus/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/OsmandSettings.java index 3734755f21..e75f3cde39 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/OsmandSettings.java @@ -1,21 +1,16 @@ package net.osmand.plus; -import java.io.File; -import java.io.IOException; -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.StringTokenizer; +import android.annotation.TargetApi; +import android.content.Context; +import android.content.res.Configuration; +import android.hardware.Sensor; +import android.hardware.SensorManager; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.Build; +import android.os.Environment; +import android.support.annotation.Nullable; import net.osmand.IndexConstants; import net.osmand.StateChangedListener; @@ -34,17 +29,22 @@ import net.osmand.plus.helpers.SearchHistoryHelper; import net.osmand.plus.render.RendererRegistry; import net.osmand.plus.routing.RouteProvider.RouteService; import net.osmand.render.RenderingRulesStorage; -import android.annotation.TargetApi; -import android.content.Context; -import android.content.res.Configuration; -import android.hardware.Sensor; -import android.hardware.SensorManager; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; -import android.os.Build; -import android.os.Environment; -import android.support.annotation.Nullable; -import android.text.TextUtils; + +import java.io.File; +import java.io.IOException; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; public class OsmandSettings { @@ -1314,13 +1314,13 @@ public class OsmandSettings { } @Nullable - public static File getSecondaryStorage() { - final String value = System.getenv("SECONDARY_STORAGE"); - if (!TextUtils.isEmpty(value)) { - final String[] paths = value.split(":"); - for (String path : paths) { - File file = new File(path); - if (file.isDirectory() && file.canWrite()) { + public File getSecondaryStorage() { + if(Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { + return getExternalStorageDirectoryPre19(); + } else { + File[] externals = ctx.getExternalFilesDirs(null); + for (File file : externals) { + if (!file.getAbsolutePath().contains("emulated")) { return file; } } diff --git a/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java b/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java index 105d073904..4d11031613 100644 --- a/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java +++ b/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java @@ -58,7 +58,11 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity { final CheckBoxPreference openGlRender = createCheckBoxPreference(settings.USE_OPENGL_RENDER, R.string.use_opengl_render,R.string.use_opengl_render_descr); cat.addPreference(openGlRender); - + if(Version.isDeveloperVersion(getMyApplication())) { + cat.addPreference(createCheckBoxPreference(settings.BETA_TESTING_LIVE_UPDATES, + "Live updates", "Beta testing for live updates")); + } + final Preference firstRunPreference = new Preference(this); firstRunPreference.setTitle(R.string.simulate_initial_startup); firstRunPreference.setSummary(R.string.simulate_initial_startup_descr); @@ -74,10 +78,10 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity { }); cat.addPreference(firstRunPreference); - if(Version.isDeveloperVersion(getMyApplication())) { - cat.addPreference(createCheckBoxPreference(settings.BETA_TESTING_LIVE_UPDATES, - "Live updates", "Beta testing for live updates")); - } + cat.addPreference(createCheckBoxPreference(settings.SHOULD_SHOW_FREE_VERSION_BANNER, + R.string.show_free_version_banner, + R.string.show_free_version_banner_description)); + Preference pref = new Preference(this); final Preference simulate = pref; final OsmAndLocationSimulation sim = getMyApplication().getLocationProvider().getLocationSimulation(); @@ -114,8 +118,6 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity { } }); cat.addPreference(pref); - - pref = new Preference(this); pref.setTitle(R.string.app_modes_choose); @@ -196,10 +198,6 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity { //setEnabled(false) creates bad readability on some devices //pref.setEnabled(false); cat.addPreference(pref); - - cat.addPreference(createCheckBoxPreference(settings.SHOULD_SHOW_FREE_VERSION_BANNER, - R.string.show_free_version_banner, - R.string.show_free_version_banner_description)); } protected void availableProfileDialog() { diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java b/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java index a623875a90..6a0cf3ff41 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java @@ -1,18 +1,28 @@ package net.osmand.plus.download; -import java.io.File; -import java.lang.ref.WeakReference; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Set; +import android.content.ActivityNotFoundException; +import android.content.Intent; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.StatFs; +import android.support.annotation.UiThread; +import android.support.v4.app.DialogFragment; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentActivity; +import android.support.v4.view.ViewPager; +import android.text.method.LinkMovementMethod; +import android.view.MenuItem; +import android.view.View; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; import net.osmand.IProgress; import net.osmand.PlatformUtil; import net.osmand.access.AccessibleToast; import net.osmand.map.WorldRegion; +import net.osmand.map.WorldRegion.RegionParams; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings.DrivingRegion; @@ -34,23 +44,14 @@ import net.osmand.plus.views.controls.PagerSlidingTabStrip; import org.apache.commons.logging.Log; -import android.content.ActivityNotFoundException; -import android.content.Intent; -import android.net.Uri; -import android.os.AsyncTask; -import android.os.Bundle; -import android.os.StatFs; -import android.support.annotation.UiThread; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentActivity; -import android.support.v4.view.ViewPager; -import android.text.method.LinkMovementMethod; -import android.view.MenuItem; -import android.view.View; -import android.widget.ProgressBar; -import android.widget.TextView; -import android.widget.Toast; +import java.io.File; +import java.lang.ref.WeakReference; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Set; public class DownloadActivity extends ActionBarProgressActivity implements DownloadEvents { private static final Log LOG = PlatformUtil.getLog(DownloadActivity.class); @@ -498,12 +499,12 @@ public class DownloadActivity extends ActionBarProgressActivity implements Downl } private void initSettingsFirstMap(WorldRegion reg) { - // TODO test set correctly (4 tests): when you download first Australia, Japan, Luxembourgh, US getMyApplication().getSettings().FIRST_MAP_IS_DOWNLOADED.set(true); DrivingRegion drg = null; - boolean americanSigns = "american".equals(reg.getRegionRoadSigns()); - boolean leftHand = "yes".equals(reg.getRegionLeftHandDriving()); - MetricsConstants mc = "miles".equals(reg.getRegionMetric()) ? + RegionParams params = reg.getParams(); + boolean americanSigns = "american".equals(params.getRegionRoadSigns()); + boolean leftHand = "yes".equals(params.getRegionLeftHandDriving()); + MetricsConstants mc = "miles".equals(params.getRegionMetric()) ? MetricsConstants.MILES_AND_FOOTS : MetricsConstants.KILOMETERS_AND_METERS; for (DrivingRegion r : DrivingRegion.values()) { if(r.americanSigns == americanSigns && r.leftHandDriving == leftHand && @@ -515,8 +516,9 @@ public class DownloadActivity extends ActionBarProgressActivity implements Downl if (drg != null) { getMyApplication().getSettings().DRIVING_REGION.set(drg); } - String lng = reg.getRegionLang(); - if (lng != null) { + String lang = params.getRegionLang(); + if (lang != null) { + String lng = lang.split(",")[0]; String setTts = null; for (String s : OsmandSettings.TTS_AVAILABLE_VOICES) { if (lng.startsWith(s)) { @@ -567,10 +569,9 @@ public class DownloadActivity extends ActionBarProgressActivity implements Downl } private void showFirstTimeExternalStorage() { - // TODO finish + test & hide dialog if the download has started final boolean firstTime = getMyApplication().getAppInitializer().isFirstTime(this); final boolean externalExists = - DataStoragePlaceDialogFragment.getExternalStorageDirectory() != null; + getMyApplication().getSettings().getSecondaryStorage() != null; if (firstTime && externalExists) { new DataStoragePlaceDialogFragment().show(getFragmentManager(), null); } diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadIndexesThread.java b/OsmAnd/src/net/osmand/plus/download/DownloadIndexesThread.java index e2cda09e84..e061a69aaf 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadIndexesThread.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadIndexesThread.java @@ -294,13 +294,14 @@ public class DownloadIndexesThread { @Override protected DownloadResources doInBackground(Void... params) { - DownloadResources result = new DownloadResources(app); + DownloadResources result = null; DownloadOsmandIndexesHelper.IndexFileList indexFileList = DownloadOsmandIndexesHelper.getIndexesList(ctx); if (indexFileList != null) { try { while (app.isApplicationInitializing()) { Thread.sleep(200); } + result = new DownloadResources(app); result.isDownloadedFromInternet = indexFileList.isDownloadedFromInternet(); result.mapVersionIsIncreased = indexFileList.isIncreasedMapVersion(); app.getSettings().LAST_CHECKED_UPDATES.set(System.currentTimeMillis()); @@ -308,7 +309,7 @@ public class DownloadIndexesThread { } catch (Exception e) { } } - return result; + return result == null ? new DownloadResources(app) : result; } protected void onPostExecute(DownloadResources result) { diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadResourceGroup.java b/OsmAnd/src/net/osmand/plus/download/DownloadResourceGroup.java index 7f80018df9..1fa223b631 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadResourceGroup.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadResourceGroup.java @@ -102,14 +102,21 @@ public class DownloadResourceGroup { public WorldRegion getIndexItemRegion(IndexItem item) { DownloadResourceGroup group = getIndexItemGroup(item); + return getRegion(group); + } + + public static WorldRegion getRegion(DownloadResourceGroup group) { if (group != null) { if (group.getRegion() != null) { return group.getRegion(); } else if (group.getParentGroup() != null) { - return group.getParentGroup().getRegion(); + return getRegion(group.getParentGroup()); + } else { + return null; } + } else { + return null; } - return null; } public DownloadResourceGroup getIndexItemGroup(IndexItem item) { diff --git a/OsmAnd/src/net/osmand/plus/download/ui/DataStoragePlaceDialogFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/DataStoragePlaceDialogFragment.java index bc50c4e9cc..cfd806e5d6 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/DataStoragePlaceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/DataStoragePlaceDialogFragment.java @@ -55,7 +55,7 @@ public class DataStoragePlaceDialogFragment extends DialogFragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { internalStorage = getInternalStorageDirectory(getActivity()); - externalStorage = getExternalStorageDirectory(); + externalStorage = getMyApplication().getSettings().getSecondaryStorage(); final View view = inflater.inflate(R.layout.fragment_data_storage_place_dialog, container, false); @@ -95,10 +95,6 @@ public class DataStoragePlaceDialogFragment extends DialogFragment { return view; } - public static File getExternalStorageDirectory() { - return OsmandSettings.getSecondaryStorage(); - } - public static File getInternalStorageDirectory(Activity activity) { return ((OsmandApplication) activity.getApplication()).getSettings() .getDefaultInternalStorage(); diff --git a/OsmAnd/src/net/osmand/plus/download/ui/ItemViewHolder.java b/OsmAnd/src/net/osmand/plus/download/ui/ItemViewHolder.java index 25d80cc39c..974807988c 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/ItemViewHolder.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/ItemViewHolder.java @@ -20,8 +20,8 @@ import android.widget.TextView; import android.widget.Toast; import net.osmand.access.AccessibleToast; +import net.osmand.map.WorldRegion; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.Version; import net.osmand.plus.activities.LocalIndexHelper.LocalIndexType; @@ -209,7 +209,8 @@ public class ItemViewHolder { protected void download(IndexItem indexItem, DownloadResourceGroup parentOptional) { boolean handled = false; if(parentOptional != null) { - context.setDownloadItem(parentOptional.getRegion()); + WorldRegion region = DownloadResourceGroup.getRegion(parentOptional); + context.setDownloadItem(region); } if (indexItem.getType() == DownloadActivityType.ROADS_FILE && parentOptional != null) { for (IndexItem ii : parentOptional.getIndividualResources()) { diff --git a/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java index 874587f980..a8ae4fe2fb 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java @@ -388,20 +388,20 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment implement private File getFileToRestore(LocalIndexInfo i) { if (i.isBackupedData()) { File parent = new File(i.getPathToData()).getParentFile(); - if (i.getType() == LocalIndexType.SRTM_DATA) { - parent = getMyApplication().getAppPath(IndexConstants.SRTM_INDEX_DIR); + if (i.getType() == LocalIndexType.MAP_DATA) { + parent = getMyApplication().getAppPath(IndexConstants.MAPS_PATH); } else if (i.getFileName().endsWith(IndexConstants.BINARY_ROAD_MAP_INDEX_EXT)) { parent = getMyApplication().getAppPath(IndexConstants.ROADS_INDEX_DIR); - } else if (i.getType() == LocalIndexType.WIKI_DATA) { - parent = getMyApplication().getAppPath(IndexConstants.WIKI_INDEX_DIR); - } else if (i.getType() == LocalIndexType.MAP_DATA) { - parent = getMyApplication().getAppPath(IndexConstants.MAPS_PATH); } else if (i.getType() == LocalIndexType.TILES_DATA) { parent = getMyApplication().getAppPath(IndexConstants.TILES_INDEX_DIR); - } else if (i.getType() == LocalIndexType.VOICE_DATA) { - parent = getMyApplication().getAppPath(IndexConstants.VOICE_INDEX_DIR); + } else if (i.getType() == LocalIndexType.SRTM_DATA) { + parent = getMyApplication().getAppPath(IndexConstants.SRTM_INDEX_DIR); + } else if (i.getType() == LocalIndexType.WIKI_DATA) { + parent = getMyApplication().getAppPath(IndexConstants.WIKI_INDEX_DIR); } else if (i.getType() == LocalIndexType.TTS_VOICE_DATA) { parent = getMyApplication().getAppPath(IndexConstants.VOICE_INDEX_DIR); + } else if (i.getType() == LocalIndexType.VOICE_DATA) { + parent = getMyApplication().getAppPath(IndexConstants.VOICE_INDEX_DIR); } return new File(parent, i.getFileName()); }