diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index d6390292f33..cc445a7e81b 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -156,7 +156,7 @@ Cojín berlinés Chicana Banda sonora - Peatonal elevada;Plataforma elevada + Peatonal elevada;Plataforma elevada;Paso peatonal elevado Calzada reducida;Gargantilla Semáforo Taller de automóviles;Taller mecánico; Reparación de automotores diff --git a/OsmAnd/res/values-hr/phrases.xml b/OsmAnd/res/values-hr/phrases.xml index 0b65eb89d00..d518073acb8 100644 --- a/OsmAnd/res/values-hr/phrases.xml +++ b/OsmAnd/res/values-hr/phrases.xml @@ -11,7 +11,7 @@ Vrsta Sadržaj Žanr - Naknada + Pristojba Dostava Koktejli Vrsta @@ -277,7 +277,7 @@ Vrsta generatora: PHWR Vrsta generatora: GCR Umjetnost - Da + Da;Prodaja računala Vrsta goriva (avia) Vrsta plaćanja Dodatno @@ -573,7 +573,7 @@ Napušteno Napušteni objekt Operator - Da + Da;Pristojba Ne Da;Pitka voda Ne @@ -856,7 +856,7 @@ Da Samo grupa: da Samo grupa: ne - Da + Da;Vešmašina Da Tuš: da Tuš: ne @@ -1146,7 +1146,7 @@ Slot uređaji Klađenje Prodavaonica elektronskih cigareta - Da + Da;Kafeterija Vino: da Vino: maloprodaja Vino: nudi se @@ -1401,19 +1401,19 @@ Neaktivan Broj erupcija Kuglana - Da + Da;SMS Ne - Da + Da;Video Ne Kontrastno Jednostavno Neispravno - Da + Da:Točenje pitke vode;Točenje Točenje pitke vode: ne Mreža točenja pitke vode Vibriranje: ne - Da - Da + Da;Vibracija prometnih signala + Da;Strelica prometnih signala Strelica: ne Slobodni grad Lift @@ -1479,8 +1479,8 @@ Autentifikacija pomoću kratke poruke: ne Da Autentifikacija nije potrebna: ne - Da - Da + Da;Bez autentifikacije + Da;Stalno kamiranje Ne Samo Odredište @@ -1509,12 +1509,12 @@ Janjetina Svinjetina Halal - Da + Da;Kava Ne - Da + Da;Sladoled Izvor - Da - Da + Da;Duhan + Da;Članstvo Ne Dijabetes Dijagnostika @@ -1522,7 +1522,7 @@ Uklanjanje kose Kiropraktika Shiatsu - Da + Da;Poljoprivreda Alati Vrsta generatora: BWR-2 Vrsta generatora: BWR-3 @@ -1539,15 +1539,15 @@ Vrsta generatora: ICF Vrsta generatora: bojler Vrsta generatora: bioreaktor - Da - Da + Da;Fleurop + Da;Madrac Ne Korišteno Ured Dnevna soba Kuhinja Spavaća soba - Da + Da;Namještaj Ne Krevet Fotelja @@ -1556,7 +1556,7 @@ Štednjak Plin Radijator - Da + Da;Frižider Ne Arhitektura Biologija @@ -1573,9 +1573,9 @@ Njega Psihologija Korišteno - Da + Da;Popravljanje računala Prodaja računala: ne - Da + Da;Dijelovi za računala Dijelovi računala: ne Optometričar Kamen @@ -2144,4 +2144,84 @@ Cestarina za kamione Radionica Auto + Vožnja vlakom + Respiracija + Metoda generatora: pumpna akumulacija vode + Metoda generatora: termalna + Efectivo se ne prihvaća + Spilja + Inline koturaljke + Potok + Brzaci + Efectivo + Vešmašina: ne + Pristup motornim sanjkama: privatno + Da;Prikolica + Određeno;Određeno za prikolice + Žiro kartica + Mobilnost + Sjeme + Greben + Dolina + Penjanje + Fjord + Potok + Dolina + Spilja + Opis pritojbe + Girocard se ne prihvaća + Girocard + Litecoin se ne prihvaća + Izvor energije: smeće + Pesticidi + Pristup motornim sanjkama: ne + Metoda generatora: akumulacija vode + Uslužno + Metoda generatora: fuzija + Da;Motorne sanjke + Ortopedija + Izvor energije: bioplin + Metoda generatora: baterije + Određeno;Određeno za motocikle + Ortoza + Gnojivo + Izvor energije: benzin + Kvart + Discover Card + Discover Card se ne prihvaća + Litecoin + Da;Moped + Zaljev + Rijeka + Luksuzno + Rijeka + Izvor energije: valovi + Poljoprivredni strojevi + Pristup motornim sanjkama + Da;Karavan + Da;Motocikl + Da;Kamion;Kamioni + Da;Osobe s invaliditetom + Jezero + Određeno;Određeno za karavane + Određeno;Određeno za motore + Određeno;Određeno za mopede + Kućna njega + Krma + Dijelovi strojeva + Izvor energije: plima + Izvor energije: biogorivo + Metoda generatora: fisija + Metoda generatora: vjetroturbina + Metoda generatora: brana + Metoda generatora: tok + Metoda generatora: solarna + Metoda generatora: sagorijevanje + Metoda generatora: plinifikacija + Metoda generatora: anaerobna razgradnja + Moto-skuter + Stijena za penjanje + Područje za penjanje + Ruta penjanja + Početak rute penjanja \ No newline at end of file diff --git a/OsmAnd/res/values-hr/strings.xml b/OsmAnd/res/values-hr/strings.xml index c4eac9d7f5e..6027f116fce 100644 --- a/OsmAnd/res/values-hr/strings.xml +++ b/OsmAnd/res/values-hr/strings.xml @@ -1721,4 +1721,19 @@ Primanje podataka od servera … Sjenčani reljef Wikipedija + Osnovno + Invalidska kolica + Enduro motor + Go-kart + Zadaj ime za ovu točku + Strelice smjera + Deinstaliraj i ponovo pokreni + Moto-skuter + Inline koturaljke + Penjanje + Preuzmi Wikipedija karte + Odaberi širinu + Invalidska kolica naprijed + Prilagođeno + Prikaži ikone početka i kraja \ No newline at end of file diff --git a/OsmAnd/res/values-is/phrases.xml b/OsmAnd/res/values-is/phrases.xml index 3eebdf30751..42de4da7413 100644 --- a/OsmAnd/res/values-is/phrases.xml +++ b/OsmAnd/res/values-is/phrases.xml @@ -4941,4 +4941,87 @@ Nafn hægra megin Orðsifjar nafns Nafn vinstra megin + Akstur + Akstur vélhjóla + Gangandi + Vetraríþróttir + Vöruflutningabifreiðar + Kart + Utanvegafarartæki + Ævintýraakstur vélhjóla + Enduro-vélhjól + Mótocross + Utanvegaakstur vélhjóla (drulluhjól) + Götuvélhjól + Sportvélhjól + Skellinöðrur + Ferðavélhjól + Kappakstur + Stígahlaup + Gönguferðir + Skautar á ís + Rafhjólreiðar + Raffjallahjólreiðar + Hjólreiðar á möl + Ferðaleið + Flug + Svifflug + Svifdrekaflug + Heitaloftsbelgur + Fallhlífastökk + Vélknúið svifvængjaflug + Umferð fisvéla + Loftpípuköfun + Kayak + Brimbretti + Seglbretti + Sveppatínsla + Uppskera + Örverufræði + Gerð tjaldstæðis + Einfalt + Staðlað + Þjónustað + Lúxus + Kaffihús + Flugíþróttir + Vatnaíþróttir + Aðrar leiðir + Bíll + Utanvegaakstur + Bakpokaferðir + Gönguleiðir + Hæðaklifur + Götuhlaup + Gangandi + Gönguskíði + Ferðaskíði + Skíði + Snjóbretti + Vélsleðar + Snjóþrúgur + Fjallahjólreiðar + Götuhjólreiðar + Drónaflug + Svifvængjaflug + Kanó + Köfun + Sund utanhúss + Vatnaskíði + Vélbátar + Flúðasiglingar + Hestaferðir + Trjáklifur + Hellaskoðun + Golfiðkun + Líkamsrækt (þol) + Línuskautar + Klifursvæði + Klifurleið + Neðst í klifurleið + Krónískir sjúkdómar + Grjótglímuklifur + Hjólreiðar + + Lestaferðir \ No newline at end of file diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index d2fadbdf4e8..e0ee0d10339 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -5640,4 +5640,16 @@ Vél Forskoða næstu beygju Klifurleiðir + Birtir fyrst tíma og fjarlægð að næsta áfangastað. Slökktu á þessu til að sýna alltaf ítarlegar upplýsingar fyrir endanlega áfangastaðinn. + Sýna klifurleiðir + Reikna stærð + Hver hnappur myndi halda sinni stærð. + Hver hnappur myndi halda sínum hornradíus. + Hver hnappur myndi halda sínu ógegnsæi bakgrunns. + Valið snið \"%s\" + Brúun + Stilltu prósentuhlutfall brúunar (forspár) á staðsetningu á meðan leiðsögn stendur. Þessi breyta minnkar seinkun á birtingu staðsetningar þinnar á kortinu á meðan hreyfingu stendur. + Prósentuhlutfall brúunar á staðsetningu + Reikna… + Sýna ítarlegri upplýsingar um næsta áfangastað \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/AppVersionUpgradeOnInit.java b/OsmAnd/src/net/osmand/plus/AppVersionUpgradeOnInit.java index 0940617f4a3..662a2d26f06 100644 --- a/OsmAnd/src/net/osmand/plus/AppVersionUpgradeOnInit.java +++ b/OsmAnd/src/net/osmand/plus/AppVersionUpgradeOnInit.java @@ -139,8 +139,9 @@ public class AppVersionUpgradeOnInit { public static final int VERSION_4_8_02 = 4802; // 4803 - 4.8-03 (Merge asset files versions) public static final int VERSION_4_8_03 = 4803; + public static final int VERSION_5_0_00 = 5000; - public static final int LAST_APP_VERSION = VERSION_4_8_03; + public static final int LAST_APP_VERSION = VERSION_5_0_00; private static final String VERSION_INSTALLED = "VERSION_INSTALLED"; @@ -271,7 +272,7 @@ void upgradeVersion(@NonNull SharedPreferences startPrefs, int lastVersion) { if (prevAppVersion < VERSION_4_8_02) { migrateTerrainModeDefaultPreferences(settings); } - if (prevAppVersion < VERSION_4_8_03) { + if (prevAppVersion < VERSION_5_0_00) { app.getAppInitializer().addOnFinishListener( init -> MergeAssetFilesVersionAlgorithm.execute(app) ); diff --git a/OsmAnd/src/net/osmand/plus/configmap/tracks/appearance/DefaultAppearanceFragment.java b/OsmAnd/src/net/osmand/plus/configmap/tracks/appearance/DefaultAppearanceFragment.java index e7dc7ae4630..5ce076d8819 100644 --- a/OsmAnd/src/net/osmand/plus/configmap/tracks/appearance/DefaultAppearanceFragment.java +++ b/OsmAnd/src/net/osmand/plus/configmap/tracks/appearance/DefaultAppearanceFragment.java @@ -115,27 +115,27 @@ protected void setupCards(@NonNull View view) { FragmentActivity activity = requireActivity(); ViewGroup container = view.findViewById(R.id.cards_container); - MultiStateCard arrowsCard = new MultiStateCard(activity, controller.getArrowsCardController()); + MultiStateCard arrowsCard = new MultiStateCard(activity, controller.getArrowsCardController(), false); container.addView(arrowsCard.build()); inflate(R.layout.list_item_divider_with_padding_basic, container, true); - MultiStateCard iconsCard = new MultiStateCard(activity, controller.getIconsCardController()); + MultiStateCard iconsCard = new MultiStateCard(activity, controller.getIconsCardController(), false); container.addView(iconsCard.build()); inflate(R.layout.list_item_divider, container, true); - MultiStateCard colorsCard = new MultiStateCard(activity, controller.getColorCardController()); + MultiStateCard colorsCard = new MultiStateCard(activity, controller.getColorCardController(), false); container.addView(colorsCard.build()); inflate(R.layout.list_item_divider, container, true); - MultiStateCard widthCard = new MultiStateCard(activity, controller.getWidthCardController()); + MultiStateCard widthCard = new MultiStateCard(activity, controller.getWidthCardController(), false); container.addView(widthCard.build()); inflate(R.layout.list_item_divider, container, true); - MultiStateCard splitCard = new MultiStateCard(activity, controller.getSplitCardController()); + MultiStateCard splitCard = new MultiStateCard(activity, controller.getSplitCardController(), false); container.addView(splitCard.build()); setupOnNeedScrollListener(); diff --git a/OsmAnd/src/net/osmand/plus/resources/CheckAssetsTask.java b/OsmAnd/src/net/osmand/plus/resources/CheckAssetsTask.java index 8172462b818..7663a20b740 100644 --- a/OsmAnd/src/net/osmand/plus/resources/CheckAssetsTask.java +++ b/OsmAnd/src/net/osmand/plus/resources/CheckAssetsTask.java @@ -107,23 +107,25 @@ private List checkAssets() { public void copyMissingJSAssets() { try { - AssetsCollection assetsCollection = app.getResourceManager().getAssets(); File appPath = app.getAppPath(null); if (appPath.canWrite()) { - for (AssetEntry asset : assetsCollection.getEntries()) { + AssetManager manager = app.getAssets(); + AssetsCollection assets = app.getResourceManager().getAssets(); + + for (AssetEntry asset : assets.getEntries()) { File jsFile = new File(appPath, asset.destination); - if (asset.destination.contains(VOICE_PROVIDER_SUFFIX) && asset.destination - .endsWith(TTSVOICE_INDEX_EXT_JS)) { - File oggFile = new File(appPath, asset.destination.replace( - VOICE_PROVIDER_SUFFIX, "")); + if (asset.destination.contains(VOICE_PROVIDER_SUFFIX) + && asset.destination.endsWith(TTSVOICE_INDEX_EXT_JS)) { + String name = asset.destination.replace(VOICE_PROVIDER_SUFFIX, ""); + File oggFile = new File(appPath, name); if (oggFile.getParentFile().exists() && !oggFile.exists()) { - ResourceManager.copyAssets(app.getAssets(), asset.source, oggFile); + ResourceManager.copyAssets(manager, asset.source, oggFile, asset.getVersionTime()); } } else if (asset.destination.startsWith(MODEL_3D_DIR) && !jsFile.exists()) { - ResourceManager.copyAssets(app.getAssets(), asset.source, jsFile); + ResourceManager.copyAssets(manager, asset.source, jsFile, asset.getVersionTime()); } if (jsFile.getParentFile().exists() && !jsFile.exists()) { - ResourceManager.copyAssets(app.getAssets(), asset.source, jsFile); + ResourceManager.copyAssets(manager, asset.source, jsFile, asset.getVersionTime()); } } } diff --git a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java index 14e58d69f7d..3030737acb0 100644 --- a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java +++ b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java @@ -1284,13 +1284,7 @@ private AssetsCollection readBundledAssets() throws IOException { } public static boolean copyAssets(@NonNull AssetManager manager, @NonNull String name, - @NonNull File file, @Nullable Long lastModifiedTime) throws IOException { - copyAssets(manager, name, file); - return lastModifiedTime != null && file.setLastModified(lastModifiedTime); - } - - public static void copyAssets(@NonNull AssetManager manager, @NonNull String name, - @NonNull File file) throws IOException { + @NonNull File file, @Nullable Long modifiedTime) throws IOException { if (file.exists()) { Algorithms.removeAllFiles(file); } @@ -1300,5 +1294,7 @@ public static void copyAssets(@NonNull AssetManager manager, @NonNull String nam Algorithms.streamCopy(is, out); Algorithms.closeStream(out); Algorithms.closeStream(is); + + return modifiedTime != null && file.setLastModified(modifiedTime); } } diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/backup/exporttype/LocalResourcesExportType.java b/OsmAnd/src/net/osmand/plus/settings/backend/backup/exporttype/LocalResourcesExportType.java index 905cc52c308..a2c87df9436 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/backup/exporttype/LocalResourcesExportType.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/backup/exporttype/LocalResourcesExportType.java @@ -64,8 +64,9 @@ protected boolean shouldSkipLocalItem(@NonNull OsmandApplication app, @NonNull L File file = localItem.getFile(); AssetsCollection assets = resourceManager.getAssets(); if (assets.isFileDerivedFromAssets(file)) { + long lastModified = file.lastModified(); Long version = assets.getVersionTime(file); - return version == null || version == file.lastModified(); + return version == null || version == lastModified; } } catch (IOException e) { LOG.error(e);