From 8860839446376e3787da5be4d5087ac191ab6772 Mon Sep 17 00:00:00 2001 From: Dmitriy Prodchenko Date: Thu, 10 Dec 2015 12:03:47 +0200 Subject: [PATCH 01/60] Fix red shadow. --- OsmAnd/res/drawable-hdpi/map_target_point.png | Bin 1366 -> 1579 bytes OsmAnd/res/drawable-mdpi/map_target_point.png | Bin 1196 -> 1335 bytes .../res/drawable-xhdpi/map_target_point.png | Bin 1498 -> 1738 bytes .../res/drawable-xxhdpi/map_target_point.png | Bin 1792 -> 2182 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/OsmAnd/res/drawable-hdpi/map_target_point.png b/OsmAnd/res/drawable-hdpi/map_target_point.png index c48fad54a5d553b0cebea319cbfa900c2e1e5ffd..9b8955d0a3c4e75c3c3e345798a761f6ebafdeeb 100644 GIT binary patch delta 777 zcmcb{wVFqo++cDYlMGCe5l%(Bm{L>{(~J!*ER0Qc%?(XWbkht? z5_K&N49#>6Qj^V$Qc{zFBIc8wn49W#*g{1Z7?`|0T^vIyZYBNs|KFZj@4@tM!Y&6z zYj!?9ZXm)SeAs~H@TFj#B^vj(=RaTYwPW(+-x)rM4F?Vw@NE40Iy}%j6<=@{Yn0qhdlQc-wt)RO}=(F48`#`3x>8(W)zV&sB z=Sh9NlF^;C#no^YNc0ASvgT&F*=Za3qxyUJtRHjrUbHcNrD>&ZFE`b<=ZJ_H^IV_E zjKmiX{^xq1tqk<JK!mzT6n^BIpJdu%2*)ESQRFAK%Xzk>JqjRsH zk<6?AeX!u&c~V z#f^hEB0J_U3~}swc%%Ki)aLnnqS)$94vTBZ@_)JW-tnQP!n(6lMEl=_O;(TGENZ~u z5Yf`BTJ-Dj^zsI$(&nWLPOJ==a%}Mf`6J&elo(gpR~t;Nv;Y5K_L+YhrZoQj&(Ai$ zUz_9E`GZeZTH5l@dl(|{FVF07)9<_lDe)J3_^;WgUYJtnz@w+(w2-w`bY2saECV+e zTXuru!41Ej-WI*k^yqqm_9bOUN!b^gyy1y;6%+MN96EI1^r15!ex8qS`(FR=K=+rs z2bBKaP|&@!F?64q!yCrcHH{Gh9X}g>2n+0YUsY4i@Nwe7h@VU>5)5Y+JZHJB9P9~9 O-3*?telF{r5}E+q3rCg! delta 563 zcmZ3@bB#-}Gr-TCmrII^fq{Y7)59eQNE-pMI|mz(biE*Qc%z~%lY*O(xuc1Np_!$t zg{h&TtEq*HrJ1Xdg{703g}J$ti_7FXCK;F_Q=E!+F{P*&SSFg8nHZ<(niwaU>zWyv z80#jb8X4=Rm{=Mn8k?G%nj4!L#Q>2(_wB?Y7)oqzJ}5{%+15Ax=$RkaZXP;w=hWdwmB-W8*vWOxo^B*O z`_=v*H^kRShJH>nv^JV1^={Y7i&>|?{0zMuWi3^dHPyr;I`7Wu(l0vxbH86HT0DDq z>GSJLlP<&``TKK0rt$jouUDyFU81$NE2Ml?@YQ|qR=4wf(mEi@5Gy-7eBq64tiW`@ N;OXk;vd$@?2>=E@-dz9y diff --git a/OsmAnd/res/drawable-mdpi/map_target_point.png b/OsmAnd/res/drawable-mdpi/map_target_point.png index 1c30bd72181a49bf6f027228cbbb5675b5840a0f..26688889dec5f4a4c418b4c9f163bff558307fe5 100755 GIT binary patch delta 529 zcmZ3(xt&X~Gr-TCmrII^fq{Y7)59eQNUH#`0S6n9taQI2x>3=VN#51m#njBz*~rq( z$i&dl)zs3!$k@%?$rWO6N&EKH3dE;T!uQdJVuj14U;j7@dT4NXmS(+o`# zbuA4H&2$Y?lg*4$Qj>uq=98V6o9crz{(3PmFot`&IEGZ*O8WEvzdf_j2k+mUiw-o! zzx!c$LE6BO$LK(lf6@JYb4!XlCQttTfM?-C(bN+P1_nIm;`Y~xUOmd5%fWkBV{xiU zuiMQGJ?Y*}7h}w3opvjhWNi?PpIvoX=i5cG#}`heZb*>fRg7tHPZd_)IoGvlcYt&K z`X$TK(+f>*_giILaa_zNReE7Xvzx3*QkATAuW4oDn+Sz(j7fJ_9urS-m~=CpcOJva z(++!BJErfLzxQ9~Grn7iOACVIt$hD~ z1DpRpUt0!fu)J82yd`geZt&x0Q$&)JTe(;L-%-j^q|IzCEG)szBzx-gA)U(CufL}{ zaI!{OcL>IAco@m2_x1mai7OU2*wxp4zs=wF{lJQ!Ki|vmxXpD)!OVk4g*}K_q-$aL zqG!!&S@{8r*pdoY{PE6MbdT#u_sfYZ7@2q&tXD6MwNH5L42)$4Pgg&ebxsLQ0Jcrc AmjD0& delta 389 zcmdnawT4r%Gr-TCmrII^fq{Y7)59eQNGk%dJ_j3+%zd|5exsr-lf0Xwn}wO9iJPUX zg{h&TtErQLtGNr1Yv$}^Zf;;Wxt2*5rp6VQnw?CkDh8H`W@aYFX}TuHN#?p{MkdC( zNvTH0x+x}>hKa_e=BDPxW|N(mo9gR=XS@eG;Ebn>V@SoVq(A@v+c(GG@@G@{!LPLM z&d1~h<_Sp>EDfx&3HSHSE!lkMo@TCYyNU)`^kKf<*>QS?n3R`{21tTuE z#mOe+J5AauK8aG6qkTVKCB57CXWm`Kt@7djR{h)YOZ*61SLKDR zpFbbH`NnpFn1k^D1ACt@QLtUC%+-u@O1Ta JS?83{1OR8Vj}!m^ diff --git a/OsmAnd/res/drawable-xhdpi/map_target_point.png b/OsmAnd/res/drawable-xhdpi/map_target_point.png index 3ae168ecb98df4ca2e7e52390c14d12691e516c4..eff4392e66bc64240f41d444f19e9db38d32b52d 100755 GIT binary patch delta 938 zcmcb`eTrAHGr-TCmrII^fq{Y7)59eQNV@}Z0tXwA^q0(^xKYuTNx{X@*~Qu1#lX_d z$i&dl)zrex$<58t%+T1;$jsHy$YOFGlMGamvl~uDyO>f`64Q(gEi8;pb}%WQgQ3eZ0`)=K#{idM?@B9 zdi(ThPHMg3u=tXzxYNqrO*@QK7rl$wa!JEA_JvpB#i{+hKQy#D*WKw3-|`&u{Ele^80`r~Xyf@xB8Tx*CkpI+- z{u7Q-jC>Cm&ixNq8?wf$L*@V@2)$XmVY?Ghg2ketd9UcVFb{2zxZ~DC_qc#&0GU6Z zU&^YzT4u5FYN5f0Thf=f3e4Vf?XfKkc8CdJdw@m(9m(xb|nq*0Ua$KF{NSe0#+#z)jyKP?bHB0Mw%_S~$4iOd zTGpriHof0yZ>d(a<$h&BU+vttQ{}B{c}qI(-g~k1+FLoPjOwk69v?X3`0InN|N8wp z7jFCsmr9=8k}MMc(|mZuqnos=lA&fx6rw$XjFes8h~*clah-SYX(>(`>5n_Rsb*j(LxQ8QfU z(wqMIWv}OGZ;}Y9otv!l**mTEhWU+8-(SD}GUujwh~2tX>#FjP-aDCRGTUQD%A9@M ef2kf|(6U~%-Yu*)fd`oV7(8A5T-G@yGywqAY^5>) delta 696 zcmX@bdy8AKGr-TCmrII^fq{Y7)59eQNIL;>90wbaobGUlW22%ilY*sNFk(+^wiP_{jCK;F_L!63sF{P*&SSFg8nHZ<(niwaU>zWyv z80#jb8X4=Rm{=Mn8k?G%nj4!!Hy;r8=(5+De&y8CNV99h#|IDVe`~ z^7{GlDqlWmSev(<7vx;+w$*Izth2MG&ieVjcAZJT>2?$Gt^XHxO07P&nt_=i)@gsh U*OurLz{JSl>FVdQ&MBb@0IMbxT>t<8 diff --git a/OsmAnd/res/drawable-xxhdpi/map_target_point.png b/OsmAnd/res/drawable-xxhdpi/map_target_point.png index 5091e2b36d29521482297fa535b3259cb6c1de09..b536686f30bedb611d031ff6bc3a6557d3e0bc9b 100644 GIT binary patch delta 1385 zcmZqRYZFxL4DfU3<&xrJU|`_&^l%9R(pf+}frAZ5KG690VxyuhlY)z}skxzxv#F(< zk%^(9tErQ-xvQg@v5}dJk)xTbo6F=nCK;F_6P${6F{P*^rWqSrSQwk?nj4y$=%yK( zBnVu9f@(tr`v@3S5B= z8Z$Db@726`b7#)ydCKm5cej5vSTy4o15m<+aghLPN7Mh8ZPU-{fc3C;I05wlwa%C- z9e3}85ketDU`JEr&WEYS^`|?MUNJ+oGPx*nr9Ew%Zoa2SW0@V)ItP(O3no=)ee`Ck z{k`hNO`(U;vt}Y&cWK25>3b_@nRh}X@@x- zXcp9=K>It9RiJ$6~@ zw29QM@*~kkcYnL~|L+lVma@;9bNNTuXP!%Uk3K%FxID6Zt-F;2rwtZu3AWyHW9h|dyRJQ0Kj|tz+tZb=er_t+7ys&S@zdUCmnF6D-u>Uh zbNv5=)5(RF_Eu`@_5G&;YHa>aTW@;r%AHybjU<zw9)z_c?SlbcPb$44mzr*ZjoAsURU0Y)vUFR*@a@lI@4-e%H zDREQx>?vq0F>g5`wt4a$?@hmlP5r8ARkY^UoF#|V zGQD@W`E4;f`MUenDYcjD{M)W&md?+p4T|HreoIxls(lOZ>J|mOD~=*Xd43b$NS@WA6u#-aUJ3K5j8TP!yGy-JH#x zB6u~g{>`PAD*~Fzl`3OTyGFe$o01|PIz8&4=&8+%0DARF6s~Ah&BJ-_4d%dm2vNn$WA@Gy^1@pzN)_m+K#-D8&c*T@%v%)@A)Vdfn=c+uEHkiLRSEjp^Jkqe3;I z$^CaD?;ouf!@G2< z;flm0zKnClCAE^Sz7x~3zlZTo-hQTYb8x8jFV0=J7v+5|yW6?Zd{4URzRNbuCFLLg cs2*TozMtOGYw_n6u=Hf`boFyt=akR{02sV@cK`qY delta 992 zcmZn@Y~WMu4DfU3<&xrJU|`_&^l%9R(#b&F%fSXD7ndGM->7KIq~L1c;%4M(WNhhb zVQOgTYHI1~X5?n>Vqs=t=;-KdU^uysNd~6K2&bZ5Oerb`mWgI&CdO&HCdNtTx@JZu z#=1$VM#j1+CYFYY#-`?`=Ei1|otT^I|IFNco`Hc`!PCVtq~g|_xrQ0Sff5b>H;0={ z3b}oQZ?0C^g;m{~4_;E$TPxC)VEtl|!ip6;UMzSKAS-gz^`dKwR!6{^<`m6o7Q3$` z9Za$+&G6OnHE3Hl=YMzSGPT^vb1q8l=dXJ=Y0vZn|DWzHw`c#ZbG$G`waRbFnS~k6 zM?&iR54=xh)^uP~NUlu|zg1Xb;_@x#(pAxv6a!yIqX~>BfHKUI8|=FG1-*D{yC-e- z!-whr-+nhRnz4*Q@&rSQ0`r7Mo*&D*?YOMm*e;6z)i&^?FaR~0#(XJU-aql62`j`1 zps)k4c&$iD56?27bw*I#^;tV!Job}UZqDQa8Uzt<*xw!cQh2_*T#ib$-oux3eS)E8 z0!<2;-Sz&<->3}?${?Gr^-TS+tv@1%Kiq0*PIpT9Z}x^vE|?3z_QDN?Iu&dK!Z?L` zxPxJyLAVX97vUp_KR!IyxM6Z}(;7BgnF}wjym(>v?`y)wK7IK-qx1LXU8q=Vxa|IB z2dle@&pmIfZ1lgcf zt1v%(xi-=BnyJp~Cy`MTl=GQC>3wv)SJUUMVKx7^#@fQj$8DQ$*)0u-X*(9#d;8hZ zjn~q4Ubv=}J8%B)ZFb-0PYjR#HLdj3yn3a-8-Lr!`Kt#P6<4{*ojvpPp4D=_cN6Y? zNHCo~G45OYX7rvs@MDVQ++a!F zCENd)DsRnV_WgD7#a*8@x!05y>*?p_&lLXLZ)Yoc(#P^?(yuvH@)Q4kPbuP@x_oIJZt|F+7ykDiZ{x4n=yZk2bPU%ijh afFZE+)9T2#o$|m;%i!ti=d#Wzp$PyoV3=V5 From 4a0e17f59507af70d0b83dd3c912ab6107f12b7f Mon Sep 17 00:00:00 2001 From: jf-simon Date: Thu, 10 Dec 2015 07:17:40 +0100 Subject: [PATCH 02/60] Translated using Weblate (German) Currently translated at 100.0% (1844 of 1844 strings) --- OsmAnd/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index c635e67ebd..76a533e783 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -2070,7 +2070,7 @@ Audio Bitrate Wähle Audio Bitrate Pferdewege - Aktualisierung jede(n) + Aktualisierungsintervall Nur über WLAN herunterladen Live Aktualisierung From 874906ac98b00e4cada80de5bb82d035db72d826 Mon Sep 17 00:00:00 2001 From: Mirco Zorzo Date: Thu, 10 Dec 2015 09:25:14 +0100 Subject: [PATCH 03/60] Translated using Weblate (Italian) Currently translated at 99.8% (1842 of 1844 strings) --- OsmAnd/res/values-it/strings.xml | 46 +++++++++++++++++--------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index c7476b8257..c2b06316d4 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -905,10 +905,10 @@ Blocca la posizione sulle strade durante la navigazione Blocca sulle strade Evita le autostrade - Il punto intermedio %1$s è troppo lontano dalla strada più vicina. - Sei arrivato al tuo punto intermedio - Aggiungi come punto intermedio - Punto intermedio + La destinazione intermedia %1$s è troppo lontana dalla strada più vicina. + Sei arrivato alla tua destinazione intermedia + Aggiungi come destinazione intermedia + Destinazione intermedia Punto finale troppo distante dalla strada più vicina. Aggiungi etichetta Modalità avanzata… @@ -920,18 +920,18 @@ Ristoranti Attrazione turistica - Aggiungi come ultimo punto intermedio - Aggiungi come primo punto intermedio - Aggiungi come ultimo punto intermedio - Aggiungi come primo punto intermedio + Aggiungi come ultima destinazione intermedia + Aggiungi come prima destinazione intermedia + Aggiungi come ultima destinazione intermedia + Aggiungi come prima destinazione intermedia Sostituisci la destinazione La destinazione è già impostata. - Punto intermedio %1$s - Punti intermedi + Destinazione %1$s + Destinazioni Servizi di registrazione Nessun percorso - Rimuovi punto intemedio - Punto intermedio %1$s + Rimuovi la destinazione + Destinazione %1$s Attiva il GPS nelle impostazioni Visualizza la direzione della destinazione Calcola un percorso, eventualmente anche non ottimale, su lunghe distanze @@ -1023,7 +1023,7 @@ Scatta una foto Foto %1$s %2$s Sei sicuro di voler fermare la navigazione? - Sei sicuro di voler eliminare la tua destinazione (e i punti intermedi)? + Sei sicuro di voler eliminare la tua destinazione (e le destinazioni intermedie)? Abilita per calcolare percorsi precisi senza intoppi. È lento e limitato in distanza. Calcolo della rotta preciso (alfa) Dati audio/video @@ -1047,9 +1047,9 @@ Informazioni GPS Livello ombreggiatura rilievi OsmAnd Mappe & Navigazione - " ↵ OsmAnd (OSM Automatico Navigazione Direzioni) è un\'applicazione di navigazione e visualizzazione mappe con accesso ai dati liberi, mondiali e di gran qualità di OpenStreetMap (OSM). Tutte le mappe possono essere memorizzate nella scheda di memoria del dispositivo per l\'utilizzo offline. Attraverso il GPS del dispositivo OsmAnd offre la navigazione, con eventualmente la guida vocale, per l\'auto, la bicicletta e a piedi. Tutte le funzionalità sono disponibili sia online che offline (non c\'è bisogno della connessione a internet).↵ ↵ Alcune delle principali caratteristiche:↵ ↵ Navigazione↵ - Funziona online (velocemente) oppure offline (nessun costo di roaming quando si è fuori rete)↵ - Guida vocale svolta per svolta(voci registrate e sintetizzate)↵ - Indicazione di corsia opzionale, indicazione del nome della strada, indicazione del tempo di arrivo stimato.↵ - Supporta punti intermedi dell\'itinerario↵ - Ricalcolo automatico del percorso se ci si va fuori rotta↵ - Ricerca dei luoghi per indirizzo, per tipo (es.: ristorante, hotel, stazione di rifornimento, museo) o tramite coordinate geografiche.↵ ↵ Visualizzazione della mappa↵ - Visualizza la vostra posizione e orientamento sulla mappa↵ - Opzionalmente allinea la mappa al compasso del dispositivo o alla direzione del movimento↵ - Salva i vostri luoghi più importanti come Favoriti↵ - Visualizza i PDI (punti d\'interesse) vicino a voi↵ - Può visualizzare specifiche mappe online a mattonelle↵ - Può Visualizzare la visualizzazione satellitare (da Bing)↵ - Può visualizzare diverse sovrapposizioni come tracce GPX rotte/navigazione e mappe addizionali con trasparenze personalizzabili↵ - Opzionalmente Visualizza i nomi dei luoghi in lingua Inglese, locale, o con la pronuncia fonetica↵ ↵ Uso dei dati OpenStreetMap e di Wikipedia:↵ - Informazioni di alta qualità dai migliori progetti collaborativi del mondo↵ - Mappe globali da OpenStreetMap, disponibili per nazione o regione↵ - PDI Wikipedia, grandi per visualizzazione (non disponibili nella versione gratuita)↵ - Download gratuiti illimitati, direttamente dall\'applicazione (limite di 16 download nella versione gratuita)↵ - Mappe sempre aggiornate (aggiornate almeno mensilmente)↵ - Mappe a vettori compatte↵ - Scelta fra mappe complete e solo strade (Esempio: tutto il Giappone è 700 MB oppure 200 MB per le sole strade)↵ - Supporto anche per le mappe a tasselli online o in cache↵ - Caratteristiche per la di sicurezza - Passaggio opzionale fra vista notte o giorno - Visualizzazione opzionale del limite di velocità con avviso se viene superato↵ - zoom opzionale correlato alla velocità↵ - Condividete la vostra posizione così i vostri amici possono trovarvi↵ ↵ - Funzionalità bici e a piedi↵ - Le mappe includono percorsi a piedi, per escursionismo e per bicicletta, ottimo per l\'attività all\'aria aperta↵ - Visualizzazione e rotte speciali per bicicletta e a piedi - Opzione fermate trasporto pubblico (autobus, treno, tram) inclusi i nomi delle vie↵ - Registrazione opzionale del viaggio in file GPX in locale, sul dispositivo, o attraverso un servizio online↵ - Visualizzazione opzionale dell\'altitudine e della velocità↵ - Visualizzazione delle curve di livello e dell\'ombreggiatura dei rilievi (attraverso plugin opzionali)↵ ↵ Contribuzione diretta a OpenStreetMap↵ - Segnala annotazioni sulla mappa↵ - Carica le tracce GPX su OSM direttamente dall\'applicazione↵ - Aggiunge i PDI e li carica direttamente su OSM (oppure successivamente se offline)↵ - Registrazione opzionale del viaggio anche in modalità \"sullo sfondo\" (fintanto che il dispositivo è in modalità sleep)↵ ↵ OsmAnd è a sorgente aperto ed è attivamente sviluppato. Tutti possono contribuire all\'applicazione riportando annotazioni, migliorando le traduzioni o programmando nuove caratteristiche. Il progetto è in un vitale stato di continuo sviluppo attraverso tutte queste forme di sviluppo e interazione degli utenti. Il progresso del progetto conta sui contributi finanziari costituire i fondi per lo sviluppo, la programmazione e il test di nuove funzionalità. Acquistando OsmAnd+ aiutate l\'applicazione ad essere ancora più fantastica! È anche possibile finanziare specifiche nuove funzionalità, o fare una donazione generica a osmand.net.↵ ↵ ↵ Qualità della mappa e copertura approssimativa: ↵ ↵ - Western Europe: ****↵ - Estern Europe: ***↵ - Russia: *** - North America: ***↵ - South America: **↵ - Asia: **↵ - Japan & Korea: ***↵ - Middle East: **↵ - Africa: **↵ - Antartica: *↵ ↵ Lista delle regioni supportate (sostanzialmente tutto il mondo!):↵ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Cile, Cina, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Danimarca, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Emirati Arabi Uniti, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Giamaica, Gibraltar, Grecia, Grenada, Groenlandia, Guadalupa, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italia, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ucraina, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Vaticano, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe.↵ → " + " ↵ OsmAnd (OSM Automatico Navigazione Direzioni) è un\'applicazione di navigazione e visualizzazione mappe con accesso ai dati liberi, mondiali e di gran qualità di OpenStreetMap (OSM). Tutte le mappe possono essere memorizzate nella scheda di memoria del dispositivo per l\'utilizzo offline. Attraverso il GPS del dispositivo OsmAnd offre la navigazione, con eventualmente la guida vocale, per l\'auto, la bicicletta e a piedi. Tutte le funzionalità sono disponibili sia online che offline (non c\'è bisogno della connessione a internet).↵ ↵ Alcune delle principali caratteristiche:↵ ↵ Navigazione↵ - Funziona online (velocemente) oppure offline (nessun costo di roaming quando si è fuori rete)↵ - Guida vocale svolta per svolta(voci registrate e sintetizzate)↵ - Indicazione di corsia opzionale, indicazione del nome della strada, indicazione del tempo di arrivo stimato.↵ - Supporta le destinazioni intermedie dell\'itinerario↵ - Ricalcolo automatico del percorso se ci si va fuori rotta↵ - Ricerca dei luoghi per indirizzo, per tipo (es.: ristorante, hotel, stazione di rifornimento, museo) o tramite coordinate geografiche.↵ ↵ Visualizzazione della mappa↵ - Visualizza la vostra posizione e orientamento sulla mappa↵ - Opzionalmente allinea la mappa al compasso del dispositivo o alla direzione del movimento↵ - Salva i vostri luoghi più importanti come Favoriti↵ - Visualizza i PDI (punti d\'interesse) vicino a voi↵ - Può visualizzare specifiche mappe online a mattonelle↵ - Può Visualizzare la visualizzazione satellitare (da Bing)↵ - Può visualizzare diverse sovrapposizioni come tracce GPX rotte/navigazione e mappe addizionali con trasparenze personalizzabili↵ - Opzionalmente Visualizza i nomi dei luoghi in lingua Inglese, locale, o con la pronuncia fonetica↵ ↵ Uso dei dati OpenStreetMap e di Wikipedia:↵ - Informazioni di alta qualità dai migliori progetti collaborativi del mondo↵ - Mappe globali da OpenStreetMap, disponibili per nazione o regione↵ - PDI Wikipedia, grandi per visualizzazione (non disponibili nella versione gratuita)↵ - Download gratuiti illimitati, direttamente dall\'applicazione (limite di 16 download nella versione gratuita)↵ - Mappe sempre aggiornate (aggiornate almeno mensilmente)↵ - Mappe a vettori compatte↵ - Scelta fra mappe complete e solo strade (Esempio: tutto il Giappone è 700 MB oppure 200 MB per le sole strade)↵ - Supporto anche per le mappe a tasselli online o in cache↵ - Caratteristiche per la di sicurezza - Passaggio opzionale fra vista notte o giorno - Visualizzazione opzionale del limite di velocità con avviso se viene superato↵ - zoom opzionale correlato alla velocità↵ - Condividete la vostra posizione così i vostri amici possono trovarvi↵ ↵ - Funzionalità bici e a piedi↵ - Le mappe includono percorsi a piedi, per escursionismo e per bicicletta, ottimo per l\'attività all\'aria aperta↵ - Visualizzazione e rotte speciali per bicicletta e a piedi - Opzione fermate trasporto pubblico (autobus, treno, tram) inclusi i nomi delle vie↵ - Registrazione opzionale del viaggio in file GPX in locale, sul dispositivo, o attraverso un servizio online↵ - Visualizzazione opzionale dell\'altitudine e della velocità↵ - Visualizzazione delle curve di livello e dell\'ombreggiatura dei rilievi (attraverso plugin opzionali)↵ ↵ Contribuzione diretta a OpenStreetMap↵ - Segnala annotazioni sulla mappa↵ - Carica le tracce GPX su OSM direttamente dall\'applicazione↵ - Aggiunge i PDI e li carica direttamente su OSM (oppure successivamente se offline)↵ - Registrazione opzionale del viaggio anche in modalità \"sullo sfondo\" (fintanto che il dispositivo è in modalità sleep)↵ ↵ OsmAnd è a sorgente aperto ed è attivamente sviluppato. Tutti possono contribuire all\'applicazione riportando annotazioni, migliorando le traduzioni o programmando nuove caratteristiche. Il progetto è in un vitale stato di continuo sviluppo attraverso tutte queste forme di sviluppo e interazione degli utenti. Il progresso del progetto conta sui contributi finanziari costituire i fondi per lo sviluppo, la programmazione e il test di nuove funzionalità. Acquistando OsmAnd+ aiutate l\'applicazione ad essere ancora più fantastica! È anche possibile finanziare specifiche nuove funzionalità, o fare una donazione generica a osmand.net.↵ ↵ ↵ Qualità della mappa e copertura approssimativa: ↵ ↵ - Western Europe: ****↵ - Estern Europe: ***↵ - Russia: *** - North America: ***↵ - South America: **↵ - Asia: **↵ - Japan & Korea: ***↵ - Middle East: **↵ - Africa: **↵ - Antartica: *↵ ↵ Lista delle regioni supportate (sostanzialmente tutto il mondo!):↵ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Cile, Cina, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Danimarca, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Emirati Arabi Uniti, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Giamaica, Gibraltar, Grecia, Grenada, Groenlandia, Guadalupa, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italia, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ucraina, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Vaticano, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe.↵ → " OsmAnd+ Mappe & Navigazione - " ↵ OsmAnd (OSM Automatico Navigazione Direzioni) è un\'applicazione di navigazione e visualizzazione mappe con accesso ai dati liberi, mondiali e di gran qualità di OpenStreetMap (OSM). Tutte le mappe possono essere memorizzate nella scheda di memoria del dispositivo per l\'utilizzo offline. Attraverso il GPS del dispositivo OsmAnd offre la navigazione, con eventualmente la guida vocale, per l\'auto, la bicicletta e a piedi. Tutte le principali funzionalità sono disponibili sia online che offline (non c\'è bisogno della connessione a internet).↵ ↵ OsmAnd+ è la versione a pagamento dell\'applicazione. Acquistandola voi sostenete il progetto, finanziate lo sviluppo di nuove caratteristiche e ricevete gli ultimi aggiornamenti. Potete provare l\'applicazione prima di acquistarla installando la versione gratuita chiamata OsmAnd.↵ ↵ Alcune delle principali caratteristiche:↵ ↵ Navigazione↵ - Funziona online (velocemente) oppure offline (nessun costo di roaming quando si è fuori rete)↵ - Guida vocale svolta per svolta(voci registrate e sintetizzate)↵ - Indicazione di corsia opzionale, indicazione del nome della strada, indicazione del tempo di arrivo stimato.↵ - Supporta punti intermedi dell\'itinerario↵ - Ricalcolo automatico del percorso se ci si va fuori rotta↵ - Ricerca dei luoghi per indirizzo, per tipo (es.: ristorante, hotel, stazione di rifornimento, museo) o tramite coordinate geografiche.↵ ↵ Visualizzazione della mappa↵ - Visualizza la vostra posizione e orientamento sulla mappa↵ - Opzionalmente allinea la mappa al compasso del dispositivo o alla direzione del movimento↵ - Salva i vostri luoghi più importanti come Favoriti↵ - Visualizza i PDI (punti d\'interesse) vicino a voi↵ - Può visualizzare specifiche mappe online a mattonelle↵ - Può Visualizzare la visualizzazione satellitare (da Bing)↵ - Può visualizzare diverse sovrapposizioni come tracce GPX rotte/navigazione e mappe addizionali con trasparenze personalizzabili↵ - Opzionalmente Visualizza i nomi dei luoghi in lingua Inglese, locale, o con la pronuncia fonetica↵ ↵ Uso dei dati OpenStreetMap e di Wikipedia: informazioni di alta qualità dai migliori progetti collaborativi del mondo↵ - Mappe globali da OpenSteetMap, disponibili per nazione o regione↵ - PDI Wikipedia, grandi per visualizzazione (non disponibili nella versione gratuita)↵ - Download gratuiti illimitati, direttamente dall\'applicazione (limite di 16 download nella versione gratuita)↵ - Mappe sempre aggiornate (aggiornate almeno mensilmente)↵ - Mappe a vettori compatte↵ - Scelta fra mappe complete e solo strade (Esempio: tutto il Giappone è 700 MB oppure 200 MB per le sole strade)↵ - Supporto anche per le mappe a tasselli online o in cache↵ ↵ Caratteristiche per la di sicurezza↵ - Passaggio opzionale fra vista notte o giorno - Visualizzazione opzionale del limite di velocità con avviso se viene superato↵ - zoom opzionale correlato alla velocità - Condividete la vostra posizione così i vostri amici possono trovarvi↵ ↵ - Funzionalità bici e a piedi↵ - Le mappe includono percorsi a piedi, per escursionismo e per bicicletta, ottimo per l\'attività all\'aria aperta↵ - Visualizzazione e rotte speciali per bicicletta e a piedi↵ - Opzione fermate trasporto pubblico (autobus, treno, tram) inclusi i nomi delle vie↵ - Registrazione opzionale del viaggio in file GPX in locale, sul dispositivo, o attraverso un servizio online↵ - Visualizzazione opzionale dell\'altitudine e della velocità↵ - Visualizzazione delle curve di livello e dell\'ombreggiatura dei rilievi (attraverso plugin opzionali) ↵ Contribuzione diretta a OpenStreetMap↵ - Segnala errori della mappa↵ - Carica le tracce GPX su OSM direttamente dall\'applicazione↵ - Aggiunge i PDI e li carica direttamente su OSM (oppure successivamente se offline)↵ - Registrazione opzionale del viaggio anche in modalità \"sullo sfondo\" (fintanto che il dispositivo è in modalità sleep)↵ ↵ - OsmAnd è a sorgente aperto ed è attivamente sviluppato. Tutti possono contribuire all\'applicazione riportando errori, migliorando le traduzioni o programmando nuove caratteristiche. Il progetto è in un vitale stato di continuo sviluppo attraverso tutte queste forme di sviluppo e interazione degli utenti. Il progresso del progetto conta sui contributi finanziari costituire i fondi per lo sviluppo, la programmazione e il test di nuove funzionalità. Acquistando OsmAnd+ aiutate l\'applicazione ad essere ancora più fantastica! E\' anche possibile finanziare specifiche nuove funzionalità, o fare una donazione generica a osmand.net.↵ ↵ Qualità della mappa e copertura approssimativa:↵ - Western Europe: ****↵ - Estern Europe: ***↵ - Russia: ***↵ - North America: ***↵ - South America: **↵ - Asia: **↵ - Japan & Korea: ***↵ - Middle East: **↵ - Africa: **↵ - Antartica: * ↵ ↵ Lista delle regioni supportate (fondamentalmente tutto il mondo!):↵ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Chile, China, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Vatican, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe.↵ " + " ↵ OsmAnd (OSM Automatico Navigazione Direzioni) è un\'applicazione di navigazione e visualizzazione mappe con accesso ai dati liberi, mondiali e di gran qualità di OpenStreetMap (OSM). Tutte le mappe possono essere memorizzate nella scheda di memoria del dispositivo per l\'utilizzo offline. Attraverso il GPS del dispositivo OsmAnd offre la navigazione, con eventualmente la guida vocale, per l\'auto, la bicicletta e a piedi. Tutte le principali funzionalità sono disponibili sia online che offline (non c\'è bisogno della connessione a internet).↵ ↵ OsmAnd+ è la versione a pagamento dell\'applicazione. Acquistandola voi sostenete il progetto, finanziate lo sviluppo di nuove caratteristiche e ricevete gli ultimi aggiornamenti. Potete provare l\'applicazione prima di acquistarla installando la versione gratuita chiamata OsmAnd.↵ ↵ Alcune delle principali caratteristiche:↵ ↵ Navigazione↵ - Funziona online (velocemente) oppure offline (nessun costo di roaming quando si è fuori rete)↵ - Guida vocale svolta per svolta(voci registrate e sintetizzate)↵ - Indicazione di corsia opzionale, indicazione del nome della strada, indicazione del tempo di arrivo stimato.↵ - Supporta le destinazioni intermedie del tuo itinerario↵ - Ricalcolo automatico del percorso se ci si va fuori rotta↵ - Ricerca dei luoghi per indirizzo, per tipo (es.: ristorante, hotel, stazione di rifornimento, museo) o tramite coordinate geografiche.↵ ↵ Visualizzazione della mappa↵ - Visualizza la vostra posizione e orientamento sulla mappa↵ - Opzionalmente allinea la mappa al compasso del dispositivo o alla direzione del movimento↵ - Salva i vostri luoghi più importanti come Favoriti↵ - Visualizza i PDI (punti d\'interesse) vicino a voi↵ - Può visualizzare specifiche mappe online a mattonelle↵ - Può Visualizzare la visualizzazione satellitare (da Bing)↵ - Può visualizzare diverse sovrapposizioni come tracce GPX rotte/navigazione e mappe addizionali con trasparenze personalizzabili↵ - Opzionalmente Visualizza i nomi dei luoghi in lingua Inglese, locale, o con la pronuncia fonetica↵ ↵ Uso dei dati OpenStreetMap e di Wikipedia: informazioni di alta qualità dai migliori progetti collaborativi del mondo↵ - Mappe globali da OpenSteetMap, disponibili per nazione o regione↵ - PDI Wikipedia, grandi per visualizzazione (non disponibili nella versione gratuita)↵ - Download gratuiti illimitati, direttamente dall\'applicazione (limite di 16 download nella versione gratuita)↵ - Mappe sempre aggiornate (aggiornate almeno mensilmente)↵ - Mappe a vettori compatte↵ - Scelta fra mappe complete e solo strade (Esempio: tutto il Giappone è 700 MB oppure 200 MB per le sole strade)↵ - Supporto anche per le mappe a tasselli online o in cache↵ ↵ Caratteristiche per la di sicurezza↵ - Passaggio opzionale fra vista notte o giorno - Visualizzazione opzionale del limite di velocità con avviso se viene superato↵ - zoom opzionale correlato alla velocità - Condividete la vostra posizione così i vostri amici possono trovarvi↵ ↵ - Funzionalità bici e a piedi↵ - Le mappe includono percorsi a piedi, per escursionismo e per bicicletta, ottimo per l\'attività all\'aria aperta↵ - Visualizzazione e rotte speciali per bicicletta e a piedi↵ - Opzione fermate trasporto pubblico (autobus, treno, tram) inclusi i nomi delle vie↵ - Registrazione opzionale del viaggio in file GPX in locale, sul dispositivo, o attraverso un servizio online↵ - Visualizzazione opzionale dell\'altitudine e della velocità↵ - Visualizzazione delle curve di livello e dell\'ombreggiatura dei rilievi (attraverso plugin opzionali) ↵ Contribuzione diretta a OpenStreetMap↵ - Segnala errori della mappa↵ - Carica le tracce GPX su OSM direttamente dall\'applicazione↵ - Aggiunge i PDI e li carica direttamente su OSM (oppure successivamente se offline)↵ - Registrazione opzionale del viaggio anche in modalità \"sullo sfondo\" (fintanto che il dispositivo è in modalità sleep)↵ ↵ - OsmAnd è a sorgente aperto ed è attivamente sviluppato. Tutti possono contribuire all\'applicazione riportando errori, migliorando le traduzioni o programmando nuove caratteristiche. Il progetto è in un vitale stato di continuo sviluppo attraverso tutte queste forme di sviluppo e interazione degli utenti. Il progresso del progetto conta sui contributi finanziari costituire i fondi per lo sviluppo, la programmazione e il test di nuove funzionalità. Acquistando OsmAnd+ aiutate l\'applicazione ad essere ancora più fantastica! E\' anche possibile finanziare specifiche nuove funzionalità, o fare una donazione generica a osmand.net.↵ ↵ Qualità della mappa e copertura approssimativa:↵ - Western Europe: ****↵ - Estern Europe: ***↵ - Russia: ***↵ - North America: ***↵ - South America: **↵ - Asia: **↵ - Japan & Korea: ***↵ - Middle East: **↵ - Africa: **↵ - Antartica: * ↵ ↵ Lista delle regioni supportate (fondamentalmente tutto il mondo!):↵ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Chile, China, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Vatican, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe.↵ " Nome strada @@ -1102,7 +1102,7 @@ Backup come modifica OSM Cerca la strada nelle località vicine - Punti intermedi riordinati in modo da ottimizzare il percorso dalla posizione attuale verso la destinazione. + Destinazioni intermedie riordinate in modo da ottimizzare il percorso dalla posizione attuale verso la destinazione. Ordina porta a porta Scegli prima la città o la strada Imposta come destinazione @@ -1125,9 +1125,9 @@ Avvisi di traffico Prego specificare il nome utente OSM e la password nelle Impostazioni - Cancella i punti intermedi - Mantieni i punti intermedi - Hai già dei punti intermedi impostati. + Cancella le destinazioni intermedie + Mantieni le destinazioni intermedie + Hai già delle destinazioni intermedie impostate. Indicazioni verso Indicazioni da Mappa: @@ -1174,8 +1174,7 @@ Ingrandimento mappa - Il calcolo del percorso offline di OsmAnd potrebbe richiedere molto tempo (o talvolta non funzionare) su distanze più lunghe di 200 km. -Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestazioni. + Il calcolo del percorso offline di OsmAnd potrebbe richiedere molto tempo (o talvolta non funzionare) su distanze più lunghe di 200 km. Si consiglia di aggiungere uno o più destinazioni per migliorarne le prestazioni. No zoom automatico A corto raggio A medio raggio @@ -2097,4 +2096,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz Nessun indirizzo trovato Ricerca in corso dell\'indirizzo Non superare i confini - + Aggiorna ogni + Scarica solo da rete WiFi + Aggiornamenti in tempo reale + From 7f01be418629c9eae4af73fd1114971535979f4a Mon Sep 17 00:00:00 2001 From: Kees-Jan Timmer Date: Wed, 9 Dec 2015 23:52:19 +0100 Subject: [PATCH 04/60] Translated using Weblate (Dutch) Currently translated at 39.3% (920 of 2340 strings) --- OsmAnd/res/values-nl/phrases.xml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index 311fc0fa7e..ae1d876b46 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -747,8 +747,8 @@ Graf Hanami Wijnkelder - Alpijns skiën - Wandelen + Skipiste + Winterwandelweg Schaatsen Skiverhuur @@ -835,7 +835,7 @@ Papieren verpakkingen Kleine apparaten Hout - + Boeken Schoenen Aluminium Organische materialen @@ -880,7 +880,7 @@ Luiers Accu\'s Auto \'s - + Fietsen Nucleair afval Waterbekken @@ -971,4 +971,15 @@ Georgisch Orthodox Scientisme Roemeens Orthodox + Ethiopisch Orthodox + Unitarisch + Koptisch-orthodox + Wesleyan + Shaktisme + Internettoegang: ja + Internettoegang: nee + + Piste + Langlaufpiste + Tourski piste From b4d81d1667939ceaa1f26ca1d806e9bfe3f04335 Mon Sep 17 00:00:00 2001 From: GaidamakUA Date: Thu, 10 Dec 2015 15:08:05 +0200 Subject: [PATCH 05/60] Creaded abstract downloads activity with download functionality. ListView replaced with ExpandableListView. Grouping isn't working correctly yet. --- OsmAnd/res/layout/fragment_live_updates.xml | 16 +- .../plus/activities/LocalIndexInfo.java | 55 +++- .../download/AbstractDownloadActivity.java | 23 ++ .../plus/download/DownloadActivity.java | 13 +- .../plus/liveupdates/LiveUpdatesActivity.java | 15 +- .../plus/liveupdates/LiveUpdatesFragment.java | 277 +++++++++++++----- .../liveupdates/SettingsDialogFragment.java | 69 +++++ 7 files changed, 366 insertions(+), 102 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/download/AbstractDownloadActivity.java create mode 100644 OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java diff --git a/OsmAnd/res/layout/fragment_live_updates.xml b/OsmAnd/res/layout/fragment_live_updates.xml index 3a254030a0..3d303286aa 100644 --- a/OsmAnd/res/layout/fragment_live_updates.xml +++ b/OsmAnd/res/layout/fragment_live_updates.xml @@ -1,7 +1,9 @@ - + diff --git a/OsmAnd/src/net/osmand/plus/activities/LocalIndexInfo.java b/OsmAnd/src/net/osmand/plus/activities/LocalIndexInfo.java index 90b46534f5..e5b10e9653 100644 --- a/OsmAnd/src/net/osmand/plus/activities/LocalIndexInfo.java +++ b/OsmAnd/src/net/osmand/plus/activities/LocalIndexInfo.java @@ -1,11 +1,14 @@ package net.osmand.plus.activities; -import java.io.File; +import android.os.Parcel; +import android.os.Parcelable; import net.osmand.plus.GPXUtilities.GPXFile; import net.osmand.plus.activities.LocalIndexHelper.LocalIndexType; -public class LocalIndexInfo { +import java.io.File; + +public class LocalIndexInfo implements Parcelable { private LocalIndexType type; private String description = ""; @@ -155,4 +158,52 @@ public class LocalIndexInfo { return fileName; } + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeInt(this.type == null ? -1 : this.type.ordinal()); + dest.writeString(this.description); + dest.writeString(this.name); + dest.writeByte(backupedData ? (byte) 1 : (byte) 0); + dest.writeByte(corrupted ? (byte) 1 : (byte) 0); + dest.writeByte(notSupported ? (byte) 1 : (byte) 0); + dest.writeByte(loaded ? (byte) 1 : (byte) 0); + dest.writeString(this.subfolder); + dest.writeString(this.pathToData); + dest.writeString(this.fileName); + dest.writeByte(singleFile ? (byte) 1 : (byte) 0); + dest.writeInt(this.kbSize); + dest.writeByte(expanded ? (byte) 1 : (byte) 0); + } + + protected LocalIndexInfo(Parcel in) { + int tmpType = in.readInt(); + this.type = tmpType == -1 ? null : LocalIndexType.values()[tmpType]; + this.description = in.readString(); + this.name = in.readString(); + this.backupedData = in.readByte() != 0; + this.corrupted = in.readByte() != 0; + this.notSupported = in.readByte() != 0; + this.loaded = in.readByte() != 0; + this.subfolder = in.readString(); + this.pathToData = in.readString(); + this.fileName = in.readString(); + this.singleFile = in.readByte() != 0; + this.kbSize = in.readInt(); + this.expanded = in.readByte() != 0; + } + + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + public LocalIndexInfo createFromParcel(Parcel source) { + return new LocalIndexInfo(source); + } + + public LocalIndexInfo[] newArray(int size) { + return new LocalIndexInfo[size]; + } + }; } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/download/AbstractDownloadActivity.java b/OsmAnd/src/net/osmand/plus/download/AbstractDownloadActivity.java new file mode 100644 index 0000000000..9bcb0ebb6c --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/download/AbstractDownloadActivity.java @@ -0,0 +1,23 @@ +package net.osmand.plus.download; + +import android.os.Bundle; + +import net.osmand.plus.activities.ActionBarProgressActivity; + +public class AbstractDownloadActivity extends ActionBarProgressActivity { + protected DownloadValidationManager downloadValidationManager; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + downloadValidationManager = new DownloadValidationManager(getMyApplication()); + } + + public void startDownload(IndexItem... indexItem) { + downloadValidationManager.startDownload(this, indexItem); + } + + public void makeSureUserCancelDownload(IndexItem item) { + downloadValidationManager.makeSureUserCancelDownload(this, item); + } +} diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java b/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java index 69088ae2ec..ae984b84d1 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java @@ -41,7 +41,6 @@ import net.osmand.plus.OsmandSettings.DrivingRegion; import net.osmand.plus.OsmandSettings.MetricsConstants; import net.osmand.plus.R; import net.osmand.plus.Version; -import net.osmand.plus.activities.ActionBarProgressActivity; import net.osmand.plus.activities.LocalIndexInfo; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.TabActivity; @@ -68,7 +67,7 @@ import java.util.List; import java.util.Locale; import java.util.Set; -public class DownloadActivity extends ActionBarProgressActivity implements DownloadEvents { +public class DownloadActivity extends AbstractDownloadActivity implements DownloadEvents { private static final Log LOG = PlatformUtil.getLog(DownloadActivity.class); public static final int UPDATES_TAB_NUMBER = 2; @@ -98,7 +97,6 @@ public class DownloadActivity extends ActionBarProgressActivity implements Downl private String filterGroup; protected Set> fragSet = new HashSet<>(); private DownloadIndexesThread downloadThread; - private DownloadValidationManager downloadValidationManager; protected WorldRegion downloadItem; private boolean srtmDisabled; @@ -110,7 +108,6 @@ public class DownloadActivity extends ActionBarProgressActivity implements Downl protected void onCreate(Bundle savedInstanceState) { getMyApplication().applyTheme(this); super.onCreate(savedInstanceState); - downloadValidationManager = new DownloadValidationManager(getMyApplication()); downloadThread = getMyApplication().getDownloadThread(); DownloadResources indexes = getDownloadThread().getIndexes(); if (!indexes.isDownloadedFromInternet) { @@ -165,14 +162,6 @@ public class DownloadActivity extends ActionBarProgressActivity implements Downl return downloadThread; } - public void startDownload(IndexItem... indexItem) { - downloadValidationManager.startDownload(this, indexItem); - } - - public void makeSureUserCancelDownload(IndexItem item) { - downloadValidationManager.makeSureUserCancelDownload(this, item); - } - @Override public void onAttachFragment(Fragment fragment) { fragSet.add(new WeakReference(fragment)); diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesActivity.java b/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesActivity.java index 65330dfba6..7c51a0e7e5 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesActivity.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesActivity.java @@ -8,9 +8,9 @@ import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import net.osmand.plus.R; -import net.osmand.plus.activities.ActionBarProgressActivity; +import net.osmand.plus.download.AbstractDownloadActivity; -public class LiveUpdatesActivity extends ActionBarProgressActivity { +public class LiveUpdatesActivity extends AbstractDownloadActivity { @Override protected void onCreate(Bundle savedInstanceState) { @@ -18,9 +18,8 @@ public class LiveUpdatesActivity extends ActionBarProgressActivity { setContentView(R.layout.activity_livie_updates); ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); - String basicTitle = getResources().getString(R.string.tab_title_basic); - String extendedTitle = getResources().getString(R.string.tab_title_advanced); - final MyAdapter pagerAdapter = new MyAdapter(getSupportFragmentManager()); + final LiveUpdatesFragmentPagerAdapter pagerAdapter = + new LiveUpdatesFragmentPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(pagerAdapter); final TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); @@ -28,11 +27,11 @@ public class LiveUpdatesActivity extends ActionBarProgressActivity { tabLayout.setupWithViewPager(viewPager); } - public static class MyAdapter extends FragmentPagerAdapter { + public static class LiveUpdatesFragmentPagerAdapter extends FragmentPagerAdapter { private final Fragment[] fragments = new Fragment[]{new LiveUpdatesFragment()}; private final String[] titles = new String[]{LiveUpdatesFragment.TITILE}; - public MyAdapter(FragmentManager fm) { + public LiveUpdatesFragmentPagerAdapter(FragmentManager fm) { super(fm); } @@ -50,7 +49,5 @@ public class LiveUpdatesActivity extends ActionBarProgressActivity { public CharSequence getPageTitle(int position) { return titles[position]; } - - } } diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesFragment.java index a1c74b5a34..1ed549d8de 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesFragment.java @@ -1,40 +1,53 @@ package net.osmand.plus.liveupdates; - -import android.app.Dialog; +import android.content.Context; +import android.content.res.Resources; import android.os.AsyncTask; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v4.app.DialogFragment; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; -import android.support.v7.app.AlertDialog; import android.support.v7.widget.SwitchCompat; +import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ArrayAdapter; import android.widget.CompoundButton; +import android.widget.ExpandableListView; import android.widget.ImageButton; import android.widget.ImageView; -import android.widget.ListView; import android.widget.TextView; -import android.widget.ToggleButton; +import android.widget.Toast; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandSettings; import net.osmand.plus.R; -import net.osmand.plus.activities.ActionBarProgressActivity; import net.osmand.plus.activities.LocalIndexHelper; import net.osmand.plus.activities.LocalIndexInfo; -import net.osmand.plus.activities.OsmandActionBarActivity; +import net.osmand.plus.activities.OsmandBaseExpandableListAdapter; +import net.osmand.plus.download.AbstractDownloadActivity; +import net.osmand.plus.download.DownloadActivityType; +import net.osmand.plus.download.IndexItem; import net.osmand.plus.download.ui.AbstractLoadLocalIndexTask; +import net.osmand.plus.helpers.FileNameTranslationHelper; +import net.osmand.plus.resources.IncrementalChangesManager; +import net.osmand.util.Algorithms; +import java.io.File; +import java.util.ArrayList; +import java.util.Collections; import java.util.Comparator; import java.util.List; public class LiveUpdatesFragment extends Fragment { public static final String TITILE = "Live Updates"; + public static final Comparator LOCAL_INDEX_INFO_COMPARATOR = new Comparator() { + @Override + public int compare(LocalIndexInfo lhs, LocalIndexInfo rhs) { + return lhs.getName().compareTo(rhs.getName()); + } + }; + private ExpandableListView listView; + private LocalIndexesAdapter adapter; @Override public void onCreate(Bundle savedInstanceState) { @@ -45,7 +58,7 @@ public class LiveUpdatesFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_live_updates, container, false); - ListView listView = (ListView) view.findViewById(android.R.id.list); + listView = (ExpandableListView) view.findViewById(android.R.id.list); View header = inflater.inflate(R.layout.live_updates_header, listView, false); final OsmandSettings settings = getMyActivity().getMyApplication().getSettings(); @@ -69,35 +82,190 @@ public class LiveUpdatesFragment extends Fragment { }); listView.addHeaderView(header); - LiveUpdatesAdapter adapter = new LiveUpdatesAdapter(this); + adapter = new LocalIndexesAdapter(this); listView.setAdapter(adapter); - new LoadLocalIndexTask(adapter, (ActionBarProgressActivity) getActivity()).execute(); + new LoadLocalIndexTask(adapter, this).execute(); return view; } - private OsmandActionBarActivity getMyActivity() { - return (OsmandActionBarActivity) getActivity(); + private AbstractDownloadActivity getMyActivity() { + return (AbstractDownloadActivity) getActivity(); } - private static class LiveUpdatesAdapter extends ArrayAdapter { + protected class LocalIndexesAdapter extends OsmandBaseExpandableListAdapter { + final ArrayList dataShouldUpdate = new ArrayList<>(); + final ArrayList dataShouldNotUpdate = new ArrayList<>(); final LiveUpdatesFragment fragment; - public LiveUpdatesAdapter(LiveUpdatesFragment fragment) { - super(fragment.getActivity(), R.layout.local_index_list_item, R.id.nameTextView); + final Context ctx; + + public LocalIndexesAdapter(LiveUpdatesFragment fragment) { this.fragment = fragment; + ctx = fragment.getActivity(); + } + + public void add(LocalIndexInfo info) { + dataShouldNotUpdate.add(info); + } + + public void sort() { + Collections.sort(dataShouldUpdate, LOCAL_INDEX_INFO_COMPARATOR); + Collections.sort(dataShouldNotUpdate, LOCAL_INDEX_INFO_COMPARATOR); } @Override - public View getView(int position, View convertView, ViewGroup parent) { - View view = convertView; - if (view == null) { - LayoutInflater inflater = LayoutInflater.from(getContext()); - view = inflater.inflate(R.layout.local_index_list_item, parent, false); - view.setTag(new LocalFullMapsViewHolder(view, fragment)); + public LocalIndexInfo getChild(int groupPosition, int childPosition) { + if (groupPosition == 0) { + return dataShouldUpdate.get(childPosition); + } else if (groupPosition == 1) { + return dataShouldNotUpdate.get(childPosition); + } else { + throw new IllegalArgumentException("unexpected group position:" + groupPosition); } - LocalFullMapsViewHolder viewHolder = (LocalFullMapsViewHolder) view.getTag(); - viewHolder.bindLocalIndexInfo(getItem(position)); - return view; } + + @Override + public long getChildId(int groupPosition, int childPosition) { + // it would be unusable to have 10000 local indexes + return groupPosition * 10000 + childPosition; + } + + @Override + public View getChildView(final int groupPosition, final int childPosition, + boolean isLastChild, View convertView, ViewGroup parent) { + LocalFullMapsViewHolder viewHolder; + if (convertView == null) { + LayoutInflater inflater = LayoutInflater.from(ctx); + convertView = inflater.inflate(R.layout.local_index_list_item, parent, false); + viewHolder = new LocalFullMapsViewHolder(convertView, fragment); + convertView.setTag(viewHolder); + } else { + viewHolder = (LocalFullMapsViewHolder) convertView.getTag(); + } + viewHolder.bindLocalIndexInfo(getChild(groupPosition, childPosition)); + return convertView; + } + + + private String getNameToDisplay(LocalIndexInfo child) { + String mapName = FileNameTranslationHelper.getFileName(ctx, + fragment.getMyActivity().getMyApplication().getResourceManager().getOsmandRegions(), + child.getFileName()); + return mapName; + } + + @Override + public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { + View v = convertView; + String group = getGroup(groupPosition); + if (v == null) { + LayoutInflater inflater = LayoutInflater.from(ctx); + v = inflater.inflate(R.layout.download_item_list_section, parent, false); + } + TextView nameView = ((TextView) v.findViewById(R.id.section_name)); + nameView.setText(group); + + v.setOnClickListener(null); + + TypedValue typedValue = new TypedValue(); + Resources.Theme theme = ctx.getTheme(); + theme.resolveAttribute(R.attr.ctx_menu_info_view_bg, typedValue, true); + v.setBackgroundColor(typedValue.data); + return v; + } + + @Override + public int getChildrenCount(int groupPosition) { + if (groupPosition == 0) { + return dataShouldUpdate.size(); + } else if (groupPosition == 1) { + return dataShouldNotUpdate.size(); + } else { + throw new IllegalArgumentException("unexpected group position:" + groupPosition); + } + } + + @Override + public String getGroup(int groupPosition) { + if (groupPosition == 0) { + return "Live updates on"; + } else if (groupPosition == 1) { + return "Love updates off"; + } else { + throw new IllegalArgumentException("unexpected group position:" + groupPosition); + } + } + + @Override + public int getGroupCount() { + return 2; + } + + @Override + public long getGroupId(int groupPosition) { + return groupPosition; + } + + @Override + public boolean hasStableIds() { + return false; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + + } + + private void expandAllGroups() { + for (int i = 0; i < adapter.getGroupCount(); i++) { + listView.expandGroup(i); + } + } + + void runLiveUpdate(final LocalIndexInfo info) { + final String fnExt = Algorithms.getFileNameWithoutExtension(new File(info.getFileName())); + new AsyncTask() { + + protected void onPreExecute() { + getMyActivity().setSupportProgressBarIndeterminateVisibility(true); + + } + + @Override + protected IncrementalChangesManager.IncrementalUpdateList doInBackground(Object... params) { + final OsmandApplication myApplication = getMyActivity().getMyApplication(); + IncrementalChangesManager cm = myApplication.getResourceManager().getChangesManager(); + return cm.getUpdatesByMonth(fnExt); + } + + protected void onPostExecute(IncrementalChangesManager.IncrementalUpdateList result) { + getMyActivity().setSupportProgressBarIndeterminateVisibility(false); + if (result.errorMessage != null) { + Toast.makeText(getActivity(), result.errorMessage, Toast.LENGTH_SHORT).show(); + } else { + List ll = result.getItemsForUpdate(); + if (ll.isEmpty()) { + Toast.makeText(getActivity(), R.string.no_updates_available, Toast.LENGTH_SHORT).show(); + } else { + int i = 0; + IndexItem[] is = new IndexItem[ll.size()]; + for (IncrementalChangesManager.IncrementalUpdate iu : ll) { + IndexItem ii = new IndexItem(iu.fileName, "Incremental update", iu.timestamp, iu.sizeText, + iu.contentSize, iu.containerSize, DownloadActivityType.LIVE_UPDATES_FILE); + is[i++] = ii; + } + getMyActivity().startDownload(is); + } + } + + } + + }.execute(new Object[]{fnExt}); + } + + LocalIndexInfo getLocalIndexInfo(int groupPosition, int childPosition) { + return adapter.getChild(groupPosition, childPosition); } private static class LocalFullMapsViewHolder { @@ -115,7 +283,7 @@ public class LiveUpdatesFragment extends Fragment { this.fragment = context; } - public void bindLocalIndexInfo(LocalIndexInfo item) { + public void bindLocalIndexInfo(final LocalIndexInfo item) { nameTextView.setText(item.getName()); descriptionTextView.setText(item.getDescription()); OsmandApplication context = fragment.getMyActivity().getMyApplication(); @@ -124,7 +292,7 @@ public class LiveUpdatesFragment extends Fragment { @Override public void onClick(View v) { final FragmentManager fragmentManager = fragment.getChildFragmentManager(); - new SettingsDialogFragment().show(fragmentManager, "settings"); + SettingsDialogFragment.createInstance(item).show(fragmentManager, "settings"); } }); } @@ -135,18 +303,18 @@ public class LiveUpdatesFragment extends Fragment { implements AbstractLoadLocalIndexTask { private List result; - private ArrayAdapter adapter; - private ActionBarProgressActivity activity; + private LocalIndexesAdapter adapter; + private LiveUpdatesFragment fragment; - public LoadLocalIndexTask(ArrayAdapter adapter, - ActionBarProgressActivity activity) { + public LoadLocalIndexTask(LocalIndexesAdapter adapter, + LiveUpdatesFragment fragment) { this.adapter = adapter; - this.activity = activity; + this.fragment = fragment; } @Override protected List doInBackground(Void... params) { - LocalIndexHelper helper = new LocalIndexHelper(activity.getMyApplication()); + LocalIndexHelper helper = new LocalIndexHelper(fragment.getMyActivity().getMyApplication()); return helper.getLocalIndexData(this); } @@ -163,49 +331,14 @@ public class LiveUpdatesFragment extends Fragment { } } adapter.notifyDataSetChanged(); + fragment.expandAllGroups(); } @Override protected void onPostExecute(List result) { this.result = result; - adapter.sort(new Comparator() { - @Override - public int compare(@NonNull LocalIndexInfo lhs, @NonNull LocalIndexInfo rhs) { - return lhs.getName().compareTo(rhs.getName()); - } - }); + adapter.sort(); } } - public static class SettingsDialogFragment extends DialogFragment { - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - View view = LayoutInflater.from(getActivity()) - .inflate(R.layout.dialog_live_updates_item_settings, null); - - builder.setView(view) - .setPositiveButton("SAVE", null) - .setNegativeButton("CANCEL", null) - .setNeutralButton("UPDATE NOW", null); - return builder.create(); - } - - private void initSwitch(ToggleButton toggleButton, String idPostfix, LocalIndexInfo item) { - final OsmandApplication myApplication = ((OsmandActionBarActivity) this.getActivity()).getMyApplication(); - final OsmandSettings settings = myApplication.getSettings(); - final String settingId = item.getFileName() + idPostfix; - final OsmandSettings.CommonPreference preference = - settings.registerBooleanPreference(settingId, false); - boolean initialValue = preference.get(); - toggleButton.setChecked(initialValue); - toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - preference.set(isChecked); - } - }); - } - } } diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java new file mode 100644 index 0000000000..38dffb9197 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java @@ -0,0 +1,69 @@ +package net.osmand.plus.liveupdates; + +import android.app.Dialog; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v4.app.DialogFragment; +import android.support.v7.app.AlertDialog; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.CompoundButton; +import android.widget.ToggleButton; + +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.OsmandSettings; +import net.osmand.plus.R; +import net.osmand.plus.activities.LocalIndexInfo; +import net.osmand.plus.activities.OsmandActionBarActivity; + +public class SettingsDialogFragment extends DialogFragment { + public static final String LOCAL_INDEX = "local_index"; + + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + View view = LayoutInflater.from(getActivity()) + .inflate(R.layout.dialog_live_updates_item_settings, null); + final LocalIndexInfo localIndexInfo = getArguments().getParcelable(LOCAL_INDEX); + builder.setView(view) + .setPositiveButton("SAVE", null) + .setNegativeButton("CANCEL", null) + .setNeutralButton("UPDATE NOW", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + getLiveUpdatesFragment().runLiveUpdate(localIndexInfo); + } + }); + return builder.create(); + } + + private LiveUpdatesFragment getLiveUpdatesFragment() { + return (LiveUpdatesFragment) getParentFragment(); + } + + private void initSwitch(ToggleButton toggleButton, String idPostfix, LocalIndexInfo item) { + final OsmandApplication myApplication = ((OsmandActionBarActivity) this.getActivity()).getMyApplication(); + final OsmandSettings settings = myApplication.getSettings(); + final String settingId = item.getFileName() + idPostfix; + final OsmandSettings.CommonPreference preference = + settings.registerBooleanPreference(settingId, false); + boolean initialValue = preference.get(); + toggleButton.setChecked(initialValue); + toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + preference.set(isChecked); + } + }); + } + + public static SettingsDialogFragment createInstance(LocalIndexInfo localIndexInfo) { + SettingsDialogFragment fragment = new SettingsDialogFragment(); + Bundle args = new Bundle(); + args.putParcelable(LOCAL_INDEX, localIndexInfo); + fragment.setArguments(args); + return fragment; + } +} From ef3b7d07273a13a796df1d9621970c3000343410 Mon Sep 17 00:00:00 2001 From: GaidamakUA Date: Thu, 10 Dec 2015 15:09:53 +0200 Subject: [PATCH 06/60] Replaces hardcoded strings with resources. --- OsmAnd/res/values/strings.xml | 1 + .../net/osmand/plus/liveupdates/SettingsDialogFragment.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index fbdc925147..a09ab9ef7c 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -2113,4 +2113,5 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A Update every Only download over WiFi Live update + Update now \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java index 38dffb9197..0370c0a80f 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java @@ -28,9 +28,9 @@ public class SettingsDialogFragment extends DialogFragment { .inflate(R.layout.dialog_live_updates_item_settings, null); final LocalIndexInfo localIndexInfo = getArguments().getParcelable(LOCAL_INDEX); builder.setView(view) - .setPositiveButton("SAVE", null) - .setNegativeButton("CANCEL", null) - .setNeutralButton("UPDATE NOW", new DialogInterface.OnClickListener() { + .setPositiveButton(R.string.shared_string_save, null) + .setNegativeButton(R.string.shared_string_cancel, null) + .setNeutralButton(R.string.update_now, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { getLiveUpdatesFragment().runLiveUpdate(localIndexInfo); From 2ca9484cd617c664d63443e1d46a08c4698f5be7 Mon Sep 17 00:00:00 2001 From: Alexey Kulish Date: Thu, 10 Dec 2015 16:50:55 +0300 Subject: [PATCH 07/60] Route planning menu in progress. Revert fav icon. --- OsmAnd/res/layout-land/plan_route_info.xml | 458 +++++++++-------- OsmAnd/res/layout/main.xml | 10 + OsmAnd/res/layout/plan_route_info.xml | 468 ++++++++++-------- OsmAnd/res/values-large/sizes.xml | 2 +- OsmAnd/res/values/sizes.xml | 2 +- .../activities/ShowRouteInfoActivity.java | 4 +- .../plus/base/FavoriteImageDrawable.java | 23 +- ...InfoControl.java => MapRouteInfoMenu.java} | 326 ++++++------ .../other/MapRouteInfoMenuFragment.java | 109 ++++ .../net/osmand/plus/views/FavoritesLayer.java | 7 + .../osmand/plus/views/MapControlsLayer.java | 52 +- .../mapwidgets/MapInfoWidgetsFactory.java | 6 +- .../mapwidgets/RouteInfoWidgetsFactory.java | 6 +- 13 files changed, 869 insertions(+), 604 deletions(-) rename OsmAnd/src/net/osmand/plus/mapcontextmenu/other/{MapRouteInfoControl.java => MapRouteInfoMenu.java} (73%) create mode 100644 OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java diff --git a/OsmAnd/res/layout-land/plan_route_info.xml b/OsmAnd/res/layout-land/plan_route_info.xml index 2df39c0bba..fdd26eefd5 100644 --- a/OsmAnd/res/layout-land/plan_route_info.xml +++ b/OsmAnd/res/layout-land/plan_route_info.xml @@ -1,242 +1,306 @@ - + - + - + android:layout_height="wrap_content"> + + + + + + + + + + + + + + + + + android:orientation="vertical"> - - + android:id="@+id/fromIcon" + android:layout_width="24dp" + android:layout_height="match_parent" + android:layout_marginLeft="@dimen/list_content_padding" + android:layout_marginRight="@dimen/list_content_padding" + android:src="@drawable/map_default_location"/> + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:focusable="false"/> + + + + + + + + + + + + + + + + + android:orientation="horizontal"> + android:id="@+id/toIcon" + android:layout_width="24dp" + android:layout_height="match_parent" + android:layout_marginLeft="@dimen/list_content_padding" + android:layout_marginRight="@dimen/list_content_padding" + android:src="@drawable/map_default_location"/> - - - + android:orientation="vertical"> + + + + + + + + android:id="@+id/toDropDownIcon" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_marginRight="@dimen/list_header_text_left_margin" + android:src="@drawable/ic_action_arrow_drop_down"/> + + android:focusable="false"/> + + + + + + + + + + + + + + - - + - + - + - \ No newline at end of file + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/main.xml b/OsmAnd/res/layout/main.xml index 7e7015367b..8dcfe6554b 100644 --- a/OsmAnd/res/layout/main.xml +++ b/OsmAnd/res/layout/main.xml @@ -48,15 +48,23 @@ + + + + + + + - + - + - + android:layout_height="wrap_content"> + + + + + + + + + + + + + + + + + android:orientation="vertical"> - - + android:id="@+id/fromIcon" + android:layout_width="24dp" + android:layout_height="match_parent" + android:layout_marginLeft="@dimen/list_content_padding" + android:layout_marginRight="@dimen/list_content_padding" + android:src="@drawable/map_default_location"/> + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:focusable="false"/> + android:orientation="horizontal"> + android:id="@+id/viaIcon" + android:layout_width="24dp" + android:layout_height="match_parent" + android:layout_marginLeft="@dimen/list_content_padding" + android:layout_marginRight="@dimen/list_content_padding" + android:src="@drawable/map_default_location"/> - - - + android:orientation="vertical"> + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - + - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/OsmAnd/res/values-large/sizes.xml b/OsmAnd/res/values-large/sizes.xml index 1187d4062d..e87db739d8 100644 --- a/OsmAnd/res/values-large/sizes.xml +++ b/OsmAnd/res/values-large/sizes.xml @@ -7,7 +7,7 @@ 90dp 81dp 72dp - 400dp + 450dp 160dp 510dp diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml index e21f98920e..68eb36dd58 100644 --- a/OsmAnd/res/values/sizes.xml +++ b/OsmAnd/res/values/sizes.xml @@ -86,7 +86,7 @@ 1dp 1dp 320dp - 280dp + 330dp 100dp diff --git a/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoActivity.java b/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoActivity.java index 81dccaf93c..e7b5a0e263 100644 --- a/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/ShowRouteInfoActivity.java @@ -22,7 +22,7 @@ import net.osmand.plus.R; import net.osmand.plus.routing.RouteDirectionInfo; import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.views.TurnPathHelper; -import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl; +import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu; import net.osmand.util.Algorithms; import android.content.Intent; import android.net.Uri; @@ -144,7 +144,7 @@ public class ShowRouteInfoActivity extends OsmandListActivity { RouteDirectionInfo item = ((RouteInfoAdapter)getListAdapter()).getItem(position - 1); Location loc = helper.getLocationFromRouteDirection(item); if(loc != null){ - MapRouteInfoControl.directionInfo = position - 1; + MapRouteInfoMenu.directionInfo = position - 1; OsmandSettings settings = ((OsmandApplication) getApplication()).getSettings(); settings.setMapLocationToShow(loc.getLatitude(),loc.getLongitude(), Math.max(13, settings.getLastKnownMapZoom()), diff --git a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java index a0cfd4079d..4a676e8bfb 100644 --- a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java @@ -13,7 +13,6 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.drawable.Drawable; -import android.util.DisplayMetrics; import net.osmand.plus.R; @@ -36,30 +35,22 @@ public class FavoriteImageDrawable extends Drawable { this.withShadow = withShadow; this.resources = ctx.getResources(); this.color = color; - paintIcon = new Paint(); - int col = color == 0 || color == Color.BLACK ? getResources().getColor(R.color.color_favorite) : color; - paintIcon.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.SRC_IN)); paintBackground = new Paint(); + int col = color == 0 || color == Color.BLACK ? getResources().getColor(R.color.color_favorite) : color; + paintBackground.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.MULTIPLY)); + paintIcon = new Paint(); favIcon = BitmapFactory.decodeResource(ctx.getResources(), R.drawable.map_favorite); favBackground = BitmapFactory.decodeResource(ctx.getResources(), R.drawable.map_white_favorite_shield); - - listDrawable = getResources().getDrawable(R.drawable.ic_action_fav_dark).mutate(); - listDrawable.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.SRC_IN)); - DisplayMetrics metrics = getResources().getDisplayMetrics(); + paintOuter = new Paint(); paintOuter.setAntiAlias(true); paintOuter.setStyle(Style.FILL_AND_STROKE); paintInnerCircle = new Paint(); paintInnerCircle.setStyle(Style.FILL_AND_STROKE); - if(metrics != null && metrics.density > 0) { - paintOuter.setStrokeWidth(metrics.density * 1); - } else { - paintOuter.setStrokeWidth(1); - } -// paintOuter.setColor(color == 0 || color == Color.BLACK ? 0x88555555 : color); - paintOuter.setColor(0xffbbbbbb); - paintInnerCircle.setColor(Color.WHITE); + paintOuter.setColor(color == 0 || color == Color.BLACK ? 0x88555555 : color); + paintInnerCircle.setColor(color == 0 || color == Color.BLACK ? getResources().getColor(R.color.color_favorite) + : color); paintInnerCircle.setAntiAlias(true); } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoControl.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenu.java similarity index 73% rename from OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoControl.java rename to OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenu.java index 763bacd5f4..866d8ea90d 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoControl.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenu.java @@ -5,12 +5,13 @@ import android.content.DialogInterface; import android.content.DialogInterface.OnDismissListener; import android.content.Intent; import android.graphics.PointF; +import android.graphics.drawable.Drawable; +import android.support.v4.app.Fragment; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; -import android.widget.Button; import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; @@ -21,10 +22,9 @@ import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.RotatedTileBox; import net.osmand.plus.ApplicationMode; +import net.osmand.plus.IconsCache; import net.osmand.plus.OsmAndFormatter; -import net.osmand.plus.OsmAndLocationProvider; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper; @@ -34,7 +34,6 @@ import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.ShowRouteInfoActivity; import net.osmand.plus.activities.actions.AppModeDialog; import net.osmand.plus.activities.search.SearchAddressActivity; -import net.osmand.plus.development.OsmandDevelopmentPlugin; import net.osmand.plus.dialogs.FavoriteDialogs; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.plus.routing.RouteDirectionInfo; @@ -43,27 +42,27 @@ import net.osmand.plus.routing.RoutingHelper.IRouteInformationListener; import net.osmand.plus.views.MapControlsLayer; import net.osmand.plus.views.OsmandMapTileView; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; -public class MapRouteInfoControl implements IRouteInformationListener { +public class MapRouteInfoMenu implements IRouteInformationListener { public static int directionInfo = -1; public static boolean controlVisible = false; private final MapContextMenu contextMenu; private final RoutingHelper routingHelper; private OsmandMapTileView mapView; - private Dialog dialog; - private boolean selectFromMapTouch; + private boolean selectFromMapTouch; private boolean selectFromMapForTarget; - private boolean showDialog = false; + private boolean showMenu = false; private MapActivity mapActivity; private MapControlsLayer mapControlsLayer; public static final String TARGET_SELECT = "TARGET_SELECT"; - public MapRouteInfoControl(MapActivity mapActivity, MapControlsLayer mapControlsLayer) { + public MapRouteInfoMenu(MapActivity mapActivity, MapControlsLayer mapControlsLayer) { this.mapActivity = mapActivity; this.mapControlsLayer = mapControlsLayer; contextMenu = mapActivity.getContextMenu(); @@ -71,61 +70,59 @@ public class MapRouteInfoControl implements IRouteInformationListener { mapView = mapActivity.getMapView(); routingHelper.addListener(this); } - + public boolean onSingleTap(PointF point, RotatedTileBox tileBox) { - if(selectFromMapTouch) { + if (selectFromMapTouch) { LatLon latlon = tileBox.getLatLonFromPixel(point.x, point.y); selectFromMapTouch = false; - if(selectFromMapForTarget) { + if (selectFromMapForTarget) { getTargets().navigateToPoint(latlon, true, -1); } else { getTargets().setStartPoint(latlon, true, null); } contextMenu.showMinimized(latlon, null, null); - showDialog(); + show(); return true; } return false; } - + public void setVisible(boolean visible) { - if(visible) { - if (showDialog){ - //if (getTargets().getPointToNavigate() == null){ - showDialog(); - //} - showDialog = false; + if (visible) { + if (showMenu) { + show(); + showMenu = false; } controlVisible = true; } else { - hideDialog(); + hide(); controlVisible = false; } } - - - public void showHideDialog() { - if(dialog != null) { - hideDialog(); + + + public void showHideMenu() { + if (isVisible()) { + hide(); } else { - showDialog(); + show(); } } - - public void updateDialog() { - if(dialog != null) { - updateInfo(dialog.findViewById(R.id.plan_route_info)); - } + + public void updateMenu() { + WeakReference fragmentRef = findMenuFragment(); + if (fragmentRef != null) + fragmentRef.get().updateInfo(); } - - private void updateInfo(final View main) { + + public void updateInfo(final View main) { updateViaView(main); updateFromSpinner(main); updateToSpinner(main); updateApplicationModes(main); mapControlsLayer.updateRouteButtons(main, true); boolean addButtons = routingHelper.isRouteCalculated(); - if(addButtons) { + if (addButtons) { updateRouteButtons(main); } else { updateRouteCalcProgress(main); @@ -134,7 +131,7 @@ public class MapRouteInfoControl implements IRouteInformationListener { private void updateRouteCalcProgress(final View main) { TargetPointsHelper targets = getTargets(); - if(targets.hasTooLongDistanceToNavigate()) { + if (targets.hasTooLongDistanceToNavigate()) { main.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE); TextView textView = (TextView) main.findViewById(R.id.InfoTextView); ImageView iconView = (ImageView) main.findViewById(R.id.InfoIcon); @@ -143,7 +140,7 @@ public class MapRouteInfoControl implements IRouteInformationListener { textView.setText(R.string.route_is_too_long); textView.setVisibility(View.VISIBLE); iconView.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_warning)); - } else{ + } else { main.findViewById(R.id.RouteInfoControls).setVisibility(View.GONE); } } @@ -151,7 +148,7 @@ public class MapRouteInfoControl implements IRouteInformationListener { private void updateApplicationModes(final View parentView) { final OsmandSettings settings = mapActivity.getMyApplication().getSettings(); ApplicationMode am = settings.APPLICATION_MODE.get(); - final Set selected = new HashSet(); + final Set selected = new HashSet<>(); selected.add(am); ViewGroup vg = (ViewGroup) parentView.findViewById(R.id.app_modes); vg.removeAllViews(); @@ -165,17 +162,26 @@ public class MapRouteInfoControl implements IRouteInformationListener { mapActivity.getRoutingHelper().recalculateRouteDueToSettingsChange(); } } - }); + }); } private void updateViaView(final View parentView) { String via = generateViaDescription(); - if(via.length() == 0){ + if (via.length() == 0) { parentView.findViewById(R.id.ViaLayout).setVisibility(View.GONE); + parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.GONE); } else { parentView.findViewById(R.id.ViaLayout).setVisibility(View.VISIBLE); + parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.VISIBLE); ((TextView) parentView.findViewById(R.id.ViaView)).setText(via); } + + ImageView viaIcon = (ImageView) parentView.findViewById(R.id.viaIcon); + if (isLight()) { + viaIcon.setImageDrawable(getIconOrig(R.drawable.widget_intermediate_day)); + } else { + viaIcon.setImageDrawable(getIconOrig(R.drawable.widget_intermediate_night)); + } } private void updateToSpinner(final View parentView) { @@ -183,24 +189,41 @@ public class MapRouteInfoControl implements IRouteInformationListener { toSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { - if(position == 1) { + if (position == 1) { selectFavorite(parentView, true); - } else if(position == 2) { - selectOnScreen(parentView, true); - } else if(position == 3) { + } else if (position == 2) { + selectOnScreen(true); + } else if (position == 3) { Intent intent = new Intent(mapActivity, SearchAddressActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.putExtra(TARGET_SELECT, true); mapActivity.startActivityForResult(intent, MapControlsLayer.REQUEST_ADDRESS_SELECT); - } + } } @Override public void onNothingSelected(AdapterView parent) { } }); + + ImageView toIcon = (ImageView) parentView.findViewById(R.id.toIcon); + if (isLight()) { + toIcon.setImageDrawable(getIconOrig(R.drawable.widget_target_day)); + } else { + toIcon.setImageDrawable(getIconOrig(R.drawable.widget_target_night)); + } + + ImageView toDropDownIcon = (ImageView) parentView.findViewById(R.id.toDropDownIcon); + toDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down)); + toDropDownIcon.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + toSpinner.performClick(); + } + }); } + @SuppressWarnings("deprecation") private void updateFromSpinner(final View parentView) { final TargetPointsHelper targets = getTargets(); final Spinner fromSpinner = setupFromSpinner(parentView); @@ -208,43 +231,56 @@ public class MapRouteInfoControl implements IRouteInformationListener { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { - if(position == 0) { - if(targets.getPointToStart() != null) { + if (position == 0) { + if (targets.getPointToStart() != null) { targets.clearStartPoint(true); } - } else if(position == 1) { + } else if (position == 1) { selectFavorite(parentView, false); - } else if(position == 2) { - selectOnScreen(parentView, false); - } else if(position == 3) { + } else if (position == 2) { + selectOnScreen(false); + } else if (position == 3) { Intent intent = new Intent(mapActivity, SearchAddressActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.putExtra(TARGET_SELECT, false); mapActivity.startActivityForResult(intent, MapControlsLayer.REQUEST_ADDRESS_SELECT); - } + } } @Override public void onNothingSelected(AdapterView parent) { } }); + + ImageView fromIcon = (ImageView) parentView.findViewById(R.id.fromIcon); + ApplicationMode appMode = mapActivity.getMyApplication().getSettings().getApplicationMode(); + fromIcon.setImageDrawable(mapActivity.getResources().getDrawable(appMode.getResourceLocationDay())); + + ImageView fromDropDownIcon = (ImageView) parentView.findViewById(R.id.fromDropDownIcon); + fromDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down)); + fromDropDownIcon.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + fromSpinner.performClick(); + } + }); } - protected void selectOnScreen(View parentView, boolean target) { + protected void selectOnScreen(boolean target) { selectFromMapTouch = true; - selectFromMapForTarget = target; - hideDialog(); + selectFromMapForTarget = target; + hide(); } - + public void selectAddress(String name, LatLon l, final boolean target) { PointDescription pd = new PointDescription(PointDescription.POINT_TYPE_ADDRESS, name); - if(target) { + if (target) { getTargets().navigateToPoint(l, true, -1, pd); } else { getTargets().setStartPoint(l, true, pd); } - hideDialog(); - showDialog(); + hide(); + show(); } protected void selectFavorite(final View parentView, final boolean target) { @@ -267,26 +303,34 @@ public class MapRouteInfoControl implements IRouteInformationListener { FavoriteDialogs.showFavoritesDialog(mapActivity, favouritesAdapter, click, dismissListener, dlgHolder, true); } + private boolean isLight() { + return mapActivity.getMyApplication().getSettings().isLightContent(); + } + + private Drawable getIconOrig(int iconId) { + IconsCache iconsCache = mapActivity.getMyApplication().getIconsCache(); + return iconsCache.getIcon(iconId, 0, 0f); + } private OnItemClickListener getOnClickListener(final boolean target, final FavouritesAdapter favouritesAdapter, - final Dialog[] dlg) { + final Dialog[] dlg) { return new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { FavouritePoint fp = favouritesAdapter.getItem(position); LatLon point = new LatLon(fp.getLatitude(), fp.getLongitude()); - if(target) { + if (target) { getTargets().navigateToPoint(point, true, -1, fp.getPointDescription()); } else { getTargets().setStartPoint(point, true, fp.getPointDescription()); } - if(dlg != null && dlg.length > 0 && dlg[0] != null) { + if (dlg != null && dlg.length > 0 && dlg[0] != null) { dlg[0].dismiss(); } //Next 2 lines ensure Dialog is shown in the right correct position after a selection been made - hideDialog(); - showDialog(); + hide(); + show(); } }; } @@ -294,15 +338,24 @@ public class MapRouteInfoControl implements IRouteInformationListener { public static int getDirectionInfo() { return directionInfo; } - - public boolean isDialogVisible() { - return dialog != null && dialog.isShowing(); + + public boolean isVisible() { + return findMenuFragment() != null; + } + + public WeakReference findMenuFragment() { + Fragment fragment = mapActivity.getSupportFragmentManager().findFragmentByTag(MapRouteInfoMenuFragment.TAG); + if (fragment != null && !fragment.isDetached()) { + return new WeakReference<>((MapRouteInfoMenuFragment) fragment); + } else { + return null; + } } public static boolean isControlVisible() { return controlVisible; } - + private void updateRouteButtons(final View mainView) { mainView.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE); final OsmandApplication ctx = mapActivity.getMyApplication(); @@ -337,10 +390,10 @@ public class MapRouteInfoControl implements IRouteInformationListener { ImageView next = (ImageView) mainView.findViewById(R.id.Next); next.setVisibility(View.VISIBLE); next.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_next)); - next.setOnClickListener(new View.OnClickListener(){ + next.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if(routingHelper.getRouteDirections() != null && directionInfo < routingHelper.getRouteDirections().size() - 1){ + if (routingHelper.getRouteDirections() != null && directionInfo < routingHelper.getRouteDirections().size() - 1) { directionInfo++; RouteDirectionInfo info = routingHelper.getRouteDirections().get(directionInfo); net.osmand.Location l = routingHelper.getLocationFromRouteDirection(info); @@ -350,10 +403,10 @@ public class MapRouteInfoControl implements IRouteInformationListener { mapView.refreshMap(); updateInfo(mainView); } - + }); View info = mainView.findViewById(R.id.Info); - info.setOnClickListener(new View.OnClickListener(){ + info.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(mapView.getContext(), ShowRouteInfoActivity.class); @@ -361,10 +414,10 @@ public class MapRouteInfoControl implements IRouteInformationListener { mapView.getContext().startActivity(intent); } }); - + TextView textView = (TextView) mainView.findViewById(R.id.InfoTextView); ImageView iconView = (ImageView) mainView.findViewById(R.id.InfoIcon); - if(directionInfo >= 0) { + if (directionInfo >= 0) { iconView.setVisibility(View.GONE); } else { iconView.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_action_info_dark)); @@ -379,81 +432,52 @@ public class MapRouteInfoControl implements IRouteInformationListener { } } - private Button attachSimulateRoute(final View mainView, final OsmandApplication ctx) { - final Button simulateRoute = null;//(Button) mainView.findViewById(R.id.SimulateRoute); - final OsmAndLocationProvider loc = ctx.getLocationProvider(); - if(mapActivity.getRoutingHelper().isFollowingMode()) { - simulateRoute.setVisibility(View.GONE); - } - if (OsmandPlugin.getEnabledPlugin(OsmandDevelopmentPlugin.class) == null) { - simulateRoute.setVisibility(View.GONE); - } - simulateRoute.setText(loc.getLocationSimulation().isRouteAnimating() ? R.string.animate_route_off : R.string.animate_route); - simulateRoute.setOnClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - mainView.findViewById(R.id.RouteInfoControls).setVisibility(View.GONE); - if(loc.getLocationSimulation().isRouteAnimating()) { - loc.getLocationSimulation().startStopRouteAnimation(mapActivity); - hideDialog(); - } else { - simulateRoute.setText(R.string.animate_route_off); - loc.getLocationSimulation().startStopRouteAnimation(mapActivity); - } - - } - }); - return simulateRoute; - } - - @Override public void newRouteIsCalculated(boolean newRoute, ValueHolder showToast) { directionInfo = -1; - updateDialog(); - if(isDialogVisible()) { + updateMenu(); + if (isVisible()) { showToast.value = false; } } - + public String generateViaDescription() { TargetPointsHelper targets = getTargets(); - String via = ""; List points = targets.getIntermediatePointsNavigation(); if (points.size() == 0) { - return via; + return ""; } + StringBuilder via = new StringBuilder(); for (int i = 0; i < points.size(); i++) { if (i > 0) { - via += "\n"; + via.append(" "); } - via += " " + getRoutePointDescription(points.get(i).point, points.get(i).getOnlyName()); + via.append(getRoutePointDescription(points.get(i).point, points.get(i).getOnlyName())); } - return via; + return via.toString(); } - + public String getRoutePointDescription(double lat, double lon) { return mapActivity.getString(R.string.route_descr_lat_lon, lat, lon); } - + public String getRoutePointDescription(LatLon l, String d) { - if(d != null && d.length() > 0) { + if (d != null && d.length() > 0) { return d.replace(':', ' '); } - if(l != null) { + if (l != null) { return mapActivity.getString(R.string.route_descr_lat_lon, l.getLatitude(), l.getLongitude()); } return ""; } - - private Spinner setupFromSpinner( View view) { - ArrayList fromActions = new ArrayList(); + + private Spinner setupFromSpinner(View view) { + ArrayList fromActions = new ArrayList<>(); fromActions.add(mapActivity.getString(R.string.route_descr_current_location)); fromActions.add(mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis)); fromActions.add(mapActivity.getString(R.string.shared_string_select_on_map)); fromActions.add(mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis)); - + TargetPoint start = getTargets().getPointToStart(); if (start != null) { String oname = start.getOnlyName().length() > 0 ? start.getOnlyName() @@ -461,43 +485,43 @@ public class MapRouteInfoControl implements IRouteInformationListener { fromActions.add(oname); } final Spinner fromSpinner = ((Spinner) view.findViewById(R.id.FromSpinner)); - ArrayAdapter fromAdapter = new ArrayAdapter(view.getContext(), - android.R.layout.simple_spinner_item, + ArrayAdapter fromAdapter = new ArrayAdapter<>(view.getContext(), + android.R.layout.simple_spinner_item, fromActions - ); + ); fromAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); fromSpinner.setAdapter(fromAdapter); - if(start != null) { + if (start != null) { fromSpinner.setSelection(fromActions.size() - 1); } else { - if(mapActivity.getMyApplication().getLocationProvider().getLastKnownLocation() == null) { + if (mapActivity.getMyApplication().getLocationProvider().getLastKnownLocation() == null) { fromSpinner.setPromptId(R.string.search_poi_location); } //fromSpinner.setSelection(0); } return fromSpinner; } - + private Spinner setupToSpinner(View view) { final Spinner toSpinner = ((Spinner) view.findViewById(R.id.ToSpinner)); final TargetPointsHelper targets = getTargets(); - ArrayList toActions = new ArrayList(); + ArrayList toActions = new ArrayList<>(); if (targets.getPointToNavigate() != null) { toActions.add(mapActivity.getString(R.string.route_descr_destination) + " " - + getRoutePointDescription(targets.getPointToNavigate().point, - targets.getPointToNavigate().getOnlyName())); + + getRoutePointDescription(targets.getPointToNavigate().point, + targets.getPointToNavigate().getOnlyName())); } else { toSpinner.setPromptId(R.string.route_descr_select_destination); - toActions.add(mapActivity.getString(R.string.route_descr_select_destination)); + toActions.add(mapActivity.getString(R.string.route_descr_select_destination)); } toActions.add(mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis)); toActions.add(mapActivity.getString(R.string.shared_string_select_on_map)); toActions.add(mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis)); - - ArrayAdapter toAdapter = new ArrayAdapter(view.getContext(), - android.R.layout.simple_spinner_item, + + ArrayAdapter toAdapter = new ArrayAdapter<>(view.getContext(), + android.R.layout.simple_spinner_item, toActions - ); + ); toAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); toSpinner.setAdapter(toAdapter); return toSpinner; @@ -510,36 +534,22 @@ public class MapRouteInfoControl implements IRouteInformationListener { @Override public void routeWasCancelled() { directionInfo = -1; - // do not hide dialog (needed for use case entering Planning mode without destination) + // do not hide fragment (needed for use case entering Planning mode without destination) } - - - public void showDialog() { - final View ll = mapActivity.getLayoutInflater().inflate(R.layout.plan_route_info, null); - updateInfo(ll); - dialog = MapRoutePreferencesControl.showDialog(mapControlsLayer, mapActivity, ll, new OnDismissListener() { - @Override - public void onDismiss(DialogInterface d) { - dialog = null; - } - }); + + public void show() { + MapRouteInfoMenuFragment.showInstance(mapActivity); } - - public void hideDialog() { - Dialog dialog = this.dialog; - if (dialog != null) { - if(dialog instanceof MapRoutePreferencesControl.RoutePrepareDialog && - ((MapRoutePreferencesControl.RoutePrepareDialog) dialog).getListener() != null) { - ((MapRoutePreferencesControl.RoutePrepareDialog) dialog).getListener().onDismiss(dialog); - ((MapRoutePreferencesControl.RoutePrepareDialog) dialog).cancelDismissListener(); - } - dialog.dismiss(); - this.dialog = null; + + public void hide() { + WeakReference fragmentRef = findMenuFragment(); + if (fragmentRef != null) { + fragmentRef.get().dismiss(); } } - public void setShowDialog() { - showDialog = true; + public void setShowMenu() { + showMenu = true; } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java new file mode 100644 index 0000000000..207c851810 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java @@ -0,0 +1,109 @@ +package net.osmand.plus.mapcontextmenu.other; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentActivity; +import android.support.v4.app.FragmentManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import net.osmand.plus.R; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.helpers.AndroidUiHelper; + +public class MapRouteInfoMenuFragment extends Fragment { + public static final String TAG = "MapRouteInfoMenuFragment"; + + private MapRouteInfoMenu menu; + private View mainView; + + private MapActivity getMapActivity() { + return (MapActivity) getActivity(); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + MapActivity mapActivity = getMapActivity(); + + menu = mapActivity.getMapLayers().getMapControlsLayer().getMapRouteInfoMenu(); + View view = inflater.inflate(R.layout.plan_route_info, container, false); + if (menu == null) { + return view; + } + + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + + mainView = view.findViewById(R.id.main_view); + updateInfo(); + + return view; + } + + @Override + public void onResume() { + super.onResume(); + if (menu == null) { + dismiss(); + } + } + + public void updateInfo() { + menu.updateInfo(mainView); + } + + public void show(MapActivity mapActivity) { + int slideInAnim = R.anim.slide_in_bottom; + int slideOutAnim = R.anim.slide_out_bottom; + + mapActivity.getSupportFragmentManager().beginTransaction() + .setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim) + .add(R.id.routeMenuContainer, this, TAG) + .addToBackStack(TAG) + .commitAllowingStateLoss(); + } + + public void dismiss() { + FragmentActivity activity = getActivity(); + if (activity != null) { + try { + activity.getSupportFragmentManager().popBackStack(TAG, + FragmentManager.POP_BACK_STACK_INCLUSIVE); + } catch (Exception e) { + // + } + } + } + + public static boolean showInstance(final MapActivity mapActivity) { + try { + boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity); + int slideInAnim; + int slideOutAnim; + if (portrait) { + slideInAnim = R.anim.slide_in_bottom; + slideOutAnim = R.anim.slide_out_bottom; + } else { + slideInAnim = R.anim.slide_in_left; + slideOutAnim = R.anim.slide_out_left; + } + + MapRouteInfoMenuFragment fragment = new MapRouteInfoMenuFragment(); + mapActivity.getSupportFragmentManager().beginTransaction() + .setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim) + .add(R.id.routeMenuContainer, fragment, TAG) + .addToBackStack(TAG).commitAllowingStateLoss(); + + return true; + + } catch (RuntimeException e) { + return false; + } + } +} diff --git a/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java b/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java index fc38eb62b4..52df922fbe 100644 --- a/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java @@ -3,8 +3,11 @@ package net.osmand.plus.views; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.Paint; import android.graphics.PointF; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; @@ -33,6 +36,7 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer. private MapTextLayer textLayer; private Paint paintIcon; private Bitmap pointSmall; + private int defaultColor; private OsmandSettings settings; @@ -60,6 +64,7 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer. textLayer = view.getLayerByClass(MapTextLayer.class); paintIcon = new Paint(); pointSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_white_shield_small); + defaultColor = view.getResources().getColor(R.color.color_favorite); } private boolean calculateBelongs(int ex, int ey, int objx, int objy, int radius) { @@ -101,6 +106,8 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer. float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude()); if (intersects(boundIntersections, x, y, iconSize, iconSize)) { + int col = o.getColor() == 0 || o.getColor() == Color.BLACK ? defaultColor : o.getColor(); + paintIcon.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.MULTIPLY)); canvas.drawBitmap(pointSmall, x - pointSmall.getWidth() / 2, y - pointSmall.getHeight() / 2, paintIcon); } else { fullObjects.add(o); diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java index 6bb0d6e9cf..6497bef979 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java @@ -41,7 +41,7 @@ import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.search.SearchAddressFragment; import net.osmand.plus.dashboard.DashboardOnMap.DashboardType; import net.osmand.plus.helpers.AndroidUiHelper; -import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl; +import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu; import net.osmand.plus.mapcontextmenu.other.MapRoutePreferencesControl; import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.views.corenative.NativeCoreContext; @@ -76,7 +76,7 @@ public class MapControlsLayer extends OsmandMapLayer { private OsmandSettings settings; private MapRoutePreferencesControl optionsRouteControlDialog; - private MapRouteInfoControl mapRouteInfoControlDialog; + private MapRouteInfoMenu mapRouteInfoMenu; private MapHudButton backToLocationControl; private MapHudButton menuControl; private MapHudButton compassHud; @@ -103,6 +103,10 @@ public class MapControlsLayer extends OsmandMapLayer { mapView = mapActivity.getMapView(); } + public MapRouteInfoMenu getMapRouteInfoMenu() { + return mapRouteInfoMenu; + } + @Override public boolean drawInScreenPixels() { return true; @@ -217,7 +221,7 @@ public class MapControlsLayer extends OsmandMapLayer { } private void initRouteControls() { - mapRouteInfoControlDialog = new MapRouteInfoControl(mapActivity, this); + mapRouteInfoMenu = new MapRouteInfoMenu(mapActivity, this); optionsRouteControlDialog = new MapRoutePreferencesControl(mapActivity, this); } @@ -252,8 +256,8 @@ public class MapControlsLayer extends OsmandMapLayer { TextView routeGoButton = (TextView) main.findViewById(R.id.map_go_route_button); routeGoButton.setCompoundDrawablesWithIntrinsicBounds(app.getIconsCache().getIcon(R.drawable.map_start_navigation, R.color.color_myloc_distance), null, null, null); - routeGoButton.setText(AndroidUiHelper.isOrientationPortrait(mapActivity) ? - mapActivity.getString(R.string.shared_string_go) : ""); + routeGoButton.setText(/*AndroidUiHelper.isOrientationPortrait(mapActivity) ?*/ + mapActivity.getString(R.string.shared_string_go) /*: ""*/); routeGoButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -274,25 +278,25 @@ public class MapControlsLayer extends OsmandMapLayer { protected void clickRouteParams() { notifyClicked(); - mapRouteInfoControlDialog.hideDialog(); - optionsRouteControlDialog.showAndHideDialog(); + if (optionsRouteControlDialog.isDialogVisible()) { + optionsRouteControlDialog.hideDialog(); + mapRouteInfoMenu.showHideMenu(); + } else { + mapRouteInfoMenu.hide(); + optionsRouteControlDialog.showAndHideDialog(); + } } protected void clickRouteWaypoints() { if (getTargets().checkPointToNavigateShort()) { notifyClicked(); - if (optionsRouteControlDialog.isDialogVisible()) { - optionsRouteControlDialog.hideDialog(); - } else if (mapRouteInfoControlDialog.isDialogVisible()) { - mapRouteInfoControlDialog.hideDialog(); - } mapActivity.getMapActions().openIntermediatePointsDialog(); } } protected void clickRouteCancel() { notifyClicked(); - mapRouteInfoControlDialog.hideDialog(); + mapRouteInfoMenu.hide(); optionsRouteControlDialog.hideDialog(); if (mapActivity.getRoutingHelper().isFollowingMode()) { mapActivity.getMapActions().stopNavigationActionConfirm(); @@ -303,7 +307,7 @@ public class MapControlsLayer extends OsmandMapLayer { protected void clickRouteGo() { notifyClicked(); - mapRouteInfoControlDialog.hideDialog(); + mapRouteInfoMenu.hide(); optionsRouteControlDialog.hideDialog(); // RoutingHelper routingHelper = mapActivity.getMyApplication().getRoutingHelper(); // if (!routingHelper.isFollowingMode() && !routingHelper.isRoutePlanningMode()) { @@ -315,11 +319,11 @@ public class MapControlsLayer extends OsmandMapLayer { } public void showRouteInfoControlDialog() { - mapRouteInfoControlDialog.showHideDialog(); + mapRouteInfoMenu.showHideMenu(); } public void showDialog() { - mapRouteInfoControlDialog.setShowDialog(); + mapRouteInfoMenu.setShowMenu(); } private void initControls() { @@ -462,7 +466,7 @@ public class MapControlsLayer extends OsmandMapLayer { switchToRouteFollowingLayout(); } else { if (!app.getTargetPointsHelper().checkPointToNavigateShort()) { - mapRouteInfoControlDialog.showDialog(); + mapRouteInfoMenu.show(); } else { touchEvent = 0; mapActivity.getMapViewTrackingUtilities().backToLocationImpl(); @@ -531,7 +535,7 @@ public class MapControlsLayer extends OsmandMapLayer { int textColor = isNight ? mapActivity.getResources().getColor(R.color.widgettext_night) : Color.BLACK; if (shadowColor != shadw) { shadowColor = shadw; - // TODO + // TODOnightMode // updatextColor(textColor, shadw, rulerControl, zoomControls, mapMenuControls); } boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity); @@ -544,7 +548,7 @@ public class MapControlsLayer extends OsmandMapLayer { routePlanningMode = true; } boolean routeFollowingMode = !routePlanningMode && rh.isFollowingMode(); - boolean dialogOpened = optionsRouteControlDialog.isDialogVisible() || mapRouteInfoControlDialog.isDialogVisible(); + boolean dialogOpened = optionsRouteControlDialog.isDialogVisible() || mapRouteInfoMenu.isVisible(); boolean showRouteCalculationControls = routePlanningMode || ((System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS) && routeFollowingMode); updateMyLocation(rh, dialogOpened); @@ -581,7 +585,7 @@ public class MapControlsLayer extends OsmandMapLayer { } } - mapRouteInfoControlDialog.setVisible(showRouteCalculationControls); + mapRouteInfoMenu.setVisible(showRouteCalculationControls); if (showRouteCalculationControls) { if (!mapActivity.getRoutingHelper().isFollowingMode() && !mapActivity.getRoutingHelper().isPauseNavigation()) { @@ -634,7 +638,7 @@ public class MapControlsLayer extends OsmandMapLayer { public boolean onSingleTap(PointF point, RotatedTileBox tileBox) { - if (mapRouteInfoControlDialog.onSingleTap(point, tileBox)) { + if (mapRouteInfoMenu.onSingleTap(point, tileBox)) { return true; } stopCounter(); @@ -933,14 +937,14 @@ public class MapControlsLayer extends OsmandMapLayer { public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_ADDRESS_SELECT && resultCode == SearchAddressFragment.SELECT_ADDRESS_POINT_RESULT_OK) { String name = data.getStringExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_INTENT_KEY); - boolean target = data.getBooleanExtra(MapRouteInfoControl.TARGET_SELECT, true); + boolean target = data.getBooleanExtra(MapRouteInfoMenu.TARGET_SELECT, true); LatLon latLon = new LatLon( data.getDoubleExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_LAT, 0), data.getDoubleExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_LON, 0)); if (name != null) { - mapRouteInfoControlDialog.selectAddress(name, latLon, target); + mapRouteInfoMenu.selectAddress(name, latLon, target); } else { - mapRouteInfoControlDialog.selectAddress("", latLon, target); + mapRouteInfoMenu.selectAddress("", latLon, target); } } } diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java index 8973ad6940..2ee086a761 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java @@ -33,7 +33,7 @@ import net.osmand.plus.monitoring.OsmandMonitoringPlugin; import net.osmand.plus.routing.RouteDirectionInfo; import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.views.OsmandMapLayer.DrawSettings; -import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl; +import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu; import net.osmand.plus.views.mapwidgets.NextTurnInfoWidget.TurnDrawable; import net.osmand.router.TurnType; @@ -237,8 +237,8 @@ public class MapInfoWidgetsFactory { } } } else { - int di = MapRouteInfoControl.getDirectionInfo(); - if (di >= 0 && MapRouteInfoControl.isControlVisible() && + int di = MapRouteInfoMenu.getDirectionInfo(); + if (di >= 0 && MapRouteInfoMenu.isControlVisible() && di < routingHelper.getRouteDirections().size()) { showNextTurn = true; RouteDirectionInfo next = routingHelper.getRouteDirections().get(di); diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/RouteInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/RouteInfoWidgetsFactory.java index 94c63a80f2..b89b255e68 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/RouteInfoWidgetsFactory.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/RouteInfoWidgetsFactory.java @@ -30,7 +30,7 @@ import net.osmand.plus.views.AnimateDraggingMapThread; import net.osmand.plus.views.OsmandMapLayer.DrawSettings; import net.osmand.plus.views.OsmandMapTileView; import net.osmand.plus.views.TurnPathHelper; -import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl; +import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu; import net.osmand.router.RouteResultPreparation; import net.osmand.router.TurnType; import net.osmand.util.Algorithms; @@ -583,8 +583,8 @@ public class RouteInfoWidgetsFactory { dist = r.distanceTo; } } else { - int di = MapRouteInfoControl.getDirectionInfo(); - if (di >= 0 && MapRouteInfoControl.isControlVisible() + int di = MapRouteInfoMenu.getDirectionInfo(); + if (di >= 0 && MapRouteInfoMenu.isControlVisible() && di < rh.getRouteDirections().size()) { RouteDirectionInfo next = rh.getRouteDirections().get(di); if (next != null) { From 5d2a39a68df2d6cf8ba44dca2b71c43b6f55a5a9 Mon Sep 17 00:00:00 2001 From: Alexey Kulish Date: Thu, 10 Dec 2015 17:00:21 +0300 Subject: [PATCH 08/60] Fix icons for GPX layer --- OsmAnd/src/net/osmand/plus/views/GPXLayer.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index e59d4af503..2d571d1a3f 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -10,6 +10,7 @@ import android.graphics.Paint.Align; import android.graphics.Paint.Style; import android.graphics.Path; import android.graphics.PointF; +import android.graphics.PorterDuff; import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffColorFilter; import android.support.annotation.NonNull; @@ -294,6 +295,9 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex float y = tileBox.getPixYFromLatLon(o.lat, o.lon); if (intersects(boundIntersections, x, y, iconSize, iconSize)) { + boolean visit = isPointVisited(o); + int col = visit ? visitedColor : o.getColor(fcolor); + paintIcon.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.MULTIPLY)); canvas.drawBitmap(pointSmall, x - pointSmall.getWidth() / 2, y - pointSmall.getHeight() / 2, paintIcon); } else { fullObjects.add(o); From 2f97919233708ad85619ec5f1a2622321106eeaf Mon Sep 17 00:00:00 2001 From: GaidamakUA Date: Thu, 10 Dec 2015 16:48:35 +0200 Subject: [PATCH 09/60] Live updates state saved. --- .../dialog_live_updates_item_settings.xml | 4 +- .../plus/liveupdates/LiveUpdatesFragment.java | 41 ++++++++++++++++++- .../liveupdates/SettingsDialogFragment.java | 34 ++++++++------- 3 files changed, 60 insertions(+), 19 deletions(-) diff --git a/OsmAnd/res/layout/dialog_live_updates_item_settings.xml b/OsmAnd/res/layout/dialog_live_updates_item_settings.xml index cef79decc4..834a31c466 100644 --- a/OsmAnd/res/layout/dialog_live_updates_item_settings.xml +++ b/OsmAnd/res/layout/dialog_live_updates_item_settings.xml @@ -42,7 +42,7 @@ android:layout_row="1" android:text="@string/live_update"/> - @@ -52,7 +52,7 @@ android:layout_row="2" android:text="@string/only_download_over_wifi"/> - diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesFragment.java index 1ed549d8de..b2089f32f5 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/LiveUpdatesFragment.java @@ -40,6 +40,7 @@ import java.util.List; public class LiveUpdatesFragment extends Fragment { public static final String TITILE = "Live Updates"; + public static final String LIVE_UPDATES_ON_POSTFIX = "_live_updates_on"; public static final Comparator LOCAL_INDEX_INFO_COMPARATOR = new Comparator() { @Override public int compare(LocalIndexInfo lhs, LocalIndexInfo rhs) { @@ -92,6 +93,10 @@ public class LiveUpdatesFragment extends Fragment { return (AbstractDownloadActivity) getActivity(); } + public void notifyLiveUpdatesChanged() { + adapter.notifyLiveUpdatesChanged(); + } + protected class LocalIndexesAdapter extends OsmandBaseExpandableListAdapter { final ArrayList dataShouldUpdate = new ArrayList<>(); final ArrayList dataShouldNotUpdate = new ArrayList<>(); @@ -104,7 +109,33 @@ public class LiveUpdatesFragment extends Fragment { } public void add(LocalIndexInfo info) { - dataShouldNotUpdate.add(info); + OsmandSettings.CommonPreference preference = + preferenceForLocalIndex(LIVE_UPDATES_ON_POSTFIX, info); + if (preference.get()) { + dataShouldUpdate.add(info); + } else { + dataShouldNotUpdate.add(info); + } + } + + public void notifyLiveUpdatesChanged() { + for (LocalIndexInfo localIndexInfo : dataShouldUpdate) { + OsmandSettings.CommonPreference preference = + preferenceForLocalIndex(LIVE_UPDATES_ON_POSTFIX, localIndexInfo); + if (!preference.get()) { + dataShouldUpdate.remove(localIndexInfo); + dataShouldNotUpdate.add(localIndexInfo); + } + } + for (LocalIndexInfo localIndexInfo : dataShouldNotUpdate) { + OsmandSettings.CommonPreference preference = + preferenceForLocalIndex(LIVE_UPDATES_ON_POSTFIX, localIndexInfo); + if (preference.get()) { + dataShouldUpdate.add(localIndexInfo); + dataShouldNotUpdate.remove(localIndexInfo); + } + } + notifyDataSetChanged(); } public void sort() { @@ -215,6 +246,13 @@ public class LiveUpdatesFragment extends Fragment { return true; } + private OsmandSettings.CommonPreference preferenceForLocalIndex(String idPostfix, + LocalIndexInfo item) { + final OsmandApplication myApplication = fragment.getMyActivity().getMyApplication(); + final OsmandSettings settings = myApplication.getSettings(); + final String settingId = item.getFileName() + idPostfix; + return settings.registerBooleanPreference(settingId, false); + } } private void expandAllGroups() { @@ -340,5 +378,4 @@ public class LiveUpdatesFragment extends Fragment { adapter.sort(); } } - } diff --git a/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java b/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java index 0370c0a80f..c196316497 100644 --- a/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/liveupdates/SettingsDialogFragment.java @@ -6,10 +6,9 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; import android.support.v7.app.AlertDialog; +import android.support.v7.widget.SwitchCompat; import android.view.LayoutInflater; import android.view.View; -import android.widget.CompoundButton; -import android.widget.ToggleButton; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandSettings; @@ -24,11 +23,24 @@ public class SettingsDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + final LocalIndexInfo localIndexInfo = getArguments().getParcelable(LOCAL_INDEX); + View view = LayoutInflater.from(getActivity()) .inflate(R.layout.dialog_live_updates_item_settings, null); - final LocalIndexInfo localIndexInfo = getArguments().getParcelable(LOCAL_INDEX); + final SwitchCompat liveUpdatesSwitch = (SwitchCompat) view.findViewById(R.id.liveUpdatesSwitch); + + final OsmandSettings.CommonPreference liveUpdatePreference = + preferenceForLocalIndex(LiveUpdatesFragment.LIVE_UPDATES_ON_POSTFIX, localIndexInfo); + liveUpdatesSwitch.setChecked(liveUpdatePreference.get()); + builder.setView(view) - .setPositiveButton(R.string.shared_string_save, null) + .setPositiveButton(R.string.shared_string_save, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + liveUpdatePreference.set(liveUpdatesSwitch.isChecked()); + getLiveUpdatesFragment().notifyLiveUpdatesChanged(); + } + }) .setNegativeButton(R.string.shared_string_cancel, null) .setNeutralButton(R.string.update_now, new DialogInterface.OnClickListener() { @Override @@ -43,20 +55,12 @@ public class SettingsDialogFragment extends DialogFragment { return (LiveUpdatesFragment) getParentFragment(); } - private void initSwitch(ToggleButton toggleButton, String idPostfix, LocalIndexInfo item) { + private OsmandSettings.CommonPreference preferenceForLocalIndex(String idPostfix, + LocalIndexInfo item) { final OsmandApplication myApplication = ((OsmandActionBarActivity) this.getActivity()).getMyApplication(); final OsmandSettings settings = myApplication.getSettings(); final String settingId = item.getFileName() + idPostfix; - final OsmandSettings.CommonPreference preference = - settings.registerBooleanPreference(settingId, false); - boolean initialValue = preference.get(); - toggleButton.setChecked(initialValue); - toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - preference.set(isChecked); - } - }); + return settings.registerBooleanPreference(settingId, false); } public static SettingsDialogFragment createInstance(LocalIndexInfo localIndexInfo) { From c5b8f65a02f2fb3ee746654bc3ab9d5217e36306 Mon Sep 17 00:00:00 2001 From: Adriano Rosa Date: Wed, 9 Dec 2015 18:33:03 +0100 Subject: [PATCH 10/60] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 56f5f93e80..8abff87ff0 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -1954,4 +1954,5 @@ Atualizar tudo Somente baixar via Wi-Fi Atualização ao vivo +Atualizar agora From 26f3e77ff52977b99815fa9958ee426aec86dda7 Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Wed, 9 Dec 2015 20:26:41 +0100 Subject: [PATCH 11/60] Translated using Weblate (French) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-fr/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index c30cdc74ba..707e94d19f 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -2073,4 +2073,5 @@ Télécharger uniquement en WIFI Mise à jour en temps réel Randonnée à cheval - + Lancer la mise à jour + From effda0b099b563b57feb93729f1b6be5ed3a6ea4 Mon Sep 17 00:00:00 2001 From: ezjerry liao Date: Wed, 9 Dec 2015 16:57:22 +0100 Subject: [PATCH 12/60] Translated using Weblate (Chinese (Taiwan)) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index c2eb76efb7..c435ce6319 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -2032,4 +2032,5 @@ 更新全部 只在 WiFi 連線下載 即時更新 +立即更新 From f35623903fa5fbdb40cba2a6eaf41dfde25d4aa9 Mon Sep 17 00:00:00 2001 From: jf-simon Date: Thu, 10 Dec 2015 07:17:40 +0100 Subject: [PATCH 13/60] Translated using Weblate (German) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-de/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 76a533e783..c5633de5d8 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -2073,4 +2073,5 @@ Aktualisierungsintervall Nur über WLAN herunterladen Live Aktualisierung +Jetzt aktualisieren From 07fb28b7c0e2996452803dc865e3d6fab87f8922 Mon Sep 17 00:00:00 2001 From: josep constanti Date: Thu, 10 Dec 2015 16:56:01 +0100 Subject: [PATCH 14/60] Translated using Weblate (Catalan) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-ca/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index f437083896..77a9aedbeb 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -1876,4 +1876,8 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu Taxa de bits de l\'àudio Seleccioneu la taxa de bits de l\'àudio Consulta per adreça - + Actualitza tots + Baixades només amb WIFI + Actualitza al moment + Actualitza ara + From 358e0df06e6a60cbebd9e4afdcf25cc5537cc688 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Thu, 10 Dec 2015 10:48:40 +0100 Subject: [PATCH 15/60] Translated using Weblate (Danish) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-da/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 0b89a06289..c71325ea45 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -2186,4 +2186,5 @@ Opdater hver Hent kun over WiFi Realtids opdatering +Opdater nu From a08feb4e609b6fb6c1e0b0b3cb881e5a84abbf2b Mon Sep 17 00:00:00 2001 From: xmd5a Date: Thu, 10 Dec 2015 22:30:21 +0300 Subject: [PATCH 16/60] Update phrases --- OsmAnd/res/values-ru/phrases.xml | 2 ++ OsmAnd/res/values/phrases.xml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml index 5c285d25a3..e8596419cd 100644 --- a/OsmAnd/res/values-ru/phrases.xml +++ b/OsmAnd/res/values-ru/phrases.xml @@ -2543,4 +2543,6 @@ Фитнес-центр Фитнес + Бильярд + diff --git a/OsmAnd/res/values/phrases.xml b/OsmAnd/res/values/phrases.xml index ddd0d4e108..337f77f87b 100644 --- a/OsmAnd/res/values/phrases.xml +++ b/OsmAnd/res/values/phrases.xml @@ -2537,4 +2537,6 @@ Fitness centre Fitness + Billiards + From 3add27727341b0a77495c864b8ab72abe6dc6858 Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Thu, 10 Dec 2015 16:32:26 +0100 Subject: [PATCH 17/60] Translated using Weblate (French) Currently translated at 100.0% (1845 of 1845 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 707e94d19f..67ad96a8b7 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -2073,5 +2073,5 @@ Télécharger uniquement en WIFI Mise à jour en temps réel Randonnée à cheval - Lancer la mise à jour + Effectuer la mise à jour maintenant From 825a68de06bb24cd04bbb7f51c934b4ebd46d584 Mon Sep 17 00:00:00 2001 From: Leif Larsson Date: Thu, 10 Dec 2015 16:39:17 +0100 Subject: [PATCH 18/60] Translated using Weblate (Swedish) Currently translated at 99.5% (1837 of 1845 strings) --- OsmAnd/res/values-sv/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml index 3d1e5477ab..74a8a8646f 100644 --- a/OsmAnd/res/values-sv/strings.xml +++ b/OsmAnd/res/values-sv/strings.xml @@ -2033,4 +2033,5 @@ Uppdatera varje Hämta endast via WiFi Direktuppdatering +Uppdatera nu From 872afd7b5d3baed19b9026d7495055568675c0a1 Mon Sep 17 00:00:00 2001 From: jf-simon Date: Wed, 9 Dec 2015 19:48:36 +0100 Subject: [PATCH 19/60] Translated using Weblate (German) Currently translated at 100.0% (2341 of 2341 strings) --- OsmAnd/res/values-de/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index d5b16d2c64..3a45002030 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -2521,4 +2521,6 @@ Fitnesscenter Fitness +Billard + From bac0208a7d295a49fde840d5c67ac0b299c1c878 Mon Sep 17 00:00:00 2001 From: Adriano Rosa Date: Wed, 9 Dec 2015 14:56:45 +0100 Subject: [PATCH 20/60] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2341 of 2341 strings) --- OsmAnd/res/values-pt-rBR/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index 177be84594..f0143b2142 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -2562,4 +2562,6 @@ Academia de ginástica Fitness +Bilhar + From 7ba7a272dadd6da304177fbe4fba24e510b892b8 Mon Sep 17 00:00:00 2001 From: Franco Date: Thu, 10 Dec 2015 21:13:42 +0100 Subject: [PATCH 21/60] Translated using Weblate (Argentinean Spanish) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 8a9bc9f45d..965d0ac766 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -2003,4 +2003,8 @@ Dirección indeterminada Buscando dirección Rutas a caballo - + Actualizar cada + Descargar sólo por WiFi + Actualización en vivo + Actualizar ahora + From 46b4b10c8f3fdbf70e9967e946f4b8c67e78b8f3 Mon Sep 17 00:00:00 2001 From: Franco Date: Thu, 10 Dec 2015 21:16:45 +0100 Subject: [PATCH 22/60] Translated using Weblate (Argentinean Spanish) Currently translated at 100.0% (2341 of 2341 strings) --- OsmAnd/res/values-es-rAR/phrases.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index 2843ad49aa..df83e42a3c 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -2564,4 +2564,9 @@ Pirámide +Gimnasio + Educación física + + Billar + From c0b4fccd95f8f461866dc28998b2c85a3b0a68f7 Mon Sep 17 00:00:00 2001 From: Franco Date: Wed, 9 Dec 2015 18:36:45 +0100 Subject: [PATCH 23/60] Translated using Weblate (Spanish) Currently translated at 100.0% (2341 of 2341 strings) --- OsmAnd/res/values-es/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml index 3afa34201e..c29eb2fc96 100644 --- a/OsmAnd/res/values-es/phrases.xml +++ b/OsmAnd/res/values-es/phrases.xml @@ -2571,4 +2571,6 @@ Gimnasio Gimnasio (deporte) +Billar + From 8d1a49df37a8a6c3fd25798e89abc6923d3c74d3 Mon Sep 17 00:00:00 2001 From: Franco Date: Thu, 10 Dec 2015 21:19:28 +0100 Subject: [PATCH 24/60] Translated using Weblate (Spanish) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-es/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index 796b6cb8c4..5f40be6282 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -2002,7 +2002,8 @@ Dirección indeterminada Buscando dirección Rutas a caballo - Actualizar todos + Actualizar cada Descargar sólo por WiFi Actualización en vivo +Actualizar ahora From 996a2786d7dc781e2b3554051108a957d7ebb515 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Wed, 9 Dec 2015 13:58:38 +0100 Subject: [PATCH 25/60] Translated using Weblate (Danish) Currently translated at 100.0% (2341 of 2341 strings) --- OsmAnd/res/values-da/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml index 3c6fe5a04f..a98464512c 100644 --- a/OsmAnd/res/values-da/phrases.xml +++ b/OsmAnd/res/values-da/phrases.xml @@ -2594,4 +2594,6 @@ Fitnesscenter Fitness +Billard + From 0b4a95a37549449f63c7853e857a6fa2fff0ed73 Mon Sep 17 00:00:00 2001 From: Kees-Jan Timmer Date: Wed, 9 Dec 2015 23:35:34 +0100 Subject: [PATCH 26/60] Translated using Weblate (Dutch) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-nl/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index d5ea869271..8dc89fcd38 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -2125,4 +2125,5 @@ Update elke "Alleen downloaden via WiFi" Live Update +Nu bijwerken From aca03567da3121589c8f6051959722ebdcd42527 Mon Sep 17 00:00:00 2001 From: Massimiliano Caniparoli Date: Fri, 11 Dec 2015 00:04:15 +0100 Subject: [PATCH 27/60] Translated using Weblate (Italian) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-it/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index c2b06316d4..65f7d1b78b 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -2099,4 +2099,7 @@ Aggiorna ogni Scarica solo da rete WiFi Aggiornamenti in tempo reale +Frisone occidentale + Albanese (Tosco) + Aggiorna ora From c2bd5f184b0e6dd039e7b3f47e573f8cc40f09fd Mon Sep 17 00:00:00 2001 From: P Date: Fri, 11 Dec 2015 07:03:20 +0100 Subject: [PATCH 28/60] Translated using Weblate (Bulgarian) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-bg/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-bg/strings.xml b/OsmAnd/res/values-bg/strings.xml index 4404e4a4c6..8012691c8f 100644 --- a/OsmAnd/res/values-bg/strings.xml +++ b/OsmAnd/res/values-bg/strings.xml @@ -2007,4 +2007,8 @@ Брой редове %1$s Можете да управлявате приложението чрез гъвкаво табло или чрез статично меню. Вашият избор може да бъде променен по-късно. Пътеки за конна езда - + Обновяване на всеки + Сваляне само през WiFi + Актуализиране на момента + Актуализирай сега + From e6eb1b0ecd44d2ec2df6989094fde0c455be78b9 Mon Sep 17 00:00:00 2001 From: Alexey Kulish Date: Fri, 11 Dec 2015 16:29:36 +0300 Subject: [PATCH 29/60] Route preparation menu in progress --- OsmAnd/res/layout-land/map_hud_top.xml | 2 +- OsmAnd/res/layout-land/plan_route_info.xml | 102 +++++++- .../res/layout/map_route_prepare_bottom.xml | 9 +- OsmAnd/res/layout/plan_route_info.xml | 102 +++++++- OsmAnd/res/values-large/sizes.xml | 3 +- OsmAnd/res/values/sizes.xml | 1 + OsmAnd/res/values/strings.xml | 2 + OsmAnd/src/net/osmand/AndroidUtils.java | 13 + .../net/osmand/plus/ContextMenuAdapter.java | 2 +- OsmAnd/src/net/osmand/plus/IconsCache.java | 4 + .../osmand/plus/activities/MapActivity.java | 7 +- .../plus/activities/SettingsBaseActivity.java | 2 +- .../activities/actions/AppModeDialog.java | 25 +- .../SettingsDevelopmentActivity.java | 2 +- .../other/MapRouteInfoMenu.java | 230 ++++++++++++++---- .../other/MapRouteInfoMenuFragment.java | 87 +++++++ .../other/MapRoutePreferencesControl.java | 2 +- .../net/osmand/plus/views/FavoritesLayer.java | 3 + .../osmand/plus/views/MapControlsLayer.java | 128 +++------- 19 files changed, 539 insertions(+), 187 deletions(-) diff --git a/OsmAnd/res/layout-land/map_hud_top.xml b/OsmAnd/res/layout-land/map_hud_top.xml index 8d0b0423e0..0d78ef80fa 100644 --- a/OsmAnd/res/layout-land/map_hud_top.xml +++ b/OsmAnd/res/layout-land/map_hud_top.xml @@ -8,7 +8,7 @@ diff --git a/OsmAnd/res/layout-land/plan_route_info.xml b/OsmAnd/res/layout-land/plan_route_info.xml index fdd26eefd5..76a04908b9 100644 --- a/OsmAnd/res/layout-land/plan_route_info.xml +++ b/OsmAnd/res/layout-land/plan_route_info.xml @@ -11,7 +11,7 @@ android:layout_width="@dimen/map_route_planning_land_width" android:layout_height="match_parent" android:layout_gravity="bottom" - android:background="?attr/left_menu_view_bg" + android:background="@drawable/bg_left_menu_dark" android:clickable="true" android:orientation="vertical"> @@ -26,10 +26,11 @@ android:layout_height="wrap_content"> @@ -261,13 +267,84 @@ + + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/layout/map_route_prepare_bottom.xml b/OsmAnd/res/layout/map_route_prepare_bottom.xml index c028922324..eb8a2b009c 100644 --- a/OsmAnd/res/layout/map_route_prepare_bottom.xml +++ b/OsmAnd/res/layout/map_route_prepare_bottom.xml @@ -15,9 +15,10 @@ android:src="@drawable/ic_action_test_light" /> + android:background="@color/dashboard_divider_dark"/> + android:background="@color/dashboard_divider_dark"/> + android:background="@color/dashboard_divider_dark"/> @@ -26,10 +26,11 @@ android:layout_height="wrap_content"> @@ -261,13 +267,84 @@ + + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/values-large/sizes.xml b/OsmAnd/res/values-large/sizes.xml index e87db739d8..37553b7427 100644 --- a/OsmAnd/res/values-large/sizes.xml +++ b/OsmAnd/res/values-large/sizes.xml @@ -10,7 +10,8 @@ 450dp 160dp 510dp - + 496dp + 60dp 78dp 66dp diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml index 68eb36dd58..f1dc5e7b83 100644 --- a/OsmAnd/res/values/sizes.xml +++ b/OsmAnd/res/values/sizes.xml @@ -86,6 +86,7 @@ 1dp 1dp 320dp + 306dp 330dp 100dp diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index a09ab9ef7c..168454c65e 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -9,6 +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 --> + Distance: + Travelling time: Every Hour Once a day diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java index cbae5e3012..63050e10c8 100644 --- a/OsmAnd/src/net/osmand/AndroidUtils.java +++ b/OsmAnd/src/net/osmand/AndroidUtils.java @@ -3,8 +3,10 @@ package net.osmand; import java.util.Date; +import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Configuration; +import android.os.Build; import android.text.format.DateFormat; import android.view.View; import android.view.ViewParent; @@ -64,4 +66,15 @@ public class AndroidUtils { return null; } + + @SuppressLint("NewApi") + @SuppressWarnings("deprecation") + public static void setBackground(Context ctx, View view, boolean night, int lightResId, int darkResId) { + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { + view.setBackground(ctx.getResources().getDrawable(night ? darkResId : lightResId, + ctx.getTheme())); + } else { + view.setBackgroundDrawable(ctx.getResources().getDrawable(night ? darkResId : lightResId)); + } + } } diff --git a/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java b/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java index a55cde4123..99c6187cca 100644 --- a/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java +++ b/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java @@ -330,7 +330,7 @@ public class ContextMenuAdapter { Integer lid = getLayoutId(position); if (lid == R.layout.mode_toggles) { final Set selected = new LinkedHashSet(); - return AppModeDialog.prepareAppModeDrawerView(activity, visibleModes, selected, allModes, new View.OnClickListener() { + return AppModeDialog.prepareAppModeDrawerView(activity, visibleModes, selected, allModes, false, new View.OnClickListener() { @Override public void onClick(View view) { if (selected.size() > 0) { diff --git a/OsmAnd/src/net/osmand/plus/IconsCache.java b/OsmAnd/src/net/osmand/plus/IconsCache.java index 2b8a9fdbaa..393c411891 100644 --- a/OsmAnd/src/net/osmand/plus/IconsCache.java +++ b/OsmAnd/src/net/osmand/plus/IconsCache.java @@ -82,6 +82,10 @@ public class IconsCache { return getDrawable(id, app.getSettings().isLightContent() ? R.color.icon_color : 0); } + public Drawable getContentIcon(@DrawableRes int id, boolean isLightContent) { + return getDrawable(id, isLightContent ? R.color.icon_color : 0); + } + public Drawable getIcon(@DrawableRes int id) { return getDrawable(id, 0); } diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 64bb4b95b2..84b452fbcf 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -555,7 +555,12 @@ public class MapActivity extends AccessibleActivity implements DownloadEvents, if (mapLabelToShow != null && !mapLabelToShow.contextMenuDisabled()) { mapContextMenu.setMapCenter(latLonToShow); mapContextMenu.setMapPosition(mapView.getMapPosition()); - mapContextMenu.show(latLonToShow, mapLabelToShow, toShow); + if (mapLayers.getMapControlsLayer().getMapRouteInfoMenu().isVisible()) { + mapContextMenu.showMinimized(latLonToShow, mapLabelToShow, toShow); + mapLayers.getMapControlsLayer().getMapRouteInfoMenu().updateMenu(); + } else { + mapContextMenu.show(latLonToShow, mapLabelToShow, toShow); + } } if (!latLonToShow.equals(cur)) { mapView.getAnimatedDraggingThread().startMoving(latLonToShow.getLatitude(), diff --git a/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java b/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java index 02c83a6ddd..95d2ce3bdd 100644 --- a/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java @@ -400,7 +400,7 @@ public abstract class SettingsBaseActivity extends ActionBarPreferenceActivity protected void profileDialog() { AlertDialog.Builder b = new AlertDialog.Builder(this); final Set selected = new LinkedHashSet(); - View v = AppModeDialog.prepareAppModeView(this, selected, false, null, true, + View v = AppModeDialog.prepareAppModeView(this, selected, false, null, true, false, new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/OsmAnd/src/net/osmand/plus/activities/actions/AppModeDialog.java b/OsmAnd/src/net/osmand/plus/activities/actions/AppModeDialog.java index ec14b9bbf3..e4ecad3b03 100644 --- a/OsmAnd/src/net/osmand/plus/activities/actions/AppModeDialog.java +++ b/OsmAnd/src/net/osmand/plus/activities/actions/AppModeDialog.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; +import net.osmand.AndroidUtils; import net.osmand.plus.ApplicationMode; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.OsmandApplication; @@ -20,7 +21,7 @@ import android.widget.LinearLayout.LayoutParams; public class AppModeDialog { public static View prepareAppModeView(Activity a, final Set selected, boolean showDefault, - ViewGroup parent, final boolean singleSelection, final View.OnClickListener onClickListener) { + ViewGroup parent, final boolean singleSelection, boolean useMapTheme, final View.OnClickListener onClickListener) { OsmandSettings settings = ((OsmandApplication) a.getApplication()).getSettings(); final List values = new ArrayList(ApplicationMode.values(settings)); if(!showDefault) { @@ -29,21 +30,21 @@ public class AppModeDialog { if (showDefault || settings.getApplicationMode() != ApplicationMode.DEFAULT) { selected.add(settings.getApplicationMode()); } - return prepareAppModeView(a, values, selected, parent, singleSelection, false, onClickListener); + return prepareAppModeView(a, values, selected, parent, singleSelection, false, useMapTheme, onClickListener); } //special method for drawer menu //needed because if there's more than 4 items - the don't fit in drawer public static View prepareAppModeDrawerView(Activity a, List visible, final Set selected, ContextMenuAdapter.BooleanResult allModes, - final View.OnClickListener onClickListener) { + boolean useMapTheme, final View.OnClickListener onClickListener) { OsmandSettings settings = ((OsmandApplication) a.getApplication()).getSettings(); final List values = new ArrayList(ApplicationMode.values(settings)); selected.add(settings.getApplicationMode()); - return prepareAppModeView(a, values, selected, null, true, true, onClickListener); + return prepareAppModeView(a, values, selected, null, true, true, useMapTheme, onClickListener); } public static View prepareAppModeView(Activity a, final List values , final Set selected, - ViewGroup parent, final boolean singleSelection, boolean drawer, final View.OnClickListener onClickListener) { + ViewGroup parent, final boolean singleSelection, boolean drawer, boolean useMapTheme, final View.OnClickListener onClickListener) { View ll = a.getLayoutInflater().inflate(R.layout.mode_toggles, parent); final View[] buttons = new View[values.size()]; int k = 0; @@ -52,7 +53,7 @@ public class AppModeDialog { } for (int i = 0; i < buttons.length; i++) { updateButtonState((OsmandApplication) a.getApplication(), values, selected, onClickListener, buttons, i, - singleSelection); + singleSelection, useMapTheme); } return ll; } @@ -60,7 +61,7 @@ public class AppModeDialog { private static void updateButtonState(final OsmandApplication ctx, final List visible, final Set selected, final View.OnClickListener onClickListener, final View[] buttons, - int i, final boolean singleChoice) { + int i, final boolean singleChoice, final boolean useMapTheme) { if (buttons[i] != null) { View tb = buttons[i]; final ApplicationMode mode = visible.get(i); @@ -70,7 +71,13 @@ public class AppModeDialog { iv.setImageDrawable(ctx.getIconsCache().getIcon(mode.getSmallIconDark(), R.color.osmand_orange)); tb.findViewById(R.id.selection).setVisibility(View.VISIBLE); } else { - iv.setImageDrawable(ctx.getIconsCache().getContentIcon(mode.getSmallIconDark())); + if (useMapTheme) { + boolean nightMode = ctx.getDaynightHelper().isNightMode(); + iv.setImageDrawable(ctx.getIconsCache().getContentIcon(mode.getSmallIconDark(), !nightMode)); + AndroidUtils.setBackground(ctx, iv, nightMode, R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); + } else { + iv.setImageDrawable(ctx.getIconsCache().getContentIcon(mode.getSmallIconDark())); + } tb.findViewById(R.id.selection).setVisibility(View.INVISIBLE); } iv.setOnClickListener(new View.OnClickListener() { @@ -94,7 +101,7 @@ public class AppModeDialog { onClickListener.onClick(null); } for(int i = 0; i < visible.size(); i++) { - updateButtonState(ctx, visible, selected, onClickListener, buttons, i, singleChoice); + updateButtonState(ctx, visible, selected, onClickListener, buttons, i, singleChoice, useMapTheme); } } }); diff --git a/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java b/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java index f7487c2e9c..51d346b749 100644 --- a/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java +++ b/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java @@ -211,7 +211,7 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity { modes.remove(ApplicationMode.DEFAULT); final Set selected = new LinkedHashSet(ApplicationMode.values(settings)); selected.remove(ApplicationMode.DEFAULT); - View v = AppModeDialog.prepareAppModeView(this, modes, selected, null, false, false, + View v = AppModeDialog.prepareAppModeView(this, modes, selected, null, false, false, false, new View.OnClickListener() { @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenu.java index 866d8ea90d..356152ccff 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenu.java @@ -1,12 +1,16 @@ package net.osmand.plus.mapcontextmenu.other; import android.app.Dialog; +import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnDismissListener; import android.content.Intent; +import android.content.res.Resources; import android.graphics.PointF; import android.graphics.drawable.Drawable; import android.support.v4.app.Fragment; +import android.support.v4.content.ContextCompat; +import android.util.TypedValue; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; @@ -35,6 +39,7 @@ import net.osmand.plus.activities.ShowRouteInfoActivity; import net.osmand.plus.activities.actions.AppModeDialog; import net.osmand.plus.activities.search.SearchAddressActivity; import net.osmand.plus.dialogs.FavoriteDialogs; +import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.plus.routing.RouteDirectionInfo; import net.osmand.plus.routing.RoutingHelper; @@ -48,6 +53,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import static android.util.TypedValue.COMPLEX_UNIT_DIP; + public class MapRouteInfoMenu implements IRouteInformationListener { public static int directionInfo = -1; public static boolean controlVisible = false; @@ -61,6 +68,8 @@ public class MapRouteInfoMenu implements IRouteInformationListener { private MapActivity mapActivity; private MapControlsLayer mapControlsLayer; public static final String TARGET_SELECT = "TARGET_SELECT"; + private boolean nightMode; + private boolean switched; public MapRouteInfoMenu(MapActivity mapActivity, MapControlsLayer mapControlsLayer) { this.mapActivity = mapActivity; @@ -116,6 +125,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener { } public void updateInfo(final View main) { + nightMode = mapActivity.getMyApplication().getDaynightHelper().isNightMode(); updateViaView(main); updateFromSpinner(main); updateToSpinner(main); @@ -132,6 +142,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener { private void updateRouteCalcProgress(final View main) { TargetPointsHelper targets = getTargets(); if (targets.hasTooLongDistanceToNavigate()) { + main.findViewById(R.id.dividerToDropDown).setVisibility(View.VISIBLE); main.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE); TextView textView = (TextView) main.findViewById(R.id.InfoTextView); ImageView iconView = (ImageView) main.findViewById(R.id.InfoIcon); @@ -139,8 +150,9 @@ public class MapRouteInfoMenu implements IRouteInformationListener { main.findViewById(R.id.Next).setVisibility(View.GONE); textView.setText(R.string.route_is_too_long); textView.setVisibility(View.VISIBLE); - iconView.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_warning)); + iconView.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_warning, isLight())); } else { + main.findViewById(R.id.dividerToDropDown).setVisibility(View.GONE); main.findViewById(R.id.RouteInfoControls).setVisibility(View.GONE); } } @@ -153,7 +165,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener { ViewGroup vg = (ViewGroup) parentView.findViewById(R.id.app_modes); vg.removeAllViews(); AppModeDialog.prepareAppModeView(mapActivity, selected, false, - vg, true, new View.OnClickListener() { + vg, true, true, new View.OnClickListener() { @Override public void onClick(View v) { if (selected.size() > 0) { @@ -167,15 +179,25 @@ public class MapRouteInfoMenu implements IRouteInformationListener { private void updateViaView(final View parentView) { String via = generateViaDescription(); + View viaLayout = parentView.findViewById(R.id.ViaLayout); if (via.length() == 0) { - parentView.findViewById(R.id.ViaLayout).setVisibility(View.GONE); + viaLayout.setVisibility(View.GONE); parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.GONE); } else { - parentView.findViewById(R.id.ViaLayout).setVisibility(View.VISIBLE); + viaLayout.setVisibility(View.VISIBLE); parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.VISIBLE); ((TextView) parentView.findViewById(R.id.ViaView)).setText(via); } + viaLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (getTargets().checkPointToNavigateShort()) { + mapActivity.getMapActions().openIntermediatePointsDialog(); + } + } + }); + ImageView viaIcon = (ImageView) parentView.findViewById(R.id.viaIcon); if (isLight()) { viaIcon.setImageDrawable(getIconOrig(R.drawable.widget_intermediate_day)); @@ -186,6 +208,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener { private void updateToSpinner(final View parentView) { final Spinner toSpinner = setupToSpinner(parentView); + toSpinner.setClickable(false); toSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { @@ -206,6 +229,13 @@ public class MapRouteInfoMenu implements IRouteInformationListener { } }); + parentView.findViewById(R.id.ToLayout).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + toSpinner.performClick(); + } + }); + ImageView toIcon = (ImageView) parentView.findViewById(R.id.toIcon); if (isLight()) { toIcon.setImageDrawable(getIconOrig(R.drawable.widget_target_day)); @@ -214,19 +244,14 @@ public class MapRouteInfoMenu implements IRouteInformationListener { } ImageView toDropDownIcon = (ImageView) parentView.findViewById(R.id.toDropDownIcon); - toDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down)); - toDropDownIcon.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - toSpinner.performClick(); - } - }); + toDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down, isLight())); } @SuppressWarnings("deprecation") private void updateFromSpinner(final View parentView) { final TargetPointsHelper targets = getTargets(); final Spinner fromSpinner = setupFromSpinner(parentView); + fromSpinner.setClickable(false); fromSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override @@ -252,18 +277,19 @@ public class MapRouteInfoMenu implements IRouteInformationListener { } }); - ImageView fromIcon = (ImageView) parentView.findViewById(R.id.fromIcon); - ApplicationMode appMode = mapActivity.getMyApplication().getSettings().getApplicationMode(); - fromIcon.setImageDrawable(mapActivity.getResources().getDrawable(appMode.getResourceLocationDay())); - - ImageView fromDropDownIcon = (ImageView) parentView.findViewById(R.id.fromDropDownIcon); - fromDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down)); - fromDropDownIcon.setOnClickListener(new View.OnClickListener() { + parentView.findViewById(R.id.FromLayout).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { fromSpinner.performClick(); } }); + + ImageView fromIcon = (ImageView) parentView.findViewById(R.id.fromIcon); + ApplicationMode appMode = mapActivity.getMyApplication().getSettings().getApplicationMode(); + fromIcon.setImageDrawable(mapActivity.getResources().getDrawable(appMode.getResourceLocationDay())); + + ImageView fromDropDownIcon = (ImageView) parentView.findViewById(R.id.fromDropDownIcon); + fromDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down, isLight())); } protected void selectOnScreen(boolean target) { @@ -304,7 +330,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener { } private boolean isLight() { - return mapActivity.getMyApplication().getSettings().isLightContent(); + return !nightMode; } private Drawable getIconOrig(int iconId) { @@ -357,10 +383,11 @@ public class MapRouteInfoMenu implements IRouteInformationListener { } private void updateRouteButtons(final View mainView) { + mainView.findViewById(R.id.dividerToDropDown).setVisibility(View.VISIBLE); mainView.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE); final OsmandApplication ctx = mapActivity.getMyApplication(); ImageView prev = (ImageView) mainView.findViewById(R.id.Prev); - prev.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_prev)); + prev.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_prev, isLight())); if (directionInfo >= 0) { prev.setVisibility(View.VISIBLE); prev.setOnClickListener(new View.OnClickListener() { @@ -389,7 +416,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener { } ImageView next = (ImageView) mainView.findViewById(R.id.Next); next.setVisibility(View.VISIBLE); - next.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_next)); + next.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_next, isLight())); next.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -416,19 +443,45 @@ public class MapRouteInfoMenu implements IRouteInformationListener { }); TextView textView = (TextView) mainView.findViewById(R.id.InfoTextView); - ImageView iconView = (ImageView) mainView.findViewById(R.id.InfoIcon); + ImageView infoIcon = (ImageView) mainView.findViewById(R.id.InfoIcon); + ImageView durationIcon = (ImageView) mainView.findViewById(R.id.DurationIcon); + View infoDistanceView = mainView.findViewById(R.id.InfoDistance); + View infoDurationView = mainView.findViewById(R.id.InfoDuration); if (directionInfo >= 0) { - iconView.setVisibility(View.GONE); + infoIcon.setVisibility(View.GONE); + durationIcon.setVisibility(View.GONE); + infoDistanceView.setVisibility(View.GONE); + infoDurationView.setVisibility(View.GONE); + textView.setVisibility(View.VISIBLE); } else { - iconView.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_action_info_dark)); - iconView.setVisibility(View.VISIBLE); + infoIcon.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_action_polygom_dark, isLight())); + infoIcon.setVisibility(View.VISIBLE); + durationIcon.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_action_time, isLight())); + durationIcon.setVisibility(View.VISIBLE); + infoDistanceView.setVisibility(View.VISIBLE); + infoDurationView.setVisibility(View.VISIBLE); + textView.setVisibility(View.GONE); } if (directionInfo >= 0 && routingHelper.getRouteDirections() != null && directionInfo < routingHelper.getRouteDirections().size()) { RouteDirectionInfo ri = routingHelper.getRouteDirections().get(directionInfo); textView.setText((directionInfo + 1) + ". " + ri.getDescriptionRoutePart() + " " + OsmAndFormatter.getFormattedDistance(ri.distance, ctx)); } else { - textView.setText(ctx.getRoutingHelper().getGeneralRouteInformation().replace(",", ",\n")); + TextView distanceText = (TextView) mainView.findViewById(R.id.DistanceText); + TextView durationText = (TextView) mainView.findViewById(R.id.DurationText); + distanceText.setText(OsmAndFormatter.getFormattedDistance(ctx.getRoutingHelper().getLeftDistance(), ctx)); + int leftTime = ctx.getRoutingHelper().getLeftTime(); + int hours = leftTime / (60 * 60); + int minutes = (leftTime / 60) % 60; + if (hours > 0) { + durationText.setText(hours + " " + + ctx.getString(R.string.osmand_parking_hour) + + (minutes > 0 ? " " + minutes + " " + + ctx.getString(R.string.osmand_parking_minute) : "")); + } else { + durationText.setText(minutes + " " + + ctx.getString(R.string.osmand_parking_minute)); + } } } @@ -472,24 +525,25 @@ public class MapRouteInfoMenu implements IRouteInformationListener { } private Spinner setupFromSpinner(View view) { - ArrayList fromActions = new ArrayList<>(); - fromActions.add(mapActivity.getString(R.string.route_descr_current_location)); - fromActions.add(mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis)); - fromActions.add(mapActivity.getString(R.string.shared_string_select_on_map)); - fromActions.add(mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis)); + ArrayList fromActions = new ArrayList<>(); + fromActions.add(new RouteSpinnerRow(R.drawable.ic_action_get_my_location, + mapActivity.getString(R.string.route_descr_current_location))); + fromActions.add(new RouteSpinnerRow(R.drawable.ic_action_fav_dark, + mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis))); + fromActions.add(new RouteSpinnerRow(R.drawable.ic_action_marker_dark, + mapActivity.getString(R.string.shared_string_select_on_map))); + fromActions.add(new RouteSpinnerRow(R.drawable.ic_action_home_dark, + mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis))); TargetPoint start = getTargets().getPointToStart(); if (start != null) { String oname = start.getOnlyName().length() > 0 ? start.getOnlyName() : (mapActivity.getString(R.string.route_descr_map_location) + " " + getRoutePointDescription(start.getLatitude(), start.getLongitude())); - fromActions.add(oname); + fromActions.add(new RouteSpinnerRow(R.drawable.ic_action_get_my_location, oname)); } final Spinner fromSpinner = ((Spinner) view.findViewById(R.id.FromSpinner)); - ArrayAdapter fromAdapter = new ArrayAdapter<>(view.getContext(), - android.R.layout.simple_spinner_item, - fromActions - ); - fromAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + RouteSpinnerArrayAdapter fromAdapter = new RouteSpinnerArrayAdapter(view.getContext()); + fromAdapter.addAll(fromActions); fromSpinner.setAdapter(fromAdapter); if (start != null) { fromSpinner.setSelection(fromActions.size() - 1); @@ -505,24 +559,25 @@ public class MapRouteInfoMenu implements IRouteInformationListener { private Spinner setupToSpinner(View view) { final Spinner toSpinner = ((Spinner) view.findViewById(R.id.ToSpinner)); final TargetPointsHelper targets = getTargets(); - ArrayList toActions = new ArrayList<>(); + ArrayList toActions = new ArrayList<>(); if (targets.getPointToNavigate() != null) { - toActions.add(mapActivity.getString(R.string.route_descr_destination) + " " - + getRoutePointDescription(targets.getPointToNavigate().point, - targets.getPointToNavigate().getOnlyName())); + toActions.add(new RouteSpinnerRow(R.drawable.ic_action_get_my_location, + getRoutePointDescription(targets.getPointToNavigate().point, + targets.getPointToNavigate().getOnlyName()))); } else { toSpinner.setPromptId(R.string.route_descr_select_destination); - toActions.add(mapActivity.getString(R.string.route_descr_select_destination)); + toActions.add(new RouteSpinnerRow(R.drawable.ic_action_get_my_location, + mapActivity.getString(R.string.route_descr_select_destination))); } - toActions.add(mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis)); - toActions.add(mapActivity.getString(R.string.shared_string_select_on_map)); - toActions.add(mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis)); + toActions.add(new RouteSpinnerRow(R.drawable.ic_action_fav_dark, + mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis))); + toActions.add(new RouteSpinnerRow(R.drawable.ic_action_marker_dark, + mapActivity.getString(R.string.shared_string_select_on_map))); + toActions.add(new RouteSpinnerRow(R.drawable.ic_action_home_dark, + mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis))); - ArrayAdapter toAdapter = new ArrayAdapter<>(view.getContext(), - android.R.layout.simple_spinner_item, - toActions - ); - toAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + RouteSpinnerArrayAdapter toAdapter = new RouteSpinnerArrayAdapter(view.getContext()); + toAdapter.addAll(toActions); toSpinner.setAdapter(toAdapter); return toSpinner; } @@ -537,9 +592,34 @@ public class MapRouteInfoMenu implements IRouteInformationListener { // do not hide fragment (needed for use case entering Planning mode without destination) } + public void onDismiss() { + mapActivity.getMapView().setMapPositionX(0); + mapActivity.getMapView().refreshMap(); + AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_route_land_left_margin), false); + AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_right_widgets_panel), true); + AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_left_widgets_panel), true); + if (switched) { + mapControlsLayer.switchToRouteFollowingLayout(); + } + } public void show() { + switched = mapControlsLayer.switchToRoutePlanningLayout(); + boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity); + if (!portrait) { + mapActivity.getMapView().setMapPositionX(1); + mapActivity.getMapView().refreshMap(); + } + MapRouteInfoMenuFragment.showInstance(mapActivity); + + if (!AndroidUiHelper.isXLargeDevice(mapActivity)) { + AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_right_widgets_panel), false); + AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_left_widgets_panel), false); + } + if (!portrait) { + AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_route_land_left_margin), true); + } } public void hide() { @@ -552,4 +632,54 @@ public class MapRouteInfoMenu implements IRouteInformationListener { public void setShowMenu() { showMenu = true; } + + private class RouteSpinnerRow { + int iconId; + String text; + + public RouteSpinnerRow(int iconId, String text) { + this.iconId = iconId; + this.text = text; + } + } + + private class RouteSpinnerArrayAdapter extends ArrayAdapter { + + public RouteSpinnerArrayAdapter(Context context) { + super(context, android.R.layout.simple_spinner_item); + setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + TextView label = (TextView) super.getView(position, convertView, parent); + RouteSpinnerRow row = getItem(position); + label.setText(row.text); + label.setTextColor(!isLight() ? + ContextCompat.getColorStateList(mapActivity, android.R.color.primary_text_dark) : ContextCompat.getColorStateList(mapActivity, android.R.color.primary_text_light)); + return label; + } + + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + TextView label = (TextView) super.getDropDownView(position, convertView, parent); + + RouteSpinnerRow row = getItem(position); + label.setText(row.text); + Drawable icon = mapActivity.getMyApplication().getIconsCache().getContentIcon(row.iconId); + label.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null); + label.setCompoundDrawablePadding(dpToPx(12f)); + + return label; + } + + private int dpToPx(float dp) { + Resources r = mapActivity.getResources(); + return (int) TypedValue.applyDimension( + COMPLEX_UNIT_DIP, + dp, + r.getDisplayMetrics() + ); + } + } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java index 207c851810..2e23ab5844 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java @@ -4,10 +4,13 @@ import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; +import android.support.v4.content.ContextCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; +import net.osmand.AndroidUtils; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.helpers.AndroidUiHelper; @@ -54,8 +57,17 @@ public class MapRouteInfoMenuFragment extends Fragment { } } + @Override + public void onDestroyView() { + super.onDestroyView(); + if (menu != null) { + menu.onDismiss(); + } + } + public void updateInfo() { menu.updateInfo(mainView); + applyDayNightMode(); } public void show(MapActivity mapActivity) { @@ -81,6 +93,81 @@ public class MapRouteInfoMenuFragment extends Fragment { } } + public void applyDayNightMode() { + MapActivity ctx = getMapActivity(); + boolean portrait = AndroidUiHelper.isOrientationPortrait(ctx); + boolean nightMode = ctx.getMyApplication().getDaynightHelper().isNightMode(); + if (portrait) { + AndroidUtils.setBackground(ctx, mainView, nightMode, R.drawable.bg_bottom_menu_light, R.drawable.bg_bottom_menu_dark); + } else { + AndroidUtils.setBackground(ctx, mainView, nightMode, R.drawable.bg_left_menu_light, R.drawable.bg_left_menu_dark); + } + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerModesLayout), nightMode, + R.color.dashboard_divider_light, R.color.dashboard_divider_dark); + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerFromDropDown), nightMode, + R.color.dashboard_divider_light, R.color.dashboard_divider_dark); + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.viaLayoutDivider), nightMode, + R.color.dashboard_divider_light, R.color.dashboard_divider_dark); + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerToDropDown), nightMode, + R.color.dashboard_divider_light, R.color.dashboard_divider_dark); + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerButtons), nightMode, + R.color.dashboard_divider_light, R.color.dashboard_divider_dark); + + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerBtn1), nightMode, + R.color.dashboard_divider_light, R.color.dashboard_divider_dark); + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerBtn2), nightMode, + R.color.dashboard_divider_light, R.color.dashboard_divider_dark); + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerBtn3), nightMode, + R.color.dashboard_divider_light, R.color.dashboard_divider_dark); + + ((TextView) mainView.findViewById(R.id.ViaView)).setTextColor(nightMode ? + ContextCompat.getColorStateList(ctx, android.R.color.primary_text_dark) + : ContextCompat.getColorStateList(ctx, android.R.color.primary_text_light)); + ((TextView) mainView.findViewById(R.id.ViaSubView)).setTextColor(nightMode ? + ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark) + : ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light)); + + ((TextView) mainView.findViewById(R.id.toTitle)).setTextColor(nightMode ? + ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark) + : ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light)); + + ((TextView) mainView.findViewById(R.id.fromTitle)).setTextColor(nightMode ? + ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark) + : ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light)); + + ((TextView) mainView.findViewById(R.id.InfoTextView)).setTextColor(nightMode ? + ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark) + : ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light)); + + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.FromLayout), nightMode, + R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.ViaLayout), nightMode, + R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.ToLayout), nightMode, + R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.Info), nightMode, + R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); + + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.Next), nightMode, + R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); + AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.Prev), nightMode, + R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); + + ((TextView) mainView.findViewById(R.id.DistanceText)).setTextColor(nightMode ? + ContextCompat.getColorStateList(ctx, android.R.color.primary_text_dark) + : ContextCompat.getColorStateList(ctx, android.R.color.primary_text_light)); + ((TextView) mainView.findViewById(R.id.DistanceTitle)).setTextColor(nightMode ? + ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark) + : ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light)); + ((TextView) mainView.findViewById(R.id.DurationText)).setTextColor(nightMode ? + ContextCompat.getColorStateList(ctx, android.R.color.primary_text_dark) + : ContextCompat.getColorStateList(ctx, android.R.color.primary_text_light)); + ((TextView) mainView.findViewById(R.id.DurationTitle)).setTextColor(nightMode ? + ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark) + : ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light)); + + } + public static boolean showInstance(final MapActivity mapActivity) { try { boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRoutePreferencesControl.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRoutePreferencesControl.java index cf3fd13fbb..12090f5e44 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRoutePreferencesControl.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRoutePreferencesControl.java @@ -461,7 +461,7 @@ public class MapRoutePreferencesControl { final Set selected = new HashSet(); selected.add(settings.APPLICATION_MODE.get()); AppModeDialog.prepareAppModeView(mapActivity, selected, false, - (ViewGroup) settingsDlg.findViewById(R.id.app_modes), true, new View.OnClickListener() { + (ViewGroup) settingsDlg.findViewById(R.id.app_modes), true, false, new View.OnClickListener() { @Override public void onClick(View v) { if (selected.size() > 0) { diff --git a/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java b/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java index 52df922fbe..9ccef9ada3 100644 --- a/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java @@ -102,6 +102,9 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer. final QuadRect latLonBounds = tileBox.getLatLonBounds(); List fullObjects = new ArrayList<>(); for (LocationPoint o : getPoints()) { + if (!o.isVisible()) { + continue; + } float x = tileBox.getPixXFromLatLon(o.getLatitude(), o.getLongitude()); float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude()); diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java index 6497bef979..fc6d3f6610 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java @@ -11,9 +11,9 @@ import android.graphics.ColorFilter; import android.graphics.PointF; import android.graphics.drawable.Drawable; import android.os.Build; -import android.os.Handler; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import android.view.MotionEvent; import android.view.View; @@ -26,6 +26,7 @@ import android.widget.TextView; import net.londatiga.android.ActionItem; import net.londatiga.android.QuickAction; +import net.osmand.AndroidUtils; import net.osmand.core.android.MapRendererContext; import net.osmand.data.LatLon; import net.osmand.data.RotatedTileBox; @@ -40,7 +41,6 @@ import net.osmand.plus.TargetPointsHelper; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.search.SearchAddressFragment; import net.osmand.plus.dashboard.DashboardOnMap.DashboardType; -import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu; import net.osmand.plus.mapcontextmenu.other.MapRoutePreferencesControl; import net.osmand.plus.routing.RoutingHelper; @@ -81,9 +81,6 @@ public class MapControlsLayer extends OsmandMapLayer { private MapHudButton menuControl; private MapHudButton compassHud; private float cachedRotate = 0; - private static long startCounter; - private Runnable delayStart; - private Handler showUIHandler; private ImageView appModeIcon; private TextView zoomText; private OsmandMapTileView mapView; @@ -114,7 +111,6 @@ public class MapControlsLayer extends OsmandMapLayer { @Override public void initLayer(final OsmandMapTileView view) { - showUIHandler = new Handler(); initTopControls(); initTransparencyBar(); initZooms(); @@ -200,7 +196,6 @@ public class MapControlsLayer extends OsmandMapLayer { configureMap.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - notifyClicked(); mapActivity.getDashboard().setDashboardVisibility(true, DashboardType.CONFIGURE_MAP); } }); @@ -213,7 +208,6 @@ public class MapControlsLayer extends OsmandMapLayer { compass.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - notifyClicked(); mapActivity.getMapViewTrackingUtilities().switchRotateMapMode(); } }); @@ -226,8 +220,10 @@ public class MapControlsLayer extends OsmandMapLayer { } public void updateRouteButtons(View main, boolean routeInfo) { + boolean nightMode = mapActivity.getMyApplication().getDaynightHelper().isNightMode(); ImageView cancelRouteButton = (ImageView) main.findViewById(R.id.map_cancel_route_button); - cancelRouteButton.setImageDrawable(app.getIconsCache().getContentIcon(R.drawable.map_action_cancel)); + cancelRouteButton.setImageDrawable(app.getIconsCache().getContentIcon(R.drawable.map_action_cancel, !nightMode)); + AndroidUtils.setBackground(mapActivity, cancelRouteButton, nightMode, R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); cancelRouteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -236,7 +232,8 @@ public class MapControlsLayer extends OsmandMapLayer { }); ImageView waypointsButton = (ImageView) main.findViewById(R.id.map_waypoints_route_button); - waypointsButton.setImageDrawable(app.getIconsCache().getContentIcon(R.drawable.map_action_waypoints)); + waypointsButton.setImageDrawable(app.getIconsCache().getContentIcon(R.drawable.map_action_waypoints, !nightMode)); + AndroidUtils.setBackground(mapActivity, waypointsButton, nightMode, R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); waypointsButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -246,7 +243,8 @@ public class MapControlsLayer extends OsmandMapLayer { ImageView options = (ImageView) main.findViewById(R.id.map_options_route_button); options.setImageDrawable(!routeInfo ? app.getIconsCache().getIcon(R.drawable.map_action_settings, - R.color.osmand_orange) : app.getIconsCache().getContentIcon(R.drawable.map_action_settings)); + R.color.osmand_orange) : app.getIconsCache().getContentIcon(R.drawable.map_action_settings, !nightMode)); + AndroidUtils.setBackground(mapActivity, options, nightMode, R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); options.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -256,8 +254,10 @@ public class MapControlsLayer extends OsmandMapLayer { TextView routeGoButton = (TextView) main.findViewById(R.id.map_go_route_button); routeGoButton.setCompoundDrawablesWithIntrinsicBounds(app.getIconsCache().getIcon(R.drawable.map_start_navigation, R.color.color_myloc_distance), null, null, null); - routeGoButton.setText(/*AndroidUiHelper.isOrientationPortrait(mapActivity) ?*/ - mapActivity.getString(R.string.shared_string_go) /*: ""*/); + routeGoButton.setText(mapActivity.getString(R.string.shared_string_go)); + routeGoButton.setTextColor(nightMode ? + ContextCompat.getColorStateList(mapActivity, android.R.color.secondary_text_dark) : ContextCompat.getColorStateList(mapActivity, android.R.color.secondary_text_light)); + AndroidUtils.setBackground(mapActivity, routeGoButton, nightMode, R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark); routeGoButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -277,7 +277,6 @@ public class MapControlsLayer extends OsmandMapLayer { } protected void clickRouteParams() { - notifyClicked(); if (optionsRouteControlDialog.isDialogVisible()) { optionsRouteControlDialog.hideDialog(); mapRouteInfoMenu.showHideMenu(); @@ -289,13 +288,11 @@ public class MapControlsLayer extends OsmandMapLayer { protected void clickRouteWaypoints() { if (getTargets().checkPointToNavigateShort()) { - notifyClicked(); mapActivity.getMapActions().openIntermediatePointsDialog(); } } protected void clickRouteCancel() { - notifyClicked(); mapRouteInfoMenu.hide(); optionsRouteControlDialog.hideDialog(); if (mapActivity.getRoutingHelper().isFollowingMode()) { @@ -306,16 +303,9 @@ public class MapControlsLayer extends OsmandMapLayer { } protected void clickRouteGo() { - notifyClicked(); mapRouteInfoMenu.hide(); optionsRouteControlDialog.hideDialog(); -// RoutingHelper routingHelper = mapActivity.getMyApplication().getRoutingHelper(); -// if (!routingHelper.isFollowingMode() && !routingHelper.isRoutePlanningMode()) { - // never possible -// mapActivity.getMapActions().enterRoutePlanningMode(null, null, false); -// } else { startNavigation(); -// } } public void showRouteInfoControlDialog() { @@ -356,10 +346,6 @@ public class MapControlsLayer extends OsmandMapLayer { backToMenuButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - // double lat = activity.getMapView().getLatitude(); - // double lon = activity.getMapView().getLongitude(); - // MainMenuActivity.backToMainMenuDialog(activity, new LatLon(lat, lon)); - notifyClicked(); if (dash) { mapActivity.getDashboard().setDashboardVisibility(true, DashboardType.DASHBOARD); } else { @@ -397,7 +383,6 @@ public class MapControlsLayer extends OsmandMapLayer { } private void onNavigationClick() { - notifyClicked(); RoutingHelper routingHelper = mapActivity.getRoutingHelper(); if (!routingHelper.isFollowingMode() && !routingHelper.isRoutePlanningMode()) { mapActivity.getMapActions().enterRoutePlanningMode(null, null); @@ -433,7 +418,6 @@ public class MapControlsLayer extends OsmandMapLayer { zoomInButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - notifyClicked(); if (view.isZooming()) { mapActivity.changeZoom(2, System.currentTimeMillis()); } else { @@ -451,7 +435,6 @@ public class MapControlsLayer extends OsmandMapLayer { zoomOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - notifyClicked(); mapActivity.changeZoom(-1, System.currentTimeMillis()); } }); @@ -459,7 +442,6 @@ public class MapControlsLayer extends OsmandMapLayer { } public void startNavigation() { - stopCounter(); OsmandApplication app = mapActivity.getMyApplication(); RoutingHelper routingHelper = app.getRoutingHelper(); if (routingHelper.isFollowingMode()) { @@ -480,44 +462,6 @@ public class MapControlsLayer extends OsmandMapLayer { } } - - private void stopCounter() { - startCounter = 0; - - } - - @Deprecated - public void startCounter() { - //OsmandSettings settings = mapActivity.getMyApplication().getSettings(); - int del = 0; // settings.DELAY_TO_START_NAVIGATION.get(); - if (del <= 0) { - return; - } - if (startCounter <= 0) { - startCounter = System.currentTimeMillis() + del * 1000; - delayStart = new Runnable() { - @Override - public void run() { - if (startCounter > 0) { - if (System.currentTimeMillis() > startCounter) { - startCounter = 0; - startNavigation(); - } else { - mapActivity.refreshMap(); - showUIHandler.postDelayed(delayStart, 1000); - } - } - } - }; - delayStart.run(); - } - - } - - protected void notifyClicked() { - stopCounter(); - } - @Override public void destroyLayer() { controls.clear(); @@ -528,7 +472,7 @@ public class MapControlsLayer extends OsmandMapLayer { updateControls(tileBox, nightMode); } - + @SuppressWarnings("deprecation") private void updateControls(@NonNull RotatedTileBox tileBox, DrawSettings nightMode) { boolean isNight = nightMode != null && nightMode.isNightMode(); int shadw = isNight ? Color.TRANSPARENT : Color.WHITE; @@ -538,7 +482,6 @@ public class MapControlsLayer extends OsmandMapLayer { // TODOnightMode // updatextColor(textColor, shadw, rulerControl, zoomControls, mapMenuControls); } - boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity); // default buttons boolean routePlanningMode = false; RoutingHelper rh = mapActivity.getRoutingHelper(); @@ -552,12 +495,18 @@ public class MapControlsLayer extends OsmandMapLayer { boolean showRouteCalculationControls = routePlanningMode || ((System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS) && routeFollowingMode); updateMyLocation(rh, dialogOpened); -// routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_gabout_dark : R.drawable.map_directions ); -// routePlanningBtn.updateVisibility(showButtons && !routePlanningMode); - routePlanningBtn.setIconResId(R.drawable.map_directions); - routePlanningBtn.updateVisibility(!dialogOpened); + boolean showButtons = (showRouteCalculationControls || !routeFollowingMode); + routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_gabout_dark : R.drawable.map_directions); + if (routePlanningMode || routeFollowingMode) { + routePlanningBtn.setIconResId(R.drawable.map_start_navigation); + routePlanningBtn.setIconColorId(R.color.color_myloc_distance); + } else { + routePlanningBtn.setIconResId(R.drawable.map_directions); + routePlanningBtn.resetIconColors(); + } + routePlanningBtn.updateVisibility(showButtons); + menuControl.updateVisibility(showButtons); - menuControl.updateVisibility(!dialogOpened); mapZoomIn.updateVisibility(!dialogOpened); mapZoomOut.updateVisibility(!dialogOpened); compassHud.updateVisibility(!dialogOpened); @@ -586,15 +535,6 @@ public class MapControlsLayer extends OsmandMapLayer { } mapRouteInfoMenu.setVisible(showRouteCalculationControls); - if (showRouteCalculationControls) { - if (!mapActivity.getRoutingHelper().isFollowingMode() - && !mapActivity.getRoutingHelper().isPauseNavigation()) { - startCounter(); - } - } else { - stopCounter(); - } - updateCompass(isNight); for (MapHudButton mc : controls) { @@ -638,16 +578,11 @@ public class MapControlsLayer extends OsmandMapLayer { public boolean onSingleTap(PointF point, RotatedTileBox tileBox) { - if (mapRouteInfoMenu.onSingleTap(point, tileBox)) { - return true; - } - stopCounter(); - return false; + return mapRouteInfoMenu.onSingleTap(point, tileBox); } @Override public boolean onTouchEvent(MotionEvent event, RotatedTileBox tileBox) { - stopCounter(); touchEvent = System.currentTimeMillis(); RoutingHelper rh = mapActivity.getRoutingHelper(); if (rh.isFollowingMode()) { @@ -771,6 +706,11 @@ public class MapControlsLayer extends OsmandMapLayer { return true; } + public void resetIconColors() { + resClrLight = R.color.icon_color; + resClrDark = 0; + } + public MapHudButton setIconColorId(int clr) { if (resClrLight == clr && resClrDark == clr) { return this; @@ -802,6 +742,7 @@ public class MapControlsLayer extends OsmandMapLayer { } @SuppressLint("NewApi") + @SuppressWarnings("deprecation") public void update(OsmandApplication ctx, boolean night) { if (nightMode == night && !f) { return; @@ -883,7 +824,7 @@ public class MapControlsLayer extends OsmandMapLayer { } public static View.OnLongClickListener getOnClickMagnifierListener(final OsmandMapTileView view) { - final View.OnLongClickListener listener = new View.OnLongClickListener() { + return new View.OnLongClickListener() { @Override public boolean onLongClick(View notUseCouldBeNull) { @@ -891,7 +832,7 @@ public class MapControlsLayer extends OsmandMapLayer { final AlertDialog.Builder bld = new AlertDialog.Builder(view.getContext()); int p = (int) (mapDensity.get() * 100); final TIntArrayList tlist = new TIntArrayList(new int[]{20, 25, 33, 50, 75, 100, 150, 200, 300, 400}); - final List values = new ArrayList(); + final List values = new ArrayList<>(); int i = -1; for (int k = 0; k <= tlist.size(); k++) { final boolean end = k == tlist.size(); @@ -931,7 +872,6 @@ public class MapControlsLayer extends OsmandMapLayer { return true; } }; - return listener; } public void onActivityResult(int requestCode, int resultCode, Intent data) { From c3f0ba8635626c33af8d608558f5ad539895a666 Mon Sep 17 00:00:00 2001 From: P Date: Fri, 11 Dec 2015 14:18:12 +0100 Subject: [PATCH 30/60] Translated using Weblate (Bulgarian) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-bg/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-bg/strings.xml b/OsmAnd/res/values-bg/strings.xml index 8012691c8f..8d05ee0cb8 100644 --- a/OsmAnd/res/values-bg/strings.xml +++ b/OsmAnd/res/values-bg/strings.xml @@ -1471,7 +1471,7 @@ Назад към картата Сподели бележката Позиция:\n шир: %1$s\n дълж: %2$s - Гледай + Виж Бележки Онлайн карта Само пътища @@ -1674,7 +1674,7 @@ "Това разширение добавя функционалност за наблюдение на OsMo в реално време, за справка http://osmo.mobi.\nМожете да следите всички устройства от дадена група в реално време и да общувате помежду си. Разширението предлага различни възможности за проследяване по време на връзката или постоянно.\nАнонимните групи могат да бъдат създадени временно за определен брой дни и имат ограничени възможности, например без отдалечено управление и администратор. Пълноценните групи, от друга страна, могат да се създават на сайта и само регистрираните потребители имат достъп до тях. " "Добавката обогатява приложението OsmAnd карти и навигация като създава карти за гребане, ветроходство и други водни спортове.\n\nСпециалната добавка за карти на OsmAnd добавя морски навигационни символи и диаграми за вътрешна и крайбрежна навигация. Описанието на всеки навигационен символ показва подробностите, необходими за разпознаването и значението му (категория, фигура, цвят, последователност, препратка и др.).\n\nЗа да се върнете към някой от обикновените режими на картите на OsmAnd, просто изключете добавката или сменете \"Стил на картата\" в менюто \"Настройка на картата\". " Добавки - GPX цвят + цвят на GPX GPX ширина OsMo Китайски @@ -1761,7 +1761,7 @@ Преминете към картата Установява маркер, който показва първо стартиране на приложението; всички други настройки остават непроменени Симулиране на първото стартиране на приложение - Гео: + geo: Споделяне на местоположението Изпрати Съществува категория със същото име. Моля, посочете друго име. @@ -1821,7 +1821,7 @@ Възникна грешка: Бележката не беше създадена Бележката беше успешно затворена Възникна грешка: Бележката не беше затворена успешно - Запиши + Изпращане на данни до OSM Изтриване на GPX точка? Редактиране на GPX точка @@ -1931,7 +1931,7 @@ Спиране на OsMo сесия Стартиране на OsMo сесия Крайна цел - Скала на Алпийски туризъм (SAC) + Трудност по скалата на SAC Оцветяване на пътеките по скалата на SAC Наслагване на туристически символи Прекъсване на музиката при гласово анонсиране From 881c7a62650ea9414f29dcefae1cb22a55a761f1 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Fri, 11 Dec 2015 12:03:00 +0100 Subject: [PATCH 31/60] Translated using Weblate (Danish) Currently translated at 100.0% (1845 of 1845 strings) --- OsmAnd/res/values-da/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index c71325ea45..103e35d43e 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -1379,7 +1379,7 @@ Ugyldigt format: %s Unik enheds-id Konfigurer indstillinger for overvågning og opsætning af personlig overvågningskanal - "Udvidelsen giver funktionalitet for den såkaldte Osmo avancerede live overvågning, se http://osmo.mobi.\n\nSpor alle enheder i en deltagende gruppe tidstro og kommunikere med hinanden. Leveres med forskellige muligheder for sporing session eller permanent sporing.\n\nAnonyme grupper kan oprettes spontant for et bestemt antal dage, og der begrænset til definerede funktioner, dvs. der er ingen fjernbetjening og ingen gruppeadministrator. Fuldt funktionelle grupper, kan til gengæld oprettes på hjemmesiden, og kun registrerede brugere har adgang til dem. " + "Udvidelsen giver funktionalitet for den såkaldte Osmo avancerede realtidsovervågning, se http://osmo.mobi.\n\nSpor alle enheder i en deltagende gruppe tidstro og kommunikere med hinanden. Leveres med forskellige muligheder for sporing session eller permanent sporing.\n\nAnonyme grupper kan oprettes spontant for et bestemt antal dage, og der begrænset til definerede funktioner, dvs. der er ingen fjernbetjening og ingen gruppeadministrator. Fuldt funktionelle grupper, kan til gengæld oprettes på hjemmesiden, og kun registrerede brugere har adgang til dem. " OsMo (OSM moniteing) OsMo Kun manuelt (tryk på pilen) @@ -1971,7 +1971,7 @@ Fortæl os hvorfor. Fortæl os hvad du ønsker at ændre i denne app. - Live-opdateringer + Realtidsopdateringer Slet ændring Prøv igen Fejl: {0} @@ -2182,9 +2182,9 @@ I nærheden af Kan ikke bestemme adresse Søger efter adressen - Hesteruter + Rideruter Opdater hver - Hent kun over WiFi - Realtids opdatering + Hent kun med WiFi + Realtidsopdatering Opdater nu From 8a2abd71a601573a0fda31219995248363cd12a9 Mon Sep 17 00:00:00 2001 From: Temuri Doghonadze Date: Fri, 11 Dec 2015 08:42:57 +0100 Subject: [PATCH 32/60] Translated using Weblate (Georgian) Currently translated at 53.0% (978 of 1845 strings) --- OsmAnd/res/values-ka/strings.xml | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-ka/strings.xml b/OsmAnd/res/values-ka/strings.xml index 7570e6d7bf..a314774b8c 100644 --- a/OsmAnd/res/values-ka/strings.xml +++ b/OsmAnd/res/values-ka/strings.xml @@ -1,4 +1,5 @@ -OsmAnd-ით ნავიგაცია გათიშულ რეჟიმში დროებით მიუწვდომელია. + +OsmAnd-ით ნავიგაცია გათიშულ რეჟიმში დროებით მიუწვდომელია. მარცხენა ხელით ტარება აირჩიეთ მარცხენა მხარეს საჭის გამომყენებელი ქვეყნებისათვის @@ -1272,4 +1273,24 @@ ჩებუანური თქვენ გაქვთ ძველი, შეუთავსებელი მონაცემები ვიკიპედიიდან. გნებავთ მათი დაარქივება? გნებავთ ვიკიპედიიდან დამატებითი მონაცემების ჩამოტვირთვა (%1$s მბ) ? - \ No newline at end of file + საცხენოსნო გზები + მისამართის მოძებნა შეუძლებელია + ახლოს + დამალვა + დაბალი ხარისხი + მაღალი ხარისხი + ვიდეოს ჩვენების ხარისხი + აირჩიეთ ვიდეოს ჩვენების ხარისხი + აუდიო ფორმატი + აირჩიეთ ხმის ფორმატი + ხმის ბიტრეიტი + აირჩიეთ ხმის ბიტრეიტი + გთხოვთ აირჩიოთ სწორი POI-ს ტიპი ან გამოტოვოთ + მენიუს ღილაკი უშვებს სამართავ პანელს და არა მენიუს + წვდომა რუკიდან + გაშვებისას ჩვენება + კოპირებულია გაცვლის ბუფერში + გათიშულად ჩაწერა + OSM POI-ს შეცვლა + OSM POI წაშლილია + From 7350c8ecc2f76c1293b98e4ebea71d2c1c0d7ba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20B=C3=A1thory?= Date: Fri, 11 Dec 2015 00:00:51 +0100 Subject: [PATCH 33/60] Translated using Weblate (Hungarian) Currently translated at 99.9% (1844 of 1845 strings) --- OsmAnd/res/values-hu/strings.xml | 34 +++++++++++++++++++------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index cee6c553b7..73dceb7485 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -915,7 +915,7 @@ Már be van állítva a célpontod. Célpont %1$s Célpontok - %1$s. célpont közelében nincsen út. + %1$s. köztes célpont közelében nincsen út. Megérkeztél a köztes célponthoz Beállítás köztes célpontnak Köztes célpont @@ -1023,7 +1023,7 @@ Dropbox bővítmény Hang- és videofelvétel Biztosan megállítod a navigációt? - Biztosan törlöd a célpontot? + Biztosan törlöd a célpontot (és a köztes célpontokat)? Pontos útvonaltervező engedélyezése hibamentes, pontos útvonalak tervezéséhez. Jelenleg lassú, kis távolságokra működik. Pontos útvonaltervezés (kísérleti) Mutat @@ -1110,9 +1110,9 @@ Rendezés háztól-házig Kérlek adj meg OSM felhasználónevet és jelszót a Beállításokban - Köztes pontok törlése - Köztes pontok megtartása - Már vannak köztes pontjaid. + Köztes célpontok törlése + Köztes célpontok megtartása + Már vannak köztes célpontjaid. Navigáció ide Navigáció innen Térkép: @@ -1201,7 +1201,7 @@ %1$d OSM módosítást fogsz törölni. Biztos vagy benne? Összes törlése - Az OsmAnd offline tervezője számára rendkívül sokáig tarthat (vagy néha nem is működik) 200 km-nél távolabb lévő pontok között útvonalat tervezni. Kérlek adj hozzá köztes útpontokat. + Az OsmAnd offline tervezője számára rendkívül sokáig tarthat (vagy néha nem is működik) 200 km-nél távolabb lévő pontok között útvonalat tervezni. Kérlek adj hozzá köztes célpontokat. Nincs auto zoom Közelre Közepes távolságra @@ -1341,7 +1341,7 @@ Zoom gombok megjelenítése navigáció közben Zoom gombok megjelenítése Mentés kedvencek csoportként - Útpontok kiválasztása + Célpontok kiválasztása Pont nevek Pontos idő Útpont @@ -1588,8 +1588,8 @@ Elrejtés Képernyő bekapcsolása Az eszköz képernyőjének bekapcsolása (ha ki van kapcsolva) egy kanyarodáshoz közeledve - " Az OsmAnd (OSM Automated Navigation Directions) egy térkép és navigációs alkalmazás, ingyenes, világméretű és jó minőségű OpenStreetMap (OSM) térképpel. Az összes térképadat offline tárolható az eszköz memóriakártyáján. GPS használatával az OsmAnd képes útvonaltervezésre, vizuális és hangnavigációra, mindezt autós, kerékpáros és gyalogos módban. Az összes főbb funkció működik online és offline (internetkapcsolat nélkül) is.\n\nNéhány főbb funkció:\n\nNavigáció\n- Működik online (gyorsabb) vagy offline (nincs internet roaming díj külföldön)\n- Turn-by-turn hangnavigáció felvett, vagy gépi hanggal (utóbbihoz TTS felolvasó szükséges)\n- Sávkijelzés, utcanévkijelzés, várható érkezési idő\n- Köztes útpontok megadásának lehetősége\n- Automatikus újratervezés, ha letértél az útról\n- Keresés helyekre cím alapján, típus szerint (étterem, hotel, benzinkút, múzeum), vagy koordináta alapján\n\nTérkép nézet\n- A pozíciód és irányod megjelenítése a térképen\n- A térkép forgatása választható iránytű, vagy mozgásirány alapján\n- Fontos helyek mentése Kedvencként\n- POI-k (érdekes helyek) megjelenítése a környékeden\n- Online (csempés) térképek megjelenítése\n- Műhold nézet (Bing)\n- Különféle rátét térképek állítható átlátszósággal, felvett GPX nyomvonalak\n- Helynevek megjelenítése saját nyelven, angolul, vagy fonetikus átírásban\n\nOpenStreetMap és Wikipédia adatok\n- Minőségi információk az egész világról a legjobb közösségi projektektől\n- OpenStreetMap térképek az egész földről országonkénti vagy régió szerinti bontásban\n- Wikipédia POI-k városnézéshez (nem elérhető az ingyenes verzióban)\n- Korlátlan ingyenes letöltés közvetlenül az alkalmazásból (az ingyenes verzióban 16 térképfájlra korlátozva)\n- Folyamatosan frissülő térképek (legalább havonta egyszer)\n- Kompakt offline vektoros térképek\n- Választható teljes térkép vagy csak úthálózat (például teljes Japán 700 MB, de az úthálózat csak 200 MB)\n- Támogatja az online vagy előre letárolt csempés térképeket\n\nBiztonsági funkciók\n- Választható automata nappal/éjjel nézet váltás\n- Választható sebességhatár kijelzés, túllépés esetén figyelmeztetéssel\n- Választható sebességfüggő nagyítás\n- Pozíciód megosztása, hogy a barátaid megtaláljanak\n\nKerékpáros és gyalogos funkciók\n- Szabadtéri tevékenységekhez a térképek tartalmazzák a gyalogos, túra, és kerékpáros ösvényeket\n- Külön gyalogos és kerékpáros tervezés és megjelenítés\n- Tömegközlekedési megállók vonalnevekkel\n- Utazás felvétele GPX fájlba vagy online szolgáltatásra\n- Sebesség és tengerszint feletti magasság megjelenítés\n- Szintvonalak és domborzatárnyékolás megjelenítése (plugin telepítése szükséges)\n\nKözvetlen OpenStreetMap közreműködés\n- Térképhibák jelentése\n- GPX nyomvonalak feltöltése OSM-re közvetlenül az alkalmazásból\n- POI-k felvétele és feltöltése közvetlenül OSM-be (vagy később offline)\n\nAz OsmAnd nyílt forráskódú és aktív fejlesztés alatt áll. Bárki közreműködhet hibák jelentésével, fordításokkal, vagy új funkciók fejlesztésével. A projekt haladása függ az anyagi hozzájárulásoktól is, megalapozva a fejlesztést, kódolást, és az új funkciók tesztelését. Az OsmAnd+ megvásárlásával segítheted, hogy az alkalmazás még szuperebb legyen! Az osmand.net-en lehetőség van konkrét funkció támogatására és általános adományozásra is.\n\nHozzávetőleges térképi lefedettség és minőség:\n- Nyugat-Európa: ****\n- Kelet-Európa: ***\n- Oroszország: ***\n- Észak-Amerika: ***\n- Dél-Amerika: **\n- Ázsia: **\n- Japán & Korea: ***\n- Közel-Kelet: **\n- Afrika: **\n- Antarktisz: *\n\nTámogatott országok listája (alapvetően az egész világ!):\nAfganisztán, Albánia, Algéria, Amerikai Egyesült Államok, Andorra, Anglia, Angola, Anguilla, Antigua és Barbuda, Argentína, Aruba, Ausztrália, Ausztria, Azerbajdzsán, Bahamák, Bahrein, Banglades, Barbados, Belgium, Belize, Benin, Bhután, Bissau-Guinea, Bolívia, Bonaire, Bosznia és Hercegovina, Botswana, Brazília, Brit Virgin-szigetek, Brunei, Bulgária, Burkina Faso, Burundi, Chile, Ciprus, Comore-szigetek, Costa Rica, Curaçao, Csád, Csehország, Dánia, Dél-afrikai Köztársaság, Déli-Georgia, Dél-Szudán, Dominika, Dominikai Köztársaság, Dzsibuti, Ecuador, Egyesült Arab Emírségek, Egyesült Királyság, Egyiptom, El Salvador, Elefántcsontpart, Egyenlítői-Guinea, Eritrea, Észtország, Etiópia, Fehéroroszország, Fiji-szigetek, Finnország, Franciaország, Francia Polinézia, Fülöp-szigetek, Gabon, Gambia, Ghána, Gibraltár, Görögország, Grenada, Grönland, Grúzia, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guyana, Haiti, Hollandia, Holland Antillák, Honduras, Horvátország, Hongkong, India, Indonézia, Irak, Irán, Írország, Izland, Izrael, Jamaica, Japán, Jemen, Jersey, Jordánia, Kambodzsa, Kamerun, Kanada, Katar, Kazahsztán, Kelet-Timor, Kenya, Kína, Kiribati, Kirgizisztán, Észak Korea és Dél Korea, Kolumbia, Kongó, Koszovó, Közép-afrikai Köztársaság, Kuba, Kuvait, Laosz, Lengyelország, Lesotho, Lettország, Libanon, Libéria, Líbia, Lichtenstein, Litvánia, Luxemburg, Macedónia, Madagaszkár, Makaó, Magyarország, Malajzia, Malawi, Maldív-szigetek, Mali, Málta, Man-szigetek, Marokkó, Martinique, Mauritánia, Mauritius, Mayotte, Mexikó, Mianmar, Mikronézia, Moldova, Monaco, Mongólia, Montenegró, Monserrat, Mozambik, Namíbia, Nauru, Németország, Nepál, Nicaragua, Niger, Nigéria, Norvégia, Nyugat-Szahara, Olaszország, Omán, Oroszország, Örményország, Pakisztán, Palau, Palesztina, Panama, Pápua Új-Guinea, Paraguay, Peru, Portugália, Puerto Rico, Románia, Ruanda, Saint-Barthélemy, Szent Ilona, Saint Kitts és Nevis, Saint Lucia, Saint-Martin, Saint-Pierre és Miquelon, Saint Vincent és a Grenadine-szigetek, San Marino, Seychelle-szigetek, Sierra Leone, Spanyolország, Srí Lanka, Suriname, Svájc, Svédország, Szamoa, Szaúd-Arábia, Szenegál, Szerbia, Szingapúr, Szíria, Szlovákia, Szlovénia, Szomália, Szudán, Szváziföld, Tajvan, Tádzsikisztán, Tanzánia, Thaiföld, Tokelau-szigetek, Togo, Tonga, Törökország, Trinidad és Tobago, Tunézia, Tuvalu, Türkmenisztán, Uganda, Új-Kaledónia, Új-Zéland, Ukrajna, Uruguay, Üzbegisztán, Vanuatu, Vatikán, Venezuela, Vietnam, Wallis és Fortuna, Zambia, Zimbabwe, Zöld-foki Köztársaság " - " Az OsmAnd (OSM Automated Navigation Directions) egy térkép és navigációs alkalmazás, ingyenes, világméretű és jó minőségű OpenStreetMap (OSM) térképpel. Az összes térképadat offline tárolható az eszköz memóriakártyáján. GPS használatával az OsmAnd képes útvonaltervezésre, vizuális és hangnavigációra, mindezt autós, kerékpáros és gyalogos módban. Az összes főbb funkció működik online és offline (Internetkapcsolat nélkül) is.\n\nAz OsmAnd+ az alkalmazás fizetős változata. A megvételével támogatod a projektet, megalapozod új funkciók fejlesztését, és megkapod a legújabb frissítéseket. Ha vársárlás előtt kipróbálnád az alkalmazást, telepítsd az OsmAndot.\n\nNéhány főbb funkció:\n\nNavigáció\n- Működik online (gyorsabb) vagy offline (nincs internet roaming díj külföldön)\n- Turn-by-turn hangnavigáció felvett, vagy gépi hanggal (utóbbihoz TTS felolvasó szükséges)\n- Sávkijelzés, utcanévkijelzés, várható érkezési idő\n- Köztes útpontok megadásának lehetősége\n- Automatikus újratervezés, ha letértél az útról\n- Keresés helyekre cím alapján, típus szerint (étterem, hotel, benzinkút, múzeum), vagy koordináta alapján\n\nTérkép nézet\n- A pozíciód és irányod megjelenítése a térképen\n- A térkép forgatása választható iránytű, vagy mozgásirány alapján\n- Fontos helyek mentése Kedvencként\n- POI-k (érdekes helyek) megjelenítése a környékeden\n- Online (csempés) térképek megjelenítése\n- Műhold nézet (Bing)\n- Különféle rátét térképek állítható átlátszósággal, felvett GPX nyomvonalak\n- Helynevek megjelenítése saját nyelven, angolul, vagy fonetikus átírásban\n\nOpenStreetMap és Wikipédia adatok\n- Minőségi információk az egész világról a legjobb közösségi projektektől\n- OpenStreetMap térképek az egész földről országonkénti vagy régió szerinti bontásban\n- Wikipédia POI-k városnézéshez (nem elérhető az ingyenes verzióban)\n- Korlátlan ingyenes letöltés közvetlenül az alkalmazásból (az ingyenes verzióban 16 térképfájlra korlátozva)\n- Folyamatosan frissülő térképek (legalább havonta egyszer)\n- Kompakt offline vektoros térképek\n- Választható teljes térkép vagy csak úthálózat (például teljes Japán 700 MB, de az úthálózat csak 200 MB)\n- Támogatja az online vagy előre letárolt csempés térképeket\n\nBiztonsági funkciók\n- Választható automata nappal/éjjel nézet váltás\n- Választható sebességhatár kijelzés, túllépés esetén figyelmeztetéssel\n- Választható sebességfüggő nagyítás\n- Pozíciód megosztása, hogy a barátaid megtaláljanak\n\nKerékpáros és gyalogos funkciók\n- Szabadtéri tevékenységekhez a térképek tartalmazzák a gyalogos, túra, és kerékpáros ösvényeket\n- Külön gyalogos és kerékpáros tervezés és megjelenítés\n- Tömegközlekedési megállók vonalnevekkel\n- Utazás felvétele GPX fájlba vagy online szolgáltatásra\n- Sebesség és tengerszint feletti magasság megjelenítés\n- Szintvonalak és domborzatárnyékolás megjelenítése (bővítmény telepítése szükséges)\n\nKözvetlen OpenStreetMap közreműködés\n- Térképhibák jelentése\n- GPX nyomvonalak feltöltése OSM-re közvetlenül az alkalmazásból\n- POI-k felvétele és feltöltése közvetlenül OSM-be (vagy később offline)\n\nAz OsmAnd nyílt forráskódú és aktív fejlesztés alatt áll. Bárki közreműködhet hibák jelentésével, fordításokkal, vagy új funkciók fejlesztésével. A projekt haladása függ az anyagi hozzájárulásoktól is, megalapozva a fejlesztést, kódolást, és az új funkciók tesztelését. Az OsmAnd+ megvásárlásával segítheted, hogy az alkalmazás még szuperebb legyen! Az osmand.net-en lehetőség van konkrét funkció támogatására és általános adományozásra is.\n\nHozzávetőleges térképi lefedettség és minőség:\n- Nyugat-Európa: ****\n- Kelet-Európa: ***\n- Oroszország: ***\n- Észak-Amerika: ***\n- Dél-Amerika: **\n- Ázsia: **\n- Japán & Korea: ***\n- Közel-Kelet: **\n- Afrika: **\n- Antarktisz: *\n\nTámogatott országok listája (alapvetően az egész világ!):\nAfganisztán, Albánia, Algéria, Amerikai Egyesült Államok, Andorra, Anglia, Angola, Anguilla, Antigua és Barbuda, Argentína, Aruba, Ausztrália, Ausztria, Azerbajdzsán, Bahamák, Bahrein, Banglades, Barbados, Belgium, Belize, Benin, Bhután, Bissau-Guinea, Bolívia, Bonaire, Bosznia és Hercegovina, Botswana, Brazília, Brit Virgin-szigetek, Brunei, Bulgária, Burkina Faso, Burundi, Chile, Ciprus, Comore-szigetek, Costa Rica, Curaçao, Csád, Csehország, Dánia, Dél-afrikai Köztársaság, Déli-Georgia, Dél-Szudán, Dominika, Dominikai Köztársaság, Dzsibuti, Ecuador, Egyesült Arab Emírségek, Egyesült Királyság, Egyiptom, El Salvador, Elefántcsontpart, Egyenlítői-Guinea, Eritrea, Észtország, Etiópia, Fehéroroszország, Fiji-szigetek, Finnország, Franciaország, Francia Polinézia, Fülöp-szigetek, Gabon, Gambia, Ghána, Gibraltár, Görögország, Grenada, Grönland, Grúzia, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guyana, Haiti, Hollandia, Holland Antillák, Honduras, Horvátország, Hongkong, India, Indonézia, Irak, Irán, Írország, Izland, Izrael, Jamaica, Japán, Jemen, Jersey, Jordánia, Kambodzsa, Kamerun, Kanada, Katar, Kazahsztán, Kelet-Timor, Kenya, Kína, Kiribati, Kirgizisztán, Észak Korea és Dél Korea, Kolumbia, Kongó, Koszovó, Közép-afrikai Köztársaság, Kuba, Kuvait, Laosz, Lengyelország, Lesotho, Lettország, Libanon, Libéria, Líbia, Lichtenstein, Litvánia, Luxemburg, Macedónia, Madagaszkár, Makaó, Magyarország, Malajzia, Malawi, Maldív-szigetek, Mali, Málta, Man-szigetek, Marokkó, Martinique, Mauritánia, Mauritius, Mayotte, Mexikó, Mianmar, Mikronézia, Moldova, Monaco, Mongólia, Montenegró, Monserrat, Mozambik, Namíbia, Nauru, Németország, Nepál, Nicaragua, Niger, Nigéria, Norvégia, Nyugat-Szahara, Olaszország, Omán, Oroszország, Örményország, Pakisztán, Palau, Palesztina, Panama, Pápua Új-Guinea, Paraguay, Peru, Portugália, Puerto Rico, Románia, Ruanda, Saint-Barthélemy, Szent Ilona, Saint Kitts és Nevis, Saint Lucia, Saint-Martin, Saint-Pierre és Miquelon, Saint Vincent és a Grenadine-szigetek, San Marino, Seychelle-szigetek, Sierra Leone, Spanyolország, Srí Lanka, Suriname, Svájc, Svédország, Szamoa, Szaúd-Arábia, Szenegál, Szerbia, Szingapúr, Szíria, Szlovákia, Szlovénia, Szomália, Szudán, Szváziföld, Tajvan, Tádzsikisztán, Tanzánia, Thaiföld, Tokelau-szigetek, Togo, Tonga, Törökország, Trinidad és Tobago, Tunézia, Tuvalu, Türkmenisztán, Uganda, Új-Kaledónia, Új-Zéland, Ukrajna, Uruguay, Üzbegisztán, Vanuatu, Vatikán, Venezuela, Vietnam, Wallis és Fortuna, Zambia, Zimbabwe, Zöld-foki Köztársaság " + " Az OsmAnd (OSM Automated Navigation Directions) egy térkép és navigációs alkalmazás, ingyenes, világméretű és jó minőségű OpenStreetMap (OSM) térképpel. Az összes térképadat offline tárolható az eszköz memóriakártyáján. GPS használatával az OsmAnd képes útvonaltervezésre, vizuális és hangnavigációra, mindezt autós, kerékpáros és gyalogos módban. Az összes főbb funkció működik online és offline (internetkapcsolat nélkül) is.\n\nNéhány főbb funkció:\n\nNavigáció\n- Működik online (gyorsabb) vagy offline (nincs internet roaming díj külföldön)\n- Turn-by-turn hangnavigáció felvett, vagy gépi hanggal (utóbbihoz TTS felolvasó szükséges)\n- Sávkijelzés, utcanévkijelzés, várható érkezési idő\n- Köztes célpontok megadásának lehetősége\n- Automatikus újratervezés, ha letértél az útról\n- Keresés helyekre cím alapján, típus szerint (étterem, hotel, benzinkút, múzeum), vagy koordináta alapján\n\nTérkép nézet\n- A pozíciód és irányod megjelenítése a térképen\n- A térkép forgatása választható iránytű, vagy mozgásirány alapján\n- Fontos helyek mentése Kedvencként\n- POI-k (érdekes helyek) megjelenítése a környékeden\n- Online (csempés) térképek megjelenítése\n- Műhold nézet (Bing)\n- Különféle rátét térképek állítható átlátszósággal, felvett GPX nyomvonalak\n- Helynevek megjelenítése saját nyelven, angolul, vagy fonetikus átírásban\n\nOpenStreetMap és Wikipédia adatok\n- Minőségi információk az egész világról a legjobb közösségi projektektől\n- OpenStreetMap térképek az egész földről országonkénti vagy régió szerinti bontásban\n- Wikipédia POI-k városnézéshez (nem elérhető az ingyenes verzióban)\n- Korlátlan ingyenes letöltés közvetlenül az alkalmazásból (az ingyenes verzióban 16 térképfájlra korlátozva)\n- Folyamatosan frissülő térképek (legalább havonta egyszer)\n- Kompakt offline vektoros térképek\n- Választható teljes térkép vagy csak úthálózat (például teljes Japán 700 MB, de az úthálózat csak 200 MB)\n- Támogatja az online vagy előre letárolt csempés térképeket\n\nBiztonsági funkciók\n- Választható automata nappal/éjjel nézet váltás\n- Választható sebességhatár kijelzés, túllépés esetén figyelmeztetéssel\n- Választható sebességfüggő nagyítás\n- Pozíciód megosztása, hogy a barátaid megtaláljanak\n\nKerékpáros és gyalogos funkciók\n- Szabadtéri tevékenységekhez a térképek tartalmazzák a gyalogos, túra, és kerékpáros ösvényeket\n- Külön gyalogos és kerékpáros tervezés és megjelenítés\n- Tömegközlekedési megállók vonalnevekkel\n- Utazás felvétele GPX fájlba vagy online szolgáltatásra\n- Sebesség és tengerszint feletti magasság megjelenítés\n- Szintvonalak és domborzatárnyékolás megjelenítése (plugin telepítése szükséges)\n\nKözvetlen OpenStreetMap közreműködés\n- Térképhibák jelentése\n- GPX nyomvonalak feltöltése OSM-re közvetlenül az alkalmazásból\n- POI-k felvétele és feltöltése közvetlenül OSM-be (vagy később offline)\n\nAz OsmAnd nyílt forráskódú és aktív fejlesztés alatt áll. Bárki közreműködhet hibák jelentésével, fordításokkal, vagy új funkciók fejlesztésével. A projekt haladása függ az anyagi hozzájárulásoktól is, megalapozva a fejlesztést, kódolást, és az új funkciók tesztelését. Az OsmAnd+ megvásárlásával segítheted, hogy az alkalmazás még szuperebb legyen! Az osmand.net-en lehetőség van konkrét funkció támogatására és általános adományozásra is.\n\nHozzávetőleges térképi lefedettség és minőség:\n- Nyugat-Európa: ****\n- Kelet-Európa: ***\n- Oroszország: ***\n- Észak-Amerika: ***\n- Dél-Amerika: **\n- Ázsia: **\n- Japán & Korea: ***\n- Közel-Kelet: **\n- Afrika: **\n- Antarktisz: *\n\nTámogatott országok listája (alapvetően az egész világ!):\nAfganisztán, Albánia, Algéria, Amerikai Egyesült Államok, Andorra, Anglia, Angola, Anguilla, Antigua és Barbuda, Argentína, Aruba, Ausztrália, Ausztria, Azerbajdzsán, Bahamák, Bahrein, Banglades, Barbados, Belgium, Belize, Benin, Bhután, Bissau-Guinea, Bolívia, Bonaire, Bosznia és Hercegovina, Botswana, Brazília, Brit Virgin-szigetek, Brunei, Bulgária, Burkina Faso, Burundi, Chile, Ciprus, Comore-szigetek, Costa Rica, Curaçao, Csád, Csehország, Dánia, Dél-afrikai Köztársaság, Déli-Georgia, Dél-Szudán, Dominika, Dominikai Köztársaság, Dzsibuti, Ecuador, Egyesült Arab Emírségek, Egyesült Királyság, Egyiptom, El Salvador, Elefántcsontpart, Egyenlítői-Guinea, Eritrea, Észtország, Etiópia, Fehéroroszország, Fiji-szigetek, Finnország, Franciaország, Francia Polinézia, Fülöp-szigetek, Gabon, Gambia, Ghána, Gibraltár, Görögország, Grenada, Grönland, Grúzia, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guyana, Haiti, Hollandia, Holland Antillák, Honduras, Horvátország, Hongkong, India, Indonézia, Irak, Irán, Írország, Izland, Izrael, Jamaica, Japán, Jemen, Jersey, Jordánia, Kambodzsa, Kamerun, Kanada, Katar, Kazahsztán, Kelet-Timor, Kenya, Kína, Kiribati, Kirgizisztán, Észak Korea és Dél Korea, Kolumbia, Kongó, Koszovó, Közép-afrikai Köztársaság, Kuba, Kuvait, Laosz, Lengyelország, Lesotho, Lettország, Libanon, Libéria, Líbia, Lichtenstein, Litvánia, Luxemburg, Macedónia, Madagaszkár, Makaó, Magyarország, Malajzia, Malawi, Maldív-szigetek, Mali, Málta, Man-szigetek, Marokkó, Martinique, Mauritánia, Mauritius, Mayotte, Mexikó, Mianmar, Mikronézia, Moldova, Monaco, Mongólia, Montenegró, Monserrat, Mozambik, Namíbia, Nauru, Németország, Nepál, Nicaragua, Niger, Nigéria, Norvégia, Nyugat-Szahara, Olaszország, Omán, Oroszország, Örményország, Pakisztán, Palau, Palesztina, Panama, Pápua Új-Guinea, Paraguay, Peru, Portugália, Puerto Rico, Románia, Ruanda, Saint-Barthélemy, Szent Ilona, Saint Kitts és Nevis, Saint Lucia, Saint-Martin, Saint-Pierre és Miquelon, Saint Vincent és a Grenadine-szigetek, San Marino, Seychelle-szigetek, Sierra Leone, Spanyolország, Srí Lanka, Suriname, Svájc, Svédország, Szamoa, Szaúd-Arábia, Szenegál, Szerbia, Szingapúr, Szíria, Szlovákia, Szlovénia, Szomália, Szudán, Szváziföld, Tajvan, Tádzsikisztán, Tanzánia, Thaiföld, Tokelau-szigetek, Togo, Tonga, Törökország, Trinidad és Tobago, Tunézia, Tuvalu, Türkmenisztán, Uganda, Új-Kaledónia, Új-Zéland, Ukrajna, Uruguay, Üzbegisztán, Vanuatu, Vatikán, Venezuela, Vietnam, Wallis és Fortuna, Zambia, Zimbabwe, Zöld-foki Köztársaság " + " Az OsmAnd (OSM Automated Navigation Directions) egy térkép és navigációs alkalmazás, ingyenes, világméretű és jó minőségű OpenStreetMap (OSM) térképpel. Az összes térképadat offline tárolható az eszköz memóriakártyáján. GPS használatával az OsmAnd képes útvonaltervezésre, vizuális és hangnavigációra, mindezt autós, kerékpáros és gyalogos módban. Az összes főbb funkció működik online és offline (Internetkapcsolat nélkül) is.\n\nAz OsmAnd+ az alkalmazás fizetős változata. A megvételével támogatod a projektet, megalapozod új funkciók fejlesztését, és megkapod a legújabb frissítéseket. Ha vársárlás előtt kipróbálnád az alkalmazást, telepítsd az OsmAndot.\n\nNéhány főbb funkció:\n\nNavigáció\n- Működik online (gyorsabb) vagy offline (nincs internet roaming díj külföldön)\n- Turn-by-turn hangnavigáció felvett, vagy gépi hanggal (utóbbihoz TTS felolvasó szükséges)\n- Sávkijelzés, utcanévkijelzés, várható érkezési idő\n- Köztes célpontok megadásának lehetősége\n- Automatikus újratervezés, ha letértél az útról\n- Keresés helyekre cím alapján, típus szerint (étterem, hotel, benzinkút, múzeum), vagy koordináta alapján\n\nTérkép nézet\n- A pozíciód és irányod megjelenítése a térképen\n- A térkép forgatása választható iránytű, vagy mozgásirány alapján\n- Fontos helyek mentése Kedvencként\n- POI-k (érdekes helyek) megjelenítése a környékeden\n- Online (csempés) térképek megjelenítése\n- Műhold nézet (Bing)\n- Különféle rátét térképek állítható átlátszósággal, felvett GPX nyomvonalak\n- Helynevek megjelenítése saját nyelven, angolul, vagy fonetikus átírásban\n\nOpenStreetMap és Wikipédia adatok\n- Minőségi információk az egész világról a legjobb közösségi projektektől\n- OpenStreetMap térképek az egész földről országonkénti vagy régió szerinti bontásban\n- Wikipédia POI-k városnézéshez (nem elérhető az ingyenes verzióban)\n- Korlátlan ingyenes letöltés közvetlenül az alkalmazásból (az ingyenes verzióban 16 térképfájlra korlátozva)\n- Folyamatosan frissülő térképek (legalább havonta egyszer)\n- Kompakt offline vektoros térképek\n- Választható teljes térkép vagy csak úthálózat (például teljes Japán 700 MB, de az úthálózat csak 200 MB)\n- Támogatja az online vagy előre letárolt csempés térképeket\n\nBiztonsági funkciók\n- Választható automata nappal/éjjel nézet váltás\n- Választható sebességhatár kijelzés, túllépés esetén figyelmeztetéssel\n- Választható sebességfüggő nagyítás\n- Pozíciód megosztása, hogy a barátaid megtaláljanak\n\nKerékpáros és gyalogos funkciók\n- Szabadtéri tevékenységekhez a térképek tartalmazzák a gyalogos, túra, és kerékpáros ösvényeket\n- Külön gyalogos és kerékpáros tervezés és megjelenítés\n- Tömegközlekedési megállók vonalnevekkel\n- Utazás felvétele GPX fájlba vagy online szolgáltatásra\n- Sebesség és tengerszint feletti magasság megjelenítés\n- Szintvonalak és domborzatárnyékolás megjelenítése (bővítmény telepítése szükséges)\n\nKözvetlen OpenStreetMap közreműködés\n- Térképhibák jelentése\n- GPX nyomvonalak feltöltése OSM-re közvetlenül az alkalmazásból\n- POI-k felvétele és feltöltése közvetlenül OSM-be (vagy később offline)\n\nAz OsmAnd nyílt forráskódú és aktív fejlesztés alatt áll. Bárki közreműködhet hibák jelentésével, fordításokkal, vagy új funkciók fejlesztésével. A projekt haladása függ az anyagi hozzájárulásoktól is, megalapozva a fejlesztést, kódolást, és az új funkciók tesztelését. Az OsmAnd+ megvásárlásával segítheted, hogy az alkalmazás még szuperebb legyen! Az osmand.net-en lehetőség van konkrét funkció támogatására és általános adományozásra is.\n\nHozzávetőleges térképi lefedettség és minőség:\n- Nyugat-Európa: ****\n- Kelet-Európa: ***\n- Oroszország: ***\n- Észak-Amerika: ***\n- Dél-Amerika: **\n- Ázsia: **\n- Japán & Korea: ***\n- Közel-Kelet: **\n- Afrika: **\n- Antarktisz: *\n\nTámogatott országok listája (alapvetően az egész világ!):\nAfganisztán, Albánia, Algéria, Amerikai Egyesült Államok, Andorra, Anglia, Angola, Anguilla, Antigua és Barbuda, Argentína, Aruba, Ausztrália, Ausztria, Azerbajdzsán, Bahamák, Bahrein, Banglades, Barbados, Belgium, Belize, Benin, Bhután, Bissau-Guinea, Bolívia, Bonaire, Bosznia és Hercegovina, Botswana, Brazília, Brit Virgin-szigetek, Brunei, Bulgária, Burkina Faso, Burundi, Chile, Ciprus, Comore-szigetek, Costa Rica, Curaçao, Csád, Csehország, Dánia, Dél-afrikai Köztársaság, Déli-Georgia, Dél-Szudán, Dominika, Dominikai Köztársaság, Dzsibuti, Ecuador, Egyesült Arab Emírségek, Egyesült Királyság, Egyiptom, El Salvador, Elefántcsontpart, Egyenlítői-Guinea, Eritrea, Észtország, Etiópia, Fehéroroszország, Fiji-szigetek, Finnország, Franciaország, Francia Polinézia, Fülöp-szigetek, Gabon, Gambia, Ghána, Gibraltár, Görögország, Grenada, Grönland, Grúzia, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guyana, Haiti, Hollandia, Holland Antillák, Honduras, Horvátország, Hongkong, India, Indonézia, Irak, Irán, Írország, Izland, Izrael, Jamaica, Japán, Jemen, Jersey, Jordánia, Kambodzsa, Kamerun, Kanada, Katar, Kazahsztán, Kelet-Timor, Kenya, Kína, Kiribati, Kirgizisztán, Észak Korea és Dél Korea, Kolumbia, Kongó, Koszovó, Közép-afrikai Köztársaság, Kuba, Kuvait, Laosz, Lengyelország, Lesotho, Lettország, Libanon, Libéria, Líbia, Lichtenstein, Litvánia, Luxemburg, Macedónia, Madagaszkár, Makaó, Magyarország, Malajzia, Malawi, Maldív-szigetek, Mali, Málta, Man-szigetek, Marokkó, Martinique, Mauritánia, Mauritius, Mayotte, Mexikó, Mianmar, Mikronézia, Moldova, Monaco, Mongólia, Montenegró, Monserrat, Mozambik, Namíbia, Nauru, Németország, Nepál, Nicaragua, Niger, Nigéria, Norvégia, Nyugat-Szahara, Olaszország, Omán, Oroszország, Örményország, Pakisztán, Palau, Palesztina, Panama, Pápua Új-Guinea, Paraguay, Peru, Portugália, Puerto Rico, Románia, Ruanda, Saint-Barthélemy, Szent Ilona, Saint Kitts és Nevis, Saint Lucia, Saint-Martin, Saint-Pierre és Miquelon, Saint Vincent és a Grenadine-szigetek, San Marino, Seychelle-szigetek, Sierra Leone, Spanyolország, Srí Lanka, Suriname, Svájc, Svédország, Szamoa, Szaúd-Arábia, Szenegál, Szerbia, Szingapúr, Szíria, Szlovákia, Szlovénia, Szomália, Szudán, Szváziföld, Tajvan, Tádzsikisztán, Tanzánia, Thaiföld, Tokelau-szigetek, Togo, Tonga, Törökország, Trinidad és Tobago, Tunézia, Tuvalu, Türkmenisztán, Uganda, Új-Kaledónia, Új-Zéland, Ukrajna, Uruguay, Üzbegisztán, Vanuatu, Vatikán, Venezuela, Vietnam, Wallis és Fortuna, Zambia, Zimbabwe, Zöld-foki Köztársaság " Az %1$s számára engedély szükséges a képernyő kikapcsolásához energiatakarékossági célból. Soha Nem található kerülőút @@ -2026,8 +2026,8 @@ Biztosan elmented a POI-t típus nélkül? OSM szerkesztés módosítása " • Új, környezetérzékeny menü térképre tapintáskor\n\n • Az alkalmazás már közvetlenül a térkép képernyővel indul a műszerfal helyett\n\n • A műszerfal kártyái elrejthetőek, testre szabhatóak\n\n • Kiválasztható, hogy a térkép menü gombja a műszerfalat, vagy az oldalsávot hozza be\n\n • Térkép letöltéséhez elég a világtérkép régióira tapintani\n\n • A POI kereső már sokkal speciálisabb kérdéseket is megért\n\n • Továbbfejlesztett POI és OSM szerkesztési lehetőségek\n\n • A térképletöltő felület felépítése és kezelőfelülete át lett dolgozva\n\n és sok egyéb fejlesztés… " - Kártya el volt rejtve - "Kérlek add meg a helyes POI típust, vagy hagyd ki. " + Kártya el lett rejtve + Kérlek add meg a helyes POI típust, vagy hagyd ki A menü gomb a menü helyett a műszerfalat indítja Elérés a térképről Vágólapra másolva @@ -2037,8 +2037,8 @@ Eldöntheted, hogy az alkalmazást az interaktív műszerfalon, vagy a statikus oldalsáv menün keresztül szeretnéd vezérelni. A működést bármikor módosíthatod a műszerfal beállításokban. Közel Elrejtés - Legalacsonyabb felbontás - Legmagasabb felbontás + Legalacsonyabb minőség + Legmagasabb minőség Videokimenet minősége Videokimenet minőségének kiválasztása Hangkimenet formátuma @@ -2048,4 +2048,10 @@ Lépcsők elkerülése Lépcsők elkerülése Határátlépés elkerülése - + Lovaglóutak + Ismeretlen cím + Cím keresése + Letöltés csak WiFi kapcsolaton + Élő frissítés + Frissítés most + From 128a6e59e6bd5feb18f67ce09410179784988b79 Mon Sep 17 00:00:00 2001 From: Massimiliano Caniparoli Date: Fri, 11 Dec 2015 00:10:11 +0100 Subject: [PATCH 34/60] Translated using Weblate (Italian) Currently translated at 100.0% (1845 of 1845 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 65f7d1b78b..ade6316966 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -2080,7 +2080,7 @@ Specifica il corretto tipo di PDI o salta questo passaggio Evita le scale Evita le scale - " • Nuova interfaccia utente variabile in base al contesto per le località selezionate sulla mappa e negli altri schermi\n\n • La schermata della mappa è avviata direttamente se non è selezionato \"Mostra il pannello di controllo all\'avvio\"\n\n • Configura quali e come vengono visualizzate le voci nel pannello di controllo\n\n • Salta il pannello di controllo se preferisci i controlli dell\'app tipo menu\n\n • Per scaricare mappe, regioni è possibile selezionarle direttamente tappando sulla mappa mondiale\n\n • La ricerca di PDI ora supporta interrogazioni più specifiche POI\n\n • Migliorata la modifica di PDI e dati OSM\n\n • Struttura e interfaccia di download dei dati della mappa rivista\n\n e altro… " + " • Nuova interfaccia utente sensibile al contesto per le località selezionate sulla mappa e negli altri schermi\n\n • La schermata della mappa è avviata direttamente se non è selezionato \"Mostra il pannello di controllo all\'avvio\"\n\n • Configura quali e come vengono visualizzate le voci nel pannello di controllo\n\n • Salta il pannello di controllo se preferisci i controlli dell\'app tipo menu\n\n • Per scaricare mappe, regioni è possibile selezionarle direttamente tappando sulla mappa mondiale\n\n • La ricerca di PDI ora supporta richieste più specifiche\n\n • Migliorata la funzionalità modifica di PDI e OSM\n\n • Riviste la struttura e l\'interfaccia di download dei dati della mappa\n\n e altro… " C\'è una nuova scelta per controllare l\'app attraverso il personalizzabile pannello di controllo o tramite il menu statico. La tua scelta può sempre essere cambiata nelle impostazioni del pannello di controllo. Vicino Nascondi From 84c46e3dd168b16813628f97f9913c14aa7ec946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Michalski?= Date: Thu, 10 Dec 2015 22:06:13 +0100 Subject: [PATCH 35/60] Translated using Weblate (Polish) Currently translated at 99.8% (1843 of 1845 strings) --- OsmAnd/res/values-pl/strings.xml | 122 ++++++++----------------------- 1 file changed, 29 insertions(+), 93 deletions(-) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 5bc6643606..38085f1c62 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -925,20 +925,20 @@ Włącz w ustawieniach odbiornik GPS Usługi rejestrowania Brak trasy - Usuwanie punktu nawigacyjnego - Punkt trasy %1$s - Punkt trasy %1$s - Dodaj jako ostatni punkt pośredni - Dodaj jako pierwszy punkt pośredni - Dodaj jako ostatni punkt pośredni - Dodaj jako pierwszy punkt pośredni + Usuń cel + Cel podróży %1$s + Cel podróży %1$s + Dodaj jako ostatni cel pośredni + Dodaj jako pierwszy cel pośredni + Dodaj jako ostatni cel pośredni + Dodaj jako pierwszy cel pośredni Zamień punkt docelowy Już wybrałeś punkt docelowy. - Punkty trasy - Punkt pośredni %1$s jest zbyt daleko od najbliższej ulicy. - Dotarłeś do punktu pośredniego - Dodaj jako punkt pośredni - Punkt trasy + Cele podróży + Cel pośredni %1$s jest zbyt daleko od najbliższej ulicy. + Dotarłeś do celu pośredniego + Dodaj jako cel pośredni + Cel pośredni Punkt końcowy jest zbyt daleko od najbliższej ulicy. Dodaj znacznik Tryb zaawansowany… @@ -1057,7 +1057,7 @@ Zrób zdjęcie Zrób zdjęcie Zatrzymać nawigację? - Usunąć cel podróży (oraz punkty trasy)? + Czy na pewno chcesz wyczyścić swój punkt docelowy (i miejsca pośrednie)? Precyzyjne trasy (alpha) Włącz obliczanie precyzyjnych tras w nawigacji. Funkcja dość powolna, nadal jest ograniczona odległością. Dane audio/video @@ -1140,7 +1140,7 @@ Wystąpił błąd podczas tworzenia kopii zapasowej zmian OSM Stwórz kopię w formacie zmian OSM Sortuj door-to-door - Optymalizacja kolejności punktów pośrednich w drodze z bieżącej pozycji do miejsca docelowego. + Optymalizacja kolejności celów pośrednich w drodze z bieżącej pozycji do miejsca docelowego. Szukaj ulicy w sąsiadujących miastach Ustaw jako punkt docelowy @@ -1160,9 +1160,9 @@ Wybierz czy odtwarzać dźwięk podczas robienia zdjęć Proszę wprowadzić nazwę użytkownika i hasło OSM w ustawieniach - Wyczyść punkty pośrednie - Zachowaj punkty pośrednie - Już ustalono punkty pośrednie. + Wyczyść cele pośrednie + Zachowaj cele pośrednie + Masz już ustawione cele pośrednie. Nawiguj do Nawiguj z Mapa: @@ -1207,84 +1207,13 @@ Zdefiniowane… Nazwa Zdefiniuj/Edytuj… - " OsmAnd (OSM Automated Navigation Directions) to darmowa aplikacja z dostępem do wysokiej jakości darmowych map OpenStreetMap (OSM) o zasięgu światowym. Wszystkie mapy mogą być przechowywane na karcie pamięci urządzenia (urządzeń). Poprzez urządzenie GPS, OsmAnd oferuje wyznaczanie trasy, prezentując trasę graficznie oraz oferując zapowiedzi słowne, dla samochodu, roweru oraz ruchu pieszego. Wszystkie główne funkcje działają zarówno w trybie online, jak i offline (nie wymagają połączenia z Internetem). Niektóre z głównych cech: Nawigacja - pracuje online (szybko) lub offline (bez generowania kosztów podczas pobytu przebywania poza granicami kraju) - Podpowiedzi głosowe krok po kroku (w wersji nagranej lub poprzez syntezę głosu) - opcje: asystent pasa ruchu, wyświetlanie nazw ulic oraz przewidywanego czasu przybycia - obsługa punktów pośrednich trasy - automatyczne przelicznie trasy po zjechaniu z wyznaczonej trasy - wyszukiwanie miejsc poprzez podanie: adresu, typu (n.p.: restauracja, hotel, stacja benzynowa, muzeum), lub przez podanie współrzędnych Przeglądanie Map - wyświetla pozycję i orientację na mapie - opcjonalnie ustawia mapę zgodnie z kompasem lub zgodnie z kierunkiem ruchu - zapisywanie najważniejszych miejsc jako Ulubione - wyświetlanie punktów POI (punkty zainteresowania) wokół Ciebie - pozwala wyświetlić wyspecjalizowane map internetowe - pozwala wyświetlić widok satelitarny (z portalu Bing) - pozwala wyświetlić różne warstwy jak turystyczne, ślady z plików GPX i innych map z ustawieniem poziomu przeźroczystości - opcjonalne wyświetlanie nazw po angielsku, w jeżyku lokalnym lub w zapisie fonetycznym Używanie map OpenStreetMap i danych systemu Wikipedia: - najwyższej jakości informacje z dobrze współpracujących projektów - globalne mapy z OpenStreetMap, dostępne dla danego kraju lub regionu - Wikipedia POI, świetna do zwiedzania (nie dostępna w wersji darmowej) - nieograniczona ilość pobrań bezpośrednio do aplikacji(limit pobrań w darmowej wersji - 16 map) - zawsze aktualne mapy (aktualizowane co najmniej raz w miesiącu) - kompaktowe mapy wektorowe offline - wybór pomiędzy kompletną mapą a mapą zawierającą tylko drogi (np. pełna mapa Japonii to 700 MB, natomiast mapa zawierająca tylko informacje o drogach 200 MB.) - obsługuje również przechowywanie fragmentów pobranych map on-line Funkcje bezpieczeństwa - opcjonalny przełącznik widoku dzień/noc - opcjonalne wyświetlanie ograniczeń prędkości z opcją powiadamiania o przekroczeniu prędkości - opcjonalne powiększanie map w zależności od prędkości - możliwość dzielenia się swoją lokalizacją ze znajomymi Funkcja dla pieszych i rowerzystów - mapy zawierają informacje dla pieszych i rowerzystów - specjalne trasy oraz tryby wyświetlania dla pieszych i rowerzystów - opcja wyświetlania przystanków transportu publicznego (autobusy, tramwaje, pociągi) łącznie z nazwą linii - opcjonalne nagrywanie tras podróży do plików GPX lub w serwisach online - opcjonalne wyświetlanie prędkości i wysokości - wyświetlanie poziomic i cieniowania rzeźby terenu (poprzez dodatkowe wtyczki) Bezpośredni wkład w OpenStreetMap - raportowanie błędów mapy - przesyłanie tras w postaci plików GPX do OSM bezpośrednio z aplikacji - dodawanie POI i bezpośrednie wysyłanie ich do OSM (lub też późniejsze ) - opcja nagrywania tras podróży w tle (również gdy urządzenie jest w trybie uśpienia) OsmAnd jest udostępniane na darmowej licencji open source i jest aktywnie rozwijany. Każdy może przyczynić się do rozwoju aplikacji poprzez zgłaszanie uwag, poprawianiu tłumaczeń, lub dodawania nowych funkcjonalności. Projekt jest w stanie gwałtownego i ciągłego rozwoju i doskonalenia przez w programistów i aktywnych użytkowników. Postęp rozwoju opiera się również na wkładzie finansowym przeznaczonym na rozwój, kodowanie i testowanie nowych funkcjonalności. Kupując OsmAnd+ pomagasz powodujesz że staje się ona bardziej niesamowita! Możliwe jest również finansowanie konkretnych nowych funkcji lub wykonywanie wpłat na ogólny rozwój osmand.net. Orientacyjny zasięg map i ich jakość: - Europa Zachodnia: **** - Europa Wschodnia: *** - Rosja: *** - Ameryka Północna: *** - Ameryka Południowa: ** - Asia: ** - Japonia i Korea: *** - Bliski Wschód: ** - Afryka: ** - Antarktyka: * Lista krajów obsługiwanych (w zasadzie na cały świat!) Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Antigua i Barbuda, Antyle Holenderskie, Arabia Saudyjska, Argentyna, Armenia, Aruba, Australia, Austria, Azerbejdżan, Bahamy, Bahrajn, Bangladesz, Barbados, Belgia, Belize, Benin, Bermudy, Bhutan, Białoruś, Boliwia, Bonaire, Bośnia i Hercegowina, Botswana, Brazylia, Brunei, Brytyjskie Wyspy Dziewicze, Bułgaria, Burkina Faso, Burundi, Chile, Chiny, Chorwacja, Curaçao, Cypr, Czad, Czarnogóra, Czechy, Dania, Dominika, Dominikana, Dżibuti, Egipt, Ekwador, Erytrea, Estonia, Etiopia, Fidżi, Filipiny, Finlandia, Francja, Gabon, Gambia, Georgia Południowa, Ghana, Gibraltar, Grecja, Grenada, Grenlandia, Gruzja, Guam, Guernsey, Gujana Francuska, Gujana, Gwadelupa, Gwatemala, Gwinea Bissau, Gwinea Równikowa, Gwinea, Haiti, Hiszpania, Holandia, Honduras, Hong Kong, Indie, Indonezja, Irak, Iran, Irlandia, Islandia, Izrael, Jamajka, Japonia, Jemen, Jersey, Jordania, Kambodża, Kamerun, Kanada, Katar, Kazachstan, Kenia, Kirgistan, Kiribati, Kolumbia, Komory, Kongo, Korea Północna i Korea Południowa, Kostaryka , Kuba, Kuwejt, Laos, Lesotho, Liban, Liberia , Libia, Liechtenstein, Litwa, Luksemburg, Łotwa, Macedonia, Madagaskar, Majotta, Makao, Malawi, Malediwy, Malezja, Mali, Malta, Maroko, Martynika, Mauretania, Mauritius, Meksyk, Mikronezja, Mołdawia, Monako, Mongolia, Montserrat, Mozambik , Myanmar, Namibia, Nauru, Nepal, Niemcy, Niger, Nigeria, Nikaragua, Norwegia, Nowa Kaledonia, Nowa Zelandia, Oman, Pakistan, Palau, Palestyna, Panama, Papua Nowa Gwinea, Paragwaj, Peru, Polinezja Francuska, Polska, Południowy Sudan, Portugalia, Puerto Rico, Republika Środkowoafrykańska, Republika Vanuatu, Republika Zielonego Przylądka, Rosja, Rumunia, Rwanda, Sahara Zachodnia, Saint Helena, Saint Kitts i Nevis, Saint Lucia, Saint Martin, Saint Vincent i Grenadyny, Saint-Barthélemy, Saint-Pierre i Miquelon, Salwador, Samoa, San Marino, Senegal, Serbia, Seszele, Sierra Leone, Singapur, Słowacja, Słowenia, Somalia, Sri Lanka, Stany Zjednoczone Ameryki (USA), Suazi, Sudan, Surinam, Syria, Szwajcaria, Szwecja, Tadżykistan, Tajlandia , Tajwan, Tanzania, Timor Wschodni, Togo, Tokelau, Tonga, Trynidad i Tobago, Tunezja, Turcja, Turkmenistan, Tuvalu, Uganda, Ukraina, Urugwaj, Uzbekistan, Wallis i Futuna, Watykan, Wenezuela, Węgry, Wielka Brytania (UK), Wietnam, Włochy, Wybrzeże Kości Słoniowej, Wyspa Man, Zambia, Zimbabwe, Zjednoczone Emiraty Arabskie. " + " OsmAnd (OSM Automated Navigation Directions) to darmowa aplikacja z dostępem do wysokiej jakości darmowych map OpenStreetMap (OSM) o zasięgu światowym. Wszystkie mapy mogą być przechowywane na karcie pamięci urządzenia (urządzeń). Poprzez urządzenie GPS, OsmAnd oferuje wyznaczanie trasy, prezentując trasę graficznie oraz oferując zapowiedzi słowne, dla samochodu, roweru oraz ruchu pieszego. Wszystkie główne funkcje działają zarówno w trybie online, jak i offline (nie wymagają połączenia z Internetem). Niektóre z głównych cech: Nawigacja - pracuje online (szybko) lub offline (bez generowania kosztów podczas pobytu przebywania poza granicami kraju) - Podpowiedzi głosowe krok po kroku (w wersji nagranej lub poprzez syntezę głosu) - opcje: asystent pasa ruchu, wyświetlanie nazw ulic oraz przewidywanego czasu przybycia - obsługa pośrednich celów trasy - automatyczne przelicznie trasy po zjechaniu z wyznaczonej trasy - wyszukiwanie miejsc poprzez podanie: adresu, typu (n.p.: restauracja, hotel, stacja benzynowa, muzeum), lub przez podanie współrzędnych Przeglądanie Map - wyświetla pozycję i orientację na mapie - opcjonalnie ustawia mapę zgodnie z kompasem lub zgodnie z kierunkiem ruchu - zapisywanie najważniejszych miejsc jako Ulubione - wyświetlanie punktów POI (punkty zainteresowania) wokół Ciebie - pozwala wyświetlić wyspecjalizowane map internetowe - pozwala wyświetlić widok satelitarny (z portalu Bing) - pozwala wyświetlić różne warstwy jak turystyczne, ślady z plików GPX i innych map z ustawieniem poziomu przeźroczystości - opcjonalne wyświetlanie nazw po angielsku, w jeżyku lokalnym lub w zapisie fonetycznym Używanie map OpenStreetMap i danych systemu Wikipedia: - najwyższej jakości informacje z dobrze współpracujących projektów - globalne mapy z OpenStreetMap, dostępne dla danego kraju lub regionu - Wikipedia POI, świetna do zwiedzania (nie dostępna w wersji darmowej) - nieograniczona ilość pobrań bezpośrednio do aplikacji(limit pobrań w darmowej wersji - 16 map) - zawsze aktualne mapy (aktualizowane co najmniej raz w miesiącu) - kompaktowe mapy wektorowe offline - wybór pomiędzy kompletną mapą a mapą zawierającą tylko drogi (np. pełna mapa Japonii to 700 MB, natomiast mapa zawierająca tylko informacje o drogach 200 MB.) - obsługuje również przechowywanie fragmentów pobranych map on-line Funkcje bezpieczeństwa - opcjonalny przełącznik widoku dzień/noc - opcjonalne wyświetlanie ograniczeń prędkości z opcją powiadamiania o przekroczeniu prędkości - opcjonalne powiększanie map w zależności od prędkości - możliwość dzielenia się swoją lokalizacją ze znajomymi Funkcja dla pieszych i rowerzystów - mapy zawierają informacje dla pieszych i rowerzystów - specjalne trasy oraz tryby wyświetlania dla pieszych i rowerzystów - opcja wyświetlania przystanków transportu publicznego (autobusy, tramwaje, pociągi) łącznie z nazwą linii - opcjonalne nagrywanie tras podróży do plików GPX lub w serwisach online - opcjonalne wyświetlanie prędkości i wysokości - wyświetlanie poziomic i cieniowania rzeźby terenu (poprzez dodatkowe wtyczki) Bezpośredni wkład w OpenStreetMap - raportowanie błędów mapy - przesyłanie tras w postaci plików GPX do OSM bezpośrednio z aplikacji - dodawanie POI i bezpośrednie wysyłanie ich do OSM (lub też późniejsze ) - opcja nagrywania tras podróży w tle (również gdy urządzenie jest w trybie uśpienia) OsmAnd jest udostępniane na darmowej licencji open source i jest aktywnie rozwijany. Każdy może przyczynić się do rozwoju aplikacji poprzez zgłaszanie uwag, poprawianiu tłumaczeń, lub dodawania nowych funkcjonalności. Projekt jest w stanie gwałtownego i ciągłego rozwoju i doskonalenia przez w programistów i aktywnych użytkowników. Postęp rozwoju opiera się również na wkładzie finansowym przeznaczonym na rozwój, kodowanie i testowanie nowych funkcjonalności. Kupując OsmAnd+ pomagasz powodujesz że staje się ona bardziej niesamowita! Możliwe jest również finansowanie konkretnych nowych funkcji lub wykonywanie wpłat na ogólny rozwój osmand.net. Orientacyjny zasięg map i ich jakość: - Europa Zachodnia: **** - Europa Wschodnia: *** - Rosja: *** - Ameryka Północna: *** - Ameryka Południowa: ** - Asia: ** - Japonia i Korea: *** - Bliski Wschód: ** - Afryka: ** - Antarktyka: * Lista krajów obsługiwanych (w zasadzie na cały świat!) Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Antigua i Barbuda, Antyle Holenderskie, Arabia Saudyjska, Argentyna, Armenia, Aruba, Australia, Austria, Azerbejdżan, Bahamy, Bahrajn, Bangladesz, Barbados, Belgia, Belize, Benin, Bermudy, Bhutan, Białoruś, Boliwia, Bonaire, Bośnia i Hercegowina, Botswana, Brazylia, Brunei, Brytyjskie Wyspy Dziewicze, Bułgaria, Burkina Faso, Burundi, Chile, Chiny, Chorwacja, Curaçao, Cypr, Czad, Czarnogóra, Czechy, Dania, Dominika, Dominikana, Dżibuti, Egipt, Ekwador, Erytrea, Estonia, Etiopia, Fidżi, Filipiny, Finlandia, Francja, Gabon, Gambia, Georgia Południowa, Ghana, Gibraltar, Grecja, Grenada, Grenlandia, Gruzja, Guam, Guernsey, Gujana Francuska, Gujana, Gwadelupa, Gwatemala, Gwinea Bissau, Gwinea Równikowa, Gwinea, Haiti, Hiszpania, Holandia, Honduras, Hong Kong, Indie, Indonezja, Irak, Iran, Irlandia, Islandia, Izrael, Jamajka, Japonia, Jemen, Jersey, Jordania, Kambodża, Kamerun, Kanada, Katar, Kazachstan, Kenia, Kirgistan, Kiribati, Kolumbia, Komory, Kongo, Korea Północna i Korea Południowa, Kostaryka , Kuba, Kuwejt, Laos, Lesotho, Liban, Liberia , Libia, Liechtenstein, Litwa, Luksemburg, Łotwa, Macedonia, Madagaskar, Majotta, Makao, Malawi, Malediwy, Malezja, Mali, Malta, Maroko, Martynika, Mauretania, Mauritius, Meksyk, Mikronezja, Mołdawia, Monako, Mongolia, Montserrat, Mozambik , Myanmar, Namibia, Nauru, Nepal, Niemcy, Niger, Nigeria, Nikaragua, Norwegia, Nowa Kaledonia, Nowa Zelandia, Oman, Pakistan, Palau, Palestyna, Panama, Papua Nowa Gwinea, Paragwaj, Peru, Polinezja Francuska, Polska, Południowy Sudan, Portugalia, Puerto Rico, Republika Środkowoafrykańska, Republika Vanuatu, Republika Zielonego Przylądka, Rosja, Rumunia, Rwanda, Sahara Zachodnia, Saint Helena, Saint Kitts i Nevis, Saint Lucia, Saint Martin, Saint Vincent i Grenadyny, Saint-Barthélemy, Saint-Pierre i Miquelon, Salwador, Samoa, San Marino, Senegal, Serbia, Seszele, Sierra Leone, Singapur, Słowacja, Słowenia, Somalia, Sri Lanka, Stany Zjednoczone Ameryki (USA), Suazi, Sudan, Surinam, Syria, Szwajcaria, Szwecja, Tadżykistan, Tajlandia , Tajwan, Tanzania, Timor Wschodni, Togo, Tokelau, Tonga, Trynidad i Tobago, Tunezja, Turcja, Turkmenistan, Tuvalu, Uganda, Ukraina, Urugwaj, Uzbekistan, Wallis i Futuna, Watykan, Wenezuela, Węgry, Wielka Brytania (UK), Wietnam, Włochy, Wybrzeże Kości Słoniowej, Wyspa Man, Zambia, Zimbabwe, Zjednoczone Emiraty Arabskie. " Zapisano zasób danych kafelkowych %1$s Eliptyczna Merkatora Cel - -OsmAnd (OSM Automated Navigation Directions) to darmowa aplikacja z dostępem do wysokiej jakości darmowych map OpenStreetMap (OSM) o zasięgu światowym. Wszystkie mapy mogą być przechowywane na karcie pamięci urządzenia (urządzeń). Poprzez urządzenie GPS, OsmAnd oferuje wyznaczanie trasy, prezentując trasę graficznie oraz oferując zapowiedzi słowne, dla samochodu, roweru oraz ruchu pieszego. Wszystkie główne funkcje działają zarówno w trybie online, jak i offline (nie wymagają połączenia z Internetem). - -OsmAnd+ jest płatną wersją aplikacji. Kupując go można wesprzeć projekt, finansowanie rozwoju nowych funkcji, a otrzymujesz najnowsze aktualizacje. Możesz przetestować aplikację przed zakupem instalując bezpłatną wersję o nazwie OsmAnd. - -Niektóre z głównych cech: - -Nawigacja - - pracuje online (szybko) lub offline (bez generowania kosztów podczas pobytu przebywania poza granicami kraju)↵ - - Podpowiedzi głosowe krok po kroku (w wersji nagranej lub poprzez syntezę głosu)↵ - - opcje: asystent pasa ruchu, wyświetlanie nazw ulic oraz przewidywanego czasu przybycia↵ - - obsługa punktów pośrednich trasy↵ - - automatyczne przelicznie trasy po zjechaniu z wyznaczonej trasy↵ - - wyszukiwanie miejsc poprzez podanie: adresu, typu (n.p.: restauracja, hotel, stacja benzynowa, muzeum), lub przez podanie współrzędnych↵ - -Przeglądanie Map↵ - - wyświetla pozycję i orientację na mapie↵ - - opcjonalnie ustawia mapę zgodnie z kompasem lub zgodnie z kierunkiem ruchu↵ - - zapisywanie najważniejszych miejsc jako Ulubione↵ - - wyświetlanie punktów POI (punkty zainteresowania) wokół Ciebie↵ - - pozwala wyświetlić wyspecjalizowane map internetowe↵ - - pozwala wyświetlić widok satelitarny (z portalu Bing)↵ - - pozwala wyświetlić różne warstwy jak turystyczne, ślady z plików GPX i innych map z ustawieniem poziomu przeźroczystości↵ - - opcjonalne wyświetlanie nazw po angielsku, w jeżyku lokalnym lub w zapisie fonetycznym↵ - -Używanie map OpenStreetMap i danych systemu Wikipedia:↵ - - najwyższej jakości informacje z dobrze współpracujących projektów↵ - - globalne mapy z OpenStreetMap, dostępne dla danego kraju lub regionu↵ - - Wikipedia POI, świetna do zwiedzania (nie dostępna w wersji darmowej)↵ - - nieograniczona ilość pobrań bezpośrednio do aplikacji(limit pobrań w darmowej wersji - 16 map)↵ - - zawsze aktualne mapy (aktualizowane co najmniej raz w miesiącu)↵ - - kompaktowe mapy wektorowe offline↵ - - wybór pomiędzy kompletną mapą a mapą zawierającą tylko drogi (np. pełna mapa Japonii to 700 MB, natomiast mapa zawierająca tylko informacje o drogach 200 MB.)↵ - - obsługuje również przechowywanie fragmentów pobranych map on-line - -Funkcje bezpieczeństwa↵ - - opcjonalny przełącznik widoku dzień/noc↵ - - opcjonalne wyświetlanie ograniczeń prędkości z opcją powiadamiania o przekroczeniu prędkości↵ - - opcjonalne powiększanie map w zależności od prędkości↵ - - możliwość dzielenia się swoją lokalizacją ze znajomymi↵ - -Funkcja dla pieszych i rowerzystów↵ - - mapy zawierają informacje dla pieszych i rowerzystów↵ - - specjalne trasy oraz tryby wyświetlania dla pieszych i rowerzystów↵ - - opcja wyświetlania przystanków transportu publicznego (autobusy, tramwaje, pociągi) łącznie z nazwą linii↵ - - opcjonalne nagrywanie tras podróży do plików GPX lub w serwisach online↵ - - opcjonalne wyświetlanie prędkości i wysokości↵ - - wyświetlanie linii konturów i wypełnień (poprzez dodatkowe wtyczki)↵ - -Bezpośredni wkład w OpenStreetMap↵ - - raportowanie błędów mapy↵ - - przesyłanie tras w postaci plików GPX do OSM bezpośrednio z aplikacji↵ - - dodawanie POI i bezpośrednie wysyłanie ich do OSM (lub też późniejsze )↵ - - opcja nagrywania tras podróży w tle (również gdy urządzenie jest w trybie uśpienia) - -OsmAnd jest udostępniane na darmowej licencji open source i jest aktywnie rozwijany. Każdy może przyczynić się do rozwoju aplikacji poprzez zgłaszanie błędów, poprawianiu tłumaczeń, lub dodawania nowych funkcjonalności. Projekt jest w stanie gwałtownego i ciągłego rozwoju i doskonalenia przez w programistów i aktywnych użytkowników. Postęp rozwoju opiera się również na wkładzie finansowym przeznaczonym na rozwój, kodowanie i testowanie nowych funkcjonalności. Kupując OsmAnd+ pomagasz powodujesz że staje się ona bardziej niesamowita! Możliwe jest również finansowanie konkretnych nowych funkcji lub wykonywanie wpłat na ogólny rozwój osmand.net. - -Orientacyjny zasięg map i ich jakość:↵ -- Europa Zachodnia: ****↵ -- Europa Wschodnia: ***↵ -- Rosja: ***↵ -- Ameryka Północna: ***↵ -- Ameryka Południowa: **↵ -- Asia: **↵ -- Japonia i Korea: ***↵ -- Bliski Wschód: **↵ -- Afryka: **↵ -- Antarktyka: * - -Lista krajów obsługiwanych (w zasadzie na cały świat!):↵ -Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Antigua i Barbuda, Antyle Holenderskie, Arabia Saudyjska, Argentyna, Armenia, Aruba, Australia, Austria, Azerbejdżan, Bahamy, Bahrajn, Bangladesz, Barbados, Belgia, Belize, Benin, Bermudy, Bhutan, Białoruś, Boliwia, Bonaire, Bośnia i Hercegowina, Botswana, Brazylia, Brunei, Brytyjskie Wyspy Dziewicze, Bułgaria, Burkina Faso, Burundi, Chile, Chiny, Chorwacja, Curaçao, Cypr, Czad, Czarnogóra, Czechy, Dania, Dominika, Dominikana, Dżibuti, Egipt, Ekwador, Erytrea, Estonia, Etiopia, Fidżi, Filipiny, Finlandia, Francja, Gabon, Gambia, Georgia Południowa, Ghana, Gibraltar, Grecja, Grenada, Grenlandia, Gruzja, Guam, Guernsey, Gujana Francuska, Gujana, Gwadelupa, Gwatemala, Gwinea Bissau, Gwinea Równikowa, Gwinea, Haiti, Hiszpania, Holandia, Honduras, Hong Kong, Indie, Indonezja, Irak, Iran, Irlandia, Islandia, Izrael, Jamajka, Japonia, Jemen, Jersey, Jordania, Kambodża, Kamerun, Kanada, Katar, Kazachstan, Kenia, Kirgistan, Kiribati, Kolumbia, Komory, Kongo, Korea Północna i Korea Południowa, Kostaryka , Kuba, Kuwejt, Laos, Lesotho, Liban, Liberia , Libia, Liechtenstein, Litwa, Luksemburg, Łotwa, Macedonia, Madagaskar, Majotta, Makao, Malawi, Malediwy, Malezja, Mali, Malta, Maroko, Martynika, Mauretania, Mauritius, Meksyk, Mikronezja, Mołdawia, Monako, Mongolia, Montserrat, Mozambik , Myanmar, Namibia, Nauru, Nepal, Niemcy, Niger, Nigeria, Nikaragua, Norwegia, Nowa Kaledonia, Nowa Zelandia, Oman, Pakistan, Palau, Palestyna, Panama, Papua Nowa Gwinea, Paragwaj, Peru, Polinezja Francuska, Polska, Południowy Sudan, Portugalia, Puerto Rico, Republika Środkowoafrykańska, Republika Vanuatu, Republika Zielonego Przylądka, Rosja, Rumunia, Rwanda, Sahara Zachodnia, Saint Helena, Saint Kitts i Nevis, Saint Lucia, Saint Martin, Saint Vincent i Grenadyny, Saint-Barthélemy, Saint-Pierre i Miquelon, Salwador, Samoa, San Marino, Senegal, Serbia, Seszele, Sierra Leone, Singapur, Słowacja, Słowenia, Somalia, Sri Lanka, Stany Zjednoczone Ameryki (USA), Suazi, Sudan, Surinam, Syria, Szwajcaria, Szwecja, Tadżykistan, Tajlandia , Tajwan, Tanzania, Timor Wschodni, Togo, Tokelau, Tonga, Trynidad i Tobago, Tunezja, Turcja, Turkmenistan, Tuvalu, Uganda, Ukraina, Urugwaj, Uzbekistan, Wallis i Futuna, Watykan, Wenezuela, Węgry, Wielka Brytania (UK), Wietnam, Włochy, Wybrzeże Kości Słoniowej, Wyspa Man, Zambia, Zimbabwe, Zjednoczone Emiraty Arabskie. - + " OsmAnd (OSM Automated Navigation Directions) to darmowa aplikacja z dostępem do wysokiej jakości darmowych map OpenStreetMap (OSM) o zasięgu światowym. Wszystkie mapy mogą być przechowywane na karcie pamięci urządzenia (urządzeń). Poprzez urządzenie GPS, OsmAnd oferuje wyznaczanie trasy, prezentując trasę graficznie oraz oferując zapowiedzi słowne, dla samochodu, roweru oraz ruchu pieszego. Wszystkie główne funkcje działają zarówno w trybie online, jak i offline (nie wymagają połączenia z Internetem). OsmAnd+ jest płatną wersją aplikacji. Kupując go można wesprzeć projekt, finansowanie rozwoju nowych funkcji, a otrzymujesz najnowsze aktualizacje. Możesz przetestować aplikację przed zakupem instalując bezpłatną wersję o nazwie OsmAnd. Niektóre z głównych cech: Nawigacja - pracuje online (szybko) lub offline (bez generowania kosztów podczas pobytu przebywania poza granicami kraju)↵ - Podpowiedzi głosowe krok po kroku (w wersji nagranej lub poprzez syntezę głosu)↵ - opcje: asystent pasa ruchu, wyświetlanie nazw ulic oraz przewidywanego czasu przybycia↵ - obsługa pośrednich celów trasy↵ - automatyczne przelicznie trasy po zjechaniu z wyznaczonej trasy↵ - wyszukiwanie miejsc poprzez podanie: adresu, typu (n.p.: restauracja, hotel, stacja benzynowa, muzeum), lub przez podanie współrzędnych↵ Przeglądanie Map↵ - wyświetla pozycję i orientację na mapie↵ - opcjonalnie ustawia mapę zgodnie z kompasem lub zgodnie z kierunkiem ruchu↵ - zapisywanie najważniejszych miejsc jako Ulubione↵ - wyświetlanie punktów POI (punkty zainteresowania) wokół Ciebie↵ - pozwala wyświetlić wyspecjalizowane map internetowe↵ - pozwala wyświetlić widok satelitarny (z portalu Bing)↵ - pozwala wyświetlić różne warstwy jak turystyczne, ślady z plików GPX i innych map z ustawieniem poziomu przeźroczystości↵ - opcjonalne wyświetlanie nazw po angielsku, w jeżyku lokalnym lub w zapisie fonetycznym↵ Używanie map OpenStreetMap i danych systemu Wikipedia:↵ - najwyższej jakości informacje z dobrze współpracujących projektów↵ - globalne mapy z OpenStreetMap, dostępne dla danego kraju lub regionu↵ - Wikipedia POI, świetna do zwiedzania (nie dostępna w wersji darmowej)↵ - nieograniczona ilość pobrań bezpośrednio do aplikacji(limit pobrań w darmowej wersji - 16 map)↵ - zawsze aktualne mapy (aktualizowane co najmniej raz w miesiącu)↵ - kompaktowe mapy wektorowe offline↵ - wybór pomiędzy kompletną mapą a mapą zawierającą tylko drogi (np. pełna mapa Japonii to 700 MB, natomiast mapa zawierająca tylko informacje o drogach 200 MB.)↵ - obsługuje również przechowywanie fragmentów pobranych map on-line Funkcje bezpieczeństwa↵ - opcjonalny przełącznik widoku dzień/noc↵ - opcjonalne wyświetlanie ograniczeń prędkości z opcją powiadamiania o przekroczeniu prędkości↵ - opcjonalne powiększanie map w zależności od prędkości↵ - możliwość dzielenia się swoją lokalizacją ze znajomymi↵ Funkcja dla pieszych i rowerzystów↵ - mapy zawierają informacje dla pieszych i rowerzystów↵ - specjalne trasy oraz tryby wyświetlania dla pieszych i rowerzystów↵ - opcja wyświetlania przystanków transportu publicznego (autobusy, tramwaje, pociągi) łącznie z nazwą linii↵ - opcjonalne nagrywanie tras podróży do plików GPX lub w serwisach online↵ - opcjonalne wyświetlanie prędkości i wysokości↵ - wyświetlanie linii konturów i wypełnień (poprzez dodatkowe wtyczki)↵ Bezpośredni wkład w OpenStreetMap↵ - raportowanie błędów mapy↵ - przesyłanie tras w postaci plików GPX do OSM bezpośrednio z aplikacji↵ - dodawanie POI i bezpośrednie wysyłanie ich do OSM (lub też późniejsze )↵ - opcja nagrywania tras podróży w tle (również gdy urządzenie jest w trybie uśpienia) OsmAnd jest udostępniane na darmowej licencji open source i jest aktywnie rozwijany. Każdy może przyczynić się do rozwoju aplikacji poprzez zgłaszanie błędów, poprawianiu tłumaczeń, lub dodawania nowych funkcjonalności. Projekt jest w stanie gwałtownego i ciągłego rozwoju i doskonalenia przez w programistów i aktywnych użytkowników. Postęp rozwoju opiera się również na wkładzie finansowym przeznaczonym na rozwój, kodowanie i testowanie nowych funkcjonalności. Kupując OsmAnd+ pomagasz powodujesz że staje się ona bardziej niesamowita! Możliwe jest również finansowanie konkretnych nowych funkcji lub wykonywanie wpłat na ogólny rozwój osmand.net. Orientacyjny zasięg map i ich jakość:↵ - Europa Zachodnia: ****↵ - Europa Wschodnia: ***↵ - Rosja: ***↵ - Ameryka Północna: ***↵ - Ameryka Południowa: **↵ - Asia: **↵ - Japonia i Korea: ***↵ - Bliski Wschód: **↵ - Afryka: **↵ - Antarktyka: * Lista krajów obsługiwanych (w zasadzie na cały świat!):↵ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Antigua i Barbuda, Antyle Holenderskie, Arabia Saudyjska, Argentyna, Armenia, Aruba, Australia, Austria, Azerbejdżan, Bahamy, Bahrajn, Bangladesz, Barbados, Belgia, Belize, Benin, Bermudy, Bhutan, Białoruś, Boliwia, Bonaire, Bośnia i Hercegowina, Botswana, Brazylia, Brunei, Brytyjskie Wyspy Dziewicze, Bułgaria, Burkina Faso, Burundi, Chile, Chiny, Chorwacja, Curaçao, Cypr, Czad, Czarnogóra, Czechy, Dania, Dominika, Dominikana, Dżibuti, Egipt, Ekwador, Erytrea, Estonia, Etiopia, Fidżi, Filipiny, Finlandia, Francja, Gabon, Gambia, Georgia Południowa, Ghana, Gibraltar, Grecja, Grenada, Grenlandia, Gruzja, Guam, Guernsey, Gujana Francuska, Gujana, Gwadelupa, Gwatemala, Gwinea Bissau, Gwinea Równikowa, Gwinea, Haiti, Hiszpania, Holandia, Honduras, Hong Kong, Indie, Indonezja, Irak, Iran, Irlandia, Islandia, Izrael, Jamajka, Japonia, Jemen, Jersey, Jordania, Kambodża, Kamerun, Kanada, Katar, Kazachstan, Kenia, Kirgistan, Kiribati, Kolumbia, Komory, Kongo, Korea Północna i Korea Południowa, Kostaryka , Kuba, Kuwejt, Laos, Lesotho, Liban, Liberia , Libia, Liechtenstein, Litwa, Luksemburg, Łotwa, Macedonia, Madagaskar, Majotta, Makao, Malawi, Malediwy, Malezja, Mali, Malta, Maroko, Martynika, Mauretania, Mauritius, Meksyk, Mikronezja, Mołdawia, Monako, Mongolia, Montserrat, Mozambik , Myanmar, Namibia, Nauru, Nepal, Niemcy, Niger, Nigeria, Nikaragua, Norwegia, Nowa Kaledonia, Nowa Zelandia, Oman, Pakistan, Palau, Palestyna, Panama, Papua Nowa Gwinea, Paragwaj, Peru, Polinezja Francuska, Polska, Południowy Sudan, Portugalia, Puerto Rico, Republika Środkowoafrykańska, Republika Vanuatu, Republika Zielonego Przylądka, Rosja, Rumunia, Rwanda, Sahara Zachodnia, Saint Helena, Saint Kitts i Nevis, Saint Lucia, Saint Martin, Saint Vincent i Grenadyny, Saint-Barthélemy, Saint-Pierre i Miquelon, Salwador, Samoa, San Marino, Senegal, Serbia, Seszele, Sierra Leone, Singapur, Słowacja, Słowenia, Somalia, Sri Lanka, Stany Zjednoczone Ameryki (USA), Suazi, Sudan, Surinam, Syria, Szwajcaria, Szwecja, Tadżykistan, Tajlandia , Tajwan, Tanzania, Timor Wschodni, Togo, Tokelau, Tonga, Trynidad i Tobago, Tunezja, Turcja, Turkmenistan, Tuvalu, Uganda, Ukraina, Urugwaj, Uzbekistan, Wallis i Futuna, Watykan, Wenezuela, Węgry, Wielka Brytania (UK), Wietnam, Włochy, Wybrzeże Kości Słoniowej, Wyspa Man, Zambia, Zimbabwe, Zjednoczone Emiraty Arabskie. " Mapa podstawowa @@ -1293,7 +1222,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant Przybliżenie - Obliczanie trasy offline może zająć dłuższą chwilę (lub czasami nie działać) dla punktów, które dzieli więcej niż 200km. Można spróbować dodać punkty pośrednie w celu zwiększenia wydajności. + Obliczanie trasy offline może zająć dłuższą chwilę (lub czasami nie działać) dla punktów, które dzieli więcej niż 200km. Można spróbować dodać cele pośrednie aby zwiększyć wydajność. Brak automatycznego przybliżania Zbliżenie Widok pośredni @@ -1554,7 +1483,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant Aktualny czas Punkt trasy Zapisz jako grupę ulubionych - Wybierz punkty + Wybierz cele docelowe Etykiety punktów Wyświetla przyciski zbliżania i oddalania podczas nawigacji @@ -2149,4 +2078,11 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant Omijanie schodów Omijanie schodów Omijanie przejść granicznych - + Szlaki konne + Brak ustalonego adresu + Ukryj + Pobieraj tylko przez WiFi + Uaktualniaj na bieżąco + Aktualizuj teraz +Aktualizacja co + From cd3db3f3bb27c23a7c2bed9257dba1eacd0a7739 Mon Sep 17 00:00:00 2001 From: Olexandr Nesterenko Date: Fri, 11 Dec 2015 13:05:20 +0100 Subject: [PATCH 36/60] Translated using Weblate (Ukrainian) Currently translated at 99.4% (1834 of 1845 strings) --- OsmAnd/res/values-uk/strings.xml | 380 +++++++++++++++++++++++-------- 1 file changed, 287 insertions(+), 93 deletions(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 8a0ab2e748..72bac9099f 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -1,4 +1,5 @@ - + + Швидко Круговий рух : %1$d з’їзд @@ -31,20 +32,20 @@ Дякуємо вам за використання OsmAnd. Для роботи більшості основних можливостей програми потрібні детальні мапи регіонів, які можна завантажити з Інтернету за допомогою пункту меню \'Налаштування\' → \'Управління мапами\'. Після завантаження цих мап Ви зможете здійснювати пошук за адресою, POI і зупинкам громадського транспорту. Базова мапа необхідна для коректної роботи програми і автоматично була вибрана для завантаження. Нічого не знайдено. Якщо ви не знайшли свій регіон, ви можете створити карту самостійно (див. http://osmand.net). - Онлайн мапи (растрові) - Оффлайн мапи (векторні) + Онлайн та кешовані растрові мапи + Стандартні мапи (векторні) Завантаження, перегляд деталей, та управління локальними мапами Активуйте втулок онлайн мап, щоб мати можливість вибирати різні джерела для мап Онлайн мапи (растрові) Використовувати онлайн мапи (кешуються на SD картці) Онлайн мапи - Налаштування онлнай або кешованих джерел (тайлів) мап + Налаштування онлайн або кешованих джерел (тайлів) мап - "Цей втулок надає можливість отримати доступ до багатьох типів онлай (так званих растрових) мап, від попередньо створених квадратів Openstreetmap (накшталт стилю Mapnik) до супутникових знімків та спеціальних шарів, таких як погодні, кліматичні та геологічні мапи, шари рельєфу й т.і.\n\nБідь яка з цих мап може використовуватись як основна мапа в OsmAnd, або як покриття чи підкладинка до іншої основної мапи (наприклад звичайна офлайнова мапа OsmAnd). Для того, щоб зробити більш помітною будь-яку мапу-підкладку, певні елементи векторної мапи OsmAnd можна легко сховати через меню \'Налаштування Мапи\'.\n\nКвадрати мап можна отримувати безпосередньо з онлайн-джерел або підготувати їх для офлайнового використання (та вручну скопіювати в теку даних OsmAnd) у вигляді бази даних sqlite, яку можна створити за допомогою різноманітних стронніх інструментів підготовки мап. " - Показує налаштування для навігації і запису маршрутів в енергозберігаючому режимі. Втулок працює в фоновому режимі і періодично активує GPS для запису маршруту або відтворення голосових команд. - Втулок містить налаштування допоміжних можливостей. Він дозволяє налашутвати швидкість відтворення голосових підказок, налаштування спрямовування екрану під час навігації, використання трекболу для маштабування, або використання перетворення тексту в голос, скажімо, для сповіщення про ваше поточне місцезнаходження. + "Цей втулок надає можливість отримати доступ до багатьох типів онлайн (так званих растрових) мап, від попередньо створених квадратів Openstreetmap (на кшталт стилю Mapnik) до супутникових знімків та спеціальних шарів, таких як погодні, кліматичні та геологічні мапи, шари рельєфу й т.і.\n\nБудь яка з цих мап може використовуватись як основна мапа в OsmAnd, або як покриття чи підкладка до іншої основної мапи (наприклад стандартна оффлайнова мапа OsmAnd). Для того, щоб зробити більш помітною будь-яку мапу-підкладку, певні елементи векторної мапи OsmAnd можна легко сховати через меню \'Налаштування Мапи\'.\n\nКвадрати мап можна отримувати безпосередньо з онлайн-джерел або підготувати їх для оффлайнового використання (та вручну скопіювати в теку даних OsmAnd) у вигляді бази даних sqlite, яку можна створити за допомогою різноманітних сторонніх інструментів підготовки мап. " + Показує налаштування для активації навігації та запису маршрутів в фоновому режимі (екран вимкнено), періодично активуючи GPS. + Втулок містить налаштування допоміжних можливостей. Він дозволяє налаштувати швидкість відтворення голосових підказок, налаштування спрямовування екрану під час навігації, використання трекболу для масштабування, або використання перетворення тексту в голос, скажімо, для сповіщення про ваше поточне місцезнаходження. @@ -165,10 +166,10 @@ Європа Європа - Франція Європа - Німеччина - Європа/Азія - Росія + Росія Африка Азія - Океанія + Австралія та Океанія Мапи світу Worldwide Wikipedia Голосові дані (запис, обмежений функціонал) @@ -193,7 +194,7 @@ Пароль Потрібно для роботи з openstreetmap.org Фоновий режим - Запустити OsmAnd у фоновому режимы для запису трека і навігації + OsmAnd працюватиме у фоновому режимі коли екран вимкнено @@ -233,7 +234,7 @@ Файл з таким ім’ям вже існує. GPX маршрут Деякі категорії POI відповідають запиту, можете використовувати їх для створення фільтра: - Локальні дані для пошука POI за іменем не знайдено. + Локальні дані для пошуку POI за іменем не знайдено. Пошук за назвою Дані POI \'%1$s\' застаріли і можуть бути вилучені. Файл з POI точками не знайдено і не може бути створено. @@ -293,17 +294,17 @@ POI дані Адреси - Дані громадського траснпорту + Дані громадського транспорту Мапа Деактивовані - Голосові дані (TTS) - Голосові дані (запис) + Голосові підказки (TTS) + Голосові підказки (запис) POI дані Голос TTS Новий пошук - Виберіть розмір шрифта для позначень на мапі + Виберіть розмір шрифту для позначень на мапі Розмір тексту Налагоджувальна інформація про рендеринг Відобаражає продуктивність рендерингу @@ -433,7 +434,7 @@ Збірка {0} успішно встановлена ({1}). Завантажується збірка… - Ви впевнені, що хочете встановити OsmAnd - {0} від {1} {2} MB? + Ви впевнені, що хочете встановити OsmAnd - {0} з {1} {2} MB? Не вдалось отримати список збірок OsmAnd Завантажуються збірки OsmAnd… Виберіть одну зі збірок OsmAnd для встановлення @@ -445,7 +446,7 @@ Ніч Схід/захід Датчик освітленості - Виберіть режим перемиканяя денного/нічного вигляду мапи + Виберіть режим перемикання денного/нічного вигляду мапи Денний/нічний режим Завантажити {0} файл(ів) ({1} MB)? Було вибрано {0} @@ -506,7 +507,7 @@ Імпортувати Помилка при завантаженні GPX - Відпавити звіт + Відправити звіт Не знайдено оффлайн мап для даного регіону на SD карті. Завантажити їх з Інтернету. Введіть запит для пошуку POI Всі @@ -533,19 +534,19 @@ GPS секунд хв. - Виберіть інтервал позиціонування для сервісу + Виберіть інтервал пробудження для фонового сервісу Інтервал вмикання GPS - Виберіть джерело позиціонування для сервісу - Джерело позиціонування + Виберіть джерело позиціювання для фонового сервісу + Джерело позиціювання Запускає OsmAnd у фоновому режимі для відслідковування місцерозташування при вимкненому екрані - Запускати у фоні - Фоновому сервісу необхідна інформація про місцезнаходження. + Запустити OsmAnd у фоні + Фоновому сервісу навігації необхідно, аби постачальник позиціювання був активним. Сховати фільтр Показати фільтр Фільтр Звук увімкнено Звук вимкнено - Виберіть голосові вказівки для навіґації + Виберіть голосові вказівки для навігації Голосові дані Ініціалізуються голосові дані… Голосові дані не підтримуються поточною версією програми @@ -553,7 +554,7 @@ Вибрані голосові дані недоступні SD карта недоступна.\nВи не можете працювати з мапами. - SD карта доступна тільки для читання.\nВи не можете заванатажувати карти з Інтернету. + SD карта доступна тільки для читання.\nВи не можете завантажувати мапи з Інтернету. Файл розпаковується… Поверніть праворуч і рухайтесь Поверніть різко праворуч і рухайтесь @@ -589,12 +590,12 @@ Транспорт Гаразд Показувати зупинки громадського транспорту - Показувати зупинки траспорта + Показувати зупинки транспорту Навігаційна програма OsmAnd POI дані успішно оновлено ({0} об\'єктів завантажено) Помилка оновлення POI даних Помилка завантаження даних із сервера - Для цієїмісцевості відсутні локальні дані про POI + Для цієї місцевості відсутні локальні дані про POI Оновлення POI не доступне на дрібних масштабах Оновити POI Оновити локальні дані, завантаживши їх з Інтернету? @@ -611,11 +612,11 @@ Пошук… Пошук адреси… Пошук адреси в OSM Nominatim - Онлай пошук: Номер будинку, вулиця, місто + Онлайн пошук: Номер будинку, вулиця, місто Оффлайн пошук Інтернет Макс. рівень деталізації - Веберіть максимальний рівень деталізації для завантаження з Інтернету + Виберіть максимальний рівень деталізації для завантаження з Інтернету Загальна відстань %1$s, час в дорозі %2$d г %3$d хв. Виберіть сервіс для прокладання маршруту Прокладання маршруту @@ -684,10 +685,10 @@ Налаштування Зберегти активний трек на SD Зберегти активний GPX трек - Інтервал збереження під час навіґації - Вказати інтервал збереження точок треку під час навіґації - Треки будуть збережені в теку для треків під час навіґації - Записувати трек у файл GPX під час навіґації + Інтервал збереження під час навігації + Вказати інтервал збереження точок треку під час навігації + Треки будуть збережені в теку для треків під час навігації + Записувати трек у файл GPX під час навігації Оновити мапу Оновити частину мапи Точка @@ -837,7 +838,7 @@ AM Місце паркування Втулок “Місце стоянки” дозволить вам запам’ятати, коли ви поставили автівку на стоянку та скільки часу залишилось, якщо стоянка обмежена часом. -\n\nВи можете знайти місце стоянки та час на панелі керування та на віповідному віджеті на мапі. Також він додає нагадування в календар, якщо ви бажаєте отримати нагадування. +\n\nВи можете знайти місце стоянки та час на панелі керування та на відповідному віджеті на мапі. Також він додає нагадування в календар, якщо ви бажаєте отримати нагадування. Місце стоянки Відмітити місце паркування Вилучити маркер місця стоянки @@ -852,7 +853,7 @@ Вкажіть швидкість анімації маршруту Годин Хвилин - Автомобіль припарковано о: + Автомобіль припарковано о Використовувати навігацію за компасом, коли напрямок не визначений Використовувати компас Маршрут буде обраховано після визначення місцерозташування @@ -862,7 +863,7 @@ Відображати камери контролю швидкості Показувати обмеження швидкості - Уникати платних доріг + Платні дороги Назва вулиці Налаштування @@ -889,7 +890,7 @@ Встановити інтервал пробудження: Для розблокування екрану доторкніться до іконки блокування Розблокувати екран - Увімкнути\nфоновий режим + Запустити\n додаток у фоновому режимі Вимкнути\nфоновий режим Час прибуття не відмічено @@ -902,11 +903,11 @@ немає OpenMaps - Європа - Шари з рельєфом + Затемнення рельєфу Аудіо/Відео дані Ви впевнені, що хочете зупинити навігацію? - Ви впевнені, що хочете вилучити пункт призначення? + Ви впевнені, що хочете вилучити пункт призначення(і проміжні точки)? Показати Фото %1$s %2$s Сфотографувати @@ -915,7 +916,7 @@ Втулок Dropbox Змінити порядок - Розгляньте будь ласка можливість придбання втулку «Ізолінії висот» на Маркеті, це підтримає його подальшу розробку. + Розгляньте, будь ласка, можливість придбання втулку «Ізолінії висот» на Маркеті, це підтримає його подальшу розробку. Втулок Ізолінії висот Запис відео Запис аудіо @@ -956,7 +957,7 @@ Ви хочете вилучити даний запис? Запис %1$s %3$s %2$s - "Цей втулок показує як ізолінії висот так і рель’єф на мапах 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). " Вимірювання відстаней @@ -965,12 +966,12 @@ Аудіо/відео замітки частин Ізолінії висот - "Цей втулок показує як ізолінії висот так і рель’єф на мапах 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). " Ізолінії висот Інші мапи Тільки дороги Ізолінії висот - Мапи тільки з дорогами + Мапа лише з дорогами Приховати кордони @@ -1000,19 +1001,19 @@ Ввімкнути GPS в налаштуваннях Служби моніторингу Відмінити - Вилучити точку маршруту + Вилучити точку призначення Пункт призначення %1$s - Точка %1$s - Кінцевий пункт призначення + Пункт призначення %1$s + Додати як останню проміжну точку Додати як першу проміжну точку - Додати як останню точку + Додати як останню проміжну точку Додати як першу проміжну точку Замінити пункт призначення Ви вже встановили пункт призначення. Точки призначення - Точка %1$s занадто далеко від найближчої дороги. + Проміжна точка %1$s занадто далека від найближчої дороги. Ви вже досягнули проміжної точки - Додати проміжну точку + Додати як проміжну точку Початок маршруту занадто далеко від найближчої дороги. Додати мітку Розширений режим… @@ -1027,9 +1028,9 @@ Швидка побудова маршруту (можливо неоптимальна) - Налаштування показу попереджень (обмеження швидкості, примусові зупинки, пристрої обмеження швикості), камер контролю швикодсті і інформації руху по смугах + Налаштування показу попереджень (обмеження швидкості, примусові зупинки, пристрої обмеження швидкості), камер контролю швидкості і інформації руху по смугах Уникати автомагістралей - Прив’язати поточну позицію до дороги під час навіґації + Прив’язати поточну позицію до дороги під час навігації Прив’язати до дороги Перегляд та навігація в автономному та онлайн режимах мапами ОСМ Перегляд та навігація в автономному на онлайн режимах мапами ОСМ @@ -1060,7 +1061,7 @@ Інтервал пробудження GPS: %s Безперервно Напрямок - Пожертвувати, для реалізації нових можливостей в аплцікації + Пожертвувати, для реалізації нових можливостей в додатку Email GPS дані Аудіо записи @@ -1071,7 +1072,7 @@ Шар рельєфа місцевості - Повні мапи + Стандартна мапа " OsmAnd (OSM Automated Navigation Directions) OsmAnd — навігаційне програмне забезпечення з відкритим кодом з доступом до різноманітних картографічних даних від OpenStreetMap (OSM). Всі картографічні дані (векторні та растрові) можуть бути збережені на карті пам’яті для подальшого автономного використання. OsmAnd також пропонує можливість прокладання маршруту як оффлайн, так і використовуючи онлайн-сервіси з покроковим голосовим супроводженням. Кілька основних можливостей: - Повноцінна робота без інтернет-з’єднання(просто збережіть векторні чи растрові дані на пристрій), - Компактна векторна мапа всього світу, - Завантаження мап країн чи регіону безпосередньо в програмі, - Можливість показу додаткових даних на мапі, наприклад шар для прокладання маршруту чи шар із записом GPX-треку, з POI, закладками, ізолініями висот, громадським транспортом, додатковими мапами з можливістю налаштовування рівня прозорості, - Автономний пошук адрес та POI, - Прокладання маршрутів оффлайн на короткі відстані (експериментальна функція), - Режими для пішохідної, автомобільної та велонавігації: - можливість перемикання на денний/нічний режим показу мапи, - автомасштабування мапи відповідно до швидкості руху, - можливість орієнтації мапи за компасом чи напрямком руху, - показ руху по смугах та обмежень швидкості, запис та голосове супроводження. Обмеження безкоштовної версії: - кількість завантажених мап є обмеженою, - відсутній оффлайн доступ до інформації з Вікіпедії для POI. OsmAnd активно розвивається, його подальший розвиток забезпечується фінансовими надходженнями від його користувачів, за рахунок якої відбувається подальша розробка та впровадження нових функцій. Якщо вам подобається OsmAnd, розгляньте можливість придбання OsmAnd+ чи підтримайте впровадження нових функцій, або зробіть благодійний внесок на osmand.net. " @@ -1150,7 +1151,7 @@ OsmAnd має відкриті сирці і активно розвиваєть - Вулиця + Назва вулиці Номер будинку Виберіть тему програми @@ -1158,7 +1159,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Виберіть адресу Виберіть закладку Інші дії - Зменьшує «шум» компасу, але додає инерцию + Зменшує «шум» компасу, але додає інерцію Використовувати фільтр Калмана Інше залишилось %1$d файлів @@ -1197,7 +1198,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Файл змін OSM успішно створений в %1$s Інструмент підрахунку відстані і планування Виберіть місто або вулицю - Цей втулок актівує віджет для створення маршрутів натисканням на мапі (чи використати існуючий GPX-файл) для підрахунку відстані між точками. Результат може бути збережений як GPX для подальшого використання. + Цей втулок активує віджет для створення маршрутів натисканням на мапі (чи використати наявний GPX-файл) для підрахунку відстані між точками. Результат може бути збережений як GPX для подальшого використання. Виміряти нову ділянку @@ -1271,7 +1272,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Перелік підтримуваних країн (взагалі то увесь світ!): Афганістан, Австралія, Австрія, Азербайджан, Албанія, Алжир, Ангілья, Ангола, Андорра, Антигуа і Барбуда, Аргентина, Аруба, Багамські острови, Бангладеш, Барбадос, Бахрейн, Беліз, Бельгія, Бенін, Бермудські острови, Білорусь, Болгарія, Болівія, Бонайре, Боснія і Герцеговина, Ботсвана, Бразилія, Британські Віргінські острови, Бруней, Буркіна-Фасо, Бурунді, Бутан, В’єтнам, Вануату, Ватикан, Венесуела, Вірменія, Габон, Гаїті, Гайана, Гамбія, Гана, Гваделупа, Гватемала, Гвінея, Гвінея-Бісау, Гернсі, Гібралтар, Гондурас, Гонконг, Гренада, Гренландія, Греція, Грузія, Гуам, Данія, Джерсі, Джібуті, Домініка, Домініканська Республіка, Еквадор, Екваторіальна Гвінея, Еритрея, Естонія, Ефіопія, Єгипет, Ємен, Замбія, Західна Сахара,, Зімбабве., Ізраїль, Індія , Індонезія, Ірак, Іран, Ірландія, Ісландія, Іспанія, Італія, Йорданія, Кабо-Верде, Казахстан, Камбоджа, Камерун, Канада, Катар, Кенія, Киргизстан, Китай, Кіпр, Кірибаті, Колумбія, Коморські Острови, Конго, Коста-Ріка , Кот-д’Івуар, Куба, Кувейт, Кюрасао, Лаос, Латвія, Лесото, Литва, Ліберія , Ліван, Лівія, Ліхтенштейн, Люксембург, М’янма, Маврикій, Мавританія, Мадагаскар, Майотта, Макао, Македонія, Малаві, Малайзія, Малі, Мальдіви, Мальта, Марокко, Мартініка, Мексика, Мікронезія, Мозамбік , Молдова, Монако, Монголія, Монтсеррат, Намібія, Науру, Непал, Нігер, Нігерія, Нідерланди, Нідерландські Антильські острови, Нікарагуа, Німеччина, Нова Зеландія, Нова Каледонія, Норвегія, Об’єднані Арабські Емірати, Оман, острів Мен, Острів Святої Єлени, Пакистан, Палау, Палестина, Панама, Папуа Нова Гвінея, Парагвай, Перу, Південна Африка, Південна Грузія, Південний Судан, Північна Корея і Південна Корея, Польща , Португалія, Пуерто-Ріко, Росія, Руанда, Румунія, Сальвадор, Самоа, Сан-Марино, Саудівська Аравія, Свазіленд, Сейшельські острови, Сен-Мартен, Сен-П’єр і Мікелон, Сенегал, Сент-Бартелемі, Сент-Вінсент і Гренадини, Сент-Кітс і Невіс, Сент-Люсія, Сербія, Сирія, Сінгапур, Словаччина, Словенія, Сомалі, Сполучене Королівство (Великобританія), Сполучені Штати Америки (США), Судан, Сурінам, Сьєрра-Леоне, Таджикистан, Таїланд , Тайвань, Танзанія, Тимор-Лешті, Того, Токелау, Тонга, Тринідад і Тобаго, Тувалу, Туніс, Туреччина, Туркменістан, Уганда, Угорщина, Узбекистан, Україна, Уолліс і Футуна, Уругвай, Фіджі, Філіппіни, Фінляндія, Франція, Французька Гвіана, Французька Полінезія, Хорватія, Центрально-Африканська Республіка, Чад, Чеська Республіка, Чилі, Чорногорія, Швейцарія, Швеція, Шрі-Ланка, Ямайка, Японія. - Дані ізоліній висот + Ізоліній висот Встановити як пункт призначення Збій резервного копіювання файлу змін OSM Резервне копіювання файлу змін OSM @@ -1298,9 +1299,9 @@ OsmAnd має відкриті сирці і активно розвиваєть У вас встановлена попередня версія OsmAnd. Всі локальні дані підтримуються новою версією. Але збережені точки потрібно експортувати з попередньої версії і імпортувати в нову. - Попереджати про обмеження швидкості - Попереджати про камери фіксації швидкості - Попереджати про перешкоди на шляху + Обмеження швидкості + Камери фіксації швидкості + Перешкоди на шляху Мапа: Введіть OSM логін і пароль в налаштуваннях @@ -1309,10 +1310,10 @@ OsmAnd має відкриті сирці і активно розвиваєть Маршрут до Маршрут від До: - Попереджати про маршрутні точки GPX + Маршрутні точки GPX Попереджати… Увімкніть оголошення назв вулиць, дорожніх обмежень (примусових зупинок, лежачих поліцейських); повідомленя про камери фіксації швидкості, про обмеження швидкості - Оголошувати назви вулиць (TTS) + Назви вулиць (TTS) Лишити проміжні точки Через: @@ -1349,7 +1350,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Термін дії (в хвилинах) Мін.масштаб URL - Виберіть існуючий… + Виберіть наявний… Назва Визначити/змінити… @@ -1364,7 +1365,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Ім’я пристрою Створити групу Приєднатись до - Надіслати моє місцезнаходження + Надіслати мої місцезнаходження годин тому хвилин тому секунд тому @@ -1378,7 +1379,7 @@ OsmAnd має відкриті сирці і активно розвиваєть OsMo Server збій виконання операції OpenStreetMap Моніторинг OsMo швидкий доступ - Трек Gpx порожній + Трек GPX порожній Всі треки Мої Закладки @@ -1398,7 +1399,7 @@ OsmAnd має відкриті сирці і активно розвиваєть По центру екрану Почати стеження Зареєстроване ім’я - Моє призьвісько + Моє прізвисько Користувач рожевий @@ -1414,7 +1415,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Група OsMo Продовжувати Зупинити - Ввімкнути режим сну GPS + Ввімкнути фоновий режим GPS Інтервал вмикання GPS Зупинити фоновий режим GPS? Бажана мова для етикеток на мапі (якщо вона недоступна будуть показані позначки англійською чи місцевою мовами) @@ -1423,7 +1424,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Суахілі Іврит Вперед - На початок + Домашня сторінка Надсилати дані для відстежування до вказаної веб-служби, якщо увімкнено логування GPX. Онлайн моніторинг (потрібен GPX) Розпочати моніторинг @@ -1465,7 +1466,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Показувати кнопки зміни масштабу під час навігації Показувати кнопки зміни масштабу Зберегти як групу закладок - Виділити маршрутні точки + Виберіть призначення Мітки точок Завантаження %1$s… Поточний час @@ -1603,13 +1604,13 @@ OsmAnd має відкриті сирці і активно розвиваєть Надавати перевагу автомагістралям Надавати перевагу автомагістралям Найкоротший шлях - Використоввати короткий шлях + Використовувати короткий шлях Уникати платних доріг Уникати платних доріг - Уникати грунтових доріг - Уникати грунтових доріг - Уникати пароми - Уникати пароми + Уникати ґрунтових доріг + Уникати ґрунтових доріг + Уникати пороми + Уникати пороми Уникати автомагістралі Уникати автомагістралі Максимальна вага @@ -1621,7 +1622,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Файл (%s) копіюється на нове місце… Копіювання файлів даних OsmAnd до нового місця (%s)… Копіювання файлів даних OsmAnd… - Розрахувати офлайн маршрут в OsmAnd + Розрахувати оффлайн маршрут в OsmAnd Вантажівка Налаштування навігації Налаштування маршрутизації @@ -1701,22 +1702,22 @@ OsmAnd має відкриті сирці і активно розвиваєть Автівка Велосипед Пішохід - "Цей плагін активує можливість записувати та зберігати ваші треки вручну, торкаючись віджету логування GPX на екрані мапи, або автоматично записувати всі ваші подорожі у файл GPX.\n\nЗаписаними треками можна поділитись з вашими друзями або іншими учасниками спільноти OSM. Атлети можуть використовувати записані треки для відстежування власних тренувань. Базовий аналіз треків наявний безпосередньо в OsmAnd, наприклад: час проходження кола, середня швидкість й т.д., звісно, записані треки можна також проаналізувати за допомогою іншого програмного забезпечння. " + "Цей втулок активує можливість записувати та зберігати ваші треки вручну, торкаючись віджету логування GPX на екрані мапи, або автоматично записувати всі ваші подорожі у файл GPX.\n\nЗаписаними треками можна поділитись з вашими друзями або іншими учасниками спільноти OSM. Атлети можуть використовувати записані треки для відстежування власних тренувань. Базовий аналіз треків наявний безпосередньо в OsmAnd, наприклад: час проходження кола, середня швидкість й т.д., звісно, записані треки можна також проаналізувати за допомогою іншого програмного забезпечення. " Писати трек у файл GPX Загальний запис місцезнаходження в файл GPX можна ввімкнути або вимкнути кнопкою логування GPX на екрані з мапою Інтервал записування Маршрути автобусів, тролейбусів та шатлів Запис подорожей г - Тривалісьть + Тривалість Віддаль Подорожі Усі Путьові точки Цілі Перешкоди - Оголошувати закладки, що є поруч - Оголошувати POI, що є поруч + Закладки, що є поруч + POI, що є поруч Завжди питати Оберіть інтервал періодичності запису треку (вмикається через віджет логування GPX) Загальний інтервал запису @@ -1738,7 +1739,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Уникати дороги… Маршрути поїздів - Маршрути трамваїів + Маршрути трамваїв Маршрутне таксі Маршрути тролейбусів Маршрути автобусів @@ -1797,8 +1798,8 @@ OsmAnd має відкриті сирці і активно розвиваєть Пам’ять пристрою Лижні мапи Морські мапи - Для показу лижних мап, потріно завантажити спеціалізовані мапи - Для показу морських мап, потріно завантажити спеціалізовані мапи + Для показу лижних мап, потрібно завантажити спеціалізовані мапи + Для показу морських мап, потрібно завантажити спеціалізовані мапи Редагувати групу Місце для стоянки ВИЛУЧИТИ ТЕҐ @@ -1817,7 +1818,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Почати навігацію по треку? Ви можете вибрати альтернативний маршрут, вибравши дороги, які варто уникати - Сповіщати про пішохідні перехіди + Пішохідні переходи Стиль доріг За замовчуваням Помаранчевий @@ -1829,7 +1830,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Атлас доріг Америки Не використовувати для побудови маршруту алгоритм представлений у версії 1.9 Ви бажаєте завантажити оффлайн мапи? - Завантежено %1$s мап + Завантажено %1$s мап Завантажити нову мапу Керувати Мова мапи @@ -1870,7 +1871,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Змінити дію Вилучити дію правки OSM - гхвлишилось Стоянка з обемеженням по часу + гхвлишилось Стоянка з обмеженням по часу Ваші правки Відвідати після Відвідати, перш ніж @@ -1925,11 +1926,11 @@ OsmAnd має відкриті сирці і активно розвиваєть Вирушаємо Не використовувати Адреса - "Активація цього виду змінює стиль мапи OsmAnd на \'Туристичну мапу\' – особливий стиль з докладною детализацією для мандрівників та професіональних водіїв. + "Активація цього виду змінює стиль мапи OsmAnd на \'Туристичну мапу\' – особливий стиль з докладною деталізацією для мандрівників та професіональних водіїв. \n\nЦей режим надає, на будь-якому масштабі, максимальну кількість інформації потрібну для подорожуючих (дороги, путівці, стежки та орієнтири). -\n\nВін також чітко показує всі типи доріг однозначним кольоровим кодуваняс, що є корисним особливо для водіїв великих транспортних засобів.\n\nВін також має спеціальні налаштування для показу веломаршрутів та гірських туристичних маршрутів. -\n\nВін не потребує завантаження окремих мап, вид ствоюється на основі інформації зі стандартної мапи. -\n\nЦей вид можна де-активувати тут або змінити на інший, змінивши \'Стиль мапи\' на потрібний в \'Налаштувані мапи\'. " +\n\nВін також чітко показує всі типи доріг однозначним кольоровим кодуванням, що є корисним особливо для водіїв великих транспортних засобів.\n\nВін також має спеціальні налаштування для показу веломаршрутів та гірських туристичних маршрутів. +\n\nВін не потребує завантаження окремих мап, вид створюється на основі інформації зі стандартної мапи. +\n\nЦей вид можна де-активувати тут або змінити на інший, змінивши \'Стиль мапи\' на потрібний в \'Налаштування мапи\'. " "Втулок забезпечує вам доступ до даних про гірськолижні траси, маршрути для бігових лиж, гірськолижні спуски, фунікулери та підйомники. Маршрути і спуски відзначені різними кольорами залежно від їх складності та зображені з використанням спеціального \"зимового\" стилю мапи, який полягає в тому, що використовуються \"снігові\" кольори зимового пейзажу. \n\nУ разі активації цього виду, стиль мапи змінюється на \"Winter and ski\", показуючи всі деталі пейзажу так, як вони виглядають взимку. Цей (зимовий) вид може бути де-активований тут, або якщо ви поміняєте \"Стиль мапи\" в меню \"Налаштування мапи\" на бажаний вид. " Приховати номери будинків @@ -1967,7 +1968,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Напівпрозорий світло зелений Зелений Напівпрозорий зелений - Світло-блакиіний + Світло-блакитний Напівпрозорий світло-блакитний Синій Напівпрозорий синій @@ -2007,7 +2008,7 @@ OsmAnd має відкриті сирці і активно розвиваєть Ви хочете завантажити додаткові дані з Вікіпедії (%1$s Мб) ? Сервіс локації вимкнений. Бажаєте його ввімкнути? Запобігти самостійному логуваню - Логування GPX буде призупинено коли додаток закрити (через недавні додатки). (Індикатор сну OsmAnd зникне з панелі сповіщень Android\'а) + Логування GPX буде призупинено коли додаток буде закрито (через недавні додатки). (Фоновий індикатор OsmAnd зникне з панелі сповіщень Android\'а) Імпортувати до OsmAnd Читати повну статтю (онлайн) @@ -2022,7 +2023,200 @@ OsmAnd має відкриті сирці і активно розвиваєть Ви збираєтеся видалити %1$d записів. Ви впевнені? Вікіпедія Типово (13) - Типово (напівпрозорий балкитний) + Типово (напівпрозорий блакитний) Напівпрозорий помаранчевий Оновити - \ No newline at end of file + Кінні маршрути + Адреса не визначена + Поруч + Приховати + Нижча якість + Вища якість + Якість відео + Виберіть якість відео + Формат аудіо + Виберіть формат аудіо + Бітова швидкість аудіо + Виберіть бітову швидкість аудіо + Будь ласка, вкажіть коректний тип POI з переліку, або пропустіть його + Показувати під час старту + Скопійовано до буферу обміну + Зберегти локально + OSM POI відредаговано + OSM POI видалено + Відкрити OSM замітку + Відкрити заново OSM замітку + До замітки OSM додано коментар + Замітку OSM видалено + Замітку OSM створено + Замітка OSM + Створити замітку + Додати коментар + Відкрити заново замітку + Закрити замітку + Замітку успішно створено + Трапилась помилка: замітку не створено + Замітку успішно закрито + Трапилась помилка: замітку не закрито + Підтвердити + + Вилучити GPX точку? + Редагувати GPX точку + Розташування + Нижньонімецька + Македонська + Західнофризька + Албанська (Тоскська) + Детальніше + Що нового у + Вивантажити + OSM POI створено + + Базова мапа світу (яка покриває увесь світ при малому масштабі) відсутня, чи застаріла. Будь ласка, завантажте її для повноцінної роботи середовища. + QR-код + Мапу завантажено + Мапу %1$s завантажено. Поверніться назад до карти, аби розпочати користування нею. + Перейти до мапи + Імітувати перший запуск додатку + гео: + Поділитись місцезнаходженням + Надіслати + Категорія із вказаною назвою вже існує. Будь ласка, введіть іншу назву. + Назва категорії + Додати нову категорію + Регіони + Регіональні мапи + Мапи світу + Шар рельєфу місцевості вимкнено + Контурні лінії вимкнено + Додати нову + Виберіть категорію + Визначте одиниці виміру швидкості + Одиниці виміру швидкості + Морські милі + Кілометри на годину + Милі на годину + Метри на секунду + Хвилин за кілометр + Хвилин за милю + Морських миль на годину (вузол) + хв/м + хв/км + м/с + Запис подорожі + Навігація + Працює у фоновому режимі + Інформація по закладці + Зупинити симуляцію вашої позиції + Пошук адреси + Місця + Втулки + Уникати приміських поїздів + Уникати приміських поїздів + Небезпека + Жирний контур + Немає доступних оновлень + Автоматичні оновлення + Колір GPX + Товщина GPX + Вікіпедія + Стиль доріг + Уникати сходи + Уникати сходи + Уникати перетин кордону + Інші + Додати закладку + видалити + Повторно відкрити + Чи подобається вам OsmAnd? + Нам дуже цікаво почути вашу думку і важливо отримати відгук. + Оцінити цей додаток + Будь ласка, дайте оцінку OsmAnd на Google Play + Розкажіть нам, чому. + Не вдалося завантажити + Видалити зміни + Успішно вивантажено {0}/{1} + Спробуйте ще раз + Помилка: {0} + Налатування домашньої сторінки + + Картку було приховано + СКАСУВАТИ + Пропустити + OsmAnd + Оффлайн мапи\nта навігація + Підтвердити POI + Основні + Розширені + Номер будинку + Наступний + Контактна інформація + Опис + Додати години роботи + Тип POI + Будь ласка, вкажіть тип POI. + Робочі дні + Закладки + Успішно збережено о: %1$s + Показати GPX + Кількість ліній + Ви впевнені? + Всі незбережені зміни буде втрачено. Продовжити? + %1$s завантажень лишилось + Дороги + Придбати + Будь ласка, активуйте втулок морські навігаційні знаки + Будь ласка, активувати втулок SRTM + Пізніше + Повна версія + Завантаження + %1$.1f з %2$.1f МБ + %.1f МБ + Оновити все (%1$s МБ) + Використано безкоштовних завантажень + Показує використані безкоштовні завантаження + + Виберіть, де ви будете зберігати файли мап. + + Введіть назву країни + Нова версія + Перші кроки з OsmAnd + Особливості + Допоможіть нам поліпшити OsmAnd + Інше + Втулки + Перше використання + Як завантажити мапи, встановити основні налаштування + Налаштування навігації + Планування подорожі + Питання та відповіді + Часті запитання + Перегляд мапи + Пошук мапи + Встановлення та вирішення проблем + Технічні статті + Версії + Зворотній зв\'язок + Зв\'язатися з нами + Легенда мапи + Редагувати OSM зміни + Завантажувати лише через Wi-Fi + Оновити зараз +Кнопка меню запускає домашню сторінку, не меню + Доступ з мапи + Встановлює прапорець першого запуску додатку, не змінює інші налаштування + Моделювати за допомогою розрахованого маршруту чи записаного треку GPX + Будь ласка, розкажіть, що ви бажали б змінити в додатку. + Відкриття о + Закриття о + Кількість рядків на панелі %1$s + Нещодавні місця + Завантаження файлу - %1$d + Показати банер безкоштовної версії + Використовувати домашню сторінку + Використовувати меню + Оновлювати кожні + OSM правки, поширені через OsmAnd + Приховати заплановані об\'єкти + Ви дійсно хочете зберегти POI, не вказавши його тип? + From 78875e1dc5e102471d5f4868ab4344e1881349ce Mon Sep 17 00:00:00 2001 From: P Date: Fri, 11 Dec 2015 13:42:40 +0100 Subject: [PATCH 37/60] Translated using Weblate (Bulgarian) Currently translated at 15.9% (374 of 2341 strings) --- OsmAnd/res/values-bg/phrases.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-bg/phrases.xml b/OsmAnd/res/values-bg/phrases.xml index 46aa61a88f..8fe5d30026 100644 --- a/OsmAnd/res/values-bg/phrases.xml +++ b/OsmAnd/res/values-bg/phrases.xml @@ -392,4 +392,5 @@ BankAxess се приема BankAxess не се приема Социален механизъм: Хранителна банка + Българско православие From b924dc3c0cdad557251c0176509d143ff515fb2f Mon Sep 17 00:00:00 2001 From: josep constanti Date: Fri, 11 Dec 2015 13:32:47 +0100 Subject: [PATCH 38/60] Translated using Weblate (Catalan) Currently translated at 81.2% (1902 of 2341 strings) --- OsmAnd/res/values-ca/phrases.xml | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-ca/phrases.xml b/OsmAnd/res/values-ca/phrases.xml index 50ebcc0981..86dd3ced48 100644 --- a/OsmAnd/res/values-ca/phrases.xml +++ b/OsmAnd/res/values-ca/phrases.xml @@ -1186,7 +1186,7 @@ Accés a Internet: sí Accés a Internet: no - Cadira de rodes: no permesa + Cadira de rodes: no accessible Cadira de rodes: restringida Contingut: carburant Contingut: gas @@ -1212,7 +1212,7 @@ Roc Estàtua Bust - Creu + En forma de creu Placa Memorial de guerra Pa @@ -1734,7 +1734,7 @@ Servei dins el vehicle: sí Servei dins el vehicle: no Cua per vehicles: sí - Cua per vehicles: sí + Cua per vehicles: no Per emportar-se No es pot emportar @@ -1840,7 +1840,7 @@ Tipus d\'accés d\'Internet: per cable Tipus d\'accés d\'Internet: públic Tipus d\'accés d\'Internet: servei - Tipus d\'accés d\'Internet: cap + Sense accés a Internet Amplada màxima Codi IATA @@ -2056,4 +2056,27 @@ Neteja de bicicletes: no Lloc d\'observació de fauna en llibertat + Roba interior + Tipus d\'edifici: piràmide + + Gimnàs + Fitness + + Billar + +Especialitat mèdica: comportament + + Wiki bosniana + Wiki gal·lesa + Wiki en esperanto + Wiki basca + Wiki frisona + Wiki irlandesa + Wiki armènia + Wiki islandesa + Wiki georgiana + Wiki kurda + Wiki en llatí + Wiki luxemburguesa + Wiki macedònica From 2f4a84ef6955d1668bf7eabe15998d87e36693a6 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Fri, 11 Dec 2015 12:12:10 +0100 Subject: [PATCH 39/60] Translated using Weblate (Danish) Currently translated at 100.0% (2341 of 2341 strings) --- OsmAnd/res/values-da/phrases.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml index a98464512c..d7a57469b8 100644 --- a/OsmAnd/res/values-da/phrases.xml +++ b/OsmAnd/res/values-da/phrases.xml @@ -2522,7 +2522,7 @@ Sundhedsspeciale: gynækologi Sundhedsspeciale: intern medicin Sundhedsspeciale: ortopædkirurgi - Sundhedsspeciale: oto-rhino-laryngolog + Sundhedsspeciale: oto-rhino-laryngologi Sundhedsspeciale: pædiatri Sundhedsspeciale: pædiatri: nej Sundhedsspeciale: dermatologi @@ -2539,7 +2539,7 @@ Sundhedsspeciale: anæstesi Sundhedsspeciale: pneumologi Sundhedsspeciale: tand-, mund-, kæbe og ansigtskirurgi - Sundhedsspeciale: barsel + Sundhedsspeciale: graviditet og barsel Sundhedsspeciale: akutmedicin Sundhedsspeciale: akutmedicin: nej Sundhedsspeciale: plastikkirurgi From def4b332919da8042f8d38db06e016d4c1780ecf Mon Sep 17 00:00:00 2001 From: Adriano Rosa Date: Fri, 11 Dec 2015 01:23:54 +0100 Subject: [PATCH 40/60] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2341 of 2341 strings) --- OsmAnd/res/values-pt-rBR/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index f0143b2142..be956fa399 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -349,7 +349,7 @@ Ádito de mineração Ponto de exame geográfico Moinho de vento - Lagoa salgada + Sapal Lago artificial Redes de críquete Gasômetro From cfe6ff8b6405c1b0357054061e793acd98989905 Mon Sep 17 00:00:00 2001 From: Olexandr Nesterenko Date: Fri, 11 Dec 2015 13:36:23 +0100 Subject: [PATCH 41/60] Translated using Weblate (Ukrainian) Currently translated at 13.7% (323 of 2341 strings) --- OsmAnd/res/values-uk/phrases.xml | 73 +++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-uk/phrases.xml b/OsmAnd/res/values-uk/phrases.xml index ac99e79331..01ca4aa725 100644 --- a/OsmAnd/res/values-uk/phrases.xml +++ b/OsmAnd/res/values-uk/phrases.xml @@ -26,7 +26,7 @@ Товари для дітей Сумки, валізи Все для ванної кімнати - Все для спальні + Магазин постільної білизни Бутік Килими Аптека @@ -196,7 +196,7 @@ А-98 А-100 Метан - 1:25 fuel + Паливо 1:25 Етанол Метанол Рослинне пальне(олія) @@ -274,4 +274,73 @@ Маяк + Туристичні маршрути + Контроль ПДР + Причал порому + Станція канатної дороги + Т-подібний підйомник + J-подібний підйомник + Підйомник замішаного типу + Вантажний підйомник + Водозабір + Очисні споруди + Водонапірна башта + Ворота шлюзу + Дамба + Водяний млин + Хвилеріз + Підстанція + Трансформатор + Кабельна розподільна шафа + Електростанція + Електрогенератор + Опора лінії електропередач + Стовп лінії електропередач + + Пошта + Поштова скринька + Телефон + Дзвіниця + АТС + + Переробка відходів + + Тип: приймальний пункт + Тип: контейнер + Скло + Папір + Одежа + Скляні пляшки + Пластик + Металобрухт + Батарейки + Пластикові пляшки + Сміття (чорні пакети) + Пластикова тара + Газети + Картон + Пакувальний картон + Журнали (глянцеві) + Пакувальний папір + Дрібна побутова техніка + Деревина + Книги + Взуття + Алюміній + Органіка + Картоні коробки + Садове сміття + Енерго-зберігаючі лампи + Люмінесцентні лампи + Метал + Крупна побутова техніка + Олія для смаження + Машинне мастило + Пластикові мішки + Небезпечні відходи + Мобільні телефони + Ртуть + Комп\'ютери + Покришки + Телевізори, монітори From 6cc625fb97e527b98ce9d99d649ff95a08427fdf Mon Sep 17 00:00:00 2001 From: Adriano Rosa Date: Fri, 11 Dec 2015 14:46:26 +0100 Subject: [PATCH 42/60] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 8abff87ff0..e1dad318cf 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -1955,4 +1955,6 @@ Somente baixar via Wi-Fi Atualização ao vivo Atualizar agora - +Distância: + Tempo de viagem: + From 2f0e13c1b8434c97584a78159503798e7b52197e Mon Sep 17 00:00:00 2001 From: Franco Date: Fri, 11 Dec 2015 14:54:19 +0100 Subject: [PATCH 43/60] Translated using Weblate (Argentinean Spanish) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 965d0ac766..9d2bfc93cf 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -2007,4 +2007,6 @@ Descargar sólo por WiFi Actualización en vivo Actualizar ahora - +Distancia: + Duración del viaje: + From ed770e2f112b7381ac4505eeb0249b85ec3aee8e Mon Sep 17 00:00:00 2001 From: Franco Date: Fri, 11 Dec 2015 14:57:49 +0100 Subject: [PATCH 44/60] Translated using Weblate (Spanish) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-es/strings.xml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index 5f40be6282..4e03369e84 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -1991,8 +1991,8 @@ Evitar cruces fronterizos Cerca de Ocultar - Baja calidad - Alta calidad + Menor calidad + Mayor calidad Calidad del video Seleccione la calidad de salida del vídeo Formato del audio @@ -2006,4 +2006,6 @@ Descargar sólo por WiFi Actualización en vivo Actualizar ahora - +Distancia: + Duración: + From 7f3fd287eec114920ab38995ecc2bfaf9924c825 Mon Sep 17 00:00:00 2001 From: Ldm Public Date: Fri, 11 Dec 2015 15:19:10 +0100 Subject: [PATCH 45/60] Translated using Weblate (French) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-fr/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 67ad96a8b7..8f3ee0996f 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -2074,4 +2074,6 @@ Mise à jour en temps réel Randonnée à cheval Effectuer la mise à jour maintenant - +Distance : + Durée du trajet : + From 700c3f7172ce326dc99a938297152e9116fb0a63 Mon Sep 17 00:00:00 2001 From: jf-simon Date: Fri, 11 Dec 2015 15:28:13 +0100 Subject: [PATCH 46/60] Translated using Weblate (German) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-de/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index c5633de5d8..10ca367c1f 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -2074,4 +2074,6 @@ Nur über WLAN herunterladen Live Aktualisierung Jetzt aktualisieren - +Entfernung: + Reisezeit: + From 235fbd2a92f416e44cd04a200cb19efb48cab380 Mon Sep 17 00:00:00 2001 From: jan madsen Date: Fri, 11 Dec 2015 15:38:03 +0100 Subject: [PATCH 47/60] Translated using Weblate (Danish) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-da/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 103e35d43e..32962c157b 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -2187,4 +2187,6 @@ Hent kun med WiFi Realtidsopdatering Opdater nu - +Afstand: + Rejsetid: + From 4fc1b11058e7a4b5674ace5877ef7c6963381592 Mon Sep 17 00:00:00 2001 From: P Date: Fri, 11 Dec 2015 15:49:54 +0100 Subject: [PATCH 48/60] Translated using Weblate (Bulgarian) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-bg/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-bg/strings.xml b/OsmAnd/res/values-bg/strings.xml index 8d05ee0cb8..375e478cdd 100644 --- a/OsmAnd/res/values-bg/strings.xml +++ b/OsmAnd/res/values-bg/strings.xml @@ -2011,4 +2011,6 @@ Сваляне само през WiFi Актуализиране на момента Актуализирай сега - +Разстояние: + Време за пътуване: + From cf9809c9468645504cbba446f09914eb2411726c Mon Sep 17 00:00:00 2001 From: Alexey Kulish Date: Fri, 11 Dec 2015 19:23:43 +0300 Subject: [PATCH 49/60] Show address searching dialog while adding target point --- .../plus/mapcontextmenu/MapContextMenu.java | 36 +++++++++++++++++-- .../mapcontextmenu/MenuTitleController.java | 9 +++-- .../other/MapMultiSelectionMenu.java | 4 --- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java index 065565b456..4f025613a0 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java @@ -1,5 +1,6 @@ package net.osmand.plus.mapcontextmenu; +import android.app.ProgressDialog; import android.content.DialogInterface; import android.support.v4.app.Fragment; import android.support.v7.app.AlertDialog; @@ -57,6 +58,8 @@ public class MapContextMenu extends MenuTitleController { private int favActionIconId; + private MenuAction searchDoneAction; + @Override public MapActivity getMapActivity() { return mapActivity; @@ -333,10 +336,19 @@ public class MapContextMenu extends MenuTitleController { } @Override - public void refreshMenuTitle() { + public void onSearchAddressDone() { WeakReference fragmentRef = findMenuFragment(); if (fragmentRef != null) fragmentRef.get().refreshTitle(); + + if (searchDoneAction != null) { + if (searchDoneAction.dlg != null) { + searchDoneAction.dlg.dismiss(); + searchDoneAction.dlg = null; + } + searchDoneAction.run(); + searchDoneAction = null; + } } public WeakReference findMenuFragment() { @@ -406,8 +418,22 @@ public class MapContextMenu extends MenuTitleController { if (pointDescription.isDestination()) { mapActivity.getMapActions().editWaypoints(); } else { - mapActivity.getMapActions().addAsTarget(latLon.getLatitude(), latLon.getLongitude(), - pointDescription); + MenuAction addAsTargetAction = new MenuAction() { + @Override + public void run() { + mapActivity.getMapActions().addAsTarget(latLon.getLatitude(), latLon.getLongitude(), + pointDescription); + } + }; + + if (searchingAddress) { + addAsTargetAction.dlg = ProgressDialog.show(mapActivity, + "", + addressNotKnownStr); + searchDoneAction = addAsTargetAction; + } else { + addAsTargetAction.run(); + } } close(); } @@ -668,4 +694,8 @@ public class MapContextMenu extends MenuTitleController { } }); } + + private abstract class MenuAction implements Runnable { + protected ProgressDialog dlg; + } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuTitleController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuTitleController.java index 9f3cb80cb6..1928918779 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuTitleController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuTitleController.java @@ -23,6 +23,7 @@ public abstract class MenuTitleController { protected Drawable secondLineTypeIcon; protected String streetStr = ""; protected String addressNotKnownStr; + protected boolean searchingAddress; public abstract MapActivity getMapActivity(); @@ -131,6 +132,7 @@ public abstract class MenuTitleController { } protected void acquireStreetName() { + searchingAddress = true; Location ll = new Location(""); ll.setLatitude(getLatLon().getLatitude()); ll.setLongitude(getLatLon().getLongitude()); @@ -183,9 +185,10 @@ public abstract class MenuTitleController { nameStr = streetStr; getPointDescription().setName(nameStr); } + searchingAddress = false; getMapActivity().runOnUiThread(new Runnable() { public void run() { - refreshMenuTitle(); + onSearchAddressDone(); } }); } @@ -195,12 +198,14 @@ public abstract class MenuTitleController { @Override public boolean isCancelled() { + searchingAddress = false; return false; } }); } - protected abstract void refreshMenuTitle(); + protected void onSearchAddressDone() { + } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapMultiSelectionMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapMultiSelectionMenu.java index 9f63193d6c..4499c87c69 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapMultiSelectionMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapMultiSelectionMenu.java @@ -73,10 +73,6 @@ public class MapMultiSelectionMenu extends BaseMenuController { return controller; } - @Override - protected void refreshMenuTitle() { - } - @Override protected boolean needStreetName() { return false; From 5b37fe3a8780145d5a2bf2ff4bbefe39521557f4 Mon Sep 17 00:00:00 2001 From: Franco Date: Fri, 11 Dec 2015 14:56:28 +0100 Subject: [PATCH 50/60] Translated using Weblate (Argentinean Spanish) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 9d2bfc93cf..5def0e3bf7 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -1992,8 +1992,8 @@ Evitar cruces fronterizos Cerca de Ocultar - Baja calidad - Alta calidad + Menor calidad + Mayor calidad Calidad del video Elige la calidad de salida del video Formato de audio From ed342441dfc82d84c28e1c285240205ad28191b9 Mon Sep 17 00:00:00 2001 From: P Date: Fri, 11 Dec 2015 15:51:48 +0100 Subject: [PATCH 51/60] Translated using Weblate (Bulgarian) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-bg/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-bg/strings.xml b/OsmAnd/res/values-bg/strings.xml index 375e478cdd..9351dbfa41 100644 --- a/OsmAnd/res/values-bg/strings.xml +++ b/OsmAnd/res/values-bg/strings.xml @@ -929,7 +929,7 @@ Търсене онлайн Максимален мащаб при онлайн Изберете максимален мащаб за сваляне на онлайн картни фрагменти - Дистанция: %1$s,\nВреме до целта: %2$d ч. %3$d мин. + Разстояние: %1$s, време до целта: %2$d ч. %3$d мин. Изберете онлайн или офлайн услуга за навигация Услуга за навигация Папката за запис на SD картата не е достъпна! From 7b05c2a09fe67b344fcdf976d8a0ebb923d45e7d Mon Sep 17 00:00:00 2001 From: Massimiliano Caniparoli Date: Fri, 11 Dec 2015 14:54:32 +0100 Subject: [PATCH 52/60] Translated using Weblate (Italian) Currently translated at 99.9% (1846 of 1847 strings) --- OsmAnd/res/values-it/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index ade6316966..b234274148 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -2102,4 +2102,5 @@ Frisone occidentale Albanese (Tosco) Aggiorna ora - +Distanza: + From 1fddf06abcd1406a9f45fd943530d35c09aaa559 Mon Sep 17 00:00:00 2001 From: Leif Larsson Date: Fri, 11 Dec 2015 15:50:36 +0100 Subject: [PATCH 53/60] Translated using Weblate (Swedish) Currently translated at 99.5% (1839 of 1847 strings) --- OsmAnd/res/values-sv/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml index 74a8a8646f..cea0600007 100644 --- a/OsmAnd/res/values-sv/strings.xml +++ b/OsmAnd/res/values-sv/strings.xml @@ -2034,4 +2034,6 @@ Hämta endast via WiFi Direktuppdatering Uppdatera nu - +Avstånd: + Restid: + From 682655802e3493901e180c231ec4e15d0ea6d067 Mon Sep 17 00:00:00 2001 From: ezjerry liao Date: Fri, 11 Dec 2015 17:29:16 +0100 Subject: [PATCH 54/60] Translated using Weblate (Chinese (Taiwan)) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index c435ce6319..3eaa3d369d 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -2033,4 +2033,6 @@ 只在 WiFi 連線下載 即時更新 立即更新 - +距離: + 行駛時間: + From 74855c63bf4c5f42f3cd7103b388e3fcedfc806f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nesim=20=C4=B0=C5=9E?= Date: Fri, 11 Dec 2015 20:00:45 +0100 Subject: [PATCH 55/60] Translated using Weblate (Turkish) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-tr/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 3a429b697b..45ae632cbf 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -1992,4 +1992,7 @@ Bütün Güncellemler Sadece WiFi üzerinden İndir Canlı güncelleştirme +Mesafe: + Yolculuk süresi: + Şimdi güncelle From ee16fdeb188ea79a4d6e284f81b46dd584305ece Mon Sep 17 00:00:00 2001 From: Kees-Jan Timmer Date: Fri, 11 Dec 2015 21:11:30 +0100 Subject: [PATCH 56/60] Translated using Weblate (Dutch) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-nl/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 8dc89fcd38..f3711ae6dd 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -2126,4 +2126,6 @@ "Alleen downloaden via WiFi" Live Update Nu bijwerken - +Afstand: + Reistijd: + From f86f3d4e00736745dc039b7c2f9e035b0bc24b9e Mon Sep 17 00:00:00 2001 From: josep constanti Date: Sat, 12 Dec 2015 20:54:17 +0100 Subject: [PATCH 57/60] Translated using Weblate (Catalan) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-ca/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 77a9aedbeb..9d0e550789 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -1880,4 +1880,6 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu Baixades només amb WIFI Actualitza al moment Actualitza ara - +Distància: + Durada del viatge: + From c48edecd2e8d72c93f471604fef622c1a4791718 Mon Sep 17 00:00:00 2001 From: Massimiliano Caniparoli Date: Fri, 11 Dec 2015 14:54:32 +0100 Subject: [PATCH 58/60] Translated using Weblate (Italian) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-it/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index b234274148..a65b50546f 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -2103,4 +2103,5 @@ Albanese (Tosco) Aggiorna ora Distanza: + Durata del viaggio: From d45c5bb54d63676ed6040a552b62ca6acfb09fa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Sok=C3=B3=C5=82?= Date: Sun, 13 Dec 2015 09:31:47 +0100 Subject: [PATCH 59/60] Translated using Weblate (Polish) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-pl/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 38085f1c62..a135dbb37d 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -2085,4 +2085,7 @@ Uaktualniaj na bieżąco Aktualizuj teraz Aktualizacja co + Odległość: + Czas podróży: + Wyszukiwanie adresu From 4bc09589002950d96da5d9ffe1c6e287d3efde03 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf Date: Sun, 13 Dec 2015 20:29:56 +0100 Subject: [PATCH 60/60] Translated using Weblate (Sardinian) Currently translated at 100.0% (1847 of 1847 strings) --- OsmAnd/res/values-sc/strings.xml | 53 ++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 294efc70ac..15bff96f11 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -116,7 +116,7 @@ e o - Su càlculu de s’àndala de OsmAnd chene impreare internet diat pòtere dimandare meda tempus (o a bortas non funtzionare) pro distantzias prus longas de 200 km. Si cussigiat de annànghere unu o prus puntos de coladòrgiu pro megiorare sas prestatziones. + Su càlculu de s’àndala de OsmAnd chene impreare internet diat pòtere dimandare meda tempus (o a bortas non funtzionare) pro distantzias prus longas de 200 km. Si cussigiat de annànghere una o prus tapas in s’àndala pro megiorare sas prestatziones. No zoom automàticu Zoom automàticu mannu Zoom automàticu mesanu @@ -166,9 +166,9 @@ Avisos de tràfficu Pro piaghere dislinda su nùmene impitadore OSM e sa crae (password) in sas Impostatziones - Burra sos puntos mesanos - Mantènne sos puntos mesanos - Tenes giai puntos mesanos impostaos. + Burra sas tapas intermèdias + Mantènne sas tapas intermèdias + Tenes giai tapas intermèdias impostadas. Indicatziones cara a Indicatziones dae Mapa: @@ -187,7 +187,7 @@ Issèbera in antis sa citade o s’istrada Chirca sas istradas in sas tzitades prus a curtzu - Puntos de coladòrgiu cussertaos pro perfetzionare s’andala dae sa positzione atuale a sa destinatzione. + Tapas intermèdias cussertadas pro perfetzionare s’andala dae sa positzione atuale a sa destinatzione. Cusserta ghenna a ghenna Creatzione documentu de muda OSM %1$s acabada Creatzione de sa còpia locale de seguràntzia (backup) de sas modìficas faddida @@ -273,7 +273,7 @@ Lìnias de livellu Datos àudio/vìdeo Ses seguru de bòlere firmare su nàvigu? - Ses seguru de bòlere burrare sa destinatzione (e sos puntos de coladòrgiu)? + Seguru ses de bòlere burrare sa destinatzione (e sas tapas intermèdias)? Abìlita pro calculare àndalas pretzisas chene atopos. Est lentu e limitadu in sa distàntzia. Calculu pretzisu de s’àndala (alfa) Ammustra @@ -368,21 +368,21 @@ Servitzios de registratzione Peruna àndala - Burra puntu de coladòrgiu - Puntu de coladòrgiu %1$s - Puntu de coladòrgiu %1$s - Annanghelu comente ùrtimu puntu - Annanghe·lu comente primu puntu de coladòrgiu - Annanghe·lu comente ùrtimu puntu de coladòrgiu - Annanghe·lu comente primu puntu de coladòrgiu + Burra sa tapa intermèdia + Tapa intermèdia %1$s + Tapa intermèdia %1$s + Annanghela comente ùrtima tapa intermèdia + Annanghe·la comente prima tapa intermèdia + Annanghe·la comente ùrtima tapa intermèdia + Annanghe·la comente prima tapa intermèdia Remplasa sa desinatzione Tenes giai una destinatzione impostada. - Puntos de coladòrgiu - Su puntu de coladòrgiu %1$s est tropu indedda dae s’istrada prus a curtzu. - Ses arribadu a su puntu de coladòrgiu tuo - Annanghe·lu comente puntu de coladòrgiu - Puntu de coladòrgiu + Itineràriu + Sa tapa %1$s est tropu indedda dae s’istrada prus a curtzu. + Ses arribadu a sa tapa intermèdia tua + Annanghe·la comente tapa intermèdia + Tapa intermèdia Puntu finale tropu indedda dae s’istrada prus a curtzu. Annanghe etichetta Modalidade avantzada… @@ -478,7 +478,7 @@ Ammustra sos pursantes de su zoom durante su nàvigu Ammustra sos pursantes de su zoom Sarba comente grupu de preferidos - Issèbera sas tapas + Ischerta sas tapas Etichetas de sos puntos Carrigamentu de %1$s… Oràriu atuale @@ -615,10 +615,10 @@ Serbu Tzinesu semplificau Tzinesu traditzionale - " OsmAnd (OSM Automated Navigation Directions) est un aplicu pro su nàvigu chi impreat sa cantidade manna de datos a mitza aberta de OpenStreetMap (OSM). Totu sas mapas (vetoriales o a tasseddos) podent èssere sarbadas in s’ischeda de su telèfono pro èssere impreadas chene lìnia. Impreende su GPS de su dispositivu OsmAnd ofèrridi su nàvigu cun, s’in casu, sa ghia vocale, pro sa màchina, sa bitzicleta e a pedes. Totu sas funtzionalidades sunt disponìbiles siat in lìnia chi chene lìnia (non serbit connessione ad ìnternet).↵ ↵ Calicuna de sas caraterìsticas printzipales: Nàvigu - Funtziònada in lìnia (lestru) o chene lìnia (chene costos candu ses in s’èstero) - Ghia bogale bortada pro bortada(boghes registradas e sintetizzadas) - Indicatzione de corsia optzionale, indicatzione de su nùmene de s’istrada, indicatzione de su tempus de lòmpida istimadu - Suportada puntos mesanos in s’àndala - Recàlculu automàticu cada borta chi èssis dae s’àndala - Chirca pro indiritzu, pro gasta (es.: ristorante, albergu, istatzione de servìtziu, museu) e pro coordinatas geogràficas de sos locos Visualizatzione de sa mapa - Ammustra sa positzione e s’orientamentu tuo in sa mapa - Allìnia optzionalmente sa mapa sighinde sa bùssola o sa diretzione de movimentu - Sarba sos locos prus importantes pro tie in sos Preferidos - Ammustra sos PDI (puntos de interesse) inghìriu a tie - Podet ammustrare mapas spetzializadas a tasseddos in lìnia - Podet ammustrare vistas satellitares (dae Bing) - Podet ammustrare istratos subraponìbiles diferentes, comente rastas GPX pro nàvigu e mapas additzionales cun trasparentzia pessonalizzàbile - Ammustra sos nùmenes in inglesu, limba locale, o pronùntzia fonètica Imprea datos OpenStreetMap e Wikipedia: - Datos de arta calidade dae sos mègius progetos collaborativos de su mundu - Mapas globales pro OpenStreetMap, disponìbiles pro istadu o regione - Wikipedia PDI, òtimos pro giros turìsticos (non disponìbiles in sa versione gratùita) - Isgarrigamentos gratuitos chene lìmites, diretamente dae s’aplicu (lìmite de isgarrigamentu de 16 documentos de sa mapa in sa versione gratùita) - Mapas sèmpere agiornadas (a su mancu una borta a su mese) - Mapas vetoriales compatas chene lìnia - Issèbera intre mapas cumpridas e petzi istradales (es: totu su Giapone est 700 MB, o 200 MB pro petzi sas istradas) - Suportada fintzas mapas a tasseddos in lìnia o in sa cache Carateristicas pro sa segurantzia - Muda automàtica optzionale de sa vista die/note - Ammustradura optzionale de su lìmite de lestresa, cun avisos si lu barigas - Zoom automàticu optzionale basau in supra de sa lestresa - Cumpartzi sa positzione tua pro permìtere a sos amicos tuos de t’agatare Funtziones pro sa bitzicleta e a pede - Sa mapa inclùidi àndalas prp bitzicleta, escursionimu e pedonales, òtimas pro sas atividades a s’àera aberta - Modalidades ispetziales pro sa bitzicleta e a pedes - Firmadas de su trasportu pùblicu (postales, trams, trenos) optzionales, cun sos nùmenes de sas lìnias incluidos - Registratzione optionales in documentos GPX locales o servìtzios in lìnia - Ammustradura optzionale de sa lestresa e de s’artaria - Ammustradura de sas lìnias de livellu e de sas umbraduras de su rilievu (impreende unu componente agiuntivu, o estensione, apòsitu) Contributzione dereta ad OpenStreetMap - Iscrie notas in sa mapa - Càrriga rastas GPX in OSM dderetamente dae s’aplicu - Annanghe PDI e càrrigalos deretamente in OSM (o prus a tardu si ses chene lìnia) - Registratzione optzionale fintzas in modalidade \"in s’isfundu\" (cando su dispositivu est in modalidade \"a reposu\") OsmAnd est unu progetu a mitza aberta e est ativamente isvilupau. Cadaunu podet cuntribuire a s’aplicu marchende notas, megiorende sas bortaduras, o programmende funtzionalidades noas. Su progetu est totora in unu istadu sighidu e vitale de megioramentu pro mèdiu de totu custas formas de interatziones intre impitadores e isvilupadores. Su progetu andada in antis gràtzias fintzas a sas cuntributziones finantziarias, pro titu s’isvilupu e s’isperimentatzione de caraterìsticas noas. Comporende OsmAnd+ podes agiudare s’aplicu a divènnere fintzas prus ispantosu! Est fintzas possìbile finantziare funtziones dislindadas, o fàghere una donatzione generale in osmand.net. Calidade e cubertura aprosimativa: - Western Europe: **** - Eastern Europe: *** - Russia: *** - North America: *** - South America: ** - Asia: ** - Japan & Korea: *** - Middle East: ** - Africa: ** - Antarctica: * Lista de sa regiones suportadas (praticamente totu su mundu!): Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Chile, China, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Vatican, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe. " + " OsmAnd (OSM Automated Navigation Directions) est un aplicu pro su nàvigu chi impreat sa cantidade manna de datos a mitza aberta de OpenStreetMap (OSM). Totu sas mapas (vetoriales o a tasseddos) podent èssere sarbadas in s’ischeda de su telèfono pro èssere impreadas chene lìnia. Impreende su GPS de su dispositivu OsmAnd ofèrridi su nàvigu cun, s’in casu, sa ghia vocale, pro sa màchina, sa bitzicleta e a pedes. Totu sas funtzionalidades sunt disponìbiles siat in lìnia chi chene lìnia (non serbit connessione ad ìnternet).↵ ↵ Calicuna de sas caraterìsticas printzipales: Nàvigu - Funtziònada in lìnia (lestru) o chene lìnia (chene costos candu ses in s’èstero) - Ghia bogale bortada pro bortada(boghes registradas e sintetizzadas) - Indicatzione de corsia optzionale, indicatzione de su nùmene de s’istrada, indicatzione de su tempus de lòmpida istimadu - Suportat tapas intermèdias in s’àndala - Recàlculu automàticu cada borta chi èssis dae s’àndala - Chirca pro indiritzu, pro gasta (es.: ristorante, albergu, istatzione de servìtziu, museu) e pro coordinatas geogràficas de sos locos Visualizatzione de sa mapa - Ammustra sa positzione e s’orientamentu tuo in sa mapa - Allìnia optzionalmente sa mapa sighinde sa bùssola o sa diretzione de movimentu - Sarba sos locos prus importantes pro tie in sos Preferidos - Ammustra sos PDI (puntos de interesse) inghìriu a tie - Podet ammustrare mapas spetzializadas a tasseddos in lìnia - Podet ammustrare vistas satellitares (dae Bing) - Podet ammustrare istratos subraponìbiles diferentes, comente rastas GPX pro nàvigu e mapas additzionales cun trasparentzia pessonalizzàbile - Ammustra sos nùmenes in inglesu, limba locale, o pronùntzia fonètica Imprea datos OpenStreetMap e Wikipedia: - Datos de arta calidade dae sos mègius progetos collaborativos de su mundu - Mapas globales pro OpenStreetMap, disponìbiles pro istadu o regione - Wikipedia PDI, òtimos pro giros turìsticos (non disponìbiles in sa versione gratùita) - Isgarrigamentos gratuitos chene lìmites, diretamente dae s’aplicu (lìmite de isgarrigamentu de 16 documentos de sa mapa in sa versione gratùita) - Mapas sèmpere agiornadas (a su mancu una borta a su mese) - Mapas vetoriales compatas chene lìnia - Issèbera intre mapas cumpridas e petzi istradales (es: totu su Giapone est 700 MB, o 200 MB pro petzi sas istradas) - Suportada fintzas mapas a tasseddos in lìnia o in sa cache Carateristicas pro sa segurantzia - Muda automàtica optzionale de sa vista die/note - Ammustradura optzionale de su lìmite de lestresa, cun avisos si lu barigas - Zoom automàticu optzionale basau in supra de sa lestresa - Cumpartzi sa positzione tua pro permìtere a sos amicos tuos de t’agatare Funtziones pro sa bitzicleta e a pede - Sa mapa inclùidi àndalas prp bitzicleta, escursionimu e pedonales, òtimas pro sas atividades a s’àera aberta - Modalidades ispetziales pro sa bitzicleta e a pedes - Firmadas de su trasportu pùblicu (postales, trams, trenos) optzionales, cun sos nùmenes de sas lìnias incluidos - Registratzione optionales in documentos GPX locales o servìtzios in lìnia - Ammustradura optzionale de sa lestresa e de s’artaria - Ammustradura de sas lìnias de livellu e de sas umbraduras de su rilievu (impreende unu componente agiuntivu, o estensione, apòsitu) Contributzione dereta ad OpenStreetMap - Iscrie notas in sa mapa - Càrriga rastas GPX in OSM dderetamente dae s’aplicu - Annanghe PDI e càrrigalos deretamente in OSM (o prus a tardu si ses chene lìnia) - Registratzione optzionale fintzas in modalidade \"in s’isfundu\" (cando su dispositivu est in modalidade \"a reposu\") OsmAnd est unu progetu a mitza aberta e est ativamente isvilupau. Cadaunu podet cuntribuire a s’aplicu marchende notas, megiorende sas bortaduras, o programmende funtzionalidades noas. Su progetu est totora in unu istadu sighidu e vitale de megioramentu pro mèdiu de totu custas formas de interatziones intre impitadores e isvilupadores. Su progetu andada in antis gràtzias fintzas a sas cuntributziones finantziarias, pro titu s’isvilupu e s’isperimentatzione de caraterìsticas noas. Comporende OsmAnd+ podes agiudare s’aplicu a divènnere fintzas prus ispantosu! Est fintzas possìbile finantziare funtziones dislindadas, o fàghere una donatzione generale in osmand.net. Calidade e cubertura aprosimativa: - Western Europe: **** - Eastern Europe: *** - Russia: *** - North America: *** - South America: ** - Asia: ** - Japan & Korea: *** - Middle East: ** - Africa: ** - Antarctica: * Lista de sa regiones suportadas (praticamente totu su mundu!): Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Chile, China, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Vatican, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe. " Àndalas metropolitana " OsmAnd+ (OSM Automated Navigation Directions) OsmAnd+ est unu aplicu a mitza aberta pro su nàvigu chi tènet atzessu a sa variedade manna de datos globales de Openstreetmap (OSM). Totu sas mapas (vetoriales o a tasseddos) podent èssere sarbadas in sa memòria de su telèfono pro èssere impreadas chene lìnia. OsmAnd ofèrridi fintzas una funtzione de nàvigu cun ghia vocale in lìnia e chene lìnia. OsmAnd+ est sa versione a pagamentu, comporendela suportas su progetu, finantzias s’isvilupu de funtzionalidades noas, e retzives totu sos ùrtimos agiornamentos. Calicuna de sas funtziones printzipales: - Funtzionalidade cumprida chene lìnia (sarba mapas vetoriales o a tasseddos in sa memòria de su dispositivu) - Mapas compatas chene lìnia disponìbiles pro totu su mundu - Isgarrigamentu chene lìmites de mapas de regiones e istados deretamente dae s’aplicu - Funtzionalidade chene lìnia de Wikipedia (isgàrriga PDI Wikipedia), òtima pro giros turìsticos - Possibilidade de subraporre diferentes istratos de mapas, comente rastas GPX o de nàvigu, Puntos De Interesse, preferidos, lìnias de livellu, firmadas de sos trasportos pùblicos, mapas addizionales cun trasparèntzia pessonalizzàbile - Chirca chene lìnia pro indiritzos e locos (PDI) - Càlculu de s’àndala chene lìnia pro distantzias curtzas (isperimentale) - Modalidades in màchina, bitzicleta, e a pede cun: - muda automàtica optzionale de sa vista die/note - zoom automàticu optzionale basau in supra de sa lestresa - allineamentu de sa mapa basendesi in supra de sa diretzione o de sa bùssola - indicatore de corsia optzionale, segnalatzione de su lìmite de lestresa, boghes registradas e TTS " - " OsmAnd (OSM Automated Navigation Directions) est un aplicu pro su nàvigu chi impreat sa cantidade manna de datos a mitza aberta de OpenStreetMap (OSM). Totu sas mapas (vetoriales o a tasseddos) podent èssere sarbadas in s’ischeda de su telèfono pro èssere impreadas chene lìnia. Impreende su GPS de su dispositivu OsmAnd ofèrridi su nàvigu cun, s’in casu, sa ghia vocale, pro sa màchina, sa bitzicleta e a pedes. Totu sas funtzionalidades sunt disponìbiles siat in lìnia chi chene lìnia (non serbit connessione ad ìnternet).↵ ↵ Calicuna de sas caraterìsticas printzipales: Nàvigu - Funtziònada in lìnia (lestru) o chene lìnia (chene costos candu ses in s’èstero) - Ghia bogale bortada pro bortada(boghes registradas e sintetizzadas) - Indicatzione de corsia optzionale, indicatzione de su nùmene de s’istrada, indicatzione de su tempus de lòmpida istimadu - Suportada puntos mesanos in s’àndala - Recàlculu automàticu cada borta chi èssis dae s’àndala - Chirca pro indiritzu, pro gasta (es.: ristorante, albergu, istatzione de servìtziu, museu) e pro coordinatas geogràficas de sos locos Visualizatzione de sa mapa - Ammustra sa positzione e s’orientamentu tuo in sa mapa - Allìnia optzionalmente sa mapa sighinde sa bùssola o sa diretzione de movimentu - Sarba sos locos prus importantes pro tie in sos Preferidos - Ammustra sos PDIs (puntos de interesse) inghìriu a tie - Podet ammustrare mapas spetzializadas a tasseddos in lìnia - Podet ammustrare vistas satellitares (dae Bing) - Podet ammustrare istratos subraponìbiles diferentes, comente rastas GPX pro nàvigu e mapas additzionales cun trasparentzia pessonalizzàbile - Ammustra sos nùmenes in inglesu, limba locale, o pronùntzia fonètica Imprea datos OpenStreetMap e Wikipedia: - Datos de arta calidade dae sos mègius progetos collaborativos de su mundu - Mapas globales pro OpenStreetMap, disponìbiles pro istadu o regione - Wikipedia PDI, òtimos pro giros turìsticos (non disponìbiles in sa versione gratùita) - Isgarrigamentos gratuitos chene lìmites, diretamente dae s’aplicu (lìmite de isgarrigamentu de 16 documentos de sa mapa in sa versione gratùita) - Mapas sèmpere agiornadas (a su mancu una borta a su mese) - Mapas vetoriales compatas chene lìnia - Issèbera intre mapas cumpridas e petzi istradales (es: totu su Giapone est 700 MB, o 200 MB pro petzi sas istradas) - Suportada fintzas mapas a tasseddos in lìnia o in sa cache Carateristicas pro sa segurantzia - Muda automàtica optzionale de sa vista die/note - Ammustradura optzionale de su lìmite de lestresa, cun avisos si lu barigas - Zoom automàticu optzionale basau in supra de sa lestresa - Cumpartzi sa positzione tua pro permìtere a sos amicos tuos de t’agatare Funtziones pro sa bitzicleta e a pede - Sa mapa inclùidi àndalas prp bitzicleta, escursionimu e pedonales, òtimas pro sas atividades a s’àera aberta - Modalidades ispetziales pro sa bitzicleta e a pedes - Firmadas de su trasportu pùblicu (postales, trams, trenos) optzionales, cun sos nùmenes de sas lìnias incluidos - Registratzione optionales in documentos GPX locales o servìtzios in lìnia - Ammustradura optzionale de sa lestresa e de s’artària - Ammustradura de sas lìnias de livellu e de sas umbraduras de su rilievu (impreende unu componente agiuntivu, o estensione, apòsitu) Contributzione dereta ad OpenStreetMap - Sinnala errores in sa mapa - Càrriga rastas GPX in OSM dderetamente dae s’aplicu - Annanghe PDI e càrrigalos deretamente in OSM (o prus a tardu si ses chene lìnia) - Registratzione optzionale fintzas in modalidade \"in s’isfondu\" (cando su dispositivu est in modalidade \"a reposu\") OsmAnd est unu progetu a mitza aberta e est ativamente isvilupau. Cadaunu podet cuntribuire a s’aplicu marchende errores, megiorende sas bortaduras, o programmende funtzionalidades noas. Su progetu est totora in unu istadu sighidu e vitale de megioramentu pro mèdiu de totu custas formas de interatziones intre impitadores e isvilupadores. Su progetu andada in antis gràtzias fintzas a sas cuntributziones finantziarias, pro titu s’isvilupu e s’isperimentatzione de caraterìsticas noas. Comporende OsmAnd+ podes agiudare s’aplicu a divènnere fintzas prus ispantosu! Est fintzas possìbile finantziare funtziones dislindadas, o fàghere una donatzione generale in osmand.net. Calidade e cubertura aprosimativa: - Western Europe: **** - Eastern Europe: *** - Russia: *** - North America: *** - South America: ** - Asia: ** - Japan & Korea: *** - Middle East: ** - Africa: ** - Antarctica: * Lista de sa regiones suportadas (praticamente totu su mundu!): Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Chile, China, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Vatican, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe. " + " OsmAnd (OSM Automated Navigation Directions) est un aplicu pro su nàvigu chi impreat sa cantidade manna de datos a mitza aberta de OpenStreetMap (OSM). Totu sas mapas (vetoriales o a tasseddos) podent èssere sarbadas in s’ischeda de su telèfono pro èssere impreadas chene lìnia. Impreende su GPS de su dispositivu OsmAnd ofèrridi su nàvigu cun, s’in casu, sa ghia vocale, pro sa màchina, sa bitzicleta e a pedes. Totu sas funtzionalidades sunt disponìbiles siat in lìnia chi chene lìnia (non serbit connessione ad ìnternet).↵ ↵ Calicuna de sas caraterìsticas printzipales: Nàvigu - Funtziònada in lìnia (lestru) o chene lìnia (chene costos candu ses in s’èstero) - Ghia bogale bortada pro bortada(boghes registradas e sintetizzadas) - Indicatzione de corsia optzionale, indicatzione de su nùmene de s’istrada, indicatzione de su tempus de lòmpida istimadu - Suportat tapas intermèdias in s’àndala - Recàlculu automàticu cada borta chi èssis dae s’àndala - Chirca pro indiritzu, pro gasta (es.: ristorante, albergu, istatzione de servìtziu, museu) e pro coordinatas geogràficas de sos locos Visualizatzione de sa mapa - Ammustra sa positzione e s’orientamentu tuo in sa mapa - Allìnia optzionalmente sa mapa sighinde sa bùssola o sa diretzione de movimentu - Sarba sos locos prus importantes pro tie in sos Preferidos - Ammustra sos PDIs (puntos de interesse) inghìriu a tie - Podet ammustrare mapas spetzializadas a tasseddos in lìnia - Podet ammustrare vistas satellitares (dae Bing) - Podet ammustrare istratos subraponìbiles diferentes, comente rastas GPX pro nàvigu e mapas additzionales cun trasparentzia pessonalizzàbile - Ammustra sos nùmenes in inglesu, limba locale, o pronùntzia fonètica Imprea datos OpenStreetMap e Wikipedia: - Datos de arta calidade dae sos mègius progetos collaborativos de su mundu - Mapas globales pro OpenStreetMap, disponìbiles pro istadu o regione - Wikipedia PDI, òtimos pro giros turìsticos (non disponìbiles in sa versione gratùita) - Isgarrigamentos gratuitos chene lìmites, diretamente dae s’aplicu (lìmite de isgarrigamentu de 16 documentos de sa mapa in sa versione gratùita) - Mapas sèmpere agiornadas (a su mancu una borta a su mese) - Mapas vetoriales compatas chene lìnia - Issèbera intre mapas cumpridas e petzi istradales (es: totu su Giapone est 700 MB, o 200 MB pro petzi sas istradas) - Suportada fintzas mapas a tasseddos in lìnia o in sa cache Carateristicas pro sa segurantzia - Muda automàtica optzionale de sa vista die/note - Ammustradura optzionale de su lìmite de lestresa, cun avisos si lu barigas - Zoom automàticu optzionale basau in supra de sa lestresa - Cumpartzi sa positzione tua pro permìtere a sos amicos tuos de t’agatare Funtziones pro sa bitzicleta e a pede - Sa mapa inclùidi àndalas prp bitzicleta, escursionimu e pedonales, òtimas pro sas atividades a s’àera aberta - Modalidades ispetziales pro sa bitzicleta e a pedes - Firmadas de su trasportu pùblicu (postales, trams, trenos) optzionales, cun sos nùmenes de sas lìnias incluidos - Registratzione optionales in documentos GPX locales o servìtzios in lìnia - Ammustradura optzionale de sa lestresa e de s’artària - Ammustradura de sas lìnias de livellu e de sas umbraduras de su rilievu (impreende unu componente agiuntivu, o estensione, apòsitu) Contributzione dereta ad OpenStreetMap - Sinnala errores in sa mapa - Càrriga rastas GPX in OSM dderetamente dae s’aplicu - Annanghe PDI e càrrigalos deretamente in OSM (o prus a tardu si ses chene lìnia) - Registratzione optzionale fintzas in modalidade \"in s’isfondu\" (cando su dispositivu est in modalidade \"a reposu\") OsmAnd est unu progetu a mitza aberta e est ativamente isvilupau. Cadaunu podet cuntribuire a s’aplicu marchende errores, megiorende sas bortaduras, o programmende funtzionalidades noas. Su progetu est totora in unu istadu sighidu e vitale de megioramentu pro mèdiu de totu custas formas de interatziones intre impitadores e isvilupadores. Su progetu andada in antis gràtzias fintzas a sas cuntributziones finantziarias, pro titu s’isvilupu e s’isperimentatzione de caraterìsticas noas. Comporende OsmAnd+ podes agiudare s’aplicu a divènnere fintzas prus ispantosu! Est fintzas possìbile finantziare funtziones dislindadas, o fàghere una donatzione generale in osmand.net. Calidade e cubertura aprosimativa: - Western Europe: **** - Eastern Europe: *** - Russia: *** - North America: *** - South America: ** - Asia: ** - Japan & Korea: *** - Middle East: ** - Africa: ** - Antarctica: * Lista de sa regiones suportadas (praticamente totu su mundu!): Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, Argentina, Armenia, Aruba, Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belarus, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Brazil, British Virgin Islands, Brunei, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Central African Republic, Chad, Chile, China, Colombia, Comoros, Congo, Costa Rica, Ivory Coast, Croatia, Cuba, Curaçao, Cyprus, Czech Republic, Denmark, Djibouti, Dominica, Dominican Republic, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Estonia, Ethiopia, Fiji, Finland, France, French Guiana, French Polynesia, Gabon, Gambia, Georgia, Germany, Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Vatican, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Iraq, Ireland, Isle of Man, Israel, Italy, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, North Korea and South Korea, Kuwait, Kyrgyzstan, Laos, Latvia, Lebanon, Lesotho, Liberia, Libya, Liechtenstein, Lithuania, Luxembourg, Macao, Macedonia, Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Myanmar, Namibia, Nauru, Nepal, Netherlands, Netherlands Antilles, New Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Norway, Oman, Pakistan, Palau, Palestinian Territory, Panama, Papua New Guinea, Paraguay, Peru, Philippines, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin, Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Slovakia, Slovenia, Somalia, South Africa, South Georgia, South Sudan, Spain, Sri Lanka, Sudan, Suriname, Swaziland, Sweden, Switzerland, Syria, Taiwan, Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu, Uganda, Ukraine, United Arab Emirates, United Kingdom (UK), United States of America (USA), Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe. " Datos PDI Datos PDI Muda PDI @@ -1583,7 +1583,7 @@ Imprea sa renderizatzione OpengL tràmite hardware (diat pòdere non funtzionare in carchi dispositivu) Abbandona Impossìbile iscarrigare. Pro piaghere còmpida sa cunnessione tua pro sighire. - Iscarrigàbiles + Totu sos iscarrigamentos Agiornamentos Iscarrigadas Zona @@ -2039,4 +2039,11 @@ Ischerta su bitrate de s’àudio Perunu indiritzu agatadu Chirchende s’indiritzu - + Distàntzia: + Longària de su biàgiu: + Àndalas a caddu + Agiorna cada + Iscàrriga petzi pro mèdiu de una retza WiFi + Agiornamentos in tempus reale + Agiorna como +