From 3a3ca19bcf7dc61c716298a19f2f2fa5c3f95c1b Mon Sep 17 00:00:00 2001 From: Dmitry Date: Fri, 29 May 2020 18:49:15 +0300 Subject: [PATCH 001/300] Replace shadow for favorite icons (cherry picked from commit 15cd44e59c5acd770bf55882605fbd25232b0109) --- .../ic_bg_point_circle_bottom.png | Bin 3532 -> 2106 bytes .../ic_bg_point_circle_bottom_small.png | Bin 1961 -> 1581 bytes .../ic_bg_point_octagon_bottom.png | Bin 3128 -> 1865 bytes .../ic_bg_point_octagon_bottom_small.png | Bin 1816 -> 1542 bytes .../ic_bg_point_square_bottom.png | Bin 3079 -> 1631 bytes .../ic_bg_point_square_bottom_small.png | Bin 1670 -> 1421 bytes .../ic_bg_point_circle_bottom.png | Bin 1904 -> 1702 bytes .../ic_bg_point_circle_bottom_small.png | Bin 1110 -> 1374 bytes .../ic_bg_point_octagon_bottom.png | Bin 1623 -> 1586 bytes .../ic_bg_point_octagon_bottom_small.png | Bin 984 -> 1345 bytes .../ic_bg_point_square_bottom.png | Bin 1582 -> 1447 bytes .../ic_bg_point_square_bottom_small.png | Bin 891 -> 1273 bytes .../ic_bg_point_circle_bottom.png | Bin 5394 -> 2762 bytes .../ic_bg_point_circle_bottom_small.png | Bin 2909 -> 1924 bytes .../ic_bg_point_octagon_bottom.png | Bin 4621 -> 2303 bytes .../ic_bg_point_octagon_bottom_small.png | Bin 2697 -> 1799 bytes .../ic_bg_point_square_bottom.png | Bin 4555 -> 2028 bytes .../ic_bg_point_square_bottom_small.png | Bin 2465 -> 1644 bytes .../ic_bg_point_circle_bottom.png | Bin 9945 -> 3941 bytes .../ic_bg_point_circle_bottom_small.png | Bin 5456 -> 2566 bytes .../ic_bg_point_octagon_bottom.png | Bin 8688 -> 3226 bytes .../ic_bg_point_octagon_bottom_small.png | Bin 5001 -> 2317 bytes .../ic_bg_point_square_bottom.png | Bin 8939 -> 2725 bytes .../ic_bg_point_square_bottom_small.png | Bin 4658 -> 2072 bytes .../ic_bg_point_circle_bottom.png | Bin 15662 -> 5336 bytes .../ic_bg_point_circle_bottom_small.png | Bin 8447 -> 3019 bytes .../ic_bg_point_octagon_bottom.png | Bin 13552 -> 4229 bytes .../ic_bg_point_octagon_bottom_small.png | Bin 7857 -> 2635 bytes .../ic_bg_point_square_bottom.png | Bin 14297 -> 3496 bytes .../ic_bg_point_square_bottom_small.png | Bin 7152 -> 2472 bytes 30 files changed, 0 insertions(+), 0 deletions(-) diff --git a/OsmAnd/res/drawable-hdpi/ic_bg_point_circle_bottom.png b/OsmAnd/res/drawable-hdpi/ic_bg_point_circle_bottom.png index c8bc0aa788d565f730d0ba30ea365279597d92a9..2799253200cb92a5017cd012823b8f2ad706da88 100644 GIT binary patch literal 2106 zcmbVNdsGu=79Yan00M%5JVY5|*#>cvOrA_MkwAh3i3Ug!fwqQZ0x?VylK|o2s}>KU z2rHnpMFgtAih#;v*9S_e76EHZ7llGmDz;PWD};t(EzY!tw|@7t5GAEh$g8tT;k+~%S2G6 z;1V}6#Z<8_1Wi_jW$MxB%ned`rdp0Dh--P^8WRUMfT2biXu?u729AkKd~KJ5^JX!H z2)l2fTPkd2UG7K6^DtpaIO8kItYDRe3XGdWBuhaL#d zJw)7_UZLbf2}0+5;U_LJ*=W>pD3tW{baFbKtkow`U<5%ZR2qdwgK!PVkfAZkOpwN~ zV%~xPHOTcUol&LLfM$!bL~W{(OT;66lLDp_i{Bd780HFvmyBYP=_oLnO2II5Uaz$c z#whf^VZ2k@AkEOBlql4oP1VcsekfPWgYnw^xg)b89t~%sUWGSBmLkx~Q!!Ly6bZOQ z{D!PhDL8>J8-;0XCPYQq42XfSlu#g*!Ge@5Y9fNbc!?GAc{}gI3u#m)gD+$th>#7# zLVlo-O&7p4oDF1A=`epDE7BN@GL0Oa_pQQx&td6*isgjpQJGPzmuj^s^HU&6)*7{j zWUUUQ!DJXDiDhz?#w_tScj-;i0#vU`LlvQVEe5_WGe`A~5bz0tVJ6Cgm~1K&Vz3b! zp1x8JB{CQ^1}hO^B{E^+9A5GNmXCr5MKRCH|IE(32p>o@`*suX!`od#HTVMQ@lE+D z#n}}Atl~uizSK1MuuQCVg`M|K3}?4i`ht?b<^^$eBkiwVK?#UELFCW)@x2R5=yqgi zi1(onv#|EVp>~y<3w$q+{+?NV^Bd2S!BJ?v?V<`Rl12EgITE#go_l%rmimcbed^GT z7SoGp`rVdDwZ8eE4|KFUVYvxI@+CH zaiAWv>U2_kG{o-g`Fb6KTq&7$YrMr{+t$cC9wB}5i3dDCrdM5Ee$`@K z=IQtXom<29o@Za~LzD%-EOmyiA&O%wPVtaft&=KX=B5WP*`qMQqH1*?z?wc)_F?$v zXI>gw`|a&>Cl63Ye)7&LZWvnnY+1X<1hJ2{Zrtl^{xD;t=@&QN%)spcPmmX~aiq_Z zrLBy!@Xeg^SJzct?;R}q`fnLl@4FdhgC9s1+dK2UzgoWM#|6X720|W@q`8li>S3kY zr5EWZ@ba&A@yC`|e^w^9>Qi6v)mMUfzY~c;Ia5&XC&htNaYCzPzw8D2FTVRUuR9kg z3FdCL4LVt$&1DZSKG;)}akacko_r&Fn_aS}ONH#fu5Vl{ygLcGG>5b?&OY1kt$2?k zL}R;1MW=z|)49OWI;^9&d3Rq7KNO>vr}bwpwkV@NO}W-|<|u)dqBPMaR}z9Yb=2(9 zD|v2;(%}`i>zg+cI*{E9m&_`pJu}S#*6u0%i*~lZ+3-?Eq9xWYwTql0Z_O|ywQYhs z0WD(U;mTX!RX4%PxH@ck#}@}ZQil4~KZkTZr&j`x+X|1KL5iNPzFs?-mUoHNHx|Jy znPP_JZVO8LwR&LZz;}1DVt(*?R{Q;!6kD(AZXMrdo!cl32%NQU5*0RZ+s`R=_A}@9 zEQJPs{;-`?}YxdqkbQMcQIW75OIwzr5a zKTh09YaeSRjDE@C2^CEz8v7av)=}M-7qS`#?j}4s-_j|485~X|v0glJnDn0({e2XX zwp;<+|G44bo^Us=`9`EC#cNfA&k3KB%d;yhx<7ODEOoJo0PZKH`Tc9wu|fg->frFP z;c17;{#t5@I_InIyWu;I#8=&cPc`mXyJf7vR$b<~YJkbQK5IC#HS6Nf@qE3w`^w;Z zB}GlI`U@WZkT1Cw`h18~AS}ByemuWa>_uL5{gU&L^~uEQ;?7Lfv7CGNnw5Jhr+TbP zx98mRk@`8cU-USX9;u@6dq@8LdDG-3m%fAY{X56al;1Vp_@upX;`ze--)1_+&w2a( qg6t$)?IeU^z|7&~#j%MRz!E6w`G+n)yn$r?n~Q`S1P#GkKKT!WzB|GI delta 3531 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 FV1la-%YOg> diff --git a/OsmAnd/res/drawable-hdpi/ic_bg_point_circle_bottom_small.png b/OsmAnd/res/drawable-hdpi/ic_bg_point_circle_bottom_small.png index 2410b26ff650192ed2675020b2159226052df644..8d51cd30ed3447a2e50791b79694e740d1b6adae 100644 GIT binary patch literal 1581 zcmbVMYfuwc6kfzCW-7KqMXYu?1F-5G7=T1Po%NcB_@T+1twl003a5HHWmz>)YWsW|;iF3e?uhOQK|ZaT8qC6;wX+HD2Av}7}FA3lu)OEgAXKo z6Imx=C$k5A$vY!dB1v8XLCVX^Rpn}xAQmH-!C*j89Kmr|)_{E#9*GXX9$!+#0?GLp zk@rfx-~q!HX@}sKjF24ZvlQH3o9($_k8hADnKC3mdl5{9B5rp$uK{hJWas`3Q$rQ6p#LkQG797*#CK5LoEP4#Hn9?kIHHqP}n5IM3 zm??s_dVCV?VYrBIUiK|x@hrW@^inKg7CBlH#6m$RjdVdli69BS62S}NmQB~68a?mLvp za}a$kxFxoUP+xN6&(HEFtQ?NNED)0A(0QQmq5J2rOx zW&7DnReRFw)9YPxl^;#o<_M)wjfvD>N$aj#hEyb9&3MfAEnR$kRVL?VcI7KKX64L! z8Z4TL7}wA3UEZl^g_fQCW`im{4xh@Op0m1Ve9^@N)w|oHPE_0*x~#1$HqdNVx{?mF z*`TB4cH4$urX1X?INa5f)A7ikSNjQ-O|?dEnzpv1|KxZ^F&}l>yMMp21?X&j9K1CA z+=AfD_S(*`C)cdaUM1dH$w7(9dxow!a<-{5qe(e?wq-?1{C)*>s55bUbWc^tS(f^1 znKwpQdOm4XQ(@MX*3H#19c!EN{wz2jRll6NW?6JJu6Jil?+?V-^$#~K=+f?*IA-G= zrRPv=OwEOx%I5C7n3WQP&w?zh_)P4EScC}ba`FY1F|~4IkX#@BL%m&bhP^G_BHUY7JoTW zj9;{4|AVdr4Q!66NQlGZ$DC@MjemauoN=36awX4pp)Pr}|3v*8spcBs#!eVnlilF& pNwAFQzVzNcZQs48i&s5F+JPW(GZYnyy&nF7TP^uybJqN2{{Ww%Mk)XR literal 1961 zcmV;a2UhrrP){k;zb@A!{;$NAtr;8rcPWd(IzrzncjO%O`gb)YB;$Ql61v7T5r3)phL1;Pqs zfP}+gDjW`5;d%nyG@u2ld2KixZmL7JacypE0EVw4Ai1V%*scIgGZK|h8AG8^C0B}uj-@aX2TwFvbMHEF{6h+MhMJS!zt6S4=1Zema`JuC+3c+BIj>TfEAPAhQ zs`g5yV(cg9@jQ=ysIn|uFBXe305r^(K|pj`a_WXkb^^2>GgOO4qjWSHr3MBD_2z|BA3vTI1mTNr^G2yu`saxgC(g4h zEAQO7v*hu3G%KWepEb?B7ND_@_#Q=3OfVRvVzF2s0Q5h3^5n|!@bH)2!jbcGx!j#& z$Bxao-R|<}=xAkZY)p+rB1YhB3eXZ|#PKPw*K02n3fpenxG}YN@80h>3rEg>@#4kQ z%*;$wlB9wtiuI9^5&hxAhlY90z*(i@x(bFuAxs+(kH?vGI?W^C^XJc>IUJ4;dIgka zdH(3pqo*7WN3mEeRzjhWp<<`V?g$u(L@2-C&n_)34V*f4>Vwm#Pye@9IC9Xj{<&3dk0y?XTE!GqVg3YbhLFP%Aa z<~{&qg2AA&XU`susA!tH#mwyr8j1Pj$&+*@lc7qb61A|f;K*b$+vn!y&X10cezR4; zw{PG6G(A0yX(!|HcxohA(99bFwj^dz6zNnd#gs}VwooYigp0e`5~ zYD)l6!{m+2dVbgfMIMd;^7{2_x>zjIg+jqzE|*7UXJ@Al95`@gtAO+K^XD&Jy7aHU zzP`-h;9!j;ZUnr1`7$*#GlQkDY35acW@ZOe@XebyEG_^rG&wmrcJ}Pqe{U7=`t|Fd z&&|#K4*-_2Mq{90Lt$2xRXMR8kaQauAoSAG68a)4=vGyA=;_m^cl!JLKkOA!lBEAn zOiYA0j$6uRv!y^F&=?;dSFEYVtk0_z!~|`T*Z{;JiN#_z0O0L*yXV4%3!fZ0a^yy@ zfG=OZymIm4#kqRDzG(Vi9djYxZ)|K#$40`^I~tE!*TmK|Q>j$!`FwtW=lQ`~w{CsA zYuB!mn}u9hSa>)&Ir$v`Z&p0)I~0-}Oum^T|z?E99Nmzi?8 zY^zqQ&T_dtY_r*f`}gmMy0hU&roxRzW5wliEpr?v_4V~BLqkJqEEY4` zFKp*b|LU9v%{MX19GV$>K(E)!rqgLV&-1*ZD8st0^EYqa{CeNMeI1*IMx#+lCX;v0 zojdn4P19wDVREu8SG-*KT5~AT+jEkw^rHin1&-k|a45Md4&w zcH3;W{zHcj?LK_?@W;D%@BY~3a_zO*Y<&n-sZ?GqE-wCd?b@|plF4KqmE$2%gInM@-X3~C#xw!*(Tfc$nwR(<8LpaQt!fr5fX$8?YjhwG zV5-$BU9DCTgeepX4gkOix7qD>+-B@{J5{gOacQ7Z)oQhYxefs8xW=T6fnheR1d5oJ z1WJo*uiMR-PJw-zk#eHZDD2yKha(WF+mXA2dvF>8Ob-7#$8mN|Hn?ibBB_^LTtYamPotVH4 z#r%Fhnv|w#T2G}?;P?BD2eB-xkB^V*@pv2(i3IM`%+b@D^T=ek?)ceh>|85|nqz<{ zieOe6jC7D?*|-I0%_){wK^bUp9zFt6L5yc zbrZ}?Ti8|^7DDryrLAMW?*{PCI`mhiA<+0FBcT&NBHv@oPaW2j(XJ9{O1AW6q2GZ4uve{5I8_z#VPccCZ(~_WL(K vT3QZlXu578{|>-zpViZO?*V&~&2rHnj^GPskVB1@00000NkvXXu0mjfBACjW diff --git a/OsmAnd/res/drawable-hdpi/ic_bg_point_octagon_bottom.png b/OsmAnd/res/drawable-hdpi/ic_bg_point_octagon_bottom.png index 28e730068743f3e4fac91b9b80c317f647e323d1..920e1bd3a6bb68a7b7e7ad921d4ed604497f4cf4 100644 GIT binary patch literal 1865 zcmbVNc~BE)6kqUyAOUp{q^L^-l_SY+E|NfmNTQ$wA%ucQ9dc|SkYwX#kpNmFEhtng z>Oj>&MC7U>Y7s4X-~rNVMMpUVtl~9}R}m{(gVb&iX#a5hqdT+veeZqm_pa~#W^Zj>ltAHJ&EN5J0Fx6$luvlP4llM6OC- z^D7br0OL|MvUogR62VuZI-1;SLo?|N1R4N>f=vdwG6lgw1(K-I3n+c38Y!SgC7{Hy zC6L4riX>^mGB6}2BT}Z!NKx`sl;8zmkcm$?&>^@SH0iW@Bi|&T4EyC1d#jpG0f$ZS z6anR9Qt^@~FcifQkVAv0N(f?r0X!PaVKLbZe~voI@gfPY>L{AV1Bbefn(pyFlFgaW# zl$pAp7xhScAm<$Ko{fdr)7VY6G2LfB__@?%CfIsqduU?=huB@wd)soom&(^BuGQ{{ zU%kN+x7exM?Lbq97-`M}f=+c3Z$wDB@GjY%b)NPCTI^5L`w?bUQwW=iX+uTDQ` zh+`j>KKU9o+@5g#hQ;A~mE`%kff`kyZx}P!w&=oOji1NG66dnJ&yBU)NEl%E%Sxd1 z&)oyv>@Nn&d7EF(`9#ccL}xk^f<7gv&r&vV%Ou2ZPB!X;H~yQx&!3)H}jo6 zvKgch?CEzCt%~xdodbjBxAiUSBX1=}gRxWY<+_?|TvLzGV>9)6y&nLSqo8nouDq_>+PHmR`ZSteosEUdS*UyGU1NJ3xnz^na z^=G!;d00`>Iv6upRvcxXpYPrhJu!jYmh8&W{s8(1md z6q;oh=>4a9Ym;@~rpZ?a3CK$CW0xY0&QrR(zPu zEi38+m~Y#5Hn$$^f-+{-{&82>@GQO2siP6dacZd(q*iTAsXFscl0WO^kWcd8&OXPk z?m3ou%hs&+KU{j=-oDDg%TjbA=i2gRaT%I=pX`}HWzoK4_r9HYoV>%~uPIK(El)z~ zv-8|L>?7_um{?pG&}GSLqicG!@9!#tXWMrc?MHCy}7iB_s}hbX+h^~oGzhu{ixzw0Hb&8x~edwi<4 y`A%B7>*lM*!230mtR$Fg9wPxEbtpEBcLNH#0>wY=d+lNUxrK`(MKuc(vi<=GwY+!$ delta 3124 zcmV-449oM$4!9VQBYzA3Nklq{O0vf#b`}M7PNySKV@md5d{5y(A_mQ>00X z;?iVqgIB2%+Kg@1bcLx^d$MbN%{tpoY2VfB=krXmA|Pr{KtT*MW5%kj`Rg z2lwx}xVVVl<$vSHkC};y2@QVrFPHAy+}u=~;OS56Dx_`!YQ8Q5FcudVnMfo;p>S5K zRjbu%_*}Z3NF-1w6w>1HIEq9f>gMJq8w!QcC!c%*+Y}6jLVUEVu(|>WtcL0cxWeS* zBnusNI-QPEsl?gscD7Qfu+T@F&Bj!#RmNtsp=z}XpnpK4z~xlfhJEn0+wA~F69hpl z6be;@kg92#N(4=BMIE)MP6B#EFTh#=(hooUz{TTnrmwHBUsYAp+S=NrAP8gora)k_ zEQ?fCMf4Yr>$d?~y2#l^+{4?t8z0S!#S1={ z%Q+N95q~x|HWmg42j>k0kw2W8&*zuUo;`a9Ayf+ngL@Mb6AFPuy^acbM=Yrm7R2bI z3y5hX5@9wsH{sggPA*kdg;*?hWoT$8jao-1flHr`^$+$0){B?r7mXJ)!G3BU@)Zd@o_$r$qXznFaKq1Z0yUUcBmWY zJ$v@-A6Kqi`B$x0%OZpnl5s=mHw*`l23mYb42I-8tk>%mGMUWag9i^5Mn*7#3@zfb_Zr zBF&DEk8``byXHcnFtV|+F@NI3iT4WV<;$1%r>Ccv8;!;`LZ}f6h2(fV4u4{;pFcXX zn;8P6%bxLE4rmZqP%4!&g9fdxuD*9bzy0>xdNdkca=Bcuip8P`k&H~d>8+Q&Zq#+n;{=sYnDGGzd@GHi>oT0ny|Vh8U+#onm6K7~kLD zZ&6is_|Ba>m*2MqrBbQ&OP4M!S*=!xV)b-7Ek_~|Wpi`$STzX9V}BR(`Fs%Og<`Qd zy0NkG#rxJE>S8vVZM#@3HiE&RJUl$C5=-i?1uZTvvSj%NZEbC_J3BjUB9XuvL;yh) ziymsXT|9wAv1NqNE5F|_rcx=eAXqZ$zKiL?JZKjltor?aes6EjQmfT)n1A0c27qQ} zW_)4W>lO)Nbs;cwu-Mg0pfxzFoz~HTyeERh1 zgR57seqF6rOAd!4=WsY`E|*JABodGy0-%;wUkzE1exe@U2t+dYj*pMCrBX?#*Xsaj zu+eDrt*oqEIDdKaP%MS_vVPcQ_oP#bT-3 z?RJ^C7oC$f>|TaNnplIrNC8jSlZ4UKXf(Kby)MYIY=4zyc~H|d`_j_V`9L7h6-!Dc zli$tH&u_@Gyl1sq^E}UsX0y4T%jIM;1_LM{(6I7yY=GXdBHhTI^Z9&SI-Ta7PA4x( zlAUE)Po+|EtgNh@>$D|-TV1|e!%aK43T#c^C7;2?w~_yz(2 zC7Dbr;cyr<63-+y6*P1&4{8!z3U|MnBNz;_6B84VkbxF)4u^xf+kmENwoYhL6PyCi z^R>ObJ=y2;f%Pa*#1N0iA#&l|M^|}b2u!;cgn!)(ix?@s)RnxzL_U*DCONm;ZIWf# z1Va&%$uuBIlI`Zrn}70nJfo_r!U_rg(lsl(^6>j*;n44WA{A#^p-|YqcJ11KVGSN3 zRD@8@^SpH8#0j}nDk(2sya3D5wzjtLxT_t@X&VsDiAV?VBpQ5RKns?XNF)Ft?{>TS zLVuyaTdh{Bq9`t~BuSDup6Bswq%6zGVzD4m6ycYZWm$tS&+`b5kvSZ?LMp?mDbMq} zEXzvea=C#JlEdM!va_?Jl2Q9XgVL6)r`0IdoZ9TK&(rc3D4q(1LJV0m!yx+m`*~TG z1t_M{G!5^A-+H~yn9XJkqF%2fv)N1|BY*yzd{m3YB8#G^+U<6!QmHgN9*+$B(&@As z3WXGyR;8AspBQVZ#WtLlwJOs38|kk>1sfj^27_Fq(O^VT1Q47gNqn(bWc&L101i~2 zX_ZO^zbN9eP_zk!owz+M-X!M$1eND`xlkyme!m|8sh~McaG>eC%7zU=>I9$zBYzt$ z`-M71GH*o3Zg5X-aBxs_xm-*xmt%{?B67K0`wvbvC!f!=Znqn+tLO81Jgr7qY}w|d*#H$?V;llNhh$U)cdA*$&u3q%|xlS#(s^RdubdaYC{wSNu2->-p? zr_*T+ArJ_t$z&3ins5y@5o4&OK7Xjvm4a)xPc0WO9C%|I*{EBQwR5lEdT}nJqlAK1(?nM2BkaJ6|4Ef+iitxn{D2x&ZhvHbcE`Q{v~!D$Z?2t zo9sTU=Evz`A6Czg_%uC0hb@5W0qOxdqA$JWw4Md^EU0He?GZSn_5T2-)TN`06|p%0 O0000LS_YR3^&xK6-7rgNoGF(Z$xTG*VsMy!PJ00lll&t1TKG zNP~!?LyUuEI7Wml8}S3!;^!dhjKj?#LziIOG-_t1h*SPiC)*XN+aJb1cFEoQyzl$` zo{!)2Jh#nmdpmj38#RYk%OLke8Gak{WW}`alu+OicAt)<5>}Ng2K!)9*fENtN(D5z= z<~akBueIV<|58xM=WdWd-Uge~v!U2Sb4d1LI4jI327Ewf;jphn2ryv-GHRDmpA&l*?*|mx>aAb!r^-;5Z5EX*HpvG+HtpCUFwSa01idD4}JvIHSpc#~wuS zCUIWIVOlokOW7HaLRt1R7#0eJ)FF*plnO9{rfCc(F_J_T4Kz?H$ZQxD0&`;)Od#Nq zc)!ex0vxr-y2YSuK$J+IrQq{htK%CIo&#|Sl!`Fzp5MzsU71Ngu|9j+mA zVpxk1kXgY4V!nCB_ZXIZDVA9(0ag|zrzn=hy1-s2%3`2U^ur{fCg25D*24?YleB1+ zo+WJp62BgB%OueUkJ8NWF9<>DAcD{W9jeviT9ne$q>{eZgSsh-q;zgt=hhO)7@qsT z^kGU+ShQFE(>t*vr6Hr@^GQ%P&u0k;$^c2qq-@{3*$P49-?Er;oZ*4H^;c|XU{&Sh z!DDx7R@F>no1csv>^$4C@$)OMt9E~Ob6VQ;fui-VSyFqaS02>N@h;p!TuPgKj6)`wj}BD&w!CT`DL|b z9}U~$@AauF26BSK>Oa~EIQwYF&ArgRw&B^AyS@u2{<)J#jkpu&_PE)tm01Pd&f5=- zH@@ke?|9f#+jxUrX@8vC`cqoU+5X@DnX{r8u2@R4h51#B^;+|?hd4EEB+{ZQJx0OHE zr&CmZzmW{u(w(M~k&cPI!~I8E=fzjA=_LDVi)S)zGs|3gvq&nx4~#5Z`NdFMiMP9? zsUrBvZr@P(RQt8ZS64&^*0x0soSxHkxhHYwre8t@x7tAt@2!j$Y+ejB)csk!h|<5fpy>4la)xF$(E z;rE2Wgu4D(D)-$FW*j*;C8g?UX+!Ja>Wju9&CjrHtMjg`woc!q`|@1P{B7<9+qnak wmoK>%u6b%+*yvE7OXK);lh5a=iGPU+RH;7IVqA0V~YBdo;+T!9Os0V@(#YQSM z3aEdLgop`;!>)F_?Z12X?pIf@UQII$6Fsb)48tg`t$(d8zIgGXxVyUxP^ukD2q(#> z19^2A5G9Ht9S(=-w{PEKm9pxcI#{I#jM2#lNZMR32f5-B1i^pr-o2THg@xZ(mi_W1Mx*Qc-YVd48=FxaTq>m5mw^hb{#L4w0AB z9WKV}_4+kU3uQ8y{AmECQmI*%Wow;Ir(t`OIXgRxZGfDK0Mma;L%8Ttsl>>#%*wLt z*MD{WOeT~0^E7~x$>et)k7sXeY^)&&f^q56C2a@@!wgp%yl3L^IA1Il0SFX26`)iq zbwO3tY9tbAl*?ruAp}oyq~Px001#2A(P(h3Rx4l_#`q}$U1S($&*$^iy zrr*DRPgko|uGwskD~d9{wzjr;8X-%iQhyggA%qa*5F8~?W!SYzVv~dh55ngbR9QNm zW+IUYC(Clc&Y{x+y5RHqYSC!4wz;{fi=t@Q1_?|U%n2DOd02!a0~CU!?sPg3vUQ&4 zCqG3cP1AO6+_*8%FicHRl)9ZiQ2N+|`V}Ho2CW1%TeK|86!=iRUI$~GNTpKe?tk35 z^DEEuU;Gy+RaO6a`t<42>({Th5JDA%P$wRbYiG}%HM7|)C^KM;xDSR0X~F<#V`GB} zg+jcdD7f^mT)A>?X=&+~lS1`+z4FS+%JQ2xZ?-i}+YJVT?O-t2^>{pHKA#6;G)eyr zV57<&*ywmXjuX3FF1y@rx4+x%o_|RulQYZ9%Re0#3Y2;Bq&@p%RfJV4d!b#`ZGhkx_=e7vS< z0n;@72qE6GEKb*ThGkjEJ@|&SuIm=dvZk)>uYjC*k&s86WfI*ig%{;^mz!HfBttblBY&MxztL4&l9U#1xW%0dUj{`@CO652X zE6ww~rK&2@G);H8Tzaq9>wh4Gx^Qm6GZu^Kfk42tyGAEW{j=S03pJADitFZix~iHC-U&TcA)*h zRn|9^_M0U3t3)D!tw7T>T2)mR77fE-;2v3)Ex#Wkxj)f18VzfFe1F`k)oMmG8a4cW zzhRd+-o_q>EU4=K)}y~cBlhBq!uA4X4}|1e2oZ`#qcqF1R3R=3@cqOmo0ct z)3oJwyUn?|IV+dTp?p4%tBH(4L%#tGOddy#K?811oIM_oJNK!oN5r>Ci{tu0h2 z6s$xdVQp+|z$*p$0)Ju8X0y()Nct~(Djx9Kk%J-`5{XLWl~m!-I)TOj00N^m06;5D zKPH)2jW_J6QA8fa)kJd=|N);@bksXGmx9S)fJ$$U>X>K}Ld*M?d4b8zJ9L1;1= sjJ(JG)x-G(#P%@~50HV=9vPiP)?nV-{ zCDrPT#RrIk9b{^&_&}ngqjfC4iVi-I+By!X3{@*?eH7E`SjSeSn@DJXIR5C)-M#mo zd%pAd?m4@%*qWa*V(bV208&f^2Aen+MBk)g;&)cxzI<`Y5R49CCgTyx3628vZpKA{ zCND9cvQdOPxbO^>0{}z(wA~>%EM}Z!yfPxHBMW$05e)!2xdE0S7f=G|qUO^+9TYiq z3<7Dl4w{Ww5DS|}mCywh95u7TY9}iekXkpCI~B|c;GzL9B@kf1Tjt~OfDVe;#l>}0 z3`1Z{MOdJNUIgW^6oYvTM}aCCA|(+-4yv^>RHam4^2wkaks~mI!U{x+VmOB23Jo~$ zK%zI!?ZIt^=>xvRoenAy1Qv(k^73+7xkAQp^I=r0)xwAzmdmB0hLjKb1R@~y@mX;T z28t&+niXiq2SzOtF2*nDATiPxDR^0nWzevXA0SGk3=R-1jLHz$>y73W)8+*m^=}w2 z)#mL%mV#{*&-gh~ybn)S94vD8YDZB;F&eyxqs2=h$_xzY_fkH=WY9t4iOfyAaSf`b zP`MhDB9vMwRccipsRmK1q#hOG(rQtWVmBGL^D?|qj$lf?QKQuw)hKGzYm91z0hNnO zjS5kq`Z(6);|0P;QgPq3=z9RGekB&q<0wL4I6K3X#jBvWgb^6NgkeEBDnr5dEd)vX zqLS?BExkzEKymaU$~~Q9ykLxGoPJ3NVg;cnMyaHj8o{JWwN@^s?;)iwrBbd`xwI-5 zhC%~)_y4627K4JLwep|ZiHpR7j4lT|LEH@X66F&ch!Zj`A!^4jpBB*~lCGp@Z8>9?6b`uwK@zT|H`&D%;JZ!y)E;dSBkg=g+;Ae;LphaX=7 zSDcVY0LklvBOwGN#m4Oeo5%iL)zw{fHB(dc#;4bw_K#Y-l(~llNkBSajz+jZ^za?#cr-i>^5w@ z)mhUu_d&(_tL>KU)oICz6Yhh*=KN7J^vFY*_2;5Z8R@&8wdPme>RnctwLj94k-DnEj#zj0Y)C)<{{p@PEMKeNXedzZV za_5@LvxFomH30--W9T3$z&vLFXh|FXWG-)=IPGY)Wv%M@b*Qyw{AWQ)s4l$qTuQ;A z6)QHB?CfoA$bIm`=;W@iG0I=<2r}K58^&B|8+R@^3;(n5>TRwW0@C!#%f?MVUa+^# ztap#zQ z_~|{Tx6s40>6Ws#DJ@ER`&4(|+fx>uWrxmTN9}~1JsTIX?UT-*-!@rx@Nr{9qvDco zFW|h8YV9nYeJ^v`-Ve<~*7?_#)|!3OTzp2u{=$aPow^OHZ_GJzG@`9fD>PTFPrj&V zpP7OQXPXY{AMD=Ibc$G~yX$xwNj-cY7@$TZD8`N@voc{M(0b|k7rl?1tD?VrlhJC} J{lUje{{f1jRMY?f delta 3074 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 QQ~&?~07*qoM6N<$f=6=$mH+?% diff --git a/OsmAnd/res/drawable-hdpi/ic_bg_point_square_bottom_small.png b/OsmAnd/res/drawable-hdpi/ic_bg_point_square_bottom_small.png index 8ded1dd9a798ca9f45d9fd93b1287fa807d37277..66b60f2f939f672f966b58410e632d85fd06d0c1 100644 GIT binary patch literal 1421 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 diff --git a/OsmAnd/res/drawable-mdpi/ic_bg_point_circle_bottom_small.png b/OsmAnd/res/drawable-mdpi/ic_bg_point_circle_bottom_small.png index 2901029e5170cf5e5bbb4ff747d4a80edae92e12..5670be0d8979e2b1cbb6cf4dce5ac0758a2d32d7 100644 GIT binary patch literal 1374 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 c>fSl#U$$| zDU<4Py(^EdvTNsYbm_ceqh+4MqO>Ae)8S073K(E$-UNG@YNuP}RU`d&RX~m$V+h=@ z!aLN+i=fK&C2$_g(XdQ}qZS+|VYyO7$RuJZISnRp631`?6XPf$RY`G`SOE__2=K;P zZ7KtmKi~`O)JPT2yHptF@pwcYv54hnV}w$v#BdTLNfc< z;R3cZBAbpz!HA^IeHaJ|i}cEWdMA1W8ZsijoCL6WIZLz?3=jtK;?H)d|VcV^2P0X1!euj$0X zPl~hCHzl1P+8w)pocd-VRAuRWKId6uPiOV~_+r1`)7>{>p9T(QdSe%UjMsY(I0TcQ zPXA?tBR=G9$@UIR(SiZ<{ zYQxlwNm$x4u;B37O~l_i?^~5q>JFqYA6gnZ z)L55|1u|Vr*RSu0TQ;G$ciWiTyN4!)4kk($Hw({5{^%<79YN}2M|l>d9v#+M5&!t> ze5m24xC*NBY45#OADf&M=NsOTTT~_--t^Facld&n8pW-&y^pkeCjNG;Yg^_1!jIl< ziLIJ@_k8)j1;^XJw?0$vRjmE%vu5?7#3#Yay99fdW>4Ju%?fNhvN!)K#dVruYFF;8z&|J`MrQy3 delta 1607 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 delta 963 zcmV;!13dh}3fKpbBYy**Nkljvn8JRv0H z(G0Me1%Wu}29{H}rPqy@scLmnDPjOl>K}j?U_cqYW%2+b43#LBf_fDu{7SGJlK8D2 z*A9WCg$&ISzwwjj^FF`64@N)vgMYGrbT5EXiZOP~sP{}MMSmD$`jE@r2Wa&k0|}hF z;6_dp^m`7RKTS+b_!LD!vMeLRFzU9VD8g$ym&@USfdNVgv0Vz-+=4U#2q8W&CWPSr z{(gTxpMO-V)fm$>;b%X~vdFTm8XS6hdMeRq^m2cHzeXvwy;L@a)Di&BWm)!bZ*Rxe z*4AFc+<$t?SD7>AVoP3i?rOsz&X0GSw=b>Ouy*&Fyfb%TNGNgqGhr^FoS6BZ@ zBogT#71J<`cT-bSuMt9L2%!q3t`z_ZhZYtVFd@Xxaa??5W##34&OPw)@$u61^z4ONqHG*g4wji9DP$<;1v9a;-A#Lc{NRspnA%FDwZWM6yI>haoU@#bby1BXe zp-sT=-QC@vMn*=ytgo-zZZ;g}9ss_5i9{lFadGk6*4Ea3JAm==@#m39B!7B(YBi+E zab5?AqUhV*-3^yYB>?QT3rHrD`OeNxOVc#34mSX3O;uHWJ3Bkv+1c5znM|fFfFw!J z5kh%E5Pz((v9X%lvec=8CpHj)3wWBzWOD69AW70dEEYTRQdF0dyD8e++hdEx;*+JN zr5C-uy?;IgqU-v9v$M1RB7{B(f>3Tq(M^%P6sfApa2)sO>gwvr^73+;=lMT=1UWoB ze4kFI-^F6F|9w8+)$s6eSy2=Sz?tg1lZ;14M}L`YHp`aF#ftziFDx_4Reowrx<;KqwUQ zE`LHfj;j?4g>qL{S2+@iRO0b?P17`+5CZbuEEQg{0RS-2e_huDx~{|7pGu|tx~@C- zh(@F6{QTS=8XBr(vso$#LQChjw5Ww9VNn!uu~@{GWjQy8sE&?~D9`h>qoaeeEK4;_ zqp~bhNKJ!^wv=mFx{f2LK6Di!q%P|KQ#@4_3xa^asr$ln>a~5-u5Ma5jZ5B5o3n#q l7y$_2J8RK_xF$_I`71%A)hgC9_L2Yq002ovPDHLkV1k*V*#iIo diff --git a/OsmAnd/res/drawable-mdpi/ic_bg_point_square_bottom.png b/OsmAnd/res/drawable-mdpi/ic_bg_point_square_bottom.png index ecdb05f937d220e0df4a0fd77e9959e427c4651d..406613f2b65221eb0e3568417b2f34ccadec4c01 100644 GIT binary patch literal 1447 zcmbVMYfKzf6kcAHQfUiPdDM_`C=}c7&SPK9bQij?yRzD)JhniwDzme9VSt_4&d$Q} z&`@ZpCV>8+F`^_`qeiq)lKMnbkVHTY2o{4h3i88rcA5JoJ&%O72 z=X~ci&*$bm8X1ugA(P1>E!oC=xZ?gdd-% z9D1}!ZN;tbEKts6*NLE@F2}~!RkD-=%}7UdJ{lTu0f|9;t}5O``}F9#T^h>%V+=*s zRisKixT+ZS+iD)SWp;0N-JWg4>ipwOG> zaMJlk^QJGj)1&2*^;1yX|4`)&U40CsHM}9@fhCU&3uqaHGQDD6;z)KdR9)&jw2j`&E2rVE;ty+!) ztxB$l>G{wi$* zZ3H4$4IE}sa3Skyrnzk>zz!k^HPFb_T3jtxX(Xnz|Gby0Ui#J2qy*XJuxhk1&vya2Agm8X333;Vf_BK)3KWB z`uI2Yuy^kY^(6ysUhAc??#7+mPwdgdK|6PIQ?{x87%Dp1$$xvK_tZymK}n^dt&LHs z(HX1BQ4fC{ezoh9=5g2i>CLK>$dGbXd@ua=j|k|!{ijw(M`wOk78g0Pf2b=xtHWY< z)7`NR;W>HIhbd=g)}9#pbpG+llc@(7A~Ec~j&mVhbK!~CNBf(W+j^hgOdkn5v|#WaRW)QsoS*)#uw<=Y>Zxzm6;V;e;<6`?DLxQhqf6}_la<-iWJTXM=E3lF>V=m1&gIpG_SS>re}Bc9AFIFd^p#V|=UaB@ zREZP2_RhS`n=dU5=2p+OV delta 1566 zcmV+(2I2Xq3$6^1BYy?;NklQF`&Q7miV< z5=E->2W-*~$tjmfohF4!yX=@-)W2Yn+e30_d*r$Ux5Zk!w2CTzY+`{B0s&+2^nLNO z9Gb=s;8c}@Wck;7&!5lx{{Di|SN_9aIev6a;7d#JS_0P+7=LjGu2pEn4IFv;I3)mU zX$TS53}^Gtc&BL^!Wa*}ADYN81PB;S)5u(mG2D(YCIEl|Bz$mveO-I@>>1wO-Nlk5AyE`jrBWel<#IU+S~EYNnwlcOU>sb-IhV^( zuy8g5w@tz>0e@qhD2mL74H}pkr`4on~^mTxe@+>$hMq_<#Kfcd8f~kutNaGU_lVrj~_oy z9336Sw|}>{|8j`Hx1CO>luoBla=9Ex0FLwGit+gi37C96Apo97Rn=)pk{lthu&{7H z91fS0$z+RqBt6y)Edj%T5khPv67d}$AIEogc4Q|ckjZ3HH*VZ0RIAk!*nLgY`c^L0 zQUdw{j3|n%BuPGm(5*Lb-Z({oR}`g)5NacYdVhK>7z}csp+5mB(dJ^VJCX>EGp^(_w+4*xAfL3$B2K;`1u~w^{j7G#YL1?d_=}yHQp~vOKyQHAP|u zY@l2&JFP+~MNtZZAe`j$d8+?3sXNyPSbwPy@nTTKNRmWt;MNsHVk400wZX`7fHB#C z;{@*9xidBiK*3E8$b}F>PNxzy4nQF5Lpp6$*w|4a!-(_wJk-F6SFc|E;XpxiytK3= z1OkEb&6_tnx)ECzHC6F-#U^?8ZIv{gC}w!guEQb`BhboD2f8$-7c4lNJ>>ztY0Hl zRW-QQ&on879cA=qeV5CnsjAvjRe$veAyh>O9na0pDGxM0(vvb6^TSV z)oOJDz{BD7dWkBw+u;2W@_I?T2u(~(;7$j$f#fq_OQa8^Zzas>a~#+2cDrr2+pTaM z*Nw$uDpX^pTHrzfTiF1eY}f*nmi2m_X|-BxsZ??WgF*04gd`k|Mnek*gMV7RUdMqz z0J?d^mBVuw7LUi7VzJntoSeig%l2xu8W8I7Jg>^KObMEcn30k>GXWaZpq&WWDU(X2 z5L_n`31)tNzW@65Ykd3mZDYqkMG}bw-rL(F8wL0D<^KLYZ3Opuo=37Q)5vQZJk?9P zHfXMo>0Gk}Y4^bVOcMm*jDM8#`8)+q$cUn-L4Osbqt_j9ePQ}w25eV_$Q->k0F^+{ z+||3!cGfrpT2IeOQy9ud6L7M&RUtn#0nd~tK9!Q zRk5>sc2(??jiG>OR%;m47yg4|7($NCaY_P?0UliVn!uH9^=Cfx)fY?Pe-cm*Ug(Vv Q#Q*>R07*qoM6N<$f?6~mISTk~IF zsG&*NJ~l_?oNh2`^iH{8XewV+r^Zx4!@8bEI|C6KFoCb2fjMq@Vjy9wc10+M$0UZX zs`z6PwieWIZV>IZU4U`~g{u_Bpecc%xnzQ6oQYgOCx3*g@{Hq`ctlMWyYz_Y8a z3hSZAn_$S@-5rIBFdA{dHDFPcaoJX@Cb0ahEMf45&ciZ!)qXCr*KkfC`l1zF3aXgZVTGpU43Gf?C?DnX~4*sSIGilu_4Zv*;n zVEMaZ#cmfUzU>xmd%W2NgQK=@d!x34GBiP>kLMKCu)>qwVU^aBmVs+b0IkQhO>~uJ z(byma*g-VS0uEu*0*pQ*P zJ_&HMK1;xY1LVR?6>U$c@{Y>EuMZ`t!*v|SnmEi=lkE=zW3A0!I9RlW{l|Z%0sXJ)bHI{ z#$H{JZbWqXXz;^Q{h~fI|G{GyU!MNVIkZv_+Lr1ar)G~t#D)D6Z!Gs}H%lugw>@xE z9K75Ij=VPe;m@buKOBoM;`gkymGB+=Du+*;d*qMjFK_J_`)(=!`!^k1CH?Aeg|iFw z^ra^b_8;4}GR^OK^IhzOGg&*ccl+Fyz6%duJ1cW1XAdp5U5Q^P4*5foYa{PG`eM)d zmv+T(46yNN>(R|=_xA4k_xD!6yyZ>AuFQSCbgn$}Y!~0hV8@6#oqSH{+SG!)GOg_T SB|cIQe@59%UjF!*k@`P2xT{zI delta 869 zcmV-r1DgE#3Ht_+BYy)zNklAC=0DrDu1@y?SC{)tG(tl z&UtrbW#uyfTz>-qR}~Da7y?q=QJQ+aUhHguYtySv-T18B8c zOHmYkvn=Z=2m+1`S58aDdq8a4ru+N*&Nuh+{BzzP5Wd+-nh0lEm=fE#ZFfc}S_ zogMA?_JU{x!&8FgRaZTeBAz7rz^Z z@wB?SDtjLkh0OkCTCWOu|mCGFI`+*=zpAZJxP)x07#dWN~PrS@e!XBN@=8N zS`>!iVn)Mzxg>$*ugb+bLl?rLILmUex8twm8pqbSli=k(_0hE7aO3~fC%H6>0@ zPq}HDak*UPwOWn)zK_XArs|8s4rzynhvew!2rVn8t8LrEk-f0604FCWf-xps*9F_Q zlU~``S%LOc@;o1QQZRMUsF{?N4*?K{A)W=PngV0K@5`ha-T!l3XU&psylnFcu9h(d vc+ZXlwKy3XKi%>i`stZF4jp&zi^t}_9tgH5smx>o00000NkvXXu0mjfUzMcO diff --git a/OsmAnd/res/drawable-xhdpi/ic_bg_point_circle_bottom.png b/OsmAnd/res/drawable-xhdpi/ic_bg_point_circle_bottom.png index 9dc55ad53285a09519f181b0a11519c65cd7f5b3..71ac3129ba6e9a4c8e0f6162e265b5b5ee9c7186 100644 GIT binary patch literal 2762 zcmbVOc~}$I77t-dq%28Qb_@X*lPKLM4Fkm4G4u$CnA?fG|KPNlm%~ zcp(sm$y1QjZ6Wf5eP4DjY23+0Ms}U5GR#$@grBR<8e|67r&7q zAPW@!K)f_CO$mgj1xJX}62xo?-g`C9OT&Q`$N;qvr;#PfRU8c$|6VT#rsvosJnp@S zI)RJ-)2T>7D9#^L0yrj-Oc0aFR2+*a~g#rFj>vT!=C;bf=nS0{H0i~`j99%Wh9MIL81`JB$;e3uJ_U^ zbr|qJH~vvt6_Kg{NMV2qOje5Fdc?ZSgW=r$yP-Kj*c(oWQVJJEn8*Xg$udB$=JU9C z_=G5tN;n=A7C@o07z8rFq7&$BW-P&jOlJ~enPd^0O@UJ^5zp)SCwu^v!lL@}m~3_c zi$V$T^$1|mcoZs3dN9c}itjv@FITCBaxpM(TMFC$fMxtEmgBDkglbS30fLG1T@V@% zszFsesK8MvL<(+&Kq!{V=QwV2Rr)h%9-x$N2PA8hpbYmu%^c}JxBzz$g~9-s1O|)D zAkbNCDja^Sm>{ClsdT1@%@i>x_z!r=|C>G%>=bFPSN_&J^DMX_=g7Y%0p9#IOMo06 zASFC0Zj-NfAP^=)e4cNFrsLI?Cvtn1mE&;5!Y3EMW?J-Kiic{817~Nqe!hCLB))@g zJ%xYVGF*jMq69X>>-&gqDuiE^`Vbi#$%fJcr<1z5^Z%bX5^h^5u6mHsES&=eiwQtu_j!x z)L@f6G*r0A*76m@qUKd#+cg6_T}d3Wqpo_>WxIhZ=b+Yvp-O}9<@>R1TWAlIng;B1 zbWD3pXpf3z!mrZh`nqPVfd-`$9pA3cW*g*o^p22+*QV7>*Mj5=6B~c6J{@e+rpdAp zvQP=h{x^=D!!%oGEc%XQRoz-YyU)X0ck22(WZK}>H;NT#XDi%hEYWl}YiSga33_eL z{F)WLYd_)YNbRnyn3M5xkxRQi#|VQpkljKtXCmv8pM^%U0&9ZJ z1`Eu~yzj2@+32_y_v2!l*`{2@OrUw^g>T}H4Jn3=zgk{8khInM!Ncbh2BjTteNJX| z+Mkb4H5qhonbZ{o<_wU~HJNjYnn`$qYR{y6TQ9h1Mnh+PAyuJAI)jk6yBVM_w zC{OKOoZ5V=7K)VAU+q4!<&eVhAoYG*{dwo)UFRi9zY;r+V{_AFTJxnxC*K2G2CiOuLyLv{I9uKXYb z=}2W6O&L@X$Xd^DD$@42Di+}Yn5SH zuhUycO0&_Y1{qnp!%KKZQT#ebWA160-+Wj*;zTfu9tH*ybtWh%3A705VTpL)Y>HxdT4qUpB7?H&wbjk!v!gFCFTh>9<$D zm^A?-x_4&DqhjC594CTNNv*~0)d8oA-c>xOb)?)~v1;bTYStZrvvu~Aabrlrty#ht zRA6$PfC>9j@-dq2A~e9(ioIvA+3(D|Za?*MWVXuQn{rm)4-#lgUM9Rdcj5GB*c#TU z(DAHE!IPcB2#Z}Ci)KHaDW|UNsil>59n)O9boyTFsqz$ughmqCOuwyf#X3UqnN<0! z;m?wpw=Bo?*7-IKtjPXjO{1m$b(T8l`%sCCvv}KB^Z1d;cblds7SN6?x>3KUHGf

w{)em(hMc*ts^ovsR zIC@o&v+ITOV|QECf|)B}d!0JsYTMG~Bc2}#jv6-fnhW~(b>y8bJ@zPspodJ3VEc~L zh46iz9!_PBSEkbP$+U>6WK~a1l_QkP@;xMAF%9}7y=6@ zB)G;>We{X#DpE4psH9Pe(vq0cHh(n3W2;OModmNT+4wyV&&-|stiHoN)9V{&6VKdv zWHlpM^SJk(bMN;%-}^hCNuu$pDFw)y&fb`uXaG>-MbH4C0YHr@P~+(v9MAxu#uTXW z^bHPZ08nEJ)Oh*^2Q&bvF$HQoeS-rU0MwWQHJ-k~0Sy3ZOo19t-{61-05zsSjiG7s2!b?yuQ6#aZ~A%#0PaiEG!5M!5ZOT7;*%}(8$M_T1I8jr5`e0! zS6u;MBsf~u|G&Z!(JuAfbPnPQ6SWbj^#nxC0l-AZD}90GiSJSC?d?UMdwYA)>Ak(Z z#T9+#%o%d!%9ZFl9LImUc$x=bJ&CGX0`R@?Hpy`yvWb91cXu}#i9`?)ySuy5dn6K} z?z`_k>Z6Z7Qad_2&~MRbRE6V{lau7|@URA-0TdlDeY)>4GwKc<^qPpLx&YvX7hXX3 zv1`{Zt*57libNtve837H9v-IR@i<#36lh737)4PS;2KTSC|&V_NKrwoP!uIo6s58( zD?6P|dFj%nirejmF%TH~xCjU%r`3`pstv$`^L2N312NG{U%g~YOADLN=UGXTY(VU6 zHcL7j4&WFnpU;zayIr%}?Qk6kbuE|6=?j}wa=9GLqq~=eO>#eu?Hf-4N$8NWKCC~G%9LI$zit>;o>A^%(6eS_cazYSK8k^1bM++$DOa3H^Vr*<|?A zUFnx|J?M+WhYxRj=bd+c<8(SDuh*L%9UYZGB%M5YQo&-#ATH6z%NcvI=U5H^_B71^ zfXKlX4v3qnsVO(l^Gsh~U(dDIUi&vzikr(Jf~INdvuDr#)pO51cT5lj1vsI(xw+8X z+^iZn!Ax|^L8ue}U|Aq*2YavJsYW6Znji?)ZnyiugzW3<`^)C$=AD;Auu7dXF)`7< zbLY-|$z)Ov1Olna$;pDQqg35*s3-`Q1E8~Qaa`T8B6PXWo;`ckm&@hYp`oFtYfXF% zDuA$U+qQiqNy_xzkcG0Cn7XW3#(VJP7V(b%N-pZBnClu*enm` zSqT7$oTAv#9UK4z=Ahhew_BEF`^JqMS9EuG{}V+~?otRmrfJH-aGK zLZMJ59*;w8N!8;?Mp0y$F0c{+WIX5&42iwlXfz6QfW@-}-j5zV`fm)wTwN(bmNRal zQ26SB2OhZJZnsOCJUJj8eeeHMOeK+vfV~_21yWN7#W=nZI9;6SV(J0afAY!cy-dO^G zA(1lA-X{ox`TX(lV)N$BCn`rLyHS@|VuXKL;>8I0vzdt!UJDb;i z0OTK-oV2pJzzP72;Ra)vfo^SWrDtYl{EDL3hlYmsc)i{qmP?>&Tt7ZOKCpfJ_BSYs z%I9*qWGEC;TU%R|;o)J38)2fCO?)J?EqEYfVg<>5aJWWBMwoOu&8e#D@9OHh?xBYs z`q+ZGsxky{!OJhdd}lNoowV6(=~OBOv2MsICYy^2j4^5CoBJZEa0M^b{;2aL)8VA_Ah; z02sLlM>-+UMg@aG;D9CheBS=yhaY}uv)OL6h&ELjCYQ_o*QQOI9x4q2@o}fyfaurkUquJm1B~Y4S;?VMdb^btwbWhWwTj_BuU;qd-n9Sx3|A+ zF>R_c+*e7yU=*i`B zp7-8+@8^L)U`tgfX7MEB#izksJX|$`W>u#Rs z^DdWb3IJHMW({zFVkiOwFiJK@O9cQ=h%Fyv4TZyDI-O2K)RVQ@Y|Vv2fj@Ta*neA0 zm#Pg1{=kC|KDdS?$%51AoNzcCQZN{lajlUqipr{@C=~!ia2ykXx*n*vfv_|D`Tc%2 zm&;)QeqA++RbZlZ>(;FzNmAf>9ymZ8A0L-6;WbTzf-pR5NqV4U0CW+AuSfD93Z{Sq zve_(@m;^OV6>_yoA72p4x%7XU*T z1B)RX{bYSUA5^sk7>3~^k;s44TkL-^=yi2<{eYq<-~a$X3WvjDEEWT~Z;2&TDhFH; zf&lLqGDzS92!g<+QmLf`K{$>aIdbeuRl=euj;&j_?p~YCmMatr(}6$$Dk#7dMYTlw z9tLa))s6%7*a#U4h3G&aK%F{u3aZ*6(rE&nsJ<=S4!1X?UzaK&oevacjgM))VUAAo5#(E*@V(w#X zZ0sMlZ{Pk4Q54ezL8Mz+S_-41qfpYQLdCVo8!pKdEeQbZ0~q2!5QZio3=xe+InV*g zWYR?tgn!STJsWPh<(6HGdGLBU_lqySc=7q?pFc#?bdu-!G^8p40Pq8_2r?G;mJ*gI z3jqBlkP-#}&YU?z>tSfd>2%s9NebL_(@lZbUVE+XGhqvXJ}@w_?)dTJ=RF?JjG`zx z0081aD_5>W)z!wJT&V%Mk^nI6NGw`Gpok$029B89?S@Si&6=j!4;(n~w#()E!+KfS zmvbNaeExrWdU`gIB$>6@Y?Ca@O5h2%x3`OMJ%}KKB~-F6P!a%!jc&LU1vzE_KqwTV zQmGUxiXs32@gQ%1fB%l<%a{N7avr>1&iU-K&tBTKYuB%6nobLXkR%8~YHMqg91aJR zsTB7Yn8ePaEuoSCz@i72pkSW>oUv3YMdfliI+x3F$z;;Waomy{Z@jVj)mLBrM~b3A zFI*9?fq{Yb$B!S6GYm7uvMl%k-~~gmmKu#lQ5YILVYKqfC{ZaH08=myjbrwPB}w8$ zQCzBNnybIR|Id~$U%vH9p#H?f#6Lg!=%der_z^{Mdc}$r;`#IEMJQQ>;$7pOGrYyA z6a|dMMyWJGL^pB)WW$Dshv9dosi}#XnwnyHo_8sVvLqA=1@`XUd-zJ=g1)}K4Ih8} z@p+o2XIYk=<9Qx}acI*YWW=xqWN^kx=7N$rz*td%x0d3~7t_Dz#ATJ;Y0x!$51GoT!b02*00VHTbrLtWmuM|aLQ}5QBC{k5*uCK4}N5_vJ|CS(#6#RL;URe1Oh##q7nU4i~+ zdu+K2!YU4!#|?UNhSHNW3_%baK@dE|haf<=d-v{jt5>i7X}LFV<@KL@^2yI$fBp3n zBuVCInx0`~1hRL%mD=u5MOo_!}5}2NbEEviI z7=mzRaY4BpU<}Hk)EthC0x|SV88~O$tQZIcL=Zg;!)RWww`lttYeTKrOI$VprutGe9^Rax zm#0J90eWCX?Z8Hk(^jRWJAn&p!KX=i0SvpRKk|P!uH_jYi*m@x>R9%Cana zJf37aot|^M-4eqvk{)i8d{r1m~9XkfC3`CpFHd81R z@@}_V#Kfm4N;B*YKwVg%F4VL~pe*rIt|MlAtEZoS`dwL;B?vJQ<-yY9N{_qJ@=^2k+JU3Jf*sQX(^)(L;OzrR0{NF&>XlrXjX-8A58%qjuFSc^aeO_Z|0s#Um#CR;~J>)9Jjfl$%Q?lfRyrnD}CFaPZKXGiOp@R?4yr zTaV_T)C3xLWV2bx@Au2Iv$IM|ON%->I;w!x1M}eqPSu6gy}O61iW8N z-(`sEM&U#~X@j|ebvm7ls;a0z5XW(LP1Bs9pc#e%ps3q!yY1>b?zrOz%a$!$;q&=I zcDp@j)EBVAWm%rfWHRTo+3eWZ*x31l2M_-H*I$2~28uHbqX5ArNyBU>9(-jal5D3tUqEL#W zz&n5d-LPm)(^#D&90WlCcYp~?0U)w0lMKU<@D4;{7?5W3UT7N;5FQ8%_B=_Fd5WS6 zf*^obD`m4;1u|REU2A4$21E`JUNeT8jYKxIu_>zxuF^VSo@m1zsGy&iegG+Ds2|N_ zG9=^;fQX_fQlq1zl;7{CXJ=<=m&--Z&CM}(yPe@U4q{0Z00K%{6h)vm#j-2_g}4dm z41mCD)-zO+BuNT{5J1+$?sqr_e<16jy%}V;W@cv8RjXD(r!6S7LV-1C7=>f~xQP>P zw_s=xXo={VCo)Qrua~%Ho^m%e;sX#+*cy5TLAV0OQdO0dB#D}woMb&75ByGnXv$`@ zV7?-c8i+3l0vg+9v*9*pXjK*p1(oM{lqM7eL4(jSbjqSA3W$&1Q>hdjSAxNyYPZ`J zSoPs>Sc4c3R=Du4mmDGvvvNynH8}u_BFwTVZ=jd4m;-kNa06Tbs~!9WAhgftg9Ja} z@pvdzRe>u=r_+g=^?^xix7$$+9{R(<=X^eoR)~tk74pgPcpQnUmX;P$ zQ55*Yq6TyW007*fx!rE`dnS`X*Lpl2M7VT1jR0tBYEq`ArVw+rw6tgt&xf!A$8qR9 zJ+oybc(HdJ?ss9>|7@w)nJ23&AbyHNntBHnxxrLdY7~b^EQz8>#^Z4Uatet=0^SMW zj6fg&TVRP`FsNZ*rlzK}Kp=o(Qt%m$(KHRm!2?GM8SHvk@v&H}m_z|xgl&Adfd%?O z7)f(w0x<6hzHb?96h%hDL-Rbmq7hd{qtPN)fU*X84Zs00M@B}7mX;Pu&r*TYgnrYx zNCWT;FJtBkuXtlD2g!Pq*sL3ERu-c1q-q^&|wCA@ftG;R?XaR~B9W^*+*loU0ENP+p#H$sZubYi%RYS}P zV)pPwZ-t4j$D#(WazjsPbe&O0RoddY=nA|TdsOiE3zR?hGEKEcX1!tjZX_@kEeIfk z(}%>5zRIyEGK!qyBUaMV`E7Kpv=wwI3@@19000(EMFohxYGW_Dg(lFC8#}0DfQrq+ zYtbdQo;YA3S-zlrH<+#$tbSP8rtawT#xUecqt+tmqJUiL-cW#_>eDZCk6E+X%a(FN=gbVg~P&$L#l^Rbbr63jQn-q*Dx%{nR%sfOCMHysKnIMD(Lq?+`uh-gUG7kMWjCX3A z6{#i^ibKtKGNGaBp$ixWQ{27ZkwcM+Mm&!&P(@KKm*JXZBZ`qxGAT&iu(SrPScnKv zge~APVN}3naz%U{QwVeUOdTIqi$n-Tu~su|=Uw=4m@5;q=Y)tvVFCmR3lWA1I5LDy zi9$ZiK|+SHQJ9%jVH$MUw}J9KgryjN4^|vXpehn46ga+oxC>(SIEkC}xCvk*ECdLY zt2748aT4UH(wn4ZC}CKEYQqWK2)w3QY=5pCw zzFNdr^AKLDK~zwXqgVdZJHtm*LpsE_lR$0W&Jv1I14K}h(rIlFQUh2PB@0nl zx*jeu;+J4X$27yY6YE1KtaPDIfBEXs-B~3Gl_PSuV@97b(e|?5Q=87m9Ou%b%j-Y; zE&YQ#Iji!wAm3R!N`rSje>ShXBBF0Ld? z*1N9kj&{1e|2A*_*F>FL~} zk*S|_^(F<@uWl*s4yTxzcZ40euS9p}9*?NO5IOqZrK>KPUi&iZn*BEoVDkdM&8aU;7{$G_ts~*yt=vCPjTUz(J!6-7 zW_AcV_Pp??KP>#<;v_#_$XU9g{fc?x$Op02tCx8mj@s!@=k6L?t*;|60A3wb|rR~Swwp>?MCTmQuRv+J9 z^Q7sPo|Q;jV{6i>^)F2UC&v4Vrj&-Jzkahr3?3tQMYbSvn!`9^69!fI8Bpv z2z%oH%d3cBPbg>s0wk&3xfM4>d)0{p=Bk@M?#Fh+wxC1imfjwh`_h^Xt=6{1vzBSh zT?>$z&Ml>~bCFek^lQb3f9;v!qNo`-<5nkk%bDE&aF-P?aBGTH9hkxZzh~b4*{jKe z_mTW`@Re+39rncK8@swEtF?r&cVybOmbwFD%l2^k#+i#t{VJS`8^^_eH93HI>WY>3 zRbS2Sp0=XT`DD(Pp8gk+Nwq3%ms9`rtJl4}H!tkZ3tYc@%Pm~uyWP96O7l&#Yk&C8 z@PkvAI0ctA&I*~a&fa)|VLSd)d9gCN#LfNu{mbjSvXK6uiG}uUxjFjr%&U(sKU+D| z=_e=ObZ?c_;3oIhgjZ+|Zz@80JfgnxLjTbFun0#N~8TT}jQmDIX> h#`8++#5Hbyw5A{OvhLW|Z*}|^qrzfj`{yLA{Ri|(^<@A6 literal 2909 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 Hu0mjfZ}xuq diff --git a/OsmAnd/res/drawable-xhdpi/ic_bg_point_octagon_bottom.png b/OsmAnd/res/drawable-xhdpi/ic_bg_point_octagon_bottom.png index 376c2bc6e398e0964b77c4b6d2bae7faeb992355..5815ae8f5198f01fd8fc03630545ec909214b301 100644 GIT binary patch literal 2303 zcmbVMdsGuw8lM1x5Q$`Y2tF!9!cwu#WAY#*7!pE2QGtlaquP~_OdvusX)-hcK{0BL z&jNJ;u~wkkb$wO^T2YF+B5<$-wmuOQ=%Oefp!h=GH02YW$I=LbpM!^&~Rjn0LhR)VeK($gx zN#I5?qjX_#ntD;T9$uau9jC}nSMZe-Q3$xeB)}ACU{ns8G#Ofhz$B!+)hocxHZg+& zzJ;LaLdrX*5~E~b7@~*4KsuAAU@}=Ck57jJIczTLQ;@}EF&RvV!DiARu7JxFu!F$K zMZv7;l`283G-A>gb`w(4P*f*iFpNec-N>dR`cwwQ=kpm%7K6p2VF;QbON+`)G_8R; zr9lcC6neD|RU=x^rcs`PWTHX}=IOf-G`gs$_lmWK$wXl(W0>SR21I8vG#Xo6Z_x%c z7XFVLA4D7CvUD&b7B(Q6dIeSw6?KY?Bta1VKC)V)3{%Cd}i|IQ&2rEr`hpq^Sa#DSSSJrC6z$((@sH1e3#IvL#$TKb!|a z;h{m{Jhl{KVaK3ACL0Q!;znu>s9dXnr);Y++ml?*A94j@dRUGk`Zxs1nCb#q8iFE* zG(-ooAUXuji;^qUTAL)mR;71AOJTkGOIR79M>OEuGz-)pZ~^Ne2;#zlG%ko410(N;nORyFjAU!rI z;=zF?0KkKh($F|l`@lX;j0Z$+xP8j64_E5#xol&^>o-1;xvtXbF%HkFwcn_{x8&Z@ z1PfJ#O`W($RTFoY?yp{1RTaPWAe-t&0C1o`;E-1Wkbx9CF<^22A3^f{VO9u`{dGu>44}hl}9xQ_ZuPBBfFN(h&XaQBdFtk!f${A@cRw{T*Y*CFSQ17?}ujP;&LIWD18!hFw7-nr+=BUbk- zjn-xUM_0b(u6MH8VrKzi&eueDEiY&Q~eJ;4P-8jX= zZx`5e9&9pLfv8g7XHW9{z0auf;+s2*cinMnZ3*J_pQSd`xW|`AkP6u1%`M69KM$YT z=5uVWzf8Wdve>!aHQvX)td+koXLM}Ore&4W_MD<}C2z0~a@-Nt&pRr|!VuKQlQ6 zmwpPK@v?}TS8dmRg&LA3TzUZgm2aQX_;~O6p5JRx`tahFU1JwyImP8h@Z9bED$>l?<@a!vPdX)1jqKp6()FtA1K*Z6 zuKvd>8nFWWzNYo8=X{3?+|U~jyZN-cZ3kN%5_ZMNLOyb!Y(BnhboL<& zkJQ#X;7zf<9#~5m`P}dVzsdOeD&Mj?P$|xDO4{Kfa{xB$h(n67pwOP*8=v)KWF4op&!u zF5=&IG6K`PYbQFtD>Z&boaKb=DzCF03smGu(Ul#wUyjiotwV}!5;lyC~Vv>kGol&7F;DzU|-fLaw zEpRexOZdgDqa8=odvgNfwqK$*xpe;ECc4Z-2@b2&VXD?8J~x#GeJj?CC|c~>L6h&v zKF`nmI7&z1LHGCrXO7HT_d~43XPVf{;Tl+|eR*rQe`7T#a@)oi5Uw&*cKGF0$!+S3 z{AKyG<{kg&i+x9NoX|cys5f8~TAO9Q)89)h`=sX8^tct&^Gk2VJyq_a&n2exrKLv4 z`+17EdF6w(r19Fwoxj;%%`K>NH;dN9^wx1=(jVu2_2Iu(*MplPoFniTqE9a`AZHA~ NR%Cdz^tdG1{BL$~h<5-0 literal 4621 zcma)A_gB-+)BS{ELJ!iL6cs`drD^D0q;~}AU_g|vARtXZss?ExM7n^|LX{>>TEu`f zB}m|*H$#hnbo}Q158fYk_MAPt=gi#MxpU7XnVIM@(eu&+0KlYwPsf6?yZqmRT%y=T z^m8}>u>R23(X00FF~F(7~%5Gm8>>t%tv z02+Pli6KWIFe8wNrebALpO2>8u@qWd0Q27hgxu(LRL-KQF9AA6FB204{kwtaL~$s2 zmztRyfXdK{T#3B@G30;1-rIKc=oU5%I!*UU`v#HkU z$dER6vmFm7^ zWo7FJ@AXo{7#J9|I-Ix$1_o3bX^Wn==0ax-Jv==lfF3xb!vKlVq~Pqu)9&NFHQm2| zRK9R=arNiq@ccO-I6pZEbF8tcyq04`pQICGRcT#kQ<)Z`!rUWU7~Xr!9~t<@l{>Rg zlh2>+-OtEso4t&|k{U0JokZ5}&Ye4jvr#`u|JZ}fqeo4dA0au~Vd_n9hdoNQiV9H% z*UhY`T#KYM9frIwp|GU=b}x($AxMzm|8VW^7BS&zmEt*)6eARJwBF{c^6zYKb$mSi zje`yBQ$WJL_DE}yGa#QOb$BJ`=T8+a=6 z3f~>yTs{E-Rig1?L#ILMc=iX=f=&$x*~+?FKNKH=A?#chEIAHnYEk^@c98W*-#7oN+3H80F_0& zbF0c8nRo((j7>BWJv}^hV6)GZ@?hEc0OJWa0@m>q|B@PfF@w)WMATGQJBF_1J(q^W z%)^r1GVuriRQZiTsx-KvQ!IB>5_rHbF?IY>)x`6Bf4^}(H2?4V*n8ojv)0zu26uON z!N0LbDiFWU<5g!m;Wx2hmdPtBAuh{-iY(u9_Bg_@Twzqe&Tp`X*q&|wyE}dc$Kg(d zAXU2>g8N+f-Z1VQbL<+;@TwES-}ailIL@^@?X{V1UGfbKbE#J!~vz81WXaHiyMh2R`@E>iWr zs7QFJG~20yGewsrpsdzyy9_s@08DM-dNntCO57*EfBl;1i}Cn&7*Sp@`F)2~HT;~s zgmdmV-TqvQ+%yt(@7BVg(T{+*THMepr6y$~!&5AEcU7KHpm@aL?DGJ8y~~=Uxves> zlo`J8qui292pOM{@Z{aQch)96d&M6l-9AbJah#Uuj+-70b^!65~P%AY@o z&3KxN}NYe!d+pD6HD7x<8m9<_x7N zx{``ZX~QaysGU}^=@?Vv&@mcaexILi$74ZIxR{7d4mY?8icG(;wHb4b8G{mT&8*7CTU@M53T1Yt`prW4)={FL6&z{oHE&R|3wW12{PGS?g zScfAORaDwV@%8uszz-C($@Yu}NI3<|L~%a5ni!74BU){xzEMI7%g?s8wLL0e{<2Nl z0yNllEvB2%+1+8c;NQmt%i6di#`ERcK|dcJVtdx>vRd1sz3;GM8;j)_DZRW20P7WYFuM>vwvs2nuDGaev?kJ2HYd}@ z#wI@vVMk2i7lOp}XZiyG=bv}{-R9xAutG~9L{&@IOgftlzfzALSwm<+bVkt#yAw+0 z4>1s>RXDS3d-B_V{cdB!D}ir>ex?mx?53|YwNhSUQnsWn1Vd8HIs=vRP{tGd3{{04 zmw=z3rKZv1(u$KP$Q2>^C1nkVox;8(pA;>nXI zuc1`TQfT@$vMD)OM(!jWOQ~)OQvlw6Bnn+(l0S8W#<^t5IEa(FnU; z>c7QTgBk0D5`}bha|EH^uD_D?@Pdy4-M@NlnY5eaT#F$1dMMJvAf#pkfGxC@dG!aj zG711}?1EKbGv*^Mo@b^^cPZ{jF1YAme3|vUBO)A~?CoQDFm#!_`N{E@@@rXBajdUn zY2&PAHpS-~R-tHjWyJ!_dU!7ducl;*o&w?1MyXi@)vUaUNS^qY{*8Zs-giDfp8pd2 z;rV`MMCZnrSTI5TXg(GX)kGmUoI@694^MZxn(K7wU&15pWCO1cB?+OJK)3qHv5BN_>cuSf`E?XG=>{pFI%*fE$yfzr=W09KrA*W;GOG=`se34 zlHXwhkrBX&s~^rhwMQX-L9}UJwupsxD+hm7;?#V7TT>0jFS~iWs59D?+ZKJ_kznmW zFxF3(e@JY)Sjl$I$K>ZD!yT+SLS-xE-p9ZJB{fI#(@l`757l z{<6>Ke`K8CzkuzTRuYypom_0Th;x&X<4kG&8V3(thTM*LQ5$Y+K(BCNPl!_v+cyaU z1ac3-EhkJpIdYzTt*wgb_?2Za%augnO8`GdYcUAorJtU8v-4=NI`S!%#|2I>iZRDe z8QDNPwl^dYTqLmzxK^$;aRfmn!H^7Eng0!2VlVL8$F=GAnON z2#kt+N9*=M`=yU4hq5v z$_Ld-@87>?g3VGifyCazu}CA8OrOQ&U)u#HZ1ru!AlHZ~;fGB5h0tu|@o z+d=NwVcXymyJ2agTRa13%M{#_eKCv*!j)zMo5{-JhzbkCEboOvJMB87@$st$%t0uY zX$JMeQd7=Cx15O<2o!A*4}aj~dcexsI3zziuKyaoK2FVnkQK7Hcm2uk zY>;Calm}|0bA%<`erx;6EKuWYnxeIQxZ_iDoTWHJ(|RQxr^P%2>oGx&=A9j*par#! z*AL56z99AUNpVR@N$9oEm?iiqQ~g@#lxFHv8E*tF*u`DYw_eK7%9=y(GXI8FVnv1b zYO@g)z8>bPVB8yYpIz7c&f}5^ug?zBFCbX`^yL~X_I8ZGpZ0b?8HH9^Psi(#H+9T1 zATwbyEQ}16qgir4PF}h>+1Y9SlA+XOaU@Os?-Csm&}_7=h1`<#N519v9?+$junuOC z6qt6ej+vP@WU!&}E;JgdTgMu%(sxLhoNUi_j{GIbP7gEHpyRVu$z%`;v*r2ZYp>S9 zsoAwr5CD2Q-g4ecvk1A1LrY!V%Ru*gf37brE!nykG7Cz0EwKD-)POaa z7eA;zDQ9<}*TQ3rjf_IF3|?KfVb?WHzgA-U`eMcEJ_9d+u&i8=ZjiB$|-e$xjkSM+=zrTl8U=`Qh+E`A``%>x2M+|*zm)rgO zUh8(yp_9}iW9|K)suk#cjQtz?1YS@2;%8<0FpH}^u}A&C0h}M!Tl7U4R&s_S1N`99 zR`5@XbVsrt@FYfgq$K7%8qE*y62AQTJJV3J>)f%s;RF2|MC6>V*`w}Yk(yE}-%+(0 zv^w*ZWwB4> zm;_Ied2C`b2Rzi91a+oCCGm=e^;}QW?m86-?g?zZN~7G;>Iiu!{y4b0I-@^z(C#K9 z3?*-f7p)zqD{`w_h&(k3`OBQoYIf7udAd0gFsGua-&7G8R1|&m41P0;(L$X;ygk;lXF#$zl6cM~= zJgADIj#`zGV}!vef-s5*9s^Xo(3(<2s0Zj&2UMUN1lvEH{?VP;{oeO|@Ar=1dvCTV zE_OND(bJJYAdtmTqIi4-t?w**{F_V~E5w)iScC*iK+`e3RErQo<){n+#44!*iASXJ zoFCeeKmx%gTbU@qBr)F$U{pnuT6Jg!l?F!>2!X){jTFvAFhGVVlxiVmxZyGdP|Agr zWOfV~qX|bclu@}_Bq2985zfto`Ep8d5D;h(;09C(CIt+tEVWKx5K^Y>3UJwaOs4=- zDp;nF@+l}uOdJr7Y7u}#1F0|wG5{{0260$SHX{IFfDDihLUblbh1dc%C}8q{>4$=Q z)5_BY@uJ9SU-(W)$-pp;fKJ!z^)x+`hH4dbh|lNKK?a?{pyC=-U5*-)8mMZW_lyM* zqJylZfYqW@hGt_z3LfdF6jYj+n9qjQx@n?t%IF5Eh7Qp{x=LluYf4*(#UuZO z@kMQ2VvYu($0Is4TMOg$NcWxrVs z0{mj6uu^S3@wZm#Q_>vZA=L%A@=46|>}!a~z>#B1UjP~^cy9p;<^?CnNp&zi`&);l`??Qpwf*VW*y zC+Q5A3Ah9*r74nI{F03CKbkH6Meb$r zlGgO4o1;%Hf0}9h*(cz^L1Uvw=$cNE`=9N3FDn!}liY4y(R|l}HHk%yt_g0gPlD=G zi3wnJM?pqlRvihrUSYP4zhP?%(6v`^megXtH@BrY_pBYxJFX`!aMN`6uiG5WEICSFngIXKjg9Z?WYp26d#LS zCF@w9uA~9j<7CPg9Z{6QuCjAU@-9{6&6W1%SHB%69!)n*?mjTNCE{kt07gx5NF5jD zm(5KzT{4TFFWB@^gdGqbtZi{Ja=f7ZQCQ0RozZ*M8x~(*Rk+c= znN6XNUG}`l*}j6-zfPOUkZi$-U%C zdSR|t9$$dTK@p|s8o@9y61r4g+CXyr%?175oB&|j-8vEYZHzF!xn!w zNH?e>fjBGx)}_(57uZ6!oy%l0?8L+bk#KHqj$FgJrKKec$MhVm((&9QTjJ0Fx~T=i zTX*V$Am#Vjl=I8=f~a=DyE!Q^r|05e@QBd@Z7^##-qfTMYr z$;q1M&!4l89z9}nxt!E$wIm1|2n0Bm#S#nuINT@8GK8=KfdHipImUq`Nv%_-PPMYx ztYKTmvB+U9a}WUM8Xk7%&K>ZXPysLB*x2CSym{lRRDUYIKp?=Hrs;teo6RPnHiY!~ ze4WvW2o8`e%bJZw1DbC!41-0uhGS|iq6n9dbhSoL0QO?)q|SZmbee;8bm=aH9v&W+PoF;BSX*0zj}SlU@Qy;CU#7Eol z4Hum#t@gdDCji@ti12G`YaD)|P$-~jnopKx;eYAVrvnR5rPJ$E zA3i*|cJ10X9LK4!#K_2qeB#6jGZu@1PSm;gS)!{C(1-)=udJ+ive_)>_xq!kWqB4B z7JqIJN}FDk1BfeEuH5ze{hBPxJDE(zSXx@54vmmRmpWEB&<9{bgv(N?#P96v0D$-9 z%a`keaK7K#3l}c@f@N7X9*=)Gd-kj`GBQGQ1pJZ;-V*=;l*wc`L;-}%?d@%@R;zi6 z#bQhpMe)_ESFigCG064v=g-eG52;rueHexj zLZMKsTCIw!tE>MRM8JM)CnqO=#W0K-i^a<2a#>5K(+2WGN0M_M^FzJ+W5%P|k445U zm&@$t<|bdO)x5GSA2&_Yx4gXk?|woIa(#Mw`q!$eHY1Tpxl*ZU48v$NFWA}IU4OP) z?s9>J^UluBlKf3GZZ?}miQpAQ@q}er((>~1zXlPo-`eTv>EEcTit=K6Y-~)4Mx#bH zn?-geH0sRIZYOS|5K0zg-S_X`3$0d*uT(1WKp-H!c=6(&{e&3g`tf}4wwCY zzZwpQ^@)iIM5E5k{6k$uDMVii?SIp2ic6N3IMNx!ivl&wq#kab;`j0^b?6(#G zSe9)min2X2GNPV4cTRi#`n9#Twni*~NaXJJs0G|xQoz9n>;%S#!(s2<-rfnX*9!`L zQ2>*ZlV71i4TVD6k|e2!MEQIk8G2s`#kpPpxO6(rqUr>N8jXh7YPI0R{(qH~mB07X z;vmo)$hpx-OIv^?F^ZR;$NtANbNy2w_w~7>&o{ z+L<$Fv~s!ZWMh{l5Nu2b0PT70Laq$}Xe3Ee6p8HN!-s!9dGh4-L3rM4?c29+7jE3R z@qlGnR1@WRJg&nBGMS8tqRz4`(=Ml}-20rEHZr95g#}!BAjmLG2!Fl!cz)Utj;*ty{Mqvn(rnJf5o0=c}PAEf$M9oET*_Ml~ICrXMpg%?U0_aj8^_wKFjv z3WbDfwK@b4f*|nBW_W{Jpi3Xw>KT+nPbS%lNAtt}LGqTlcL8io;66a{|aou8k-c2rAjY;1gY`}XZ` zbzRpqO{+5uQ)3uLi9{lrBuV<#))u%A?ZY44{O{ir(|mv}&B)bim6K)Jv$eG)1cO0@ zRxhR#48sHkL4Ob|%Mx^5ht)Wq=dopZo@aF(OmIRpN&@;rL{TM4Y8ZwA?W-P-M;Ap= zE0s!mDwQ%js!(bP8uE#*J6p;&O3|#0zMxnvdJ2UC8;{39DPGrg0zwqUV<<7u^e_wq zdO>goV6deY)pZ>-FnvBB(`+_1K@d!i<31{i@)2|y9)BLzc6WCPxI`jh777Ie^Hmga zcm^%x?C14vDcvJ+dmo?(uw*g`D{z~eo1Wp}VK_DS?%g}V=kwvmRw@-M1#Sg;qiEkcsy?G z?d_SRQprdrldzCAK0fY*&5jQwl#Wi!IB>8<$19Wu@Q1avH8z<{vS{>i9@L6NB3z|X z;f98WFaRLW3mSbma+FqBngMZB$o3$Z-1an7#$t8BuN5oP%_ZUlL||tPaF3; zHSHkk)*sW45;Q*m2&NVJe4ZH_8{!$F#^Ca42}+nE0qeF{~teooD^W9 zC>o||vR<#(^!xoLo&#Vm;oY@Av0ld~s{<|2%enC&k{hT`*iJ?wPBNLa;2*dMKpe+8 zj(-MW-N!>iLk5ISCX?i07@gS3s*@t_ka@K6Iz?^M2sH@pnF#Tn34HkRx?`L6aSJK(aLu0IlfKy%hRHSC zBJM{ZkATw3bRQU{IEI~7Ea4-3G#-}Uv-i45I7 vwYpwNbAaQZuKS5^b$&~BO(1&7?VSHFAcahea{LpZ00000NkvXXu0mjfjTa3T diff --git a/OsmAnd/res/drawable-xhdpi/ic_bg_point_square_bottom.png b/OsmAnd/res/drawable-xhdpi/ic_bg_point_square_bottom.png index 90350dfa1dbc7e53a428670ec326544c5b7330cd..b9769373f1253f4dc82478c6a5fb20b652d7fa35 100644 GIT binary patch literal 2028 zcmbVMc~nzp7JpF|S;b*s)JlC5QIIxyOUSATB_smYAf|96c385!KqPrDO&&>5fv6qp z#_EcdI(jTxDr#gvD9YkmTOBwvXdO^dyHG1AlvA{d*e?psoHL&OG4GuFzWd#G*WbPO zZAwmx5AdDo3qepoVuDNw&MY@g@dEF=yX^vS%%J6I^m~+^wyP}!6sw~&1e|D6XA??7 zt;_%560s11Cg&Ma(&#kB5|NfNvDI!Jw!>rw))2HX#$i@#a|s&O5ZMM&%zW6~%7hI% zF>^Urfhx>#M2;b0m4$e3RZ@y}RjyX3W5!6}g$@yLU?ONW>@XQgtH>c{zVIsoyjzSg z;TI}&u9*2UsWe4097kCQn8!w0S`@`$zL1UaqB&grZ5T&!6hSeBgR(HLh>MCi0(ksk zf@l_x7*ov4x6%MBbZPqL{J>TaTd^ES@TI+?O>7CITIda zgjH)Xm}vt=!fuah4V6cWnIO}bC78?##Vg08bsQ)F8RAfz5sZx@CX>6a7ur@@N&F{` z*J@i+^34RIB&<}PMGN|&pEF?$u>1W$ZbgudXsN{jnxZz!C~cmJAn8Pzm{>+Iz?#>Zo2u|lDok74pyft=5g zVK`s~Jd}gQPS_@rR$5JJiHX<-5PRGfApSeHqBskorYTDbMHwfiAUTJkDQga8hH;FI z!I28J)7;J=Yk%cnBFJKlKUXuctAPnOYJQkOaa#_)QAr8vdYgwA; zXgr#y5%M%#j5%(v`+wm>KvIZ%R{m>tCPZK$-R!GP0GC(0M37*CEMQYIA};kokVinG zEH=f_-Cwnd>_PoE$p3x6T+?=qEIoeu`RdvQ&b;)VbJq_1RhpVAsYt+gjCpwUkqDt!`~$<;IdHdFmCjMlW??vsc!8 zP7c4btz5|{_i}!?9t$q4T)`+yhV>nl`$A;zC$H&_%lRr&qHyk?7F6v8{r#eKMWo+_ zwykRu0{62bB>~1F!@TXY-YxSv_t5(t-TKbZKlT<64>bA~Zt(3`!!eK6g_V|nQy2R; z?a1-=ytXdm$&003wh#I=8ScZ1&@(u%i5i z+V#+`FWwj|sr$L&nd{qcY_t_l@VvcqRz%DD4@lvaxqH&zj2Zg2*t=b}^V4uhdBbmJ zaPQbNztGkYc8jK$6c-_DTx=R-VEuM1<(LbBUWn}-UfJnA2g5-cTD&y^3?MM9l} zGglw_$+cjl$p;GWt-ZH3>t>Fy?4!-l!s8vLpe>F5yRBF6J=oQ=2|Lk>HhF z<{41hePn1STyIrn52l}{f$|2AWF`pf=6ko%AQ`u4T$xA_)-_IXqn zFT&%D|0(@Jy|Z$tQ9nhc`KO;Cv-xpq)#OoS=bn~1U5*3UwRgK_WS9E9nVITw+X8#J zpv!I6zQ!s!KZMb^tV7kD?HyCsn_;C&6*#wgQ34L93R*g zDk+*4*#2Z>N5R0=uUn=?#m_rC+g|I6o-=)%`nNWWRoi}Pta1h)t@>r( z)uW5Y5(jF+TRF~vQuc{cV=?TTHCcz18S(I6hKDY%KDG>L{_NC~Y&;`*M(8!4(Q^l$ zZ`{~Bb??-zUDX8-zUy&q%niK!0KN5j`k(1Tcmrd%>zF-=*WXLk=Z2rq_e$@`Z*88^ ztXO7d&I{~}!J4Hxt$!#u!o;{9!Tp^g>d5IMKStQ%7EN-_N6CR34#vr!nzn8JutZh0 z%jYzIxcSENGbWAe>_u^hx%K-kBY2$VY_;V2swAGVVmHGjF&37If(q{KBwDV|o3483 zU0*3HCFK3reN^kZKB-IB{i~%Z=u1EP@ULMZL78EZ4L>&Qhzr`jhxAri?g_uEk$jD( z+?|DbGI>w0NP~XRZ*o9b`$v;h2Xpf$!FL%;)}}2UOv$QYp!OeHecCf?Pd-Mj?BcG$ k{6NG1r|E;X{(WE!wm35$Z~jxk7eEC{lqboKO0(Ae23YC=+5i9m literal 4555 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 diff --git a/OsmAnd/res/drawable-xhdpi/ic_bg_point_square_bottom_small.png b/OsmAnd/res/drawable-xhdpi/ic_bg_point_square_bottom_small.png index 9d546d2d3fbd8f538859b98125de824afda63445..173aa4dca9fcecee95bbbd6362776ebe0a25b780 100644 GIT binary patch literal 1644 zcmbVMc~BE)6yHGw2Bf7R^_UFZE_fhrb~h)R7}JEr5NIMs6e=oil1)e<*|=FuK&1hX zK#@UFsdkjY*p5>1VzAXJNIgnDuvjWkwH`P+FgjH$I;b7m4HDZwoc__B+5O)4eed^< z-+OP%)AgE&uqj~x07Ph0R0eiM{cmV6`^^k`?qiq9j5>>1Kv@_!L6d;OOc_Z~YbUIv zfh5d@E6$O#0boplEhCG`(tRi~QFboj*Wr5XP8JOSv*jKqVag*J&`4Ts4jJ_D_(=$~ znPpI>P>1TA$z-lArHCdM6zMZeMR_LN49Vw!vpo{lfSqIr&|}YcxFjAKG-6l6%Kl>n z0!LJsJQ?&Vs4QJNm`u?mDB_~92}OCJ80TUl0bj_Q1@cfHil7+6M`27T5uy@)5;*!m ztT)jz-EOX%&!uQ9g5fxhpge@fgINvORp?*{5A1No1uUpY zmx;DH85`vQ{T2x$Rlvv~Hquuq*qu7vYr_uLC{ZkBh=*_@7#BtCc7I+Y+AhXG{u9O< zwOtv7P7*PYE~Pm8Ac8F-)QIC4OR?D$u=6JTTvQ-H`AQXztHl_mRwSv#d=&%#v(n=vGxzd?OCzXQ$DT=JZJ0`I4Pq#q}5d+Eco2Un5uH{UrNYi7YKjYiP@x zDGjLuhBpB1)`882i>?YyXJUP(LK&s$zz=OZdcSq*qnr!H)7Haz!nWU<-0?3Prq%D_ z{T}DhTyqD>H*d674{Wz87I0RpgW8=t2HdhXS5$4I)JoUA;DwZb8m)a0eEq`8^3^ko zzE8L#AEpM|%CZ|5&B>y@a*evB=VD*Zn)A}T^;5Tm2S<8UhiB9dUaB)snWVgu8P&7A zVSenStA^6Esd1!qZK-Kizv9+*Z^ydfr&)KA4$fg;$Rh-BM7+;Q`62$=jvMM%a^jx z?IUk)=}YS_8&XNPS3HU7ul?X)%hUEIdBc0fdmer{v3U4n-|-Xs@2pxlq^$I8TskjR zfiJop-`eZF#jmHD^!E%k(#S(sj8zw3@Skk$9y5R0;Hg^KzQpQGAf$c>Y@8uYNWT~J zS-ZP)v0MZ2!A-izqne_KZw$98rZ;D9sN$>``>Zhitx$UR*-d4uo;ExPuXEL(fnzuN z`nsL&pKH24A86+I_M|LE@)sV-Ndv^EKw;0f*Q=V_4j&2Ar9#K_VTt8?TW%*djvaTq zGrISe$5X%9kn&S3(VN%3vvl{#{!7d5=~t`?M}ZyX;|l(0i#hH8|7+EH)dA)5(!T+s CqGBfi delta 2456 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 Q<Hy&|$`M~>aU|it0GZyTlK=n! literal 9945 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 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_bg_point_circle_bottom_small.png b/OsmAnd/res/drawable-xxhdpi/ic_bg_point_circle_bottom_small.png index 00d5be06f56cb13b9496364eb2d62af939c3ff38..95d5ecead0a830a1390d0e4355f3377490c38300 100644 GIT binary patch literal 2566 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 literal 5456 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 GLSTYwtbcj{ diff --git a/OsmAnd/res/drawable-xxhdpi/ic_bg_point_octagon_bottom.png b/OsmAnd/res/drawable-xxhdpi/ic_bg_point_octagon_bottom.png index 73eff57876d915aaf87981797c686fb51ec0ec14..685f8bd34d8d60b2250f5d8d003ec69213936caa 100644 GIT binary patch literal 3226 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 literal 8688 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 KScR-<(EkH!lTKU! diff --git a/OsmAnd/res/drawable-xxhdpi/ic_bg_point_octagon_bottom_small.png b/OsmAnd/res/drawable-xxhdpi/ic_bg_point_octagon_bottom_small.png index 308568bcd422648f6d865b9c66a2391952cdeb8d..cf14b7f4a3ab86f3e5cd7ed2dc20e089fe293476 100644 GIT binary patch literal 2317 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 Glkpdao|Y~E literal 5001 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 T!ubX300000NkvXXu0mjfUMy!} diff --git a/OsmAnd/res/drawable-xxhdpi/ic_bg_point_square_bottom.png b/OsmAnd/res/drawable-xxhdpi/ic_bg_point_square_bottom.png index 92558b68239550252e8f72455e5889d4a58628de..ecd2bb984be533f0c3d2079db782d4dba1fd7855 100644 GIT binary patch literal 2725 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 Oj$BVa_Hp;s>3;$97daLH literal 8939 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 P0cfheP^nU~{qX+)whO`i diff --git a/OsmAnd/res/drawable-xxhdpi/ic_bg_point_square_bottom_small.png b/OsmAnd/res/drawable-xxhdpi/ic_bg_point_square_bottom_small.png index 43be98cae99a2f8dad12705aefbf2f64a6b22c20..b336a9fcd02fd54373d156aaae0bc74af01d0dc2 100644 GIT binary patch literal 2072 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 literal 4658 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 diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_circle_bottom.png b/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_circle_bottom.png index d2cdcc280dbc88856ab78fb25e5131ddafbb2126..6302f8bf257bcde740f04918351eb6f1c152e9d4 100644 GIT binary patch literal 5336 zcmcIoXH-+^);@%Q0gMs>=@1e?Y6wUPXf%XGL3&Y9q!W4wgcf>0dXZv*5u~aJqhdi2 zfdLT(6=@cF$DtSLC6F)9jQ9I~+;xB4wZ5~~Id3_;Jp0*uzw4}%WM*;}$}PeT007iL zpJ2fn8-LyqPS(?6(E9*u5Dp+(2Ut>E1A-l?BtX}N;zWWQkR9Df79>ZP5Wn}NlK{XT z=wW3YU~O!q<4hr=9DmB7Xk=fOHUOMFP4jhh_96wqok(sTK3K$3Z36=C;eth6)G$UH z`|6S0J@iAVB+F0}E9X!zXKfe6=~M8NG#!=!GAY0jP9uB!`0LQHh`;RWu;xFvRS@vM zL;}39h`&Ku8=JxPC{z+$6NOfGMx)i>TG}X8P4(j%YD#c5v>I9kt*UYyt*ok{qk+~r zj)DJkAz0q1F0MKjgfsv6Vy&<U_kaLj9Tk<};9yknaTJB>rlP8?t*wGqQ&Ce>W=Saf zhxi0I(v*Gtk-sbuNdC@L58nU}iVys!MMoz}U;q}uLi%?IWM5<Be;M}i|A#0RWhyjB zUlmmpT7^vh8P{LZ{s9)G|Ap~yrTwi!d`T)6B!5aE)tQwKSL82c7I**I(N94Z8XZ%r z2P-L#-UNzsAerP7U_ihkSZ`1+9xgf<RV|XLnwEw#nxv(!tgfx;s*FLaYbv{HqMfw0 zRaq3fIRCQq@AS{;Va}-QqII>kiCU_vL|qI~>o`GGjWxw+qK~WU{?aw@@egqHaVGup z?ZNW>k1mVx|Dda*M<qE1P^eZEiubQ7FmtB_Q2gB~zHl{Flqy`#*wNX;=jV?6&n*2N zG=W6*2qL+hp;E~3zi8I+_%{$(6{M=FLDE##&_Zh{t7~bivBGzCR(4WXS5wz?($;j+ zP(}Qs@ABW$r@{iI^0QX{Pwo8LVin}i>AyOGwfI*rk$hMUL}hi#-EaK@0KmI#K+v_K z_0QXSP(<Iu9!Xf-@-}?dBf1p*R<>7~$2*8!n#l|Xw<d%`R;0pupCSjkXAz|(*M2Xu zcpBE8Uy`uI#(pS4k7~VVCmwMy?Zqv?!QQ+P41igt0RYEpV>aObanYDzoxV<dCuE&# zY`&_q|ExvW@op6A@|!OuuoLT3I5}S2hKp$gl$Qhi#JVZC#smTaS)ZKA-RDeX1LcrV zBQH@#0a#uTI3w?&Yq3`)_H+v#fJe5^n2+Q|EtNEhG)vB7WsA(b^|FH27sC`|H4+OZ z84AyG!IN4r3WYDlaVho*=Z_Nw_Fw8c>h}|?&$q0R!m5XsFMLZZHqxK3hs6kcwT3j6 z@yd?X5Z`Ve2p)i)5cvEfY*yq={U0?0j~A;3k~eQcPn8;jMZ`;fP+x=ei438cp$Wc? z<@>TnDr+7qs0}pMpmZ1tc3#N%K5jOUPy)j^Nu?vKEq@qnrvgG0wMN>SNcLAJf7uZe z6h<KnGVze3pqvJv4QLKdKUVIl7Hu505szI{o>~=^9lwy-9W|A_*;5zQ2y+#OT^*j> zj7%iN{egeN+jx?rvu92amLB;KVr`YNpIq%F8+i^RB}QG-F6Y%Ni}jUA68fH3!Ujg? z_oTy^@?j1O3p{?;jt_H8jb23dV9s8-dh+|60>{%ptC!#BjFiDVY(^^d8<Q$IYo=dS zmFbEmswj`0$M`pa@3~Tn4-&vpX@W}e)I|gxh?j|Kn=4Rg5}fUVO^ajaWAga&Xa!H{ zGTVkSiJQvBuccW+?~n}}J6UU4TW)!lQ^3XNCokgV&Zl+Cilm}IkV46A<H;N@+8$rm z?s&(gA0^0EQIw~Dtm5s{q-dMPh^$P9k7ZYc<;w@M2Jyffo<g2&J-dQl!>pAJMcHQI z>&{%5v60IV*o~Miw{rR-A5;m9&I2s2+lTGN@C-0JBkcDqMk7ZkFC9?qT@DvmaJsLL zTp#-0((++qcdz;i93}j?GpeW?-VoIucum4o$QI0t(^>h5YGapeP@?kqj9wI;+OhS# z+R;qOCa!4roC;NPw1VM)PaK^$8N;i!@AgBY<xQ{OnC7WUNe7n^0XAt~9QR7a^dIR_ zG6dgGlOsJc(eXrIxz?q)W!<}aB`FR{c1MNP%?e_AD5W3fDqi;PC2fQ`z9flWQ5e`- zbi_`{zZ3ra6ngAzru_C?dv^Va4&)>=4oJ60AZRAF{)IbLP%xT~xtm>%WD1mG8}%52 zcyN5VARFl_f-fdmiYbqs|MN;xj9}u~7#q@YkB_GiXx>K5<T2Fjg<`h7>BV%b2D_jF zDY7)V+9|iYn~-72ZAEgw!#vGJds^Vme5F(C@Ug19Yt?`#o<Y{JYRj86?#Le77RHKw z56sQ&_l5dsz0(*lI%7_@c^(^s$%b@Fugeo=CwjiVI(s@n(mf&A`-F#K0k?pmd~%BL z^*ZwG#Kkl3Ig}n3><YXb6t0-wm%S4A%&)+z6$f}UBP<J?Z$97oav&tCA$0V`lhW!1 zzZfeBXnJOEo%)u&|IRmtgxDgqVdGMeoLJ{#R+mx<?pi%gmN&@MJ=k;A%U4U-?(-Xi z*zP}zULCB*vD27lFr}$2L&{oo=iK!pJz~c9(t0YxdQxwYQz2#(dwYL$oc;dnoz|!~ zweH?fAb(4y=6hN0NlgJnz=<aIuX62{LopTa{S=GoBZuT7Q(7<m$?)gH<=W)Nu6$~# ztZn?R{8GoAU(V{$I>sXV1=*fJzcoB!y9>kSu}}J#)7bM5aYiWyC0FVOnHT0rb<MSR zh1_4$cN?7^#qbc=%HjJDOK>RvXuM*5{sYeCU=1KXu5O?*7-#yR@59qRVszex*qNGR z3FQ}?G!E{ALup&Y)n`2m8BL$N-E09<dEoQvZ9VK^p>^@YOGvWWn!DR`Q_ytQzW(@J z5lu1qxC3pADa~U{?8*%N=3$1K0Cu)v3&ZuoGaWBII^)jireCg-0(aseIt^ETcg`N2 zls3nO?p#gWY$2PA&|>b}l4LE|uh7%4LvWkBJ)d~gxM)wdAiSdHYrDVG$0{0Iy8LAN z&!BX_F2q4PEg_+OLzhEDQW++SpgxlW(TQj;*kl#LXj2mhd>+62;w|!nH>r2<8@u{% z2P!YD1Ap$BCWvw~%L<EJk*~w5B^sq^1^Gv#A!u=*vc9zhRZKV6oN%d5(Qk1@U1uQ< zp=@7XWVg(}^Q4L#NK~#HrYBr?w1nO3;!$sUabjY;>ey#To9jy@5ECn)1@Ebw15%Yy ziYqOzCR-BdhvYM1c90wtXnF&u<&MuX{dNM7PMKGC^P8mkUy1mnxJ*`iNL7yXKSD1{ z;!Zrc`eUu{h4E8hqT=<N_fOifSY=uGyjdDxbd3IG!RwYB{mb%DLBi;m3r)Ho@o{k) zfh?YjXgInBIhl7bK|^BT$eEbyv3P^<h!InW!)3PCs=nl@ON7`w3pfv3+oANYtGRit z1y=!l{9t(xoIb-bI)JE6N~#ffeSxcSDkuH*TZ7gH3yx*Y(aN7Em{6Uc=})c^{qO;< zq_?fH3p*0zNzuS|`7Ml&iC2HKtovsDH9(3z^v$r`(rPMN#>q&iswS<{;Jhe;V|E6n zBxuvUrFd7jr1Z4nS5DF7^gcMpxf@FZINJKIO5?|_Wkl9&@8E2V(|wnU75MPW9;b%M zGrA(`COfM!WV@UDl^&Lm!Xo&&r&03PYCa92=lGWWeZ!loP;n3x@x;v=UGBcBeAJdy z5;E@Q8e?U9YIJIJ>trV<$@s(zaxj4&AJ{0cu)*nQ=8ZXde`vVicYW~;4(d_BPka=c zAsNTuJ}G|CUcSP<d+(9FA;jS&9;04|N>WK<$~&et@?u;D;=S!H!nvCt&P6*RoHl<j zbVeA3BCppi!l8f2w)6xvaK0JXz3Pb^(tIw#k#7igx8c3?bprlblF9f!w85We9AD~f zIpgjkLg1I=$S1SqIYZ%T^#W&@jUC^gQW^(bw$Ai^9oVkdIXcTpgl0TA^hD$BljA#& zR?d~qzo19b-dEkIs)y3{txv!lQD#|UXnq}%RFH&z!ah#&0GaNCaS*-L^f|#BTl>Ye z9rQ$5U()cZ(`pRLDt|U|q<YlPE!=QZ3%(IlUpUkiVhav_v^jqYQfMk74YlH2>Gp~o zOmy}c{*XON^$LGoHK34dcVPCBT2^uUDUr4au|fm>PUsI4BHQN9(o&VP@2m3_9g-f^ z!3(x&3*;8fIN(8_5kA61Ucyk|el@}^a7$txH&Mq7)AgjZq|omegfOj7e7bP(ZCmT` zT7A)=<%X&K?{-pxe+=2S?Hj$!4G@>iOFPu(`mAT_c2Eo8#O`3*-?w-j*x~<JB<FBm zB~J3*U?RGHOnurkHjrIPXoJxb(D3Tx)IPNmdu#V%NL0X8*>hKCi|L03maG&eQ^uDX zH^o<?jwKH(i1z0XkKln%P;)^Jr^)Q$Ii=1ADlo2~R;JphQo9wuG7>R8x3_SL8&2f! zOusjKXBoO}r~Z)A*|At9DYq1cyywo8>^*9ex#^WVv-a%0_mEO(O!9A8^&b3BGUdz^ zOoKi`U%?Q*xw*r;+1LefYQuJg_tms#pTes8Soz2|^sItJej8>o$2$7`{umLm6o{F- zmavg_<S8?%JSHr3ZQ^#AmI<w4^lWtvaVV-}cc$L3<v5Ba$<fM;4hz?0W1H5YPmkrn zji;-g>n$C=_V%L@*h~ggV*uliVNm@MnDZ@+({~sXKD&NnlT76ZF`>#e-{!$mY|m`Y z+WvW1;k9L6oUzn58E#%IqjUw&<tS53-`vVy?qEmwPSw>6?3>h9JKEzvtYU{ox(QkK zK}Ws$XR6EZcMmrtwNPyNaKJ(_@Pc1gityxuhsA5?V)5$^9;t@ho>gV$JB!S4WN6sA zPz-S4?7nQ-VQ?o7&`T~fTc;m=%~eV~lhnAt%#QQTm;aIe+g1TM^fg0Vyj`(X@>~Rd z(sURJW~=0*KR%$JF+?B~&c*Pp_g}7Kmewv580CnK?yEOH8sEv1Xuow+Vh=0GEV^>~ z%N*Zj;Is5lG$6w5kSK?P!E$iYas*qm2VdTgKsK^#7wp&koO;E^T>bX1of@wD(76Z{ zij68D^Bdad4&UBkeI?n?A!E!uCyApz`)dRUv4?lDcc6A*BzVB<cBF5MZMx{&y=0y% zqVLCsCMwo`XvUKYdzD2ecja3Tv!!Nme@$wXixIuKTY-s+<Tof_xM7aek2`I96I6w+ zU3mO*FSTNbvvq!xg6SD4zuc%0T`9$M7?uQ03v%EQkTky7?&40MU!JcG91A}k{4sM3 znj#fA7T$K3c>}wb++^AG-QlL>S18o|QgZt8Y{;oHme)1{nBO1)kB}n}Fo}09ir8wD zQ%0}cm5994lm?gMipGvFVff2>RVlYwXZ8BtTy@h#w!q}!p%FLgiXJeL1iy8}Tv~*G z@Xd;K#I0*e_s4fdUPQ&FJ`FM5-;&w1x(TZ=6_D@nW_eOa8rr~e^e>i`Jvi)?`MO~v zw!VrBf;&}F`=<gT?!LtI>C&y6L2l&u`)CTX%;YOJ(jtQu8=PKcUYG`PlF#J2i;<Fw zZNKCnfPsYDJt$R>rFU968+6-jtmNXjo#jsjpRP=Os_>ywD#~Js#it60@5gwNQ;$`m zUc(X{*{tB3CW|{VBxJL(T+Ie*(YJeH_sU0MRf&b|pbCiluHN~sMl1eWVjLY`FvKqt zx0GTf6VtnsnA3C2Q|s9Y?(G)-#@j0iX*A2v4yOq^$V7|8%^T(Vw_2P)TmoZcPr9{_ zorX+^sCKppZSTfp2WT$UVE8OJKfG%Ec_pvWXkbX)!)3;R1ktz6=HgI(hC-sGVc;zH zkE+QIyjaa$oNZYA&e~D)v|}osuXK#xSUu#L!N)=aFI^yBd#t@LJ$V+2&WH3viXI0g z-no7bP=&d7TOJtih-W-ti#JY~&9}*vh_figi)$%7LY!ZI*X)XDE;CGc5Z_B8c36xs zB4Hk;i?BiuX?<a+9By8y3;OkN<ar|f)s?{u5adR<dqqJWLqGbRfUb>H&e4|Jk@f;V zy!DEDC7KJM+nJzyh6&{s2+xe8aiJ-xh}<%GOxZNqb5(R8xkR~a*T}a0m102I1Yq1z zhKQKAp06Q~_0=-oRk<w8jR~6W--EDn_<*SHt`J);=U{W+OCEyZ{2{2jFT+)sJW4Ls z6_sjk?v!mYm4OUc!o$9=XDiV8y9%K*&e~Cy#cMEq1=aa`J@&7F+sTC~ytCc6WiuTh z-F<9!HYc~UmFSxC=9W_GQgy;fn4r-fK~qKqFK)oSlb~*FPdUP7!RMRE7((3<+hr9~ zS0PW=CxWzyLU46hQ%XGyXD<~XRr6coe1yLDX6oUvWAw*(cVxW$dzZ73lHex^c=ue; zr_ALr({M;(L2!o@2WUo$ZeG$fn8Z1*2b7%Q$dCY8-xc~(3BoG@%1L$SbV&f<$)Q5L sVW))12GT$qjKk=^`o%CA%j7}>oh$pJ#bBY$pZ^*Sh$e)`c!!w(0V?=AiU0rr literal 15662 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 HBIthr@El%O diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_circle_bottom_small.png b/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_circle_bottom_small.png index 297e59a7782f837243f33ec5c932b4a69330036c..a1c18ebbb0f18800367f5f46ab385cc5ba3eae23 100644 GIT binary patch literal 3019 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 literal 8447 zcmai4^;=Zm*BxqxF6kU#kQSu7V;E`}KvD_mZurn4NT-yv3=PsDozmSPB@H6dQu5CC zFL>|s+<SjHKkR+Z+Iy|No)Zn%R3X5n!36*S1gcO)1nO^#dL6NWsBdKaZ3_SZ2B<2^ z>H5AqeTx@ovgg%xJL&Ij&DiXtQnj>bZ^&j{CEpjr358M(xm$oLNE_bN<$R~&OM}iS z%T2H98S0kn+0yZTDp<sPF^9=vNW&JQ2K%s5@TK5oc2sjayQLe2P5ZguQoDde!)1qu z%QgK!kGq3SiHD%LVtPA40iWNO&%ebEBx;_ISMMt;RAg(88;oVdoahTUyKxrLj6h|h zDg~ojE^osY(JC%T$}Z-NGYY&yDgrPo9<LTzZBgqOLpfzSE49O1C%q%w_D;&Lg46n6 zUtU$vfY+M6-j?bNgarQ`Y!>3)(Q;Frd>&=xhg+>xoJ8&DvX(6XiB&-uMImq?8Iilb ze#XYaLWGlTGJf82-p$an9=fjh8$C2V4S<->H~!2xC035YXRDAu*`cY$N^ezCpsOuw z&kbdBdfFKdxWvDI4Ketu2Vc#o6pqc~<>^&V@Ml^{xF^f&NlgNlG_Yc_trv<NcmVDR z<rS>tOd%yu^cR>1sa~{kdiwg5i={0|%(EG-I0N<67{7qvN<*AaD^VjcuvvSIT{^91 zdPflxU0UG$R_}gj#;-&SV7iyL_py|el!5h_S$P4+L!B$W`Cn`NW*7{aZLf#4YXTq= z`;Q$WY2G(Swo`#ex2|q)Pb9p5C1tD`M0x?@uIj0|>pJNZhpt0I(P(rF5d^>#L*{UZ zS{kQ0t{E5MtUW-m|K)HBvnii$GA9pyh@Zpl)zzVd&+mB}T3V-op=Ww}dOty$CVzkb z>&Z#YlfDQ%NT5OFwJ)PZ;Qji_N;%GSv_KT?fZ<ZSW0|l$tJe=0I^=Ava8e*Mq+lo| z7yLM|9v>R%xi!Z?OFO4i{%K=r>0m){qQSf$SftDOANN>T%mv>LtaQ%E!=pippWnj5 z@csMuc8-o!^D8Tc$45tX0B+fV;J*n=lerRw$8@yc=ie?}^V{hkioTYqn~d3NWCo}b zmW*dw27lmPef`UE92IK(#>PARoQ<_LHA;dJ;sVT~8TKB&*`vmd<z?Hr`1lneA)&^N ztE<L0+Y$*MTl7p#O>sZ=N8I20HI$b}%l6`t-aMTJZz7yO@i!TU!ar3v{9xzdlI7>C z?^kV8Py`_HT<59dJcEO~3G^;6#(4ej@9(LoPQ!_$vG?7-6)Y3_aOVpIf(+WezAv!h zlT0sDf2jc0)Y5uSU*(`uG=tzw<7{qeIWRUdf-QHqGFe_LTZW$&*1k=cg0us<_6}dM z$tJXN$(C=4_VjdJU0ul<;g`Jv*3{H!Z8qBJ0D1rbCVD>&4Fb%G)Dg=@SJ5i0aJhRT z&X=hpd<Mmi!m)ea>||ehC#)L`@{!ml+Y-%Ld3nt&$x*qQr47~9)r0Z0BBb!Zz(6o{ ztrH;&nF#fRgO#R$fP~wt#$$KY*?IsHHp%@?%n>IvOsflfIejdHm$v1Hd+bvY<I}K= zloWj=Ze@9Sui5e3+#FCACqf>%ar1lK_~C9UI7mxDLE*>Qt;_ktlUw4DPUVRo&)J;d zgn7s1T|h8@7M<_IY0GBNewIy8#)S2$tEfqsuK6Z_-kzT{+Mp25-tKj>C<*aBn9K#! zHnxBL`bzDlx)y&Hl1%faFd+36Ep!Z>7^Cm|EYC2<jE(SspNh)I-s7sKriE1Xml&z3 zsc;)0MDa(HvT*i-%<Z?Sg-xH$z+2^_87-{vUM-$|LLm(gGfT@|!;tIURIPU(J{+~Z zONsB;Je$(g)ZG7h-a64pXBMg$Qo$(dDw|FyqMFr<N$K&mW1=1nDW3Oe958F(<L#XS z3p*x;0Kjs^zS-H?4k;r@5NVi*Y%k#VMrZr);bfLurys57QRY+$AGr6v)H!jc`JJ=L z+>MO51nkgKx;exB``*Z1XPus&mbbNu$8w0X`x_f)W7!4o#ESqp6X~%8=HUzOb?tiq zsPN=ut18<mokE$26hk7d8657Qqob3j$V@`gLoAyl4Dh`9wNk?^!pB*QDx3BHWvj}h zln$o*Y)(~-f~77WRpVn&cl;$*J6U5sL<Lu%u2Ep`o$!69Zb;5)u|#Bg^d{j>AHNBm zL?RgdkCmWC?1z5y8vOB$uB+l|pLMS#j+!M}(+cFc%>$xb@W<TTCEJwr12-~SHcW8a z-@)NTSClR?5dD(HZ22gHM{gK|Q8PY)_p=~37I+BU7NHDTP~HV{YKUfi#%}kuM?G?Z z{o8zEp8-e4oA--vja!_b*7kI5F40DsPs{%oej#u0-Pki)Nc{@;%sCWdQ8IVr>F?hz zBr1x{mH{;Oa?DaMyD^~4ZW<5JEOyKtMBjBRjg&WV&#Vr83ei;X!8?2FVrLh6Ynlp$ zJTjvfV4<T;9nF<K*O!+c@lphkkF}!dZshuGtkB~|P(fnlW(BJ;&3b-g66oV7P!p4r zCg6#$4FVu1`g(&iy=XMH?7vIaoZBa&@p~?xQ2=+wCm@LE+jiwk9r2aL1kB>`cKk_e z0)ABaeX%#DMJMT7ON*b#syf%`D9Mmdv83;Je^kmb%cSF4Csip`uLAS-?X7Uu2Gqqf zt+Uz#Meknjy}c?@N%VWk##YEF`SkR(+S3zKhw6^c0|SZ>GTiNDAmqTo^kLP;``7aM z6kc1?8{fU#&EV&45QFcQ(%U7DJbfJ<3^w6Tr#0aQID2N8)vB4dC^=zk%zPw%iUN4R zmj@d;2pCY<nO47XlPy}o!Ag_%yDD=#p64)P4ALxw^QDYf&ewA%p%Y{7#F{?-TvYf- z*vT!C#U*)jxhmy2>(h0aD>0cP=0TEhiV6w`tf8e<imDZy*${d(a1!HR6@=ol#`R2~ zR86=V7Y{bL{N4)KWWC1nyMP}724I5GH0JuE<Zbw=O<!e%Yn_)&9jtXszc7uzzPx*E zf4Dhq$3Q?1MSdYlnwo@8uKk>*&roc|`~u;uDlG&e9%PuHEyF^Cs9=mv_B9J7poi0i zz*zEFzfAj~aFM6}G7!~<wAY$DqtciXZr0C&Zn^3Veog7Wuch>lQ_FZI_21!iA)EU* z6TALMf;X=+1ZvuUx9z5J>2puJY%_`><wiFq;U2SMRrs=LqlLTUY?|^h4gUpQSDGGu zGnot#Fyc%D%hl%Op?0N-K|0`X{2<{Ednb^d&*R_oT$ir9ePq-J<EEyjtn%`5bxDR6 zAP`75y1uq{g5-sGy`eDhQp26}=D|w_ub`!|%xh|@)GJ{hQ2p`Y&%*B$&YPLh{$SVP z<>j?u$#2(jG0OF9U}_qCU{7#`ND$!XznG`&`V+x+aVP0Wl=-&2sE8$5{iRyfzG!yk zy$WnF1%I&vY1<1pkKj-9hRMi~@nQg9)cpGwv`klBUOw`7k2je56-DeYIXG@dEZ{F+ zl-z<Ek!husVfp)^g!LQLX<P7<;bviDEG#S(<3-4$HQU<SV&f-*a+o&}=A-x$jY*>G zU(iU|Oq-=NadAW*K{Vogd<7yRBK{>MCCnvu%wh_m)1~=AZI?TY&wpjO_rAV6b&4SK zI=KAL(yCgKIay&mZQ-4Y3dr%RHwtjf1h6#XH5Qth2;?v&W)fYUw<^I4j~8NO7z2Q2 z8(-h$7la=jc*f8jFnsftOoN|_Wx=(9O`!ichQ=)UpPOu^@)Sa4dq^t?yWr@6!JYFI zFrIEz*iP%6(m;a@r}jH(@}VoEkxS8Qdu9RH5>b*U>@7D%e1P<s8iZ7PnNhSDM8xpJ z@2vB-tLsy*QKeHNqs+gLGEYZZY~j5HIGfm*%w)LaD$2^RVMaGua%~s4goeF@bRsb8 z=F|?08l&Fk7FG-aDd4D%8xL(3US|*|>)x}`bvNO%(G>V_(`{NQ_ioe;)x_3!{#T;0 zpG&d;BL|lnDAKPor@Hy`r*>gx#{ByFT1<Vi*-7#Ho*P0g>jhFwFGsza^=af>lr6Vs zPn-R{1rB09n+W{01(Fe6oS(lcRiiFzTJ`qyyfVE#+f2-^jOyV~cjBf{3tu51AV@yl zwngd6CC>qQT=jj-sPcw^)p--5ZD0s8s%d6+7M<h5nm;Sb$`Ea>nZx~Ql&dBO=VQM} z^#Yi8uNB262e+qdw`O2sS<6DQXvGUK?#|8*01x2il*_Tix7BXEP!UU$<K}k>jPhAT zN#_*9(w;;$M|1yLLgdH5e2con5$gu8bgR3|yN;o=+lP1lr%g*8?_4esK>O-u6yfgP zthsFJa8tzgn$_yElU<<HmnyKVvvXbfa}GvX&U9*M5|`aU|KUC+l&3I7e7*H4{--+t zw@a%KJ`Dnat_`?>2V_;%OvKoKiGPO1NCf|TeEzxs;Jt4B^U?ckBT&G?<1V0!3?CSq z47KdrIX5UODjL{#eJX1Rk5LF99P&&Cw;YC@98F*)87Y4#LrdF>xiArLB@6EV=Ng9G z_&zjrZN}Hy+w5d2oi75GJDAFU&MzjMH*yXh<7s(BgNDI9qPW%33!o5$q9b7;qqfB_ z3ZYCn+<kYW1N0~)yjmr_$E`VWXb0L=2!*RKVFUOzUgQ%5b>{~;d<KU6^XCEimJe+- zIV=%?aoWD_5C~`dxeEYP2}(-Fy~3?91!Sk<ssH#j5is1>0jPi@l(tkU9ivD&wHzF{ zMjbn6Z09|;`y%2|z|WpKP#x^N+s}5PjzsG|tOz(=Z94IT{6Y@}0P4efw@~%QXKZY& z@gcBPSM54t*||L_!m#|t1TZqo;?tgXCu@P!-YGHt<{m-n!NS7gYT1c866uVwyYsiu z>B^w)=g*ZS^hqD2{BM5okm0H~;Gxik{P`FZj6=xv>vf+r823j5W^h!^Qn3PkupXwJ zaEK^}e#t&K-M$k0qc8ld`TY=~V*U0d6$;{TC$DCwaBG&>V+sEoN1wpJr;k#M`YT+y znz!q2L-e;XnD3bA2*a(}NQ|>HGiB{_?Ax>4@yOXQ;5bnc7`uHNIoTmu(PTeE89xwW z&C~lD85uQhZ=1tVfki-tvkC5=f&y*>&-^$2Eid;cd`zvDr;ifi;yPTndP0Zfuww?9 zE7TgknK;|em1q>7pSwX-?anqjZ_;^;t8_{=&8OEhbMPZggtx>Y4KQNR&4&R|>OKq* zA^a3AL)Wc^HULZ(DJUYMFc@m#-@on3o;ouB_bI4MY-%Kx?W|)vl2-cHMd#?dvyMy6 zC6w^@eG>ygo*W<7k66ye4O$eezO-;}twPb5V4R!7%iHnM*Wxt(9DprOC33VBj3R^< zq5Pfzspl8I88^ho$VmK8267f~;u<?6o=iGG`@j1W5pN$KQ=xC*I|lLpE_N9^uV&RK zz22&D4p)_zXW2VCju)k`9b7VDY2rxs{)C3@Te#2uqXZIjOeU6CBu}L#vt11`?mlm= zudc?liLg+_GOcg5aN{8h8E!z^42qQR0<RZrzRVoP>!$*&8dh#^PS<?kOJ2+LAN<t2 zH;KaF=o6@ctzi{4LWPHiM;-QSr#U75Fxy`oZ+4}H5HO@-sX)&2p?mJ#M5|=l?DAO5 z>`?ABSnI?V-hZ)!7H?5R4+)j@%@6)}C*$DY(Ee<XURG0ccE;d$SjZS7E(RqI`HXIm zE$mcJ{F?-zJ*``=TA)Tww&rG*aSS2>Bf_Eyf0C+#N6-c%Q)A#D1i>&C)4Yzc@k#FI z&+=153lQ7S``zc?X;0eQ+k<_D?iAQGbN=o$*i5~<dU!H(C>h#OMfC)HY;;)o(9qCK zW1JBdl5RdA$wWY9R&cX^%kT-DVQu!&3%elal_NEHPH=|&fF}(Ggp}!W-l@-FuHW>& zLMs!nnUr)zb+Zj0A?VEE;bHgLX7{sp89#{}`{L3Pn=J0?>MD%#l}SiZ%qNVHLUjMv zQUEVcsGN>ry+MVoI#+S;fdZ+oitav_8gVK0KnKQ;xQIYMi#jUEFkm5)9#)L79sIub zaS65iC;5KI<qZsppplM>pundS)9%Y3-#of8M9o}Lw0w<iw|yJZ+e^q)AxlpjRTgze zlX-`@ZJn02?-wwA=u-`Y@`zp;6{wdxuPE0Q;d1<R<kY2ulo@b;8ON=DS*vsnz}9rA zGq?(TSlg6d-Pj0n5h@Z875)3`>2~v(7l1KIG;b_Qr)kNbg`QrRNwT8Xz3IX<9}X2( zOZ*c)y8o`swK|ps2e;E(WBwfN+cOA2KuE}JUdjZ*4B=bBO!0bGBZ8j~MKTQYiu?Tj zak=g4Yb+G@Y3hJC@TMVO>69VDI|(U(|6V*}tQa-+j&E;oBe*HTrM`UM)e5>u&HM~3 zwoYH&9jt!L2}}Cwqgp4rF%_4YL#&U;w_yEfKeXc(!;Y%Pa6w||h-Hd}+vk!693fEm zaEs5`MtTiOtJzd&EM%2rNxS_V*hUGFq3-Z`?2rpE2o)E|&xtB>@A3|Yq6I3;(F)l5 zcGYN<!|O_&{rl}_&W(Hzpc*|EhtMc&-NQ;w$1aB4d3IJwF?6&VGZv#LwvVtECBFhT zh8Tk%Z?c`+j(mkwwOw4!Ol5AC-*<w6aHpg^`9eT@YA=KepSV&a@4Z~J)K5P;oMb<v zX#1&BOot8b1iKD1I!zl=9|1G50Hy%>3ArDeekVL-BJ{Gd6QL7@t|UrVLESQ#O(5gl zYroD?&D^%L_lytAQVW1tf0SDJF;k?HAL?n@V7N?K+u|slucgFH0wqL4Emj-GU|I;g zyRd>So~ysC$JN0*{wD2T9z<-uy=d{Zc`??4q>Zb!2yGLkRIPVxWFE3M78mzX9e4Wm z5s9pPFtI&(fOI}1DdrHxtk?b3k^d46B*bHPIN63tOumVv>Bd)5XT`CZDqh*#0~W1_ zeluk8z~U7qVIRxU{24C=_b{XCCmn5(XqCI<*KtC*iS2ciL?{#HRGT3`rKY95oL^Wd zv?fH;Md!#EV{!wvE3z6UA^#^n?~k;C?`z(yz3kn;y1sszV@Z^B*Yxz$8CX5Lr6lOj zyzrI$4{|8UK!hgv`nBAQ1HLe2tQq)249f${oov-Cblt7|hslxie`Z|v>9{W-X%WGq zghQ5SZwX8!`&RUz)E5d#%zu^Gu_*R>nv$4_aXOMzR+}93$NGt69u@hh;;JJ@v-9#8 zBvFXj%#jKH_pHbcnhpQbA7)Nv*UxtWcc@jUI1Tj}C2{=9?Pcz&-n34&Hf#8UTTUl| ztDO3c`Wv~yOO%-ch?SQq(+0@)@iHIB3u4+I5L*#L(8oyn1@ioVfAep4TJ!cTmgS^~ zo$G!&bupE6-yODFelaKLcHr@oU|u|;d<-lWX--B<LsJz?$(t_hv}zenS9`kc4Sk87 zW1Up#Hz1T`sXF<uYHM6A4B5-kpaQdQigV;M+*+oSm-(WC4GG)a?XdWQG~>gzt59+! z|E1|EM|`=~>F;wXb^F7^7e$WwhOY_$<6B!>-MOM}Uu;}miP5wW`XzSqR^)QH1&aXO z9+H1V&`_KOir7KNPlnM0kmLI8H?B#IDQ~wq-nXWCX}VINC*|C+T)#xxD<6mAQN3nE zmuL79$^46C@gq&q6ciE`eFrB{M1+5Pfg2$&3wJ$cz3}TK6Gw-)d!OD9TrZh+%aBH! zv{TiRMh{4IKR=yq9{v6ubiUO6Psm6Go2<6Uq7EvpQD-m?4DZFK)AD>hytS2S05Ydv zely=2`mGQcdT>SJCL)ZMkipy_UcMMOIhHv_l;TtHbxc;9R4Z>FO|Ea88GtRZZLbpm zI?c<>bcLv@V<~i2hRT9%4JmMcGieAuVC%BH8a=t5J;;;t|N8BE(OAZ9LTJfkZF+i| z0XM>;zBBB@Cs?s3%CC`0gS~C@Jeu9g60rH#(A~|bS@Lq8n%cK;@elncvDB%92KkA? z#fidsl;<R@OFN6p!^7k4<ixYUh;6SSv{EZ&E79v-e($YJp@)B54@*+`mKDM7an6_I zt{eL61+J<q33KwtYdRr)ef^=!_%P8w0aCUXVWa()LALkIa6rY<36=p6iEFPD^8IrG zw=z4B!E7rSA!G2er;Z8dr*$Z7Ec%f!hUj$$T~FQYk)RSt*l}4F0UVJV0xrtIb(aml zE}NT;0!Yo$LIoLbN(c{gzI?}@805XT6(=ayOo%<wE(Ne~T6ls9Xi|ZgI@>)zW#0H? zwt#|2+Ir-`168q#U|B&|20+Zg91#9f1c)}qQy1ri_R)}?yr;n^RKDo%y5I!9c<W3d zfVg)tsqbrbwGvzI1QJlJM_0FxN<Gx0LB=y6V}9ZSmUI<@Ywhd|7P#eoNG!(wuB&;t z?fl`M)FZJkS;+`Jh*XFX6fXD4sW&*R;)5cSq#~s6;8JduE?P)qj^YM}A)Dy{>a{_` z4n@rn=h4G}fY0cT>U>m+@nY<P)~#O%BdU#CKBMLs0A3K$eiRGNzz0}>dBywDC+$9< z*n6a=Ve`+o8}*djVl|u-dFJh{F4!2nq{hfLl*8=>B?TJ8U710snFJfhykLaTd=?K% z-h~=pu_<Rfq2!L_Y8g`pJH2k`namop-oPuWB>?=d4xdoUS6$9QCx~QjLp(>GST3M^ zJ62&|cYu-pdVf)}iul8wJ(rOS6Qs9Jp`MM~5wQ}4Tux1OBfp8V2`*LMNl&Ms=ZLPW zd%dcmpb-9AOicBdiza>+QulLW6KCG!)zFL4pAsuyWC5&1Gzhw@=-sTpMACSbVk(0; zdL=l<3Ibg67Jt4!%F}(9yQRC3^!4D^RNqm3u+0Bh1RTZOuBS;An(CNe`vO2*b8HgA zO7!x^!)V*#q$ij<b@Z#c12=+W%*bfHcg)G)Bt$vcuhcxv($|R`x{OHNwd8r6T3eZ) z?M3fAzR{HnkC#PEhI8qEHA6rU`k5uvoCKuFuwqBZMynd3W88v~gF|H?$|hW44ETeV zrel8aN(f}>->OM`>C!GaF*qST!J&bdR=^Km_zLnOm62|n4^&D0BydeZmIeVlDbk8K ze`qVZMY%CoBO|Jv&CTgZYz%NH)=MSCaKo*|8?z1oLy0+%-9p@YnSzFniRX_YGzH8P zjY-oa^D7P`-r3&1zO<yIOh+z9Cc<4&Rba|!D*TkDEqN#X_%@<(i&r`9FlXV5^4@Ff z3MoXt+^&q9AKgQ^_7LqPqm4xtAOso}$GvJq90%c0FGj$%Fms~X=G^vH4p_sslCYq7 z`(g#LOJ41Tg=i0bMHse*9v%X)fZSP*Psu0&G+Wh;sHT;wko7D0s9tTD+qV9A`Nk=M zCR67-XBFK1*b2Bl(}L)Vvg1=~zZ;z7P6Z{17W{GZ^wdR3WEv>u=iW@C@CDXXRVP%F z&is_lHYs55;J{>+1fZdNv<3r!-E1#k9!iIEhR633ad_@1mYQcMiZv+UQ&EZTRJ`Yu zsw^WVt^_5?^Zk9b4;Oz>*2Nl7y1`}`#kxg@;8yXQ!C5oYNV-yNU4~38i$2iIVi`1c zR98=Qxo)FlM-rq(X{EbU=R`;2pkr!#X{%^dXbjA4LDxjqJzq4%fj#>VSkMbRb=(ew zwQi%mKH*F)aD1jz!ne#ah$G-km2Rp{2IcA__N$W(bNv`RU(;c^xVU_rQJDvLY=a{- zPr|R!T2bznq;$w+a6mv#EpZ{$GO3L?%#%JOAcTW?I2v<pcsMHXazexb?p4!u&skyK zJ8kB0NJZDBU7@h|_jBbb2_-VD?|p~ak-1l+0guXB`}kiqw&4$Q|B<Gz5p3@(khlS$ zwWtbG@Jxu32XLR$pQbas-nx>RXMRraX7O&e8lzA*8Jl~WGc$kobrVWR5iWQ(a5oVr z&v8pV*mL`4PKl+SMaGTAWJmEG7LweS`nk(Cq!{m2yS6OD-+(QbVbX{`Pkc`4^RUjo zp8g(%RmE*El3<$=%1{l$A=zfkV<maOntQ)G{&BZGKfR$^mrXEZXl!rB-d<cTy#tHr z8ljsL0OAnH`;-f!SIAwK^Hdf+4q=lz80pWF+`7a0a!Y=k=pCmBW|RW}`!&a?umk#n zQEpO@LP(6wYhu1fbzmJ)9yOwK&gNl4*ysBkml$!yk5)XO^$G-AqC)UR5rU5C#Nw-6 z0d+kRHXd`p8l%07S1gf=1N;Rfk_HUoty6G<XM;VDW02GQN^QCK_E~h$o9G0gO^d$~ z%uU>+5c>I*d{P8&cJYQ2r$ASBu?600MlBjApYzg4$`*b{8NWrXsB=k$z(EVyAJ6n} zpVZUn+ruUdQ;f2w249icE=lBTF$9km60!c=qEicMPTIx17#yX1>-}C8ERHxvukzEd zx`}-DJc`;G3KmcNN4EW{We730#p{hf)@<yI!_2Ll?30DvZ>Uwc-I&A37sW_EPauVs z!q|fh8uEV3cjdMV>@b-x=hS{QXsowsoGhMAU%P4DI3Gj5Q;|sSWwT}xVToO^ZkNmX zk%F5NkcS``z!&El1aLf}<D}*HbFKpj*$ql0u`_~VRp`fkHIw+Q)xOL-?{t%r?pDaB zNsOP~t*Cd~5&y?#QEMrr?>!W|Nck>bX8o(0H&}HzEoQ3T$v5U1H=z}Vn@*p(kObB* z$eDR6qhh2yxDh?1#^7X-k`3pgEFTu5ejK@pWwfY-MO3}HYaf_40kzL!xKJWYYpDpD zW=WBGIxDF<oa?!l@L;P4J&;Lqm*JAvSO}+?t{?O)Ms=df=f(n_cP5-xvh=A%U$0PC zLHJ|>Ic<)JhV79^VVKw#xEJ@OU5LQ0g1Ry~cCX(UhtVw@&kieAjKyQcgnG3V)qUYF zj69KbrBVheyRq+;vP_9*a#fFV(g#!nzP$FXQ%Ng4Bl1LD326J@T>xMkvwy{|gQ^5) z>?<xUSM9`u8`%;o4{=HsO$VH5{0C%(__TY_O(+d4nKfzYMamxZi}7D2L1l^4=vS$G zqbVJn-qylf6*%An$-R9m?oW?wX)9^wM&+;(R#tumckDEx(k?>}_+lJ{TX}#rMHZbO zbXlYTz3Ds8H?gh%Y+$^5RQ=0Zk3){je?)(2V+pOoz2pD83-FJzh9;!NLuA4Ul?6am MNmKEwyjj@)0p~^Sh5!Hn diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_octagon_bottom.png b/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_octagon_bottom.png index 8a50fc173ccdb7ac1b4d2ff135ec66ecbec6bccb..035381636ee571603755a26d8118526bffcfa180 100644 GIT binary patch literal 4229 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 literal 13552 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%0DiLPij!T`(f93RJ!S9k=v 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 diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_octagon_bottom_small.png b/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_octagon_bottom_small.png index 1793b619e45d36505864f3d68e9fc096f255a33f..2e8f2cefb11d48b7e1dc30430bf73f019f906aee 100644 GIT binary patch literal 2635 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 WNKejjyCd_zcP#HfW}WBe9e)G*B00kV literal 7857 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 LH5JO_%!B_AuHMPP diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_square_bottom.png b/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_square_bottom.png index f7b81b3e83f16182c8c1ea837ea5392477521d04..a5f4246d86e071dd71b629c935718fefbb5a931d 100644 GIT binary patch literal 3496 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 SYj7e3fQAFzg?8K4FaBS<1E5O) literal 14297 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 F{{ZKQ2Iv3) diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_square_bottom_small.png b/OsmAnd/res/drawable-xxxhdpi/ic_bg_point_square_bottom_small.png index fb0a74bbec41479115fa6636ddc3a75ccbb29ed4..0551a490ceb7d29ba142f5a268c4185b5ddcaf1e 100644 GIT binary patch literal 2472 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 L-puNiVafji8HW1~ literal 7152 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 From 3c14562baf87f09ec0192c7c579585414e0304c6 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 5 Jun 2020 18:22:15 +0300 Subject: [PATCH 002/300] speed cameras alert ui --- .../res/layout/bottom_sheet_speed_cameras.xml | 36 ++++++++++ .../layout/preference_switch_with_alert.xml | 61 ++++++++++++++++ OsmAnd/res/values/strings.xml | 10 +++ OsmAnd/res/xml/global_settings.xml | 11 +++ OsmAnd/res/xml/screen_alerts.xml | 2 +- OsmAnd/res/xml/voice_announces.xml | 2 +- OsmAnd/src/net/osmand/plus/UiUtilities.java | 34 +++++++++ .../plus/dialogs/SpeedCamerasBottomSheet.java | 70 +++++++++++++++++++ .../fragments/GlobalSettingsFragment.java | 20 ++++++ .../fragments/ScreenAlertsFragment.java | 42 +++++++++++ .../fragments/VoiceAnnouncesFragment.java | 2 + 11 files changed, 288 insertions(+), 2 deletions(-) create mode 100644 OsmAnd/res/layout/bottom_sheet_speed_cameras.xml create mode 100644 OsmAnd/res/layout/preference_switch_with_alert.xml create mode 100644 OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java diff --git a/OsmAnd/res/layout/bottom_sheet_speed_cameras.xml b/OsmAnd/res/layout/bottom_sheet_speed_cameras.xml new file mode 100644 index 0000000000..6fc553118f --- /dev/null +++ b/OsmAnd/res/layout/bottom_sheet_speed_cameras.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:osmand="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center_horizontal" + android:orientation="vertical" + android:padding="@dimen/content_padding"> + + <ImageView + android:id="@+id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + tools:src="@drawable/img_speed_camera_warning" /> + + <net.osmand.plus.widgets.TextViewEx + android:id="@+id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/content_padding" + android:layout_marginBottom="@dimen/content_padding" + android:text="@string/speed_camera_pois" + android:textColor="?android:textColorPrimary" + android:textSize="@dimen/dialog_header_text_size" + osmand:typeface="@string/font_roboto_medium" /> + + <TextView + android:id="@+id/description" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textColor="?android:textColorPrimary" + android:textSize="@dimen/default_list_text_size" + tools:text="@string/speed_cameras_legal_descr" /> + +</LinearLayout> \ No newline at end of file diff --git a/OsmAnd/res/layout/preference_switch_with_alert.xml b/OsmAnd/res/layout/preference_switch_with_alert.xml new file mode 100644 index 0000000000..cdf10c32a6 --- /dev/null +++ b/OsmAnd/res/layout/preference_switch_with_alert.xml @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <include layout="@layout/preference_switch" /> + + <LinearLayout + android:id="@+id/alert_bg" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="@dimen/content_padding_half" + android:gravity="center_vertical" + android:orientation="horizontal" + tools:background="?attr/activity_background_basic"> + + <ImageView + android:id="@+id/alert_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/bottom_sheet_image_text_margin_start" + android:layout_marginLeft="@dimen/bottom_sheet_image_text_margin_start" + android:layout_marginEnd="@dimen/content_padding" + android:layout_marginRight="@dimen/content_padding" + tools:src="@drawable/ic_action_alert" + tools:tint="@color/icon_color_default_dark" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" + android:layout_marginTop="@dimen/content_padding_small" + android:layout_marginEnd="@dimen/content_padding" + android:layout_marginRight="@dimen/content_padding" + android:layout_marginBottom="@dimen/content_padding_small" + android:orientation="vertical"> + + <TextView + android:id="@+id/alert_title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="@dimen/content_padding_small" + android:textColor="?android:textColorPrimary" + android:textSize="@dimen/default_list_text_size" + tools:text="@string/speed_cameras_alert" /> + + <TextView + android:id="@+id/alert_subtitle" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textSize="@dimen/default_list_text_size" + tools:text="@string/read_more" /> + + </LinearLayout> + + </LinearLayout> + +</LinearLayout> \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index c7eb036115..384333fa4c 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,16 @@ Thx - Hardy --> + <string name="speed_cameras_alert">Speed cameras alerts in some countries is prohibited by the law.</string> + <string name="shared_string_uninstall">Uninstall</string> + <string name="keep_active">Keep active</string> + <string name="speed_cameras_legal_descr">In some countries or regions, the use of speed camera warning applications is prohibited by law. + \n\nYou need to make a choice depending on the law of your country. + \n\nSelect %1$s and you will receive alerts and warnings about speed cameras. + \n\nSelect %2$s. All data related to speed cameras: alerts, notifications, POIs will be deleted until OsmAnd is completely reinstalled.</string> + <string name="speed_camera_pois">Speed camera POI’s</string> + <string name="shared_string_legal">Legal</string> + <string name="uninstall_speed_cameras">Uninstall speed cameras</string> <string name="screen_timeout">Screen timeout</string> <string name="delete_all_actions_message_q">Are you sure you want to irrevocably delete %d quick actions?</string> <string name="shared_string_delete_all_q">Delete all?</string> diff --git a/OsmAnd/res/xml/global_settings.xml b/OsmAnd/res/xml/global_settings.xml index de67e9fb54..b323527a39 100644 --- a/OsmAnd/res/xml/global_settings.xml +++ b/OsmAnd/res/xml/global_settings.xml @@ -60,4 +60,15 @@ app:fragment="net.osmand.plus.settings.fragments.ProxySettingsFragment" tools:icon="@drawable/ic_action_proxy" /> + <PreferenceCategory + android:key="legal" + android:layout="@layout/preference_category_with_descr" + android:title="@string/shared_string_legal" /> + + <Preference + android:key="uninstall_speed_cameras" + android:layout="@layout/preference_with_descr" + android:title="@string/uninstall_speed_cameras" + tools:icon="@drawable/ic_speed_camera_disabled" /> + </PreferenceScreen> \ No newline at end of file diff --git a/OsmAnd/res/xml/screen_alerts.xml b/OsmAnd/res/xml/screen_alerts.xml index 58002ea240..c0c0219ab8 100644 --- a/OsmAnd/res/xml/screen_alerts.xml +++ b/OsmAnd/res/xml/screen_alerts.xml @@ -28,7 +28,7 @@ <SwitchPreferenceCompat android:key="show_cameras" - android:layout="@layout/preference_switch" + android:layout="@layout/preference_switch_with_alert" android:title="@string/show_cameras" /> <SwitchPreferenceCompat diff --git a/OsmAnd/res/xml/voice_announces.xml b/OsmAnd/res/xml/voice_announces.xml index 88f43ff214..724d6afb37 100644 --- a/OsmAnd/res/xml/voice_announces.xml +++ b/OsmAnd/res/xml/voice_announces.xml @@ -46,7 +46,7 @@ <SwitchPreferenceCompat android:key="speak_cameras" - android:layout="@layout/preference_switch" + android:layout="@layout/preference_switch_with_alert" android:title="@string/speak_cameras" /> <SwitchPreferenceCompat diff --git a/OsmAnd/src/net/osmand/plus/UiUtilities.java b/OsmAnd/src/net/osmand/plus/UiUtilities.java index 0a168ffec9..0f817aac35 100644 --- a/OsmAnd/src/net/osmand/plus/UiUtilities.java +++ b/OsmAnd/src/net/osmand/plus/UiUtilities.java @@ -1,10 +1,12 @@ package net.osmand.plus; import android.content.Context; +import android.content.Intent; import android.content.res.ColorStateList; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; +import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.RippleDrawable; import android.hardware.Sensor; @@ -12,6 +14,8 @@ import android.hardware.SensorManager; import android.os.Build; import android.text.SpannableString; import android.text.Spanned; +import android.text.method.LinkMovementMethod; +import android.text.style.ClickableSpan; import android.text.style.StyleSpan; import android.view.Gravity; import android.view.LayoutInflater; @@ -31,6 +35,7 @@ import androidx.annotation.NonNull; import androidx.annotation.StringRes; import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.view.ContextThemeWrapper; +import androidx.appcompat.widget.AppCompatButton; import androidx.appcompat.widget.SwitchCompat; import androidx.core.content.ContextCompat; import androidx.core.graphics.drawable.DrawableCompat; @@ -46,12 +51,16 @@ import net.osmand.AndroidUtils; import net.osmand.Location; import net.osmand.PlatformUtil; import net.osmand.data.LatLon; +import net.osmand.plus.helpers.FontCache; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.views.DirectionDrawable; import net.osmand.plus.widgets.TextViewEx; +import net.osmand.plus.widgets.style.CustomTypefaceSpan; import org.apache.commons.logging.Log; +import java.lang.ref.WeakReference; + import gnu.trove.map.hash.TLongObjectHashMap; public class UiUtilities { @@ -645,4 +654,29 @@ public class UiUtilities { return spannable; } } + + public static SpannableString setWordsMediumFont(@NonNull Context ctx, @NonNull String text, @NonNull String... textToStyle) { + SpannableString spannable = new SpannableString(text); + for (String t : textToStyle) { + try { + int startIndex = text.indexOf(t); + spannable.setSpan( + new CustomTypefaceSpan(FontCache.getRobotoMedium(ctx)), + startIndex, + startIndex + t.length(), + Spanned.SPAN_INCLUSIVE_INCLUSIVE); + } catch (RuntimeException e) { + LOG.error("Error trying to find index of " + t + " " + e); + } + } + return spannable; + } + + public static GradientDrawable getRoundedBackgroundDrawable(@NonNull Context context, @ColorRes int colorRes, int radius) { + int r = AndroidUtils.dpToPx(context, radius); + GradientDrawable background = new GradientDrawable(); + background.setColor(ContextCompat.getColor(context, colorRes)); + background.setCornerRadius(r); + return background; + } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java new file mode 100644 index 0000000000..ceb267385d --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java @@ -0,0 +1,70 @@ +package net.osmand.plus.dialogs; + +import android.os.Bundle; +import android.text.SpannableString; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.fragment.app.FragmentManager; + +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.base.MenuBottomSheetDialogFragment; +import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; + +public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { + + public static final String TAG = SpeedCamerasBottomSheet.class.getName(); + private OsmandApplication app; + + public static void showInstance(@NonNull FragmentManager fm) { + if (!fm.isStateSaved()) { + SpeedCamerasBottomSheet bottomSheet = new SpeedCamerasBottomSheet(); + bottomSheet.show(fm, TAG); + } + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + app = requiredMyApplication(); + } + + @Override + public void createMenuItems(Bundle savedInstanceState) { + View root = UiUtilities.getInflater(app, nightMode).inflate(R.layout.bottom_sheet_speed_cameras, null); + ((ImageView) root.findViewById(R.id.icon)).setImageResource(R.drawable.img_speed_camera_warning); + ((TextView) root.findViewById(R.id.description)).setText(getDescriptionText()); + items.add(new BaseBottomSheetItem.Builder().setCustomView(root).create()); + } + + @Override + protected void onRightBottomButtonClick() { + super.onRightBottomButtonClick(); + } + + @Override + protected void onDismissButtonClickAction() { + super.onDismissButtonClickAction(); + } + + @Override + protected int getDismissButtonTextId() { + return R.string.shared_string_uninstall; + } + + @Override + protected int getRightBottomButtonTextId() { + return R.string.keep_active; + } + + private SpannableString getDescriptionText() { + String keepActive = getString(R.string.keep_active); + String uninstall = getString(R.string.shared_string_uninstall); + String text = getString(R.string.speed_cameras_legal_descr, keepActive, uninstall); + return UiUtilities.setWordsMediumFont(app, text, keepActive, uninstall); + } +} diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java index d99537215f..0763b302a4 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java @@ -14,6 +14,7 @@ import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.SettingsGeneralActivity; import net.osmand.plus.dialogs.SendAnalyticsBottomSheetDialogFragment; +import net.osmand.plus.dialogs.SpeedCamerasBottomSheet; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.preferences.ListPreferenceEx; @@ -26,6 +27,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send private static final String SEND_ANONYMOUS_DATA_PREF_ID = "send_anonymous_data"; private static final String DIALOGS_AND_NOTIFICATIONS_PREF_ID = "dialogs_and_notifications"; + private static final String UNINSTALL_SPEED_CAMERAS_PREF_ID = "uninstall_speed_cameras"; @Override protected void setupPreferences() { @@ -36,6 +38,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send setupSendAnonymousDataPref(); setupDialogsAndNotificationsPref(); setupEnableProxyPref(); + setupUninstallSpeedCamerasPref(); } @Override @@ -108,6 +111,18 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send setupSendAnonymousDataPref(); } + @Override + public boolean onPreferenceClick(Preference preference) { + String prefId = preference.getKey(); + if (UNINSTALL_SPEED_CAMERAS_PREF_ID.equals(prefId)) { + FragmentManager fm = getFragmentManager(); + if (fm != null) { + SpeedCamerasBottomSheet.showInstance(fm); + } + } + return super.onPreferenceClick(preference); + } + private void setupDefaultAppModePref() { OsmandApplication app = getMyApplication(); if (app == null) { @@ -191,4 +206,9 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send SwitchPreferenceEx enableProxy = (SwitchPreferenceEx) findPreference(settings.ENABLE_PROXY.getId()); enableProxy.setIcon(getPersistentPrefIcon(R.drawable.ic_action_proxy)); } + + private void setupUninstallSpeedCamerasPref() { + Preference uninstallSpeedCameras = (Preference) findPreference(UNINSTALL_SPEED_CAMERAS_PREF_ID); + uninstallSpeedCameras.setIcon(getPersistentPrefIcon(R.drawable.ic_speed_camera_disabled)); + } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java index d2c83917e0..683aa15a49 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java @@ -6,19 +6,26 @@ import android.os.Build; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import androidx.appcompat.widget.SwitchCompat; import androidx.core.content.ContextCompat; +import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; import androidx.preference.SwitchPreferenceCompat; import net.osmand.AndroidUtils; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.dialogs.SpeedCamerasBottomSheet; +import net.osmand.plus.helpers.FontCache; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; +import java.lang.ref.WeakReference; + import static net.osmand.plus.UiUtilities.CompoundButtonType.TOOLBAR; public class ScreenAlertsFragment extends BaseSettingsFragment { @@ -27,6 +34,7 @@ public class ScreenAlertsFragment extends BaseSettingsFragment { private static final String SHOW_ROUTING_ALARMS_INFO = "show_routing_alarms_info"; private static final String SCREEN_ALERTS_IMAGE = "screen_alerts_image"; + private static final String SHOW_CAMERAS = "show_cameras"; @Override protected void setupPreferences() { @@ -103,6 +111,8 @@ public class ScreenAlertsFragment extends BaseSettingsFragment { deviceImage.setImageDrawable(getDeviceImage()); warningIcon.setImageDrawable(getWarningIcon()); + } else if (SHOW_CAMERAS.equals(key)) { + setupSpeedCamerasAlert(app, requireMyActivity(), holder, isNightMode()); } } } @@ -144,4 +154,36 @@ public class ScreenAlertsFragment extends BaseSettingsFragment { return null; } + + public static void setupSpeedCamerasAlert(OsmandApplication app, FragmentActivity activity, PreferenceViewHolder holder, boolean nightMode) { + ImageView alertIcon = (ImageView) holder.itemView.findViewById(R.id.alert_icon); + TextView alertTitle = (TextView) holder.itemView.findViewById(R.id.alert_title); + TextView alertSubTitle = (TextView) holder.itemView.findViewById(R.id.alert_subtitle); + LinearLayout alertBg = (LinearLayout) holder.itemView.findViewById(R.id.alert_bg); + + alertBg.setBackgroundDrawable(UiUtilities.getRoundedBackgroundDrawable( + app, + nightMode ? R.color.activity_background_color_dark : R.color.activity_background_color_light, + 6)); + alertIcon.setImageDrawable(app.getUIUtilities().getIcon( + R.drawable.ic_action_alert, + nightMode ? R.color.icon_color_default_dark : R.color.icon_color_default_light)); + alertTitle.setText(R.string.speed_cameras_alert); + alertTitle.setTypeface(FontCache.getRobotoMedium(app)); + alertSubTitle.setText(R.string.read_more); + alertSubTitle.setTypeface(FontCache.getRobotoMedium(app)); + alertSubTitle.setTextColor(nightMode + ? app.getResources().getColor(R.color.active_color_primary_dark) + : app.getResources().getColor(R.color.active_color_primary_light)); + final WeakReference<FragmentActivity> weakActivity = new WeakReference<>(activity); + alertSubTitle.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + FragmentActivity a = weakActivity.get(); + if (a != null) { + SpeedCamerasBottomSheet.showInstance(a.getSupportFragmentManager()); + } + } + }); + } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java index 2d3ff2eb5e..084a55ce64 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java @@ -252,6 +252,8 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment { Object currentValue = ((ListPreferenceEx) preference).getValue(); imageView.setEnabled(preference.isEnabled() && !OsmandSettings.VOICE_PROVIDER_NOT_USE.equals(currentValue)); } + } else if (settings.SPEAK_SPEED_CAMERA.getId().equals(preference.getKey())) { + ScreenAlertsFragment.setupSpeedCamerasAlert(app, requireMyActivity(), holder, isNightMode()); } } From d392bc51d18b624245d4a1cd4793839f42ef78ef Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Tue, 9 Jun 2020 16:08:00 +0300 Subject: [PATCH 003/300] Fix text scale --- ...oint_14dp.png => ic_marker_point_14dp.png} | Bin OsmAnd/res/drawable-hdpi/ic_note_audio.png | Bin 3518 -> 0 bytes OsmAnd/res/drawable-hdpi/ic_note_photo.png | Bin 3693 -> 0 bytes OsmAnd/res/drawable-hdpi/ic_note_small.png | Bin 2180 -> 0 bytes OsmAnd/res/drawable-hdpi/ic_note_video.png | Bin 3389 -> 0 bytes ...n_avoid_road.png => ic_pin_avoid_road.png} | Bin ...r.png => ic_shield_marker_point_color.png} | Bin ....png => ic_shield_marker_point_shadow.png} | Bin ....png => ic_shield_marker_point_stroke.png} | Bin .../ic_white_orange_poi_shield.png | Bin 3173 -> 0 bytes .../ic_white_orange_poi_shield_small.png | Bin 2226 -> 0 bytes ...ld_small.png => ic_white_shield_small.png} | Bin OsmAnd/res/drawable-hdpi/map_osm_resolved.png | Bin 3617 -> 0 bytes .../drawable-hdpi/map_osm_resolved_small.png | Bin 2211 -> 0 bytes .../res/drawable-hdpi/map_osm_unresolved.png | Bin 3702 -> 0 bytes .../map_osm_unresolved_small.png | Bin 2203 -> 0 bytes .../res/drawable-hdpi/map_pin_destination.png | Bin 4036 -> 0 bytes OsmAnd/res/drawable-hdpi/map_pin_origin.png | Bin 4112 -> 0 bytes OsmAnd/res/drawable-hdpi/map_pin_poi.png | Bin 3742 -> 0 bytes .../res/drawable-hdpi/map_pin_poi_small.png | Bin 2195 -> 0 bytes .../map_poi_parking_pos_limit.png | Bin 3498 -> 0 bytes .../map_poi_parking_pos_no_limit.png | Bin 3239 -> 0 bytes .../drawable-hdpi/map_transport_stop_bg.png | Bin 903 -> 0 bytes .../drawable-hdpi/map_transport_stop_bus.png | Bin 1173 -> 0 bytes .../map_transport_stop_small.png | Bin 1429 -> 0 bytes .../drawable-hdpi/map_transport_stop_tram.png | Bin 1183 -> 0 bytes OsmAnd/res/drawable-hdpi/map_white_shield.png | Bin 2927 -> 0 bytes .../drawable-hdpi/map_world_globe_dark.png | Bin 1585 -> 0 bytes ...oint_14dp.png => ic_marker_point_14dp.png} | Bin OsmAnd/res/drawable-mdpi/ic_note_audio.png | Bin 2579 -> 0 bytes OsmAnd/res/drawable-mdpi/ic_note_photo.png | Bin 2594 -> 0 bytes OsmAnd/res/drawable-mdpi/ic_note_small.png | Bin 1715 -> 0 bytes OsmAnd/res/drawable-mdpi/ic_note_video.png | Bin 2476 -> 0 bytes ...n_avoid_road.png => ic_pin_avoid_road.png} | Bin ...r.png => ic_shield_marker_point_color.png} | Bin ....png => ic_shield_marker_point_shadow.png} | Bin ....png => ic_shield_marker_point_stroke.png} | Bin .../ic_white_orange_poi_shield.png | Bin 2414 -> 0 bytes .../ic_white_orange_poi_shield_small.png | Bin 1742 -> 0 bytes ...ld_small.png => ic_white_shield_small.png} | Bin OsmAnd/res/drawable-mdpi/map_osm_resolved.png | Bin 2681 -> 0 bytes .../drawable-mdpi/map_osm_resolved_small.png | Bin 1732 -> 0 bytes .../res/drawable-mdpi/map_osm_unresolved.png | Bin 2644 -> 0 bytes .../map_osm_unresolved_small.png | Bin 1730 -> 0 bytes .../res/drawable-mdpi/map_pin_destination.png | Bin 2691 -> 0 bytes OsmAnd/res/drawable-mdpi/map_pin_origin.png | Bin 2780 -> 0 bytes OsmAnd/res/drawable-mdpi/map_pin_poi.png | Bin 2730 -> 0 bytes .../res/drawable-mdpi/map_pin_poi_small.png | Bin 1735 -> 0 bytes .../map_poi_parking_pos_limit.png | Bin 2597 -> 0 bytes .../map_poi_parking_pos_no_limit.png | Bin 2439 -> 0 bytes .../drawable-mdpi/map_transport_stop_bg.png | Bin 547 -> 0 bytes .../drawable-mdpi/map_transport_stop_bus.png | Bin 723 -> 0 bytes .../map_transport_stop_small.png | Bin 1235 -> 0 bytes .../drawable-mdpi/map_transport_stop_tram.png | Bin 738 -> 0 bytes OsmAnd/res/drawable-mdpi/map_white_shield.png | Bin 2198 -> 0 bytes ...oint_14dp.png => ic_marker_point_14dp.png} | Bin OsmAnd/res/drawable-xhdpi/ic_note_audio.png | Bin 4806 -> 0 bytes OsmAnd/res/drawable-xhdpi/ic_note_photo.png | Bin 4813 -> 0 bytes OsmAnd/res/drawable-xhdpi/ic_note_small.png | Bin 2628 -> 0 bytes OsmAnd/res/drawable-xhdpi/ic_note_video.png | Bin 4505 -> 0 bytes ...n_avoid_road.png => ic_pin_avoid_road.png} | Bin ...r.png => ic_shield_marker_point_color.png} | Bin ....png => ic_shield_marker_point_shadow.png} | Bin ....png => ic_shield_marker_point_stroke.png} | Bin .../ic_white_orange_poi_shield.png | Bin 4255 -> 0 bytes .../ic_white_orange_poi_shield_small.png | Bin 2639 -> 0 bytes ...ld_small.png => ic_white_shield_small.png} | Bin .../res/drawable-xhdpi/map_osm_resolved.png | Bin 4902 -> 0 bytes .../drawable-xhdpi/map_osm_resolved_small.png | Bin 2605 -> 0 bytes .../res/drawable-xhdpi/map_osm_unresolved.png | Bin 4746 -> 0 bytes .../map_osm_unresolved_small.png | Bin 2596 -> 0 bytes .../drawable-xhdpi/map_pin_destination.png | Bin 5261 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_pin_origin.png | Bin 5438 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_pin_poi.png | Bin 4896 -> 0 bytes .../res/drawable-xhdpi/map_pin_poi_small.png | Bin 2617 -> 0 bytes .../map_poi_parking_pos_limit.png | Bin 4647 -> 0 bytes .../map_poi_parking_pos_no_limit.png | Bin 4254 -> 0 bytes .../drawable-xhdpi/map_transport_stop_bg.png | Bin 1352 -> 0 bytes .../drawable-xhdpi/map_transport_stop_bus.png | Bin 1572 -> 0 bytes .../map_transport_stop_small.png | Bin 1592 -> 0 bytes .../map_transport_stop_tram.png | Bin 1664 -> 0 bytes .../res/drawable-xhdpi/map_white_shield.png | Bin 3817 -> 0 bytes .../drawable-xhdpi/map_world_globe_dark.png | Bin 1808 -> 0 bytes ...oint_14dp.png => ic_marker_point_14dp.png} | Bin OsmAnd/res/drawable-xxhdpi/ic_note_audio.png | Bin 7357 -> 0 bytes OsmAnd/res/drawable-xxhdpi/ic_note_photo.png | Bin 7299 -> 0 bytes OsmAnd/res/drawable-xxhdpi/ic_note_small.png | Bin 3569 -> 0 bytes OsmAnd/res/drawable-xxhdpi/ic_note_video.png | Bin 6679 -> 0 bytes ...n_avoid_road.png => ic_pin_avoid_road.png} | Bin ...r.png => ic_shield_marker_point_color.png} | Bin ....png => ic_shield_marker_point_shadow.png} | Bin ....png => ic_shield_marker_point_stroke.png} | Bin .../ic_white_orange_poi_shield.png | Bin 6317 -> 0 bytes .../ic_white_orange_poi_shield_small.png | Bin 3670 -> 0 bytes ...ld_small.png => ic_white_shield_small.png} | Bin .../res/drawable-xxhdpi/map_osm_resolved.png | Bin 6995 -> 0 bytes .../map_osm_resolved_small.png | Bin 3683 -> 0 bytes .../drawable-xxhdpi/map_osm_unresolved.png | Bin 7135 -> 0 bytes .../map_osm_unresolved_small.png | Bin 3606 -> 0 bytes .../drawable-xxhdpi/map_pin_destination.png | Bin 8245 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_pin_origin.png | Bin 8623 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_pin_poi.png | Bin 7395 -> 0 bytes .../res/drawable-xxhdpi/map_pin_poi_small.png | Bin 3614 -> 0 bytes .../map_poi_parking_pos_limit.png | Bin 7012 -> 0 bytes .../map_poi_parking_pos_no_limit.png | Bin 6375 -> 0 bytes .../drawable-xxhdpi/map_transport_stop_bg.png | Bin 2559 -> 0 bytes .../map_transport_stop_bus.png | Bin 2959 -> 0 bytes .../map_transport_stop_small.png | Bin 1889 -> 0 bytes .../map_transport_stop_tram.png | Bin 3018 -> 0 bytes .../res/drawable-xxhdpi/map_white_shield.png | Bin 5767 -> 0 bytes .../drawable-xxhdpi/map_world_globe_dark.png | Bin 2412 -> 0 bytes ...n_avoid_road.png => ic_pin_avoid_road.png} | Bin OsmAnd/res/values/colors.xml | 6 +- OsmAnd/res/values/sizes.xml | 1 + .../net/osmand/plus/FavouritesDbHelper.java | 4 +- .../plus/audionotes/AudioNotesLayer.java | 61 ++++------ .../plus/base/FavoriteImageDrawable.java | 105 ++++++++++++++---- .../plus/mapcontextmenu/MenuController.java | 6 +- .../ImpassibleRoadsMenuController.java | 3 +- .../other/MultiSelectionArrayAdapter.java | 2 +- .../plus/myplaces/TrackBitmapDrawer.java | 2 +- .../net/osmand/plus/osmedit/OsmBugsLayer.java | 58 +++++----- .../osmand/plus/osmedit/OsmEditsLayer.java | 35 ++---- .../ParkingPositionMenuController.java | 19 +++- .../net/osmand/plus/views/AidlMapLayer.java | 2 +- .../osmand/plus/views/FavouritesLayer.java | 57 ++-------- .../src/net/osmand/plus/views/GPXLayer.java | 17 +-- .../plus/views/ImpassableRoadsLayer.java | 14 ++- .../net/osmand/plus/views/OsmandMapLayer.java | 4 + .../net/osmand/plus/views/POIMapLayer.java | 49 ++------ .../plus/views/TransportStopsLayer.java | 62 +++++------ 131 files changed, 231 insertions(+), 276 deletions(-) rename OsmAnd/res/drawable-hdpi/{map_marker_point_14dp.png => ic_marker_point_14dp.png} (100%) delete mode 100644 OsmAnd/res/drawable-hdpi/ic_note_audio.png delete mode 100644 OsmAnd/res/drawable-hdpi/ic_note_photo.png delete mode 100644 OsmAnd/res/drawable-hdpi/ic_note_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/ic_note_video.png rename OsmAnd/res/drawable-hdpi/{map_pin_avoid_road.png => ic_pin_avoid_road.png} (100%) rename OsmAnd/res/drawable-hdpi/{map_shield_marker_point_color.png => ic_shield_marker_point_color.png} (100%) rename OsmAnd/res/drawable-hdpi/{map_shield_marker_point_shadow.png => ic_shield_marker_point_shadow.png} (100%) rename OsmAnd/res/drawable-hdpi/{map_shield_marker_point_stroke.png => ic_shield_marker_point_stroke.png} (100%) delete mode 100644 OsmAnd/res/drawable-hdpi/ic_white_orange_poi_shield.png delete mode 100644 OsmAnd/res/drawable-hdpi/ic_white_orange_poi_shield_small.png rename OsmAnd/res/drawable-hdpi/{map_white_shield_small.png => ic_white_shield_small.png} (100%) delete mode 100644 OsmAnd/res/drawable-hdpi/map_osm_resolved.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_osm_resolved_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_osm_unresolved.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_osm_unresolved_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_pin_destination.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_pin_origin.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_pin_poi.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_pin_poi_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_poi_parking_pos_limit.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_poi_parking_pos_no_limit.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_transport_stop_bg.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_transport_stop_bus.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_transport_stop_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_transport_stop_tram.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_white_shield.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_world_globe_dark.png rename OsmAnd/res/drawable-mdpi/{map_marker_point_14dp.png => ic_marker_point_14dp.png} (100%) delete mode 100644 OsmAnd/res/drawable-mdpi/ic_note_audio.png delete mode 100644 OsmAnd/res/drawable-mdpi/ic_note_photo.png delete mode 100644 OsmAnd/res/drawable-mdpi/ic_note_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/ic_note_video.png rename OsmAnd/res/drawable-mdpi/{map_pin_avoid_road.png => ic_pin_avoid_road.png} (100%) rename OsmAnd/res/drawable-mdpi/{map_shield_marker_point_color.png => ic_shield_marker_point_color.png} (100%) rename OsmAnd/res/drawable-mdpi/{map_shield_marker_point_shadow.png => ic_shield_marker_point_shadow.png} (100%) rename OsmAnd/res/drawable-mdpi/{map_shield_marker_point_stroke.png => ic_shield_marker_point_stroke.png} (100%) delete mode 100644 OsmAnd/res/drawable-mdpi/ic_white_orange_poi_shield.png delete mode 100644 OsmAnd/res/drawable-mdpi/ic_white_orange_poi_shield_small.png rename OsmAnd/res/drawable-mdpi/{map_white_shield_small.png => ic_white_shield_small.png} (100%) delete mode 100644 OsmAnd/res/drawable-mdpi/map_osm_resolved.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_osm_resolved_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_osm_unresolved.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_osm_unresolved_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_pin_destination.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_pin_origin.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_pin_poi.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_pin_poi_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_poi_parking_pos_limit.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_poi_parking_pos_no_limit.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_transport_stop_bg.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_transport_stop_bus.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_transport_stop_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_transport_stop_tram.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_white_shield.png rename OsmAnd/res/drawable-xhdpi/{map_marker_point_14dp.png => ic_marker_point_14dp.png} (100%) delete mode 100644 OsmAnd/res/drawable-xhdpi/ic_note_audio.png delete mode 100644 OsmAnd/res/drawable-xhdpi/ic_note_photo.png delete mode 100644 OsmAnd/res/drawable-xhdpi/ic_note_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/ic_note_video.png rename OsmAnd/res/drawable-xhdpi/{map_pin_avoid_road.png => ic_pin_avoid_road.png} (100%) rename OsmAnd/res/drawable-xhdpi/{map_shield_marker_point_color.png => ic_shield_marker_point_color.png} (100%) rename OsmAnd/res/drawable-xhdpi/{map_shield_marker_point_shadow.png => ic_shield_marker_point_shadow.png} (100%) rename OsmAnd/res/drawable-xhdpi/{map_shield_marker_point_stroke.png => ic_shield_marker_point_stroke.png} (100%) delete mode 100644 OsmAnd/res/drawable-xhdpi/ic_white_orange_poi_shield.png delete mode 100644 OsmAnd/res/drawable-xhdpi/ic_white_orange_poi_shield_small.png rename OsmAnd/res/drawable-xhdpi/{map_white_shield_small.png => ic_white_shield_small.png} (100%) delete mode 100644 OsmAnd/res/drawable-xhdpi/map_osm_resolved.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_osm_resolved_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_osm_unresolved.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_osm_unresolved_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_pin_destination.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_pin_origin.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_pin_poi.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_pin_poi_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_poi_parking_pos_limit.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_poi_parking_pos_no_limit.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_transport_stop_bg.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_transport_stop_bus.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_transport_stop_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_transport_stop_tram.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_white_shield.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_world_globe_dark.png rename OsmAnd/res/drawable-xxhdpi/{map_marker_point_14dp.png => ic_marker_point_14dp.png} (100%) delete mode 100644 OsmAnd/res/drawable-xxhdpi/ic_note_audio.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/ic_note_photo.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/ic_note_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/ic_note_video.png rename OsmAnd/res/drawable-xxhdpi/{map_pin_avoid_road.png => ic_pin_avoid_road.png} (100%) rename OsmAnd/res/drawable-xxhdpi/{map_shield_marker_point_color.png => ic_shield_marker_point_color.png} (100%) rename OsmAnd/res/drawable-xxhdpi/{map_shield_marker_point_shadow.png => ic_shield_marker_point_shadow.png} (100%) rename OsmAnd/res/drawable-xxhdpi/{map_shield_marker_point_stroke.png => ic_shield_marker_point_stroke.png} (100%) delete mode 100644 OsmAnd/res/drawable-xxhdpi/ic_white_orange_poi_shield.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/ic_white_orange_poi_shield_small.png rename OsmAnd/res/drawable-xxhdpi/{map_white_shield_small.png => ic_white_shield_small.png} (100%) delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_osm_resolved.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_osm_resolved_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_osm_unresolved.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_osm_unresolved_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_pin_destination.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_pin_origin.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_pin_poi.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_pin_poi_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_poi_parking_pos_limit.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_poi_parking_pos_no_limit.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_transport_stop_bg.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_transport_stop_bus.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_transport_stop_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_transport_stop_tram.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_white_shield.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_world_globe_dark.png rename OsmAnd/res/drawable-xxxhdpi/{map_pin_avoid_road.png => ic_pin_avoid_road.png} (100%) diff --git a/OsmAnd/res/drawable-hdpi/map_marker_point_14dp.png b/OsmAnd/res/drawable-hdpi/ic_marker_point_14dp.png similarity index 100% rename from OsmAnd/res/drawable-hdpi/map_marker_point_14dp.png rename to OsmAnd/res/drawable-hdpi/ic_marker_point_14dp.png diff --git a/OsmAnd/res/drawable-hdpi/ic_note_audio.png b/OsmAnd/res/drawable-hdpi/ic_note_audio.png deleted file mode 100644 index ec824f1f5ad7a67eb88cc29e8d1c1adb39d4c028..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3518 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 diff --git a/OsmAnd/res/drawable-hdpi/ic_note_photo.png b/OsmAnd/res/drawable-hdpi/ic_note_photo.png deleted file mode 100644 index a586bcdd953ddbb94169550f762d8a66a5d4709f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3693 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 diff --git a/OsmAnd/res/drawable-hdpi/ic_note_small.png b/OsmAnd/res/drawable-hdpi/ic_note_small.png deleted file mode 100644 index d6ef5c78955bf0a54ee7fc4372f9e8c17ee16e5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2180 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 diff --git a/OsmAnd/res/drawable-hdpi/ic_note_video.png b/OsmAnd/res/drawable-hdpi/ic_note_video.png deleted file mode 100644 index 48066ca5c1428b2226fb625cfca2d87210a9422e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3389 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 MKy)Eov)O<6-%JD6hyVZp diff --git a/OsmAnd/res/drawable-hdpi/map_pin_avoid_road.png b/OsmAnd/res/drawable-hdpi/ic_pin_avoid_road.png similarity index 100% rename from OsmAnd/res/drawable-hdpi/map_pin_avoid_road.png rename to OsmAnd/res/drawable-hdpi/ic_pin_avoid_road.png diff --git a/OsmAnd/res/drawable-hdpi/map_shield_marker_point_color.png b/OsmAnd/res/drawable-hdpi/ic_shield_marker_point_color.png similarity index 100% rename from OsmAnd/res/drawable-hdpi/map_shield_marker_point_color.png rename to OsmAnd/res/drawable-hdpi/ic_shield_marker_point_color.png diff --git a/OsmAnd/res/drawable-hdpi/map_shield_marker_point_shadow.png b/OsmAnd/res/drawable-hdpi/ic_shield_marker_point_shadow.png similarity index 100% rename from OsmAnd/res/drawable-hdpi/map_shield_marker_point_shadow.png rename to OsmAnd/res/drawable-hdpi/ic_shield_marker_point_shadow.png diff --git a/OsmAnd/res/drawable-hdpi/map_shield_marker_point_stroke.png b/OsmAnd/res/drawable-hdpi/ic_shield_marker_point_stroke.png similarity index 100% rename from OsmAnd/res/drawable-hdpi/map_shield_marker_point_stroke.png rename to OsmAnd/res/drawable-hdpi/ic_shield_marker_point_stroke.png diff --git a/OsmAnd/res/drawable-hdpi/ic_white_orange_poi_shield.png b/OsmAnd/res/drawable-hdpi/ic_white_orange_poi_shield.png deleted file mode 100644 index 2f80b352433b8a6b253849619b8553614d8fdd8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3173 zcmbVOc{o&iA0MG4gybeB)0m0eW;HYBjHNIWlSr0~B^fgZ6SJ5lW9e3QEwZI(u~d?Z zlI3PXnnasuK~zX23YF4=-qEf5zJJ{3{_&pYob&sAf9L!8eD~)$scx>0n(E8dArOcr z-HGb1Sb@1mZNB2Ye_4E@VlfcY7-A28usD(_1R-{8eh>(wbD1HaJIG{5Mce|dArR#q z98ZRr;j)p!;&ai=IUTf=D^Q>z5bL#40h1L5ieW)u2#03_AD1=2VH~y%+?(ivbrCp# zp&X}ZA?Ok9>dA@@V*zaVT3eX4l%gQuf?_62$_?j<C{i2v4_=C5KX;6Q!+xlU!))Mx zImK{sgE{bpAdHA6p;%ZP0cHuHaYT|OV7Uf{SI8JF8H2~7umFW<LBZl-KQFk#nvfk# zai^~TX-gs5z(d7i0R@AJjEqD_TA=yD5DX3g01Ot7!Q)X14U{N~CuT}fJdw#S1}Z3G z2{{5WhtGq}F*1Yr60r?j;ptx?a0M<de-raWKNF=$8Ai$!U~p(GhRdCc>xZ^T><<3d zjepb@c}599j5{deON1;%J%UYsffc#?cSCcE3U4Tzgd9atnBi1DOTq<tVmj3ZuK0px zbJ!Fz8H=?b63HkWnT$gbu>>3{2w;&=WD*+;#^M2h#b*BE`6oOcOLhP(u_Q8;0N`*m zB0yE#cmhBr+Y_-0;TM+96N#BT7Wm6HM`8OXmiVt&ih~ejiupoMK0o|d7r2G;#e7jH zUjTD(_)&G3nKy^W=0}QF&z0$~sHvckvjb$W7xKBVA9<#5{=o+(NFW4(Bmfl*S_Y%o zfFgb-2~R{3aG*snfrMq_fMEDfJp2F6A4cI6X0BQOr+I!IDLQg)`}Zg)gujOg<S8ad zs2CMrzuA2dh*~0@YUe5Ke(4vs-_U!h?NqDu=BIAiAFX4n{3;6Dc*|9g8F|(AaJSOz zIJbun_NF)uo_3<nb6;nlvTNE*&C{%W+DTh&WdQ0lZCy73MRh~^c=aP&R&6+URXHq% z6*F_}-CgLIB!tvCkn7VkD!KZitSlIBv0_*LePHTXOzXn9$Hpb`A$JWm3p%F?wHlh= z^u^K~{8fWmBF1PP^p=-pxii_7T?>TMI-(mF?+`6lSI~_dXJeb#HuMu;E2ffp-+cFF ze_qX4V%5s6Xl=~0IDaeuDAegnLuO^m9tU5NPCI2W!!bja1Y~x>gR&~=uRGYUG{=_r zw@e|tE;+}!o@MUK4uvAa=6~WQ=gQ9Xw~AFr$;cx)v}M0x6I4`m<Ovma1;r!SZIAn6 zt2Msc?pWb!9i`{$r$P)Pttrw>3-5HN9WOZ-4;w;&OR`>T{1Iyy9y<)3=>N!?m<?sP zCdy3?1)6zg4Hhg<M?hJ7)Zzl$R%!?JB^9TZ`W_yw@-6X29n3EE9owLDV%L!I#HjK8 z>%iAm%JI_pi~Se3ikc8m6;)RxS6FBhDZe1Az7~K~w{pMr$bOAJ#wqi>B+M$WctfJS zZH`|H(gI1I-q&z_R=K%Pqt5GcO6f6k!{fRik+*bi9D9bMj}7S|>Oa6@qbW+phThqU zY<%5r?UA-E8xNQ78aP?JFqFCS=&}3k%va@&n{1~HyS_(jl>vxzBGOxDJ=6!~30)0_ zg;R)hTo(Ayw7RjTWA!^W<pP_w`O!D%+2L9=`?A5{_EilNCw)Fo&w2-@1(f-+4Uc*5 zM4F48+%6)P6<NH0>Du+KMW2i%W+X*`*73Mi=XBEAr}EmJD%UL3?#V74JF&U%=^~Nf zR@1?++YcJk18AUgTt>X{p5r~e>b+MvGha7aufT{`<Q1XEYG#k31FH(w7_7cBIbn6C zZ)AK{wOpp6-F5&GWmU;d*D?BXGr8|X3~!I=bAsgIU?{;iNlD8mr^*fMX}nZF@&Pe$ ztR=UYYE?mRbadhVw$hLEXH@4FGMNbELZMi@7^lof>GSp^>6)+Ituy`Q@xFUaE&gdG zeJ6|K-ol5?^P;Df@6OLM(>XZUbMivty+F4uIQthj+ec*EY!@ZJe>?=gu|S=>{daLu z@!Dsa-*~ypd+=qa@K_ZSBQ38Cj#<s7lJ@-k1fRo@LWz>!%@yF#aIW#jGrB%KsZ~aG zWx%*3=HB?s<PlfoWxdXm8u_OqiaOJpxgooO7>z%~zsCk!A8JXBE0FEXeMNj#$1DF* zm#?IEu~mSJ&AF*cE-K3u9|-^SRFzMs^*v|9s|6-++ro-7-x)oFJiR0E9YP9?au9pB zdOp^wA6)QUYw?*Smo$R-;@S5Oc#l+R(u>#x51+=f6-CV>-3SVxK6QZRs2-@hBuTuV zCjTN~eSuC+j;6WPme-ON+EznJG>4##x->51bjzxy&J>lVW%ALkQ<(CyNEbP@u)yD7 zy`R`MDeJ|vp)+MIDD8szGu7#9yu1Nq_u)oCvB{x(X`Xj<G405K4uoM&V7#8Tmv=si z9pBHEZk<M0<pnHSoI^X3J<ooA2gG@=$4RNF|EaF(+Ulo)bkpT3SyeE)f?G2NsdBYK z!dQoe2eQwr9%Yja0uHLRW+8AJOO_>})s`8`T_3<!6-&>duRI}T29GW%T(6<rzAbc^ zMvn;ETQhPfR(~sx5ZP0z^}StevP?UI)kSwdrYj$9(W|6c7hi^WJnoC@ZX2x9*1#Uq zD8F;!K_!wCa$sXUsnLB(;?=MOK2*g#jA$|lmR`9hauzO<Ww+-g<_x@IRu_}tVRo4s zrt&+7bT(QZB|wpcnI1>xSi6;z-NWTd^c&q1-6k2g%~!{M$J`6b@Vjv8UU{W<oo|A? zX|KL<@M?UlMu?noyEq1I%^kVDUF-hLk`uQNRi-kZZ^y-IobfV=@bZ3BRCXhpVI?pM zI5~eOLRMlfH=}KEEBqV~M4s8ZE&$1sP569&LjN2Pe5r7FzD{y#folqR+oSAlGn(~x zmhKkUlsF0&hWeS`HpSSzp6!9*^$9iW!K+<GXtnmXBS)MaXY=y&fc$sg_BUVt&~&r* zO4Ntf%_kCjeGj1nGJ{R4(sRNa->8x$z5Bn|(GwVq>q~oM!%SuR4Mt%L?hoCr6$1Qh z+b_<a-Rsq9&Y5}M2Add3fgYz{@0;AMwkzMjREAUvJ)b;cc^lL#UH@kL=1sE`DsO<; zT7$u^L?8KPb4InebJa6%jC}-aUcgZ!q|9E)GfRaa=%vpvCxv#sf?>TkG1E>DzjTsg zCfD5jnh}0ZVhkvIGj<9HPAiJ6BE0l7C}wf{B={X?1H;KXwCdkK3F(W9K0B||d9?m< zaG^)sC$?&v-%|3?Ww^+ogaiS^d?y&6UU$vErcr%!nO^Gq=F1aJb(`elsJN@pOx{RV zS@F04^D+_mbKOd#ouUV^n5H7Pj~7TD$ek-FN)h$cj;-kQ2aN+0XUkV44Hz{h?fWoZ z8dC6N=3Tt^)6=(7D&`H}3F%*4Q*P;~Y5%<WQwMXQ`S5|NKWMh;vxWY-W{1_;d9|r$ zy3D`6;QSeSMg4Kp*2#{Uc01#P;Y)pdze%r$+Um!JiI;AvdvxETi<ItPl0hv~A5b10 zxa7DP>NDjCrX<gED;g^{U*vY?6mkC^H8l;n${y`&c}khv*Ij&$l~>KDI-9>N*XwV) zW>sOG^7Uf}@tpHE>EgTLJ%YNLG~E*g*V%OvlQs19s=g<0%!W;MwC^6cv1FHTHyTL2 z^07lgz4&{k(dL?Y?FF@nnC%PSR@r=8|529L<^Y!>ZHD9D_>WyFj6997QI7tNBeRkD vFOKfb8~cu#wX|!XfBFhNmv{PmK13Pf`8I7~bD;di+>bw<=1MKI4~+W{)j(I+ diff --git a/OsmAnd/res/drawable-hdpi/ic_white_orange_poi_shield_small.png b/OsmAnd/res/drawable-hdpi/ic_white_orange_poi_shield_small.png deleted file mode 100644 index 65558478b7c1b372b7e89948dd65763c2165c78e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2226 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 Y2SduVXwC<d+Vy`CzT5y#6+3eGpF(_+O8@`> diff --git a/OsmAnd/res/drawable-hdpi/map_white_shield_small.png b/OsmAnd/res/drawable-hdpi/ic_white_shield_small.png similarity index 100% rename from OsmAnd/res/drawable-hdpi/map_white_shield_small.png rename to OsmAnd/res/drawable-hdpi/ic_white_shield_small.png diff --git a/OsmAnd/res/drawable-hdpi/map_osm_resolved.png b/OsmAnd/res/drawable-hdpi/map_osm_resolved.png deleted file mode 100644 index a2fd06e3f56a792267f6a0899a14ba6e85adad54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3617 zcmbVPc{r478y`!AEM=XDX*kGf%nUPQW{`cE7-ZiWGlRhx##lR9vSr_;=vY!HIXKpY z&_<&pd&IF6Wi3ib`9`PC_x*9M^T+pI*ZV%t{k-?@ckkDGy-5~kM*O_Tc>w?bKh9X+ zlC@$E?!#QHXR1VOJZk|m4D1<JG*3n-fldbKkZ2xc5ROXlB3qIPr0~FAvIYRa5kj%H zXV~LSu|yhGnQ)+^97YXbp#cC5t*`(B(U;5sd62y*{+i(RwoWjJLed1=A@MMLfF9YK zVjMvyTSb^z6C-?y7!p|P3`ipk%OaqX83a%m)z3c&8>R{V#*1a`500T=&^Hx^uO|2} zr|j_-AUztL3_>cSAVe4(0aC*#!;vU8jM{0C3QLB<&`=c^1ct#PRk1J?(Dw_>vPLI) zVlDLzzuRI-nqY4RBLEA9hK7bJhpH;m=w47b27`gZRG=y<5S9icDBPbx2!r?s$^Kx_ zCkGMflmG^W<_|hxBzVw*8Jb|0r+<Y&4Z!37CiV~do+wtzpkagnC|nr^rBV;#`lcPk zuq6N2jepb*vJMX*LoLZcv|u`sRS!?uA7EDQ{@u`lBFh`BIi12P3c*jGMhvEs{TVoY zO)%??GKoUMqR}vzDiVo?z|m+p1PMdHAs!ea3W7$F$eu7242DP|{NVW~JOX0~H`GC? zqS0!GaJT^yV}R6WG3l$R>cUZQ9rO<@&OeAj@F$Xg*ru>-f5)o)D;BFqCleSnx;2gF z_oE9eylD(tkT)#=q^I|->L5isia&`K8g%NQOn*hKPo`5s$RtBLjSBjfXDsC(eDEX@ z2q=Unt7A||GDOt_p$0)CRY?#PPZTQ`o^S%%69N8?C;h+qgR-209yH7UG|!JCR!1Ie z{~iUF@b@s0{aF)4XN^kRF(3f|;MKwD>sW_PymAWnld=OAt1Uir{XKCtcx5z6Z&0rP z+6Uv5lG2m>{QCgihVq77UK_kpHiGj|m)2g4;z0Q+C2JwhIiaX%A(5n;w{9&cf|GJ` z$I;w!fx?d)+tPnuZV&bJTF{(!>MwZlo*5C^9+FznUvZ7O^JS~8a~)`*+8J}aMyI(j z#;};%=NG|SgeXTzb&mVd)Ia&FPYBgZ>GkI#COHE}X%p<JA?O7;1Koiw>QphxKH@k4 z4~Ub9eUkBrcnlT}3x~W40xgGU1j^7f9{(aw{ZhI%-Wl+SdJG+n0K$Rur=uMtuP+Gl zrCspOOvkBSTDhH1TnI<UpH(w(iAghEz|3QcP9D-NYCzUo+n@G#zsRJ62KWGc9?@Lj zj-HGc{U<La8|z&+jv4!y8mZH2sgZZ4XzwyxEh*CnU;}Yq=HfjLFm{rA=rE%CE^~Ob z9l9Nk>O0f-c{}s*I#B$cuB}i!`{Jy~)zaVuGQwrZp;FH<&qn8zlIx8U&R0cJ%CAjM zK}y>l(ARc|TVcD$BX6eS>e!l0M3EfjE)l8xMH1s8j&o74mRO#8C*9Rj$u3(;uK12e zdy|z?{sX2xHb1%I?uXPZ+co`##ufFdsCg>`j!KVn<aXPV5;JbAS^E|VnIsL-$!Cp$ z=85Xy*sNzyxB<}#8lY|&_u5z?_TJf7C+1~)cb4!U$9n%v?YNnqpN;DE5i6|W6&XIM z^Q@$P?1;Yrl+Q2MRUqW7N4YBY$wu|Wim8DWQh7(mBhnM?!jv{y@4crP$s?mI;ck;+ zefw-~m7YNor-A9$H&%6!uiO_CyIp3T8-9-9hiMyGZ)%O7dpn(}hJ$PC-kAZ`#CF=Q zJQc(|cz$cbioe{(puc6279KL~^^iP$*-^a7HGks9wp^pCE4NQ=2p!V;Y%iqE@JKSy zc19%6uJ~1(rfmEtI)?xcr%i_3oe=K{5Zjv+jpt1`=QZ_#CdH6x@%KMfIlK&my3N#8 z*hX&{G^Mp!uRu*2<O@l+Dyx8C&K|DIpJj3*rB~Ahwq-jwgC$W?38Vxs5`I9YN2=rY zkteuBMy-72sP!EwaIH8sNn<oZaagpEo7g2-HQ7Q)T7X|h@Rs&(#CH=4#>h@(FdX%Y z<8VW;(c?Au<^}}A>&=8Ix*$SJSKD|Qn;K(=%GSzy8;JYtEX+{1h~bPl#(l$#BGj6D z$h%MC&E6^_3MuHJnW#4w%pAMS6P56&&R;YmM-FIm|C3R1>IEZ5A$AXAQ_CRlo>Sll z?nghAw$UFC(VRA%yrDyHe6HYUW(UCX_x%K(@d@-FLN-Pnc54BQn{GGcdN;U~rN;Ka zHE%&T;zt+Rr!1odH|B$m%7J-65BAX#%rBZj-Pvq5;|i;DE>CT^ggv!>GJLr0S7+KJ zQ@yuVuW(m-z4D`Uok1$`O!K&pol#+f!i==DV9l2Drq<f}JGWwfNme77{M;G(Nx@NO z>7EvyW^(RwUI!y8<m@Dgf;a1x>1y8RA1e=Z!q{$ERj14o0=v%3EYD|WUi3x**4#eM zO-VYPnI`PXRA<{7Z%_3gZN3(mGuOX_HIL17cK6f^q*d16^@w%tO7`RGhv^^pn&r0b zXgR{Mg2*@_c|Mdx+izAL+4b*Mc&m;65ZBjY-#pDP^kyeDvG+P~<+B;U?+#~6#eSjq z$y+Y5hl}If64AJhtit(HHok@D(vCH!M{eF!lv%Jf`T2{Li_!ej?(4iiLjf&<9K+`{ z*UJw%KH6(iHx9Ivy*;Pj`j%6Xzk4F;xuVQ$Wb0S2Wyfu?_rC4WB2D$L8P&Hr?eOgA zdu{8I!MK6!X3BP!YjXl%H9``<Q=8!XF)rF}OxhXw=cMR|I@h%kB=@?5jH_gU_2K!| znI)P0_R5|5>k>0H9qr=5r@In#1s8s2{>CS*mN{N`E*w83u`%bU^%*L2uV`%JHR>?i zE|H@${MX9SE}M|($BCg^9RWJ=O4W-lqk^--n@+WH{C1h5KDxVQ<y8AWpc6S7IWL~K zEw4ny?6wqFhrj;yyzFx911>j*3+_8TR7nMZG*BItI<k9lw1l(Y{EGP{UVqs`k8Ttz zaiS8M>Iv!W?3v5(jM=$MgN17*8iQNCA-^sFbu${MK2e~%I=l8yjTT?9EqU(-N{G2@ zw>wzY8(DTXBU<H;J2&WwTGcdUv2zDIY-W>6T(Nl?*QTf2HdAfN&?!k*OxsmM7~4D3 zE{isCUmQ99XcnH$dAE!@TSDcQ_Y^J<7EG}Kv$Y<@UO`_AUwipXb=*^F<&}P!!q>gl zsYSTP@SERP^|$5r90yyI7sOUAI`g?9Xu*{(HKUuvpA~X6uW;B!GL8Z@?=8o7F~>fC z!cTH3ypUVSdFR{flr<%PqK$p~rr%8I01C@2ug&vGn|OM@DhLQvI@>nzh^D^z;RXD) ztySTGv5xer9x`m%Vh@mD1H-OdwYgdyYjjoO#@qP`rwGd_?Z*Y5Dtexna|`evy_z&E zB>yoy&b(S`%W)7H2YTvk(Oca6l}&!eqxzV8x>$eoJEQFe<Jwzy&HCI-#$H{d=>_o2 zbg}nwTMkQ24&Ym~GnU(v+|s^2E6B<%idL}^Llz|M2AAr+Oz(C-+;*zHgK>ci*Yog; zkmF_bU#G9%gJwv)ud_~>zk)dTXpougyBGOL@3#u};X8dMS&d~?_4j);1f8#@HNGUa zsim)3(kg#bh*IAbFBBm(F4Qk)=M6^x^1QiwA9Ei-F{@maSTYQ}RBJTFy%{lKkX$)Y zaKFQRo||G%Js)4NePpgSCdGQKiA}0vLZ`^FK=W!u)Ak>GC1lv`Ny9@{>1*;hJ7DIJ zpJZs>r%ksQc2gZ`G0(}%mJUj1Goq349WU30my@K4Ol5OqDtSqw@w!J;WC4>qJbnLI zzPA96b>t{^fg(gSeABp*H`iRJc0pLC&&hDvrlQ~U4ge44uwZ>Rx>LGQ^b;RSbK5s< z;rqp9MkH6-n)*~v>hme4VtY#%yi@Ic%C;MSw5@vFN2bE<eqTk^9mrN5b+(}5;ie-0 z+Yq@jgaA5X$SDtPT6>*&EJDP0DQnoyD(Y_VAiG8IrKHMpnK|XS=(+LST&T$OyO(dN zvm$G%uND(s3w-+Snp7WNfq0%&XI2j-G-wG!ldm!PWvvwjX3J(rWJbhr1)JF$9z4rf zX-Ku($WIp}cyp9KR;`+`xytu5>gSndFPtCGb2j9QIyeOu@MsI3bvG|EWbf0Fj+F-r z$0ABN#GXc%n%w6TnW+$UEF%j&w5WH~RsTiZmV{xu)6`U>A(VIKgoD!Q`szFL+UkJU zjlpLI<$6Sej#eq2scTyEd2hX&wlRV2XDb+*xO){a$~RayWcEd{I@@m;4-l`fIY;)p zj+m(X=-|+^)O4YF@7~E?1aEGcr`K!x)S$1J@mSon&csL`e=^-QcDljf)4q5Ve!wp? it%GP-QL=y39pJq4@V5qMzas}fZ8!rn{Tf~Oi~j+*`$pRU diff --git a/OsmAnd/res/drawable-hdpi/map_osm_resolved_small.png b/OsmAnd/res/drawable-hdpi/map_osm_resolved_small.png deleted file mode 100644 index b34a4af881eb22db34e0b3ec3ab2713ab08f4e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2211 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 U+*+SpVEJtj_^sldT^XJ7A7bN~2LJ#7 diff --git a/OsmAnd/res/drawable-hdpi/map_osm_unresolved.png b/OsmAnd/res/drawable-hdpi/map_osm_unresolved.png deleted file mode 100644 index d590a5283a1ec2c2d75fdc480dfe3fca66d1e9a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3702 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 HUeW&pe{g8- diff --git a/OsmAnd/res/drawable-hdpi/map_osm_unresolved_small.png b/OsmAnd/res/drawable-hdpi/map_osm_unresolved_small.png deleted file mode 100644 index 92dc738c0af62a209f7c35a09542a52869734bcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2203 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 D5f6w; diff --git a/OsmAnd/res/drawable-hdpi/map_pin_destination.png b/OsmAnd/res/drawable-hdpi/map_pin_destination.png deleted file mode 100644 index 56ef29b0902d9fb1a6aaff3ccb732bf19e8b2525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4036 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 diff --git a/OsmAnd/res/drawable-hdpi/map_pin_origin.png b/OsmAnd/res/drawable-hdpi/map_pin_origin.png deleted file mode 100644 index fe5a345d51fa1d3ee4cf0d7a0a7a966a2cd7f587..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4112 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 Ds^u~@ diff --git a/OsmAnd/res/drawable-hdpi/map_pin_poi.png b/OsmAnd/res/drawable-hdpi/map_pin_poi.png deleted file mode 100644 index 1d6a8d412b12ea4884178e03fb665d3a30db6abe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3742 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 diff --git a/OsmAnd/res/drawable-hdpi/map_pin_poi_small.png b/OsmAnd/res/drawable-hdpi/map_pin_poi_small.png deleted file mode 100644 index 65242db61931ce199156bc56e9ecd5a925f3a363..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2195 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 diff --git a/OsmAnd/res/drawable-hdpi/map_poi_parking_pos_limit.png b/OsmAnd/res/drawable-hdpi/map_poi_parking_pos_limit.png deleted file mode 100644 index c70b63da12bc53b61dfc358fce2da1414ad5ee3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3498 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 T=_}Os-;;%@wMo9Qd)WU0`JW}t diff --git a/OsmAnd/res/drawable-hdpi/map_poi_parking_pos_no_limit.png b/OsmAnd/res/drawable-hdpi/map_poi_parking_pos_no_limit.png deleted file mode 100644 index cb01e5bc3e20ca985ca04f43c0f4e14e7877dde7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3239 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 NR_3;p5;NC`{{UDZh_L_w diff --git a/OsmAnd/res/drawable-hdpi/map_transport_stop_bg.png b/OsmAnd/res/drawable-hdpi/map_transport_stop_bg.png deleted file mode 100644 index 18fda5981f80f8b482dfee2c2f65f0de1a7bb68f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 903 zcmV;219<$2P)<h;3K|Lk000e1NJLTq001Qb001Ni1^@s64#M-M00009a7bBm000o2 z000o20Vd5lGynhq0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH0~|?2K~#7F%~(5+ z(?AfOwH@2ZDGyEv#6xh!RYygA1(E0wEzMPwCu-<GiYP&dil0Dn5(Pp+`~igc15{K{ zoFXLhxFi=}?Da6S@tSom1rc&KpETO_&f5EVW_I=guz?W&sb2)H_zo^>bj*iNr{lES zZI7z{?(S}ol|GfKzO%Dqwk=AaCF`f9px5v2?d?^l^fC^G9}z~$N`L>}(KE*j9#K;h zN(By4#&17=eDIhaW+ZZvl*@myfB)!}<AjIJ3s=wlN{CP*;y4n6{&67V$%`+a4xUp} zq=~WlfK2LjyWK6}1P9I5mD#oHx2OZI8c!=iARvl<|M-v|UNTRUlrtKQyzzKk6CfHW z!l*Zt)SrW}EMfwMU<P3-glL3eSc{_QG$V#8(Bn8}_k~=S#1)arlxZmx^wW^0^Cu!y zg}H&$m@4vny`Jm)z6WbX;ip|NW}!|AtLB$7kdLoOHJeS_gc$j3S1ub4hhP~6qp+n) z%}4)=R;!iQ^WdUD2V3B=2ZMotg+PbdYzCHrnG_e~O+ik|ru*1SW(L?8_tA2bPq>Y7 z-+XDC!_4Sbky)xR`|{~%102tprT)%73No+>j^}eR#mfw_wdO*@QVM#zg2dLE``A+E z?9X=zwk>7C+$C7GlnFCWSxpPHOE{lA$%LD*(Ni#&8LKh1bnBua`1G>|oADSt7S|1f zs4_pn5Ze?{juE3E4Av9$Ba9p#lj|H)WG&F7n4KiHa(wdRoe=IrrSQTON<@-G&g7(9 zi6-6mK@cQFC?8Mzkq?6xNp9Z0^ZH4xe&ep=cr_>yX_}ml2j4$@`}*`vk|aN=={E_V zlJnHg*{eY=yhIke?7D7CO37C@g_xsulu|AmLoKGH7p$ie%+k<tsW_3$D0l}%s9Ues zf6>*!2<Eph^Vs2gDH0~pAZb-9l`T5T7f5-Yr~1-I^cJIVfF(VWj!W)i#w41=S?K$U z6pg_|ICE=45}<fLB{GYJS*g$VqFSvg0@LXfmch^?)zvr6zSO3lH9;noY;SL$(Uk#{ d$!}a3e*l@RNw0E)#DV|-002ovPDHLkV1f?Lq4)p* diff --git a/OsmAnd/res/drawable-hdpi/map_transport_stop_bus.png b/OsmAnd/res/drawable-hdpi/map_transport_stop_bus.png deleted file mode 100644 index 8692bac4674be0a8ac737926987e4987e49c6289..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1173 zcmV;G1Zw+<P)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ00009a7bBm000o2 z000o20Vd5lGynhq0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH1S&~HK~#7F%~(xr z8$}d;vpf4^r;c6I7V#s<!BoQZ!ljo=Arco#dxNT|Cyo_xgd2#!kqU7toIxt05+KBn z%BeyXDnBO<<x(Uhs8m^L>)5dquXlHL`rgE|9jA#i+s0`>X*9F*-tK(+-rM(P7T_TR zyHEK>$b$FCjT4S}vADSCEG#T=9Qut$BN+8Q_G&ygH)qamY=LegJ>ACS`rc-<>0!@D z9P*c7Mo$9&$jj&7b9nFuPE}#5kX<Q~bHDy{;%&T$u?drqOYDyvKmW1ggr}=}A0PT& zC}E07l8AMduLmMo{pj+AQy=0~M5M@MfM(>aR%?bi!KrHPvG|E6pF^Q68b1ZWBuL4Y zm#?43i!;Pg6LNaJ9`E=2Wd>|kvM_3Q1?p13O^XzhjFFGRj4?JFhG991qBSC=f;veO za#=`Yfu59-h)mN$lHm(OmaShQnG&oAI8zbcZns_E_c`n;#$K2V;%Guj3dM8IPD8D) ztWvF3*<diRzVpyQmmfOF-AOuEuBPJ3Rgr={WKO8t?ONaU+VLQG<t0DZP7ih9i*JX~ z4;SMYwny$A4x6O!Nti#(eLa5j{eFMxmds4~fk&8g_JcipX#DC?Kd>YOwOS22oz8k> z(*y>!&3&-H?&NQC@>meuXpa-xU(e$b$|YtMm$WvLAzhY#S+U)VjA8z;=fTc_JSFex zQ~&1Yc=*+i!{H<y+gRI(+`P6fn+C``^reGI=w4j5lfV+9J}w6y60Dc2Q67SVpMJC9 zx)dYZ=|BODER=s`3<{KvXB#f320H|b-;sr+av26xk^AA&pGiVVaVt5=NCzxI@vCDf zFCECz+HK8exO?&#Z0Ryem_;mTSSSx_i7c&LcHvSI@7v3qNlB4pl+h_)fd$Ayx}KWV z-pWG1{FcT?=RK9QPQ2Ay*-Yp2GnGoY1dJ-a#Uqu4blNeiy_JRjy_RO5eK{N~-4t8C zz^CV;!AzMk+wF&$15H0$$I!*g@x*}r<FBO1K1czpy`*YymW~I#V^lCp$5hW@lVEN? z?kXLOPAI!zD_VorqOoC&JKGOrnMo=7Qbs`-?9PV2CnJZ}q_K`6y@eIXQuJ5;`<gNL zbyDCw%wUR0)5uv}X?f9V>$@NbQY53+(>06^YWuJ~{rn4`yi=|`^`hhOGE5O!mag?X z|9t=V@9&;X)AWCwx`k~`yM_|oEV}IgTIx~Pb!$QhDh*>XhVxR0O>><pj3{R$#~#ey zkWsJrV2d$WJ4mKgsZ^HmINwuqB&GjC*oeR^wwmX8GkClnBg8pZy7&Nns2n?7qFkbk zdeSjtP@1Hv;qw(CT!TnZR#s%N3G@FD8(AtG_4-7@N~Mxoe5=ExA(uE-&op&$PG4(s nL@2G->q9)o6A|_2g9Nt$NP)epgw?4R00000NkvXXu0mjf@U<`I diff --git a/OsmAnd/res/drawable-hdpi/map_transport_stop_small.png b/OsmAnd/res/drawable-hdpi/map_transport_stop_small.png deleted file mode 100644 index b7988c4652e6aaf287e72d861fa6c2e0a63195d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1429 zcmbVMeN5bB9PY+~h$3We;X@;}8xEHB`f(q$2RCGQhj+MR2!u}|_S*N33U@u)vOCUY z$|fj6SSBM2ESSM`j_ANlVR5*jF}k_vG6lvan@&+7OAv`{gc+GV;LtzF{;)~=zHj?H zzu)uwYD0F`GZEo&;SdBxSS_X;WsMBnVWG-1<w|R&vc$^fLOEA($X-SSP&y~r0c>?K zPLKl_uBPfMkP1N|yZO9AxzM&#&k8OT6Tql^E|0>7pwu*<hhZy#4BLT|cN>uDfk6c3 zIRjFlwc$385tQ>5zX)>uS$V9#f~7emZ9AOm(<=sCKxSZ{tI{p$eFkLFu3p&(USkNn z2$3rc$daf+TQ+PIL;!15I+P^{0#2q?gqBj1+HEk26Iu+XF#<<%LQmj&5{H*BMDZqa z4t<U(W7(H-G9cx$?9pSG*Xvbz)ha=BVgyao7*1j&i7E(Gs&UJV4|PkMf)-3bVnyB~ z^MV@=SY+%%wQN8XrAr~WJT}{kVYjrLC?#c>kMUrH3ddZoKwOJxNzMWP%2*XG<<)oq zmIEZAT4a@aI5q{zO78COC;(K{=y!>{QWU1rB(T*k;Fhf>1EPFUaXhD|C>&R7wG>KF z6oG1S4T0KeR)<nL4mfa<rdf^&+F6Z{<FrXbYjKm=NE3uvOA(~TOyXuzYYdb{7vx&q zlFYbS5cJI}zL&U~jQeu+MiDTwAm#}|Wv~mf%LQ4G$^{Q>G%i*hPAuTvoZyv`0%cl? z+5|*?H{dcv!38hoS<kPc!S2uy$$(I!ti$d=?UaT^X-;V%I+>$!2gRzB)k^$JeD43| z4^u>8foAzn^8{Zh9U0iJjDm7l87AOXCP-99<rea@4uaP7SxxDAzVF}9EqQkBb5Uj9 zlF<reE7-wA$A70<XFj{-@AgR|+~0Wg{ABcOa+7~5A-(H?cOG6}mwB?U)LS}wW2mX= z)S+D?wFf%X6MLMFb8XdCX@?u}4`Q!<%|u3a=pv&aWX+uJ)6In+Ij^4%v%Cpye;T@( z5Wil2CHyiJI)63hU=7mz*S?{K`H{1w0(@|zFUfH&qqLyn@PWDyC0qCK%}ZO3?vD)H zurdC@yXRYm+D?u)emwkJv7aw3vVgdm?%1)ZM|v%_JM(*@du&Gc=QmWxF{-ORI=T6d zvo@yV`5qmx_6`o5IrC)fPZwU@`o{GQkJ>v&Gk>o~=6soteKF%-+u-`FWl#5@<QV-W zCZy<(#+PP|NhxpFQ75WTkXOo!7cRYir)u)GKNB0SPRwjhxhQl}`Mpz5nEU<hWBmgW z&Vf*#jlA7lJn-V_x9rC*Oy$$ZyGI`Hi<q9vjoDV#8lTx|iMwTQVY`0x%yhYK=UL|y zzf3za_f5{iY}D}HV|z=o$o(PX<LJu?^G_l53+>+)|5{{Loys3q6?|f#FCUtSi+Cub m|DJ}qM~)5Neec}580g(27pH${D{Bq>D6Qr!Q_qeU_Wc8eQUp~1 diff --git a/OsmAnd/res/drawable-hdpi/map_transport_stop_tram.png b/OsmAnd/res/drawable-hdpi/map_transport_stop_tram.png deleted file mode 100644 index 9eeb78c2589b3218b413c8100778ef043cec8b0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1183 zcmV;Q1YrA#P)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ00009a7bBm000o2 z000o20Vd5lGynhq0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH1T;xRK~#7F%~;Kg z97Pm=RsA`$nVrd)tVCB`WE7kn#7iy#UGSio+(L*11dl;;)SKe!Q4uf6Um${u3Ze!* zc@PoFLGTa+6+&_dLq29_c4l{by1S<GUd>deW;3%}J)uK>P*iojS5?1$?^V6726)84 z9#Fm;GUph%yMvn#YinzKb#>Lnrr&5Zf^qF*t=cOqD`wyB66iA4(`7=g$2OZy4{LYK zA$tjC)Fkkazp?%ycY}AZs|tlecBM$Z`u)=B_wXUcB1}RKu|Ixt{d3O4bJc@S416z? zP#}^dVx5f}fk?JK{p07epI}!+q{w7|W^`Mv)&k?f*=p@b{N(ac6w18ulM_sWlx$<; z#yNcWj5umSyw~fw{eHj9fGtWEM(wUZT?)9ONHNJ6`6wJR#umdcEJsnaO{7#%CrLss z3#l#8lTs3qA}u5tzAy}jqbDR&f>D4o72)l6+wpzhg@=lX7bb%!E}BH%^F!gA3zfxb z{io0OHX%RM`ifAsT4g&sJCGOO{SptTK3r$~<zt@r+vOy=)s{n;4>BXv?RH@veEriv z5qk4v5ZvC7!}Uvp!Oc5!5z4&d!j$8CFDyOA`1!X=;R_AtzL>lC@qq)n{m=g*z3}Bu zWJ|DCt3jvJxp!=1P}_`yS!8yDbVwI0Kx-oz;=!_97RRy8Sg;{8k1mWnCFk1e6wEq) zW`W}B)a!l#Igwe&)@4P2yhA%3OhUFUD+-uG)aK&wh+vei#^(^^-1^Oi<4}z3rvo`K zwosNj801JDw0m;ypglqHJGPKiF2jJzGae{Ky!%nVKTA$B(g90Q{OTCWQU|iMc3bl~ z*Ew?nX1eUmi6F>hLBm2>P)lTK<uW>h4jmjN(^)zsJ6z{XC*S=*7Sj3D%=T6mq66{r z-y%8oqT~JeYaDNF%ZYKG$Kcd!e(=|oH2wFg5H@p?h4iswW_#<PUU`Z;MC93JXX>$$ z;1}@n5r^9nGS5KM&sG*%C^NQHALYQK&(Dq%)M1_rEJ^L=#cVGr+h-G^*{m!?mf0_l zJqXOyQRqEvFHHUX&|q{!DfmV<T4%HtwGCrP(`7>`MPJG&2m^QslmL1%;<P5U%@`tf z0$Gaw=CyAbbKWKe*A3_WShqr&Mtp0t<waYq?}H#nk&IeT=P<gc9m4X=ORs$Ke!24W ztDL)KC=kP8y4~;m_rsMxKe(8t>2>V7gJoO0hQ7`g(QQj;smC41sR<z{HB7`9_DeDS zXi<p~<&5N5gIOCgsudqBF$QY~$+Rk!%1yk^_f#KA>Aw&bB0v|vn&){7c)gw=<hriX z#R>GKa^iA{a)~mkNym&qX_BUb^D9EQ29cmsS&_ja%>P4dY^iWuySl$rDyhY1T_z2= x#I~B#)WtsitjQ6fv|g_d@ET7<)SnL$+yy!r(g+l=;Y0uc002ovPDHLkV1j7KFY^EZ diff --git a/OsmAnd/res/drawable-hdpi/map_white_shield.png b/OsmAnd/res/drawable-hdpi/map_white_shield.png deleted file mode 100644 index 382d257cbc5f5e2ea93386a6cd4e97bbec7a3634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2927 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 diff --git a/OsmAnd/res/drawable-hdpi/map_world_globe_dark.png b/OsmAnd/res/drawable-hdpi/map_world_globe_dark.png deleted file mode 100644 index 0acdc07e7ae4f40005fe9f98a1b2ddbf774d304e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1585 zcmbVMeM}Q)7%w11MZl3R5lr+vm8tW3*X!q<6mn~eRBS1=N|_pW?Y%&Q?UlR3R!}3= znTTR^lF`f!0SAh@DNLMEGSCg2#Elv81E&r%r_MRQb?Tzo6{*`F#y@t+-TOZ8`~04d z-}5}T-fEehFgkU#L?THrWgBebIwky$j1#|CB%zSFqzFcbFpn)1{4@t76vH|JWb)8O zzy@e$dFcs|E|J76bK4z)!#tOCu^t&6){zA~J`pXEq-O?vw5tRNkP{TSy*l{Lkxm$L zGdeh5WyZ`tJt%f(mvdlVxy9}(FL4nJoS6Zo2T0L?2M9D2@GSN6WIzWG*(Jq&_!xzu zAr+xS2fqx;VYWhgmIIJVrbb+tTnT9inOvpT5Sp0~F3KpTMR5$l2vVgWF&r9xV9^`L z6p}VW*03*8(!s@o;3HAg@Au363K`24p>l#CPz*<L91%4Tez{km1BjQO9I;>kyo+=D z1UKu2!WL;KTPEmWG18YQczkB_E5lxXm?)7lG(h`MxeP-+o^W16+Pq)`|Az5eZQj1z z2T&W}*)q;0)}wH81T1p*W=CN~F&Z+LbBjfxml{}CnFn|UlR*cIH!{Y}kV+N9IGt)W zf~(a^gus*pLJ$m&sDT`)Tuvn@bTSb;ufu0)^_U_HCn&8(A(tDKT3n^lD%4pjHLlVd zjEV@><mCn0>jDwqZqfHJR{KUQspkMKu$-M`mqxn4TFeS8U(EU-y?&_b(6oHFmtp<< z^l+J8W^DkRdl_J|IMxFV@l3j36N6F(aDtJm5TIsUNMSgCtwu{DT1Mm409qjz34n+3 z%>U&N6@x;<&GMh-i5!U?8Q#7c1yOi4Ou#En5GRfbUU#uwB8kp387O<;!mZGe9KBrH z^YewOp!99&cgG=8yTKw$oN=SD)SvuL_YYJ~cek;resFLQYCJR}JGS)ky`(3pdpr%( zM%$L0Lw)PU@~6{hEW_@ud3Y`DX*qZMgeh2eJ+`-HZ8TWWYq6eh%pEaiHT6^c1qx}` z1!wu<Y=h%E##jHiB75t!P)tg0C$lTp?w_z&z61JmpjKIZW#+Evz3*2&sYzehB>!SW z>!ymt1qE?i2dTg}dy<=yYaU+gRaT!KnfT$s&s*yAX3Np~`THM#eAhBJ-`an)GP5i8 z#)Hzzn4_n5kilyS#?abL<mTU=^=uebHLfRR9<_1QB#Y4=T$j+@Q8041bg%N**BdGZ zHdC9679Km?efB}z!RObcv1R<Dn!eRkWAaJI?S`Eh{0j$uxyA$KMQ`77>ST58{HNB+ ziq=o+rmmu_q4E3b?@t=w(z>GAei)lrFujeTE<Iecq|MTR<Q?1B=RaYHUtIbqvB7-6 z-a5rH|L~z_?Kj^&a`k4+N0oC8Eps~iKJD!aHA88Nr_K5iNtFvPb$!nb&OEcN>rh{2 zN9lgc#{0enoU<d|)OaWLuZp*n*>Nk+n9i+FccgXhj>@?>t0XfqD)sl{Tc&(l64kfv z@5{;OudMpzkLHO{bLyV7q4#!X^sdZM#;zPlD_%AI)~JH473^7fOHTRJIrq1BNq2E$ zna{57*+dchqk6_9#aNC*r*<w%s%o{>ElO#xiP<)x>DT`JlDhit=hn5d)NwlL)tfCy sZf(MK>0MiMZGt-Z0^R%Kz>0WG(%)8Gl=D?ie)uPDGFl8@zV|`!AHw%dKL7v# diff --git a/OsmAnd/res/drawable-mdpi/map_marker_point_14dp.png b/OsmAnd/res/drawable-mdpi/ic_marker_point_14dp.png similarity index 100% rename from OsmAnd/res/drawable-mdpi/map_marker_point_14dp.png rename to OsmAnd/res/drawable-mdpi/ic_marker_point_14dp.png diff --git a/OsmAnd/res/drawable-mdpi/ic_note_audio.png b/OsmAnd/res/drawable-mdpi/ic_note_audio.png deleted file mode 100644 index c74bbab0e1af7ad5032f93cb13add66e06a41ab4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2579 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 U0_{1O)4yqKkM*pJjIgBt0G|0iF8}}l diff --git a/OsmAnd/res/drawable-mdpi/ic_note_photo.png b/OsmAnd/res/drawable-mdpi/ic_note_photo.png deleted file mode 100644 index a6f06ef560393df301a44769b4475bdb7e2ddd9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2594 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 diff --git a/OsmAnd/res/drawable-mdpi/ic_note_small.png b/OsmAnd/res/drawable-mdpi/ic_note_small.png deleted file mode 100644 index 48e778db2d9bafbbb58388c4a50d3ca69fcc9ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1715 zcmbVNX;2eq7!HUa=R`y+Ds~Cf3pd%^*)0)5LLg`W6Ohp2kz_X{V6rh;NC4v~qtpvT zU?Nx*Z7U9Ar4^Zq2MQu$2M1cQIyhpXC|X3R9q+Rn1lu2uKe{u!-}ips^St*vyCpd> z&fjN-4~0VUm&HpI<Qn99CwY?J;w>Tm<PuE8st6^nBW!95MiHU71_NY9btb03)M(zC zpRq^^WkRkYMMbFOOAsw?q^n&Ry4`3d*%V4-l-;b>W@7}P!7>ddA#LQ;SsGwKg|sxT z9Fm*GnBEYdZ^4xLi7DFrY%Pq^q80&>c7#-5#0WKDH?B5W5xbB!suv;mu44ub7=;ko zLfSj0RPtm%j9V~(OXq=Fh{*x?FrCTe@nQZ#fJMp-NWfr0AOs^^HUhDLv4=)lv!FUe zA(4*RA|)YBPY`B=!LZqEbQ_zFTQV6;7={@Ti@{=nBm%VNnFzHVG+D#OHApb4)?zRd z2HXU=G^#at4k4tGp1upgXqL<0D>hlj5=EwrVON_OOgh9c8eMUXqOF7i``3*RqOB=; zW{jc0tay$^OV&ddHclpU_i;lmAn6T~WHFFMQLmQZ+8iThB4iRFjl7|w1{4tpAc)Q7 z3P7enzy!GvhY4z6Ee{m%P)rB0U|5T)$Mt-O&yt8mOcswVkZ@ooGnN|@3rQrgQYlv; z<;QTu(s8cLWF^!lEjDi3K-wPTvOda1#1>3V;Fc5|Up?Lh$$Ff?t$N%Hh{dB-2j-<2 zOek)%&UcmRUDOiHV#vi%sRcIzqj^RQAMinqaX1=`2ZK6{uLDt-j9<-TaX}6fW9v9P z2xY=L+87`GzxiX3PBC1~@}K4zKO#HQwS7Mdr0{;2FcUdJ7IIY19xH|@6!&hKM3iE` z-jLdn6(kC}KQv@IlzFmzLvv+Im5e%Pi`0B@RiTebOZ9(FX=(D^WvYKNQ*t(X`CTu) z-}!^-&t|U;pUw$ocJKHzE+;kburg$8fXD+BJWB3<da3Eoz5*{p+^5So<X0Aoy+TB2 z#r_C1-FtXm%){Wth1x(~^Mc7W>nD}QPg3~w?e?PwI9sN!*Cr-5M6f?Gg|?sAxa1hP zqHp8cfirJuD;$qY*FI}>OLGI9QDwEkLuKFlOt0&0JhQ4~2e|isZVz#)b>@TQef`dn zhy0oMu7B~vp>oE`UFX`9X1C;g3YC86w>U<r<9VRlo=BeFJU86dz(x`Z7j9eUscx7O zd$i_Wk9|Ne#7pX1!KoA%U$FiCz>(zKGvRPgm9l(p#GS6*>guXuW#{R=f)ek6iqK+q z-NOpj&}ZHoPF}8Ew)o|(f;83d1qsKGzue?hWzC(@ceSpwcahLBSfM=fBJ?12GY4=t zPmSzkT?h`V!O~A5_1)L9BQ}*3X{Pv|cyL?VwC`0ynTOWzz^nbQGah^1Xs@W3Is|#X z^75&J8AVx|yMxmY410+-XO{YwM<Oxt=(5N*?xCQYmo;d*F^96f{;=&^H#f~z;?mAP z6m^x{q&-W6yoGSr6}vcOZvU|+0Lm(9rFuU8rC$`75wDlkPK%r1tKt2&lvA-LVUwX1 zI$iVS)o8Zg#pF9*6)A%*9T-V3dIb=6YNT?zqp#KBuc&YN{K(hM66%G%z`y+T&M05B zY7X_qI&gTzzrAbM$a>>Xx6V^DQbH*!!y9{U)T9>dWKN^3Nti$Jb*)oeI{BNn=xNVy z3YK*A+MnNEaK5N5W1wts)}FV){5XD<u}l2piE3b046!>rH_#(2e8zS(dQMzdc}L-9 zdrDUF(ODU)fFo<+#yV9%$ggsJGjjK|dq;muwNsquNWJwa<xQ^R^|gsFlis+m^Mxqx WjTf%~OLID1zY$q%qNFZnRpCE9LxeE^ diff --git a/OsmAnd/res/drawable-mdpi/ic_note_video.png b/OsmAnd/res/drawable-mdpi/ic_note_video.png deleted file mode 100644 index f0429b740c5ae63f94c5361f0ea909df67b31223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2476 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 W&sK~%w52TnKRMA{sTKBtasL4aVi*np diff --git a/OsmAnd/res/drawable-mdpi/map_pin_avoid_road.png b/OsmAnd/res/drawable-mdpi/ic_pin_avoid_road.png similarity index 100% rename from OsmAnd/res/drawable-mdpi/map_pin_avoid_road.png rename to OsmAnd/res/drawable-mdpi/ic_pin_avoid_road.png diff --git a/OsmAnd/res/drawable-mdpi/map_shield_marker_point_color.png b/OsmAnd/res/drawable-mdpi/ic_shield_marker_point_color.png similarity index 100% rename from OsmAnd/res/drawable-mdpi/map_shield_marker_point_color.png rename to OsmAnd/res/drawable-mdpi/ic_shield_marker_point_color.png diff --git a/OsmAnd/res/drawable-mdpi/map_shield_marker_point_shadow.png b/OsmAnd/res/drawable-mdpi/ic_shield_marker_point_shadow.png similarity index 100% rename from OsmAnd/res/drawable-mdpi/map_shield_marker_point_shadow.png rename to OsmAnd/res/drawable-mdpi/ic_shield_marker_point_shadow.png diff --git a/OsmAnd/res/drawable-mdpi/map_shield_marker_point_stroke.png b/OsmAnd/res/drawable-mdpi/ic_shield_marker_point_stroke.png similarity index 100% rename from OsmAnd/res/drawable-mdpi/map_shield_marker_point_stroke.png rename to OsmAnd/res/drawable-mdpi/ic_shield_marker_point_stroke.png diff --git a/OsmAnd/res/drawable-mdpi/ic_white_orange_poi_shield.png b/OsmAnd/res/drawable-mdpi/ic_white_orange_poi_shield.png deleted file mode 100644 index b953bd5a383dd81680873cc5622bb25ba6649d86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2414 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 HQR#mI#N*&w diff --git a/OsmAnd/res/drawable-mdpi/ic_white_orange_poi_shield_small.png b/OsmAnd/res/drawable-mdpi/ic_white_orange_poi_shield_small.png deleted file mode 100644 index c832fda2883f3c76a474bc0e29a910de70165f89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1742 zcmbVNX;2eq7>>YDKv1!YSI{-0$dT-3NkTS5N+2OZB^)6F+7S)O1_DVo>@FlkZJ|{W z&@$oy;!W|u3RO{5(15_GR9cTxTV$*Q)(Zgzi+GLg2Eq1+<B#sl?)Sal_dM_Y&gREN zEpl_2=|ZE?+#<pya%!Dodz~Dq@1}fDH)@$dh9#15n1(bdag-LK#*$GWLa$6g<)~7f zozaR0(P;KrT16t6D2o)RFg;6Y!?4VHBgLlCf`ZLPr79gIfn+pAYY;M?)Hg5yty;)P z;L0GGQH-W)!!0-(XNgj%Ea@sl%?SPs2r>&O1$vZJ0%pC=KnTo2#)w`4wYMFE3}6I8 zrVAPGoJy3%0AdVB0WOQjR6%SG5QwnYTwWj&=nue@3_^SmhL{i{;06dF7#MvRlr>zf z5y&OdQCpNGWTcX$Q2>G_lZj;tU}1O)$VLzZgkTVcnG}LaWE)7OnQ0*AjcJgegbLRh zNiAjoY#NoxSSBfCP@cXEL2s1F-YYf`qluzY2AY*dkj;WXz1|kr2$~?}=)Z1!5KSnu zjVLHb2`m#=QT5Qw8zWP>`?w(+kn%<ljcci*D0LD{m8nM!WQ0V>pl(=dty;k6Lr?&h z%V)Crd^VE{aoEgcM8#wBd1_Px!3d&KE64PFh!0D|A#9i%%9n5uHam<P8U{%uVNxlV zFAWUkh^1rP2m?VX4JvfZwwAIz$_@D_S0KhwC5hn*4AYHuK};$}Vnixt1jOQzssjrX zv<5Y1B7AIRdKa|>#kE<eT8d+OU?k51?FW2Nq8v^#%0rkMG*H7-BUJoK9?WHO*l2); z!-LdpM8g>6tN(BQK*}l5)-3;Np0OjUBW>IFqd*DohY2-M6NFQvf<*opMWfmEM@T{x z=36J1Tuq<Co)QJu)HKxJ&ic*JVW>KwC}cRvE1F!As+`jPrd_C+?EofO`tJai$<agQ z-qF6>EV_xyT9S`vc6Q(Fd%LH#&1(QHtIDX@urIf$%`5xPxpTwk1E+fmH#n{_x;411 zcGx__?)v37lU~HG9qfp4h+W5TbaAhv%@R%Z^09ZS*tn`W<|13v)6}YabieIsU#_Bp zzG?dW>>Nw)mErBfmW=EN1NB9(zc|+J$nTkF?VlT~b{5@#JCr{w<r4htkayn8%c-$m zui)Ig-5Rli=l8JrkmrfI>!mBqwN|GqZlZ+ExY%8~HD!&6XZjL89mCp7EM8YJZ799= zddKnn<(cIzLxeaxNZ~*8XlEVXop^LGtE#rTn%;Qr{7z(>XM<q5Inm0$=h~h23;F!8 z&q8{4lgJ9}f_r=GW6!L%@(Xsw-^EXb?8V~yq~P}T1-m0fuYT@*ar;rgx=MN7ZFp&C zz_CdVgE?Jy`K41!e`4xZwL~U*bPbgF{dypYE|V>|xl({vUc=<NC$W<+*bzsIhlz{O zV*5xR@UI7lBg^WPjc5;Jy>52&zE>>wt*SYNE0z>=$sBIvcuLkbW++VM@%wU`?V#o( z9=pp5{V!~GU(i0WHPyL|-s9{(Jj9Fxy(?=hB|F&NXY6XB2{m;8@ZhsoV?TXE2(48m z<(1pE_=VMX!av+&-a^}^mIArrq|f06&+KOR*G{fn*12lG^Xr(r5LbGMepAWd>EepV z2V_0T<Kk&869L*r_Mb0Z_1y1ThhKNJZAn=1Bv)sxEEsU@V@>BhY%!iFP@O%?Pcs#_ zWFcqlM8%gsVO+I85g&9)4t`r@;LHhH6Ss7GSo`<s;_)%iH-o|Uk9dXmHJ;NJLBlh; zSf(J!ktl!bA8iw=Pvtp!?eIN+FwJAn$xHhkhRVb<%bLTl(QkNgK7oDLKAk&m=cEVo zQzsO?ZKpT&`5ips{rq&_;|AXEUk#3bF}IN>ke7@v@?~wb{b3@)q9oO!E5H5+Jd~VH diff --git a/OsmAnd/res/drawable-mdpi/map_white_shield_small.png b/OsmAnd/res/drawable-mdpi/ic_white_shield_small.png similarity index 100% rename from OsmAnd/res/drawable-mdpi/map_white_shield_small.png rename to OsmAnd/res/drawable-mdpi/ic_white_shield_small.png diff --git a/OsmAnd/res/drawable-mdpi/map_osm_resolved.png b/OsmAnd/res/drawable-mdpi/map_osm_resolved.png deleted file mode 100644 index 5d3e53b875fc58c2bc1d7e2b9e0ceb9d255b0b89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2681 zcmbVOdpMM78z09e#YWmvTTSB-ne&+A8pm-MWiUph$Q<5bmYH{&nL-rCAtJ3pC#Q(g zRT80Hp@YgPsnrr?oyD$A+C|yc_p0=Lf9$n?eD8I=@AKTxbN}x9cb~57P4Q&A=<2N3 zfx%$9ELSE6TFn+;xHj~?#27Dw79*vTpVAu?DZ_bk0A?=)`2d0?;ROR6fG3RH*9=(0 zU>XO+TtB6s`wqGQlwf#^I+zHF3_`<T*0vEco*)!ZBKSbCSjs@Yu5Caf#6kwrm*kFf zmpK9<V%LLm!22MZD>xV`pb3$-HVEqoI%GfsD0zqoNtjeYk6<7_+NDGL#bYcI@liz? z%0PZ1<>&5+a0KN5f`lQX1vtDFf<nXKNn{F*f<h1=8H=N02{<&4Mkf*JI0EAHgM_@v zg(5nK>HOIjBr%X7N~MgB#fFE6W5S6TP#%oM(`Ym-j({Z)(2xdN5h+#jBG6KW@sb55 zpb*H#GNl-lA{H(3_~3pe0|_zx6oN$N?*7HFRPi}cP|C0oJQ)^`!C@tm#kf9dE0i4I zzcl_)TfvQ#0ay;80QbuUP(4J(OJFE>|L$l}5n@C4kc*+B@WPm&V7~;ADp^bh61u?% z#X>rjio+2}Bq|zDrQ*>foE09;rwPbtDp?4Ka0D7nAmlCC`6oOHPi9ic_EajB;*7^T zksO%zWE#~8XHO;*><P|ROIVgvq2x&gz>;q<<oh$0@~>FBqa5HVK{*!$!<M?hGXzwE ziV#qSaCH1wb%eRESSkd=6&8zS`V=)2kc$rhLT5QBL43?JUHlImL_!{qY$bv^hD-v` zM7|XTO(hY9Xo83g<wAt#QAJP;pYX!}H-A`&6n3#${-=4Cj-ZZQ+<qAaNcb{LfE1b_ zIW#IUE%{S0nD!YK)1DjA)8@B3jO(<{hB#Icbzt_7u-bs?tm>!!{vmP2R}D1zoy!h& zH12*nb!ot?fVt)VtJJTYH+v#VOgZ2+=ammmulnV7Q&rs8oMLpKorOeP^YTD#FQayh zFw`bz)AD|oZWpHz-w~rkV{Hq$3;FNB*fTL2=}(@Q3v#+fXDjjylxc_+=59^+!9;Bl zKG+?n9BzAZwvr+|Aw9vf*`UyZ|8DP)!&2YUXA-K{GjmtZ^DOJKM7ndiYM0%vr{@uS z%*-jjjzuS8*V^7soIBRh`m@?5l-4R&BQE^m^`vDTnNNzo3JrePu$ckuc(r`mw?*?5 zIc_~UR-vsO_FZA@iv(tP?p709-y4aRqvsfhk8g3~cTTPzQkk2h9&%W?B&qCj;nC6r zq{Y5s*A&xT=)#SuxygsKCRlnWO^+@oNL0j%I1L4CWXtf1`oQ-`J;(d7r{;#7zFPBg zP?Me8I?(A8kgVt2%CFgK@~88J-SDf9eFS&Y({0PrADy>p*BnXQR9!BNd3Qt}FfclJ zB>uzS1`Df%=kbSHuE(i~XY^O=?rKOe$uO@i!sJ_O>GTuJNQ2YD;6ZgSN=3j4BLjtc zrJdKaNb^gc+n;Bs++wKQx(lbEzHNIk4*!Kw+fC!UosO*~y5wtRc)U}uPuBB1eJ%W| zN8pYelm4_lqX~}+9qw@R4ZpKkuq!*!rEMAC5Zq-=9xET>sB)^G?S5rMEcd$i41U~% z{jj~8n<7_>ADvu1K7YS=`?(SN!f24sR8N3)w>?`Ue{#0X8N=qfycd*brs`J(wrZzW zv05v<{+K~$<xOw?({~P(OWD^uYhpKQd>tabVslORvh6E<^gucI)9ovjSs6R~pLJ}K zm$h8@-l_@38F~?|W7KqS&M0!?#jw`JHzQ%U2}zkNrVOgQ`@XL^m!s8&;u~8_&60*5 zB?O<dDX}n1N^_fJpH>Zjz-s0xn=u=8JnJ?C&CzPJe-=&Z@)o|c=vv<rKV4`o!C>N- z(Yej~l**L1Z;G@Xhe;kMB2qqFxn9Ndu@5LH9-TZJ9cqCsV|EWu)rRZ)_a{&K--(=~ z=3O*6lyh7HhDa{W>})n3ca`s*t!)_XO`TRD_l(1}OH4&-@piB^SKuc*4~`WU^Ghvz zZyniRx!0<igqro4Hy-x_Lc7}A4;S0!g4mYSDOAneZs!go7c~RZ2z=vu2Y7JNOP_DI zrC(bR4V4t?RvhZneNj+%9(~K<GWr|uqEbn2E#^b+oJ(`nai`3+BjY#va8Wzb<TGxs z3D;Kq*nPY!y7Q(@IlDw*JscF}-P_|MKNPfQ<Kx)(iV3V1zA`-Lx*qY|>UCysIy1|R zP^2}_-{)D*m*u7XWsRsn&Wh(wmK=+FIP!SI@q~NR6NAgq*?mucc*_TGf!n&~+u4y` zd2C;`jb2;tZu_0WN!r@A=HlLWqgi#nF-8m`^Ug*|SU?xIdtFZF(8Nqxz}l$6y5=an zrBPtQMdH)g^hSFZR*|pAgqC)R{q_T#jHK%Dx+focg&v0A3t08vOxFMPb8+kHmnqS& z0pq*d9dsu4&$+FXG&?>p4XJrnY0fizJX1{n`Aul<w?CHMUsxCOdSc$U-Q`=eF+s8g zR^rMCPU_9xeztyjw#KRCC_m0L`?<I*yP<K)E?~#0#t^@b_cuxgG-~n?7;!>d<JAlI zG5Bq6$56>9*L~P+tjb0^aNqp$)+ypuQ4hZ5r;LI&xFInqTS)4<zy2{9Mez0u%5;ib z<Kh$n_eqPP{CFyXArPG?4Avk|sx>)0@-cltwVg#76Yr%KFmJCM@~^_~mrY-Mqqmyd zqnT8xcJ6QnGrNnyD?MwnN%v-K3d;PlT1j9-Y5r!Kb%*n&i#vkOnqG~*O{hK=`|H$| zZ1Sp;o<;K=O=%kvgMZk!>+d7+1)FpWHW(k#o;fKLKGiIydsE3C#o9j^rizGtS@r%+ z<-aEH_0EXRI-_rkdoFqmCycYy4e#jRRGogEJ`k^gZVY5o<*m0ON7C-X-LJcn6+Ho% z2a!z;@Rj{{q~B~Ud49XPPL@8bF=5y597MXMYk8x-^ZdX)jjJUWek%|SXTLSq*Q}nl zFEfhVr;|ceF%2CtIgP0HZfo^DvEu$Xoy_y<Dw)pBs^r6{1N`4w=h6CYrI!X{ET*jX zB8SnJJ+TJ!_=7DsyjO6zXF`pR);xQd1DN02sq*h2bnej!&p}T|7bMm$94dVqxAw@w anjqN0=3BfLOkV%u&mhZ*%`9^WQvC-SAafZ2 diff --git a/OsmAnd/res/drawable-mdpi/map_osm_resolved_small.png b/OsmAnd/res/drawable-mdpi/map_osm_resolved_small.png deleted file mode 100644 index 0ba3a764e00554b5b0331814a5b20ca5d2b60c3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1732 zcmbVNc~BE)6psjs3W7>iMB62nOGx%03E7l@IS57wq!5KsiZ00l3rRL)7ZUKGBDP@F z;!%}Bv0fFSh(}cvuYrn!h@wnAP;_dkMHH-ppw><|2)2JX{?VP;{l52o@Ar=1dvCT- z9To08cG_4Li{-4GBadNLH{0ttiutZBoZ-wY?sQl@9ZM$D7R-#ZBsww)2b2aZ1&_fo zU3NwT9?W8m%px@Lbi683q$Lep%%;P&8cYnD#R?9!nlNoTP6J7J3Sktpduq<I0YWEc z$MIE=$|S>6i8(oDJT@mvqs>XzqB?eH2oP))F$N4cjR97J-bjh8V)me25wo`)gKS_> zg-#c<-v$-0QUfy5j01eGfTM+A9uS0bVZI;;4GI7dMg}1vh(H_&74ZW_5CRN6Y{r{e zmn@2rD~5bAl9-)J(<TuJS}Yc>C6G&+Q$QF+Q4m5v1mQ3m94gyLV^)rlnmKGij#FAQ zVWJ7r2-qxQNn|E1W;2n#O~GJNsoohjQbR;Blz~>v1j1YhG#G4o4Qf+#4E}Ez@71O> z*(Mx}!6`D+tYzwvJaZV#aQ9(HHbo{HQM8$0ih}9oq&Cxl8)>Cn%w}%5IzlHB3Lz+v z&lhrFp%CWqAs)<0LbU>pP@uz;Ap}LWI&9d^`|vV>A`p=%WI_}Xz;GB}qENt69uJiZ z5NV)1NIHyF8YvnxYVl#;1mk-MEBzo=Bs1d}O`0_%sUPkFbt*}dR4Qo#WU|4k1HN&D zQAb)RKU<mJW-Z6fL>8`7m`MXL$g_xePYf7@1mXyaaQG-9<lrz5<6u074y_PL3e;g3 z2BXRBA-wMY@&__OfwpG(PxA~PF&$~!z8eKbcsESAk(nSfGb-shuIE`SyWf;@iN<>S zr+E?4u@bk^3r`FYE3Vn8rd(aUb#~-;)z{b7J7nywkNZ_>dHiOCKH;^;(?3TibT&HF z+dpWQ*GbpxS}eEg&1h?DztJ@P3g@~|QvkOp&$Ku6HV37gdA^<ULvx^!zpF<r_vm$G zSGY6*la{H&C)861#%!2I<lhaS$_|!)KVjosd)Lz^f~woMNu7Rph-|zS@zSBR<Kh0x z-Vde#8joF`iTp*apDgLQeb3YoHt@<7Q(WZTVzECvrara4wBb%w<c??2TV|CP`Oz-z zL{C9~Nrk@ed0OK_s;7rz2tALFZfV)GI=wc3oqlSA(K$}>aYCr2GW*B)7bT6Ex%O?% z#_ET5Gh2EG+|bXrc`w?%wqj}RtM=@!<=5i6^GaHrx48$0EQOEL9glIJgDV%z)3kXy z+pG5`+24-{7ly2!)I2$*;bcD^QXYO~SLM}CqTy&(hTT`sEaUp4=Ff`l)SrBm*X2J7 zC=@xC7yWWU2Fx+Fne{0bm)%Y1>`ZkR9IBkqRckdiReW>u!o=z|HRF%_s-p)IG5XXb zAJx5sm+)fmdi~~+-OHSSA}1j|54}GNU|E+mLQxXbi`!ick307$wB`|C6rl9l9XTUy z$>AQMmm76@-M19>H(uP~_PUASPgItU_jLdU>LAmM>1X!5@M5(})gK*u<0enL6cBdF zcON7$)O1{~aN@ald>OPdantDvJMZ99seKdqGQ0C4UU#$c)7}N(cAqTI?1kQP@%kg> z`PaAdHb;jmid^?iOw~*|Q8sy<V2g)K=Fx)ELlXa}mgp5<M0Fn?vD_!GY-d2{7{A%R zlBddiS73KRejij-Zf<^kHIXj8(SE-@tLnf@u(*H6AAe=mY`Sy!T470ToM6MM^_zB{ z``JG(S>rsn)f3OHJW>`>wZ9~+wJ&y2Ue0CAv7|1)W%}F<0X(9l?D<&1*WtNo<KH~- q-&^6+cl=4$S;5WRXJZEZ&aqaRs!!dWHh;eDzoHC_k{^&R&ie<}>6l#r diff --git a/OsmAnd/res/drawable-mdpi/map_osm_unresolved.png b/OsmAnd/res/drawable-mdpi/map_osm_unresolved.png deleted file mode 100644 index 02c0dbb338c4ca9a31a6ca05da777e94d722a916..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2644 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 diff --git a/OsmAnd/res/drawable-mdpi/map_osm_unresolved_small.png b/OsmAnd/res/drawable-mdpi/map_osm_unresolved_small.png deleted file mode 100644 index 865d16ee1430822c9e5e91d51be4a38d805e65ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1730 zcmbVNc~BE)6kidQ0m3oH3Z5a_a>!;k8xpdS5Cb6)Yk&rn;DKzC4Ma#bZWa=-Q%A5I z9YAYoJz%U>=s>Fuattjhaw)Z1a8yPS6{YGJ1srO<#pwpY_7BHDx-+}q_rCA_-tl|y z%@)VUMl)RJxdH&dP{hbo^vZO+E;H$GY4Jh^z4%g5YAS)yQ&x<`0jZAA;4Fm^OT$$- zrpwuU77qh}>Dh)vHKkUr5@`t|2Xp9fY(_JU27oY$&5UU?aEhhD(+nmt`_b`JY?eVM zW+(BLu+kifryF8&NjxDpHc^|Kp+$9UNjNLaCZY`(aSCJEjF~2j$R=h_*cH)x$1%ia zO{h>AV)omh)XI2PBthaVK1Tp*VQvU36y<RFf>1Oxn1#?X1PdVq24Pgh=ZRp1HTke< zZ=_ByQpx0#zGz9zPNyid2!gCuE62*?5M&y}MNt%j5ePv*S_8D?m?+E!nk-AEEXZ(+ zmNb|t17Tu0EMgiWixRWxNZ+PlG%J<w44W*IMA4K%Hp~ohIWS~2I`W#(wooek-!R^* zZAr{A<B$rs5Lu*_u7`ff6qx4j!;Tz^bTpzk(m)pl%ajq?EF*5B6f!ZJzTxN$I+0Ka z!#qA;2y%r&F35*NxS$5r3P7PihwEVkMYTF?%Fg@nkpejnk;;Wa6cKQ_QGBUf&W#8O zL1h9Yf+q`&n8GSd778<I@hRU1+V><j^n+MYB#C1bK_(JJ=2RENrxO%mNhi##$jFJR zvjUO~CLLk51Uky}HftG98nSVnoFt5_37$oU_r!p~2oFb41mvTL5X8A57>I??bZCW$ zhNr_YjEm~olX%_#<qx8Rf*j5ApXQl5qC3*DeK!iU@NSrJ6FosBJu3JNi5LK!h7>Ys zqU~Da>fVgmQs(~t{;G;Dlc5L%$G6q`<ZfD)*ZiP5&9kX6V#iQlzJFjud&Sm#N$eu= zlcNDM;;O5o*D=A5v;!f>ZwwFj^mq;i&-Ohebzb=VDqjDnB6RT8O*i@YZf$$Y#SX~r znIF03mRfgWR{i3GU-%cKwjFQ|c<O}!Gpc6pO9Yrm`;Dkob+dk{QwJ%JG8i{%z3cB| zVYQN&@|V>47Zr1{=dZ!)!n!$jqs66}N4Y2a!hhGSS=YKY$XF5_ytMB{j=i+(-Yow= zJ|RX%McvDn-xO5O_l%28>Bt6(7`00a>Qa%%+cNLAJd(7YXqo46<zew9yX-{2dzand ze0Z;fm;YKmeYJ;&X@lRLa}R~#a8i$Sc-ZvaxhHc5x2iU#c(_(JC;r?gE!q4-IaO62 zr2Nvov#Wj2i-v~Z1_n32+=o{zZV0}=Nl}vB0_1!C)VGCavFr|N-TKv`0Kc}|E(do` z6T~YzxMu=6%<I?s`)}!)#;hy~tYAVdqosdc^_e4G;pbKbuX$kA=Wl5DIa0EtyXoY~ zC`)JMxhAE1U*(ySlhNg_!!72|YIpvbdinABWoJ>jPqf#iy7_G*;xJ>A#>KnRtN2yp z&Yra{x2rZ+255JWk|Ws{!#^Du=~(e=<;repi;o1qI<5|M=kGdvX-rjJHoS&9lC8Pc z*eR`Z9`Vk*uga)NhW*s`jyq5N_e{rTCjE%1#oj~T;=_x>&+`wgT$r-t4yS0*T)2#1 zJhXmWit3bGk9RL}+BX4XGORtl{`(sTp0x`GS9R;UVs`mENvax74~-R-XRI$0T;6j} z76JHQiFe<REl4sf=#@4fmN4?HUIX^0{9{zl_qSeqmTJao3N9F3I8MIbEFgbJ3iZh! zuiRC;{g{1ZX>#b1x%;rM?Y8R)2S&|4+i$}dqcCuTGN3K(LXKNOXM==McysLT-qEo) l*`JSJnf5B~jZ>=|4AeB9#l05Q-*x;|6j8CVqY<fj{{Rcxm2Ln4 diff --git a/OsmAnd/res/drawable-mdpi/map_pin_destination.png b/OsmAnd/res/drawable-mdpi/map_pin_destination.png deleted file mode 100644 index bf1c5801e453b9ff2cd55805ab209c70d384aa67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2691 zcmbVOdpJ~iA0O+oJ8mJjBu(SexQsc>jJf2}Fhb238HI9bE@v3boG~*P5+#X5q_)gr zMOsOE3+2+<hl+GTC54i7v#(0nbkV-{sPw*n?6ZHo=XuWg{l357=kvXPpXcNR`1|N+ znrR{s2pvCPdLX>6f?xX|G~n-S`eP)#ER%bO$k~uUp2U%Y2pS*af+#-`CkhM%IsD}K zZqOBhP)!sDg~&sg3@Q&2IdT>-jtY?kW+M=;9tsJE7YoW!Trf%~c0*6L{)R>g`EKZ7 zA`@UryufIoZ;BLTr}zi)Qet@&KH9?_<*J~<3PhlsgHnj%#4@VF4gFa!72Yo#<It$j z5P7T{`ioN`%m9=ZBn44KM;9y)a3Y{c6h|kb3yDH<Ksm!Q4j|*40W3hF67f{P8TIu+ z!`7sH0X2}m?yD_WazjVU<q|3mmz0#`n1pwPq)|903Wb6LoN><1SQvqoC5z=81y(Gx zT+~1ZWjv`+A{Rnp)PhD17fO)3p<z$IgdmbIncozPWnU8orwpgyNN`S$08S)Yi0d<2 zCJzMv>&D-rWkJaj5Elr_padxou7|*KkqqbVpA9VlVQ;7`sSqv-CyoyB5=5X_?nie+ z!#9q6A)gA6d3*r{5MZ5n1OUr-B2cgt9>~XXo$x%+g(%=q1e`@Zf5-P+M|ANb<0;-` zJl)C3n?Rwh11NY3*?Aq_iADj)i(EgkOwJMWz(w0a*!EX0`5(DdFDb~8L((7!id*c0 zfM`e#$)X_%%FF9>)lryWp_mUP$!r(O^d)LKC>17x{B=@Dg!-Iks_<`oz>`QMK)@qn z$wUDW%Owy<SPmfIV_mpBE}6q~;c<y@3}5*C|2Ka)*eTpXv;0r<EFQrfxv>2<3b62P zm_RW+K~i{BdMZ?A5eSV+KRPW)G1L&Ul@%0h7%^AU43ISRj!E?a^d1%3#*23wl+jE! zTd5qFZMWG`?iagst}ngs1k||Xe2zOoxN>Mn8Nt01t&Fjs%Fy@bG#ENyv`PA=M~m_J z7w1|B0M)(t-M|lPLI=0cmesdS);9JG#X_Bwy;mC8dzW1je}B#WkO*Uhp<qHWOEEl5 zDF%y4FAo!aOpCuZ=xL?*VAsP|j8CrS&!Oz|ZFb7m6ZC|ZnWjO(3mdjZ@FAe6N>A&( z&;9XH)w93M)m1$r5wd$r)>3l#85?YNsf{2y^GW^p2JK@a1LBIsI_M%Zx~jQhj_MI& zUl4*uX9`ppE*i$GRbx+}m>>7_45t^@T{ypI=ggAAtG_q+qMAxubU^hp{jbun%4g?o z^~^WYbfaw>3v{P9dz$3k^j9%Y9?Oh$ZY0k0KV0Z~XJ1EHRos_hRe<>L;etqKxF$BK z%`~gq-KZkX=*J-ku}avL6T|m<q8b_+<fAvP`|{%=4C1xI?!WysV#m7Msi*eQXf(U` z7J}jXI?CY~KA>hEDL_OOc29`vBmXnk5&r33#IN3Js*^>-W@a_6hs*RBvv%d(<~#fy zZp{zHv2F;<_<}OlyPWy1f%kv3m^}stD+?kTBu0<NY3ij$y1|ExTn5C+{uw9Tml5`K zW#o@!rTp3#=J|)LGvc?pF|A`GL)g~i`x3nKGD%%4{#fR0BezJIDcv8(an-K5%&AgF z^PX%;>@1#a+b5~pRKE2)<OYIhFzm&(^I4VUYRR8;44!8ls)%Im&+9#&V(~U=Yt{I` z%>@6Byk^TX<N<MYt*)1XQ94zx&seG2`S!A@7mXB^T09tG#wG=cw4bO>E_Dy(`owc+ z$Gn1!0?@AAzjPZPO@C;rb#j0^rT;9Ewt1hHmKO36eS7=R!P@}6YtyLd{w&s;BOY64 zd^&ATZ_wFwvE+vDlM&`6nR{f+xk#)nR_EP^)VZ9?vkyw*mi51Jh<$j0rIuf!9GGIV z-H)4j2z9zPSN4RktwIi$THg`)T9qXXV(qHgviXJ*?BR$_S&Z#A;MjU}VXS_mZ2^ci z4zc(2d}f;+U+-<1*i7#b8vM(m?`iW%viF^zB0VCaMfuk9DFN58Y7}LlkF|?eA?JeK zhRo>$uBFxl>taJ5qsTJTWR*c%f#Er-cR-+0RP~^pv9k&NxF~$f$^)!WNuu&>#E<p? zFP`Q$Mc8x@92*W=EB9KsjYJ*{HdnKF+PQZ|8tk3^sk-yrQ`cR+tD7nQ-^Keu_(Jk< zTKf1*mhv`ITNB}R_)Zfv=UcmeOH5@<T*dWK&CVv2^W_BnG_HwT`nI``LygV4!Vv>8 zWqDiwrCa5%9yGpQ)0F#~b@6dLbfFh%yj)#_5zMx?I=(WVt3dpG(~x-edDx?Bd1d`@ z)c5sXAsY><f17FR^;cxZI!xw=|J(Gc=5_LF0r2q0UsE$u{N}4>Rj9y<4R(_So0i|} zXKkIFZE4RK$Ugig=2Ox7TgzXR5&W&}PqCYl&yb2FKR|7s?|4w;XwS{`R7bs6V;38F zH7(L(DIHJspobGl39i}=mOZPrO4m%EZ9UuCf~q{%=b~PSBnp=(Zd>qNbuT*<SdT2% zZdFdcuT~E2+ibe!2C_Em;MFqbm0Qzyztg|PU6vp?0wU>`Am6eJEqm&GloMm8-Pbc( z3)jw7^j7$)u|_+Z-5S*&PrDi)wK*uL7a+qeA0$uB?$r5HhCqgeUfXpv`%~NXqB9Cj zx<_W02}^Csk`a}=I|kS64-MUpM2789o>Ey-HSlrzZs=R<=V$Ndgyou9+-_bEJn4RL zWy{K|l+)n{#z)3b25;Q&{z)(KwMg^`HfgO%Oxb*(D_=vJz52@D!FH6T&&9D7-LJ=g zs=&WE<-4t&n^_gl_A+{BGBI6yCiuuR*0W(xPWJn#hr3nC4ug1VN>=!M9zCrbuWpd- zaGjaQnc=P0ZQm*=djD)-I<8TWH-4|8C~WOal6K7NiSQ>Cwbhd=+*BV;6AXXZkYTs# zdZEUfev@`2tMK%Riu)^GzMNTe@z21yn`!SyCnnY=>22&kRcDB-@fg>&58f6qov3PF zXS;LvD^-bcJL}2ozTDVK46XlEEg5;J5u=WgpY=4ckZ+vbW^2XxeRD29<`CkVBsDJQ z-O{NKnB&Pi{f?;Z(2<(&Pj&Yr=}tMl(h5v<JN;5wx5glcmc2W-g;CXMo#<1LAF=fK nBZWDJV<Z65hoX+mtD7PwP8z5e=v6TmehdA){pod{+cN$FJ}+b) diff --git a/OsmAnd/res/drawable-mdpi/map_pin_origin.png b/OsmAnd/res/drawable-mdpi/map_pin_origin.png deleted file mode 100644 index 2b63c5e2728f3831463ef922f42b3da989384ea3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2780 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 Sff+CTZ@M{o)2g?H9sCbLTbt4V diff --git a/OsmAnd/res/drawable-mdpi/map_pin_poi.png b/OsmAnd/res/drawable-mdpi/map_pin_poi.png deleted file mode 100644 index eae4ed951ad3d5539cb52ea150547d0a10d28cf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2730 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 P{_in_xtVb~AWHoom)C~9 diff --git a/OsmAnd/res/drawable-mdpi/map_pin_poi_small.png b/OsmAnd/res/drawable-mdpi/map_pin_poi_small.png deleted file mode 100644 index b9ee78747783d555c771c37d59d5eea9aa9168cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1735 zcmbVNX;2eq7+#br0+BM}0aJ!0Du|H#+(@{xiGYM#p#tJ2yMYWzHta4W;4!vE1*Agp zs9M2}1qY-a2q+E?sH1g&77wgA9HNXG?9kFG#i~>72Eq1+<B#sl?)Sal_dM_Y&X&Z- zu4XuUIRgN|h>C<0>D9yjI?bWKUzT_?=*5##rcz0`j<O&G285%y1_PsvNEVieA!tEv zCl(9<v-9=IsZ^>uMyAD$Y{ZUXTa9L#4FJKRRx_f_!6;CJW$8_F=6G8N6V#(}W{OD7 zRht!9wm!0uz>*4MleL98S_ox^hJe9V8LhyGQ3z-?8cd|jDrZjVmC<|qF^36GL8u%# z^Q}{<>UdCr6BsCBi&<JOPY6mNHcup$K$0MkPs<#xl*8w;xR6XFka79o^uwgB5vWd< z2&<-T(UP2*O;KhUhhwo=*cJgBC$cy^2!c3VK8Md|(Fhh<V4@H!%S0}n(Ewwlme89i zJ#GT+8W9biN6DGAr*A_rn$_xeicREnqUe-ytcaPzV{<u1qdl%EG)X05|GM#BG?`pr z#yE)>iRTeox*ocvGh{k<A2wtM(%#782t8dC!~o;kJR@eJqF_0bzG0(!R3?>jxdM?$ z%Hm0-JeG(n<gql6R?L!$QB23>Ly#6lX7s#|&xch~ZUiKf!a|70Q;H&#To_iWR3fQL z5+PKmX1Gx%l0r;cY{s^pwmr=ievm6u5Ew$?L^6&WX1X9g8>etG8#jXr#Z=Y76)AcX zid)D4dzs!w4P%5pA463HZUm?DEYrWo2LuxeHJBJ;=`e|og+g@vh?p;833-@6Clqs0 z9;9PV^U?pCKMw5_$KEXeX`Y!Qx+Cq|ccVZH?}iC8(Gx__qhjI3g#o}UTNE6gZ0&De zyCx?o+@qbe`APKad;LzdoNeJ`OgwO*(k`)s>RKya1L1=uE?*B(zuq}9>Ju-SoV&uq z(H%bRd}n3<&Mh@9Y7;R&Sn$d9bicf^Mefv&@}kbexUT1U)q;_+&~%r{_(fYiQ6J_h zhm%S_uWu)p-X5;^{he{9n3|20Il2EBwkO(A>em`lH?Idg<W~J;%=<zxHH80pE#t_f zpCM-J?)Jv4Bf7;th70MLmums{gNmXpioObw?^A!gy1hT7pC=fUAKjhr8qQ0JG___7 z?b!a4(l*qUc23v<J$w0E!|K)xyXrg>l?<e7a15wa=T*rzXFdH39n2UV@hw71_Fb;B z`ZM<ySD!WA8V(7Qj6S}ap82fn<*pXD$DQ-)wzTy$?VR(9?K=3)l7q#X%iRk%=ngy0 zyW+r@pT2Gc%r72MTn)DceqZIbrp5mfaXRh#a?$zTS<Pib(%hV}yQ5~mfn?<4++gR6 zH<LWWDqp1%wLt55ZEu20H#;=rP=oDelcBPw`Gu|YeEzye4rG!?@fmN2O#yumdFA`= zH7Es~nAYHdD|I>_@~&4(L_+=jb8NM^ttfE5V<f!gR395Sl}j#n)%01us$lvG?=GAS zsYzUh`pyNAYn$>R{gICn?u%{)rNHYY%Q}nX5$2kTSdYf$(nrTLN~_n#Hj0h$b?Lq# z^}Y`A(F+osUi^`NBd~6jZhP`kLNI_d?QeX(`M|?4l_nsxzfc`Gnkd=7q<#Wc*H(gi z0pFtU+><{~k7qn}aT^|14HyoTKDb?3e&22EV%S!}+DLUk{c&qdP|b~^-Ft66IP4$C z_+mY|WXIoWcy#Zs^2OC!L(7J~37cWnww^b|H4Pi?wJmFn{H)z?C8&Ku{LqxZ3OZA~ z@a*F?y~ifHj(uwOj`MOnF4?)rFkc=;W_OqM3gt(Ch8@~BR@+WPgKv_^Y(u7JlKfzY lG4oB!rPq5pwvEqn1w<tszjS+*McaQZQOa2OWW>hL{{iWYkz)V= diff --git a/OsmAnd/res/drawable-mdpi/map_poi_parking_pos_limit.png b/OsmAnd/res/drawable-mdpi/map_poi_parking_pos_limit.png deleted file mode 100644 index 46013b10251c5a1f474ab4245667948afb4d7a8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2597 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 diff --git a/OsmAnd/res/drawable-mdpi/map_poi_parking_pos_no_limit.png b/OsmAnd/res/drawable-mdpi/map_poi_parking_pos_no_limit.png deleted file mode 100644 index 1563bbeb4797546e253e67d22c0e7babed731049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2439 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 diff --git a/OsmAnd/res/drawable-mdpi/map_transport_stop_bg.png b/OsmAnd/res/drawable-mdpi/map_transport_stop_bg.png deleted file mode 100644 index 95b0e8bf47f5c2d042997960e0ac53c7124d6488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmV+;0^I$HP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH0k}y-K~#7FwN<-L z!!Q)}BhOOk#8%iC_y>l300S#4415U-D?8!~SP(yekXVsmKw<+Su|Rk<&7-l+y-94^ zs1u2=<lcuHpPXaImk`TFTQO_Z{%Zn;G5}E&Ir+-bfy2WSD2+%5Q%XGxnI7L>?Vmwf z(gtL-vwLyBwH>W_UZ4nNs{XgE+30*(4ReeeU*uEv^mt8fF84NJ_S=CU4r7%vKAxoR zmzp9w(a5C0Q&^~EwKpjAPs#aMP{v$EDIJAjI84(tK>!*Afm74d4=j+Ti@sf7jHRq! zL`vybJR9Bm*w|%O0U#wsdbT{ztCy~hWtL^VGw^+1X#g}E42S^$G#d<zM2KdCfsqIU zTc^m}J-st%BvN{lZ7`^mVZ@R(r$|`?0Ey61y~%dJWMW|tmVU`_C3OaxTch%h22iq0 zILnyp2A$-Z%`&P)@dgq}To(c4U@$1+_q$Um%R}x2>!gFh8q?2@hjR!sOm(9ldY-od zO=1kaArL}P&N&5d*g#GoH@<CHM}xTp+$)S17(ZGsoLxa6=x$zfee1=s<0-6xC#^YS lIEQt{SOFWH#Bn@9yk94e#S&}t=qvyL002ovPDHLkV1f-t+hza& diff --git a/OsmAnd/res/drawable-mdpi/map_transport_stop_bus.png b/OsmAnd/res/drawable-mdpi/map_transport_stop_bus.png deleted file mode 100644 index 3968b969fb3285ac7b5706468f9ead6b318a034e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbQBP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH0%%D@K~#7FwN<@~ z)Ib!UnIw~s&E6KG)oEwp{~+9!E?gnVfwo$RANU`5;(?8&U!_<Iel#jvWg()ipoL(k z2%_FaZ<Ec(Zf1NhnZ(_gWYxX<!DQyW$-H0Q$K(;R$DoxptLXk0DGXT>^!t51?wmcX zYxZ?e^~eH{QhrQDc<uGGQ+Gj}P({)^y88I-;UoPe&MiqOllj{s_ok5RbSUFm%}G3B zAKt$pFP|Jg1iL#rJTw?x%Cu!aG=9nvdY7s&Nth`Zny`E>S?KRbPOnqSm?0^pJ=?b3 zFbo4Epq6FnxqHQd8K>#&T-DF6g~&fd2w`S^s<`b&V(UQljGj)rKZ}#Ara4&Q+_C?x zu1A|meE(@2*PV;wID0<}Q4~du9-KJF(N%Kcitm5jk^<KU_EC2Gs_PC`4BkXwnx+Jj zi~!N-K>;*a)j2k8{IFQ@>WZy32WuCHJ9YX8x4KJBXV4~+FvT|4gMUR~6A5s!S5=fJ znas&STPT{KLL`}zTRqsg5e9#wt00REoAVO+wk_oPCA(AAqwc$xmu($X6-k}U!NbjQ zv^L=8xy!ykt-rI;>B3&zbPht4UAF8dla?Gjf0c}JRQ2cAgCS`_ag&P%v+GraH@P4{ z<lToZ{?nVXQT~fE0x2ee#v*1I)<TzVJdUVLlP?e=EPyP@!f~9$+j?_Th{+jExAv0- z05(QHw%^@@WrSkU=v~hFL1+@o&>O5YO{u176z0+!kO|1;Tm|Y8u!r~KGmK9#hDE$^ z7i-;x?#9*cyD*L&PofTHQrRnkd#GoOC6M62^E@o;^cSb{5XtyR>T3W1002ovPDHLk FV1lX`Pz3-0 diff --git a/OsmAnd/res/drawable-mdpi/map_transport_stop_small.png b/OsmAnd/res/drawable-mdpi/map_transport_stop_small.png deleted file mode 100644 index c98e19bb2d2ebced71a431f6f81fcaad315af3f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235 zcmbVMTWs4@81^W1ThS0N8yiT-xY7V=j?YQr#5N6S8mDW-(p721T3&`P$EnrY$F<!h zErUT(868wYnkvDNxJhV}HX<RODBJR|Av9k4G$D{c8Z9@WDWEDqtC4Y>Hid_35BS07 z;{W^p@4tC=p#R{mjt4s^irSU!lk;Q^_8mLg$$Kumc!@0g{LGL)hz-A_xQI&WSVeT! zQi>>#6n%318tS5`wqs^t$RElbk~D0El)xrbwj6?{sIFw$QM6Iy(<&;Oc7myWR%K{Y zPcTRL9LPCoG-CEmxoB{zzo1QxYNF00pQO9W5+SgVuh3;{%=V;mf@$(fWFK5}4Ba&G zM-$AtsG-~doyIPr`B042AcS;W3_)Iqg!uz>7(ku_A_oBrpag*w2K2_m5O1z-NO`$; z!xuRvm=WK1B#tYUN}*CDgxw+sMN#BHm<xwlV!?Wowy%^~+v{vG$jH-N)A3Dg(*dKR z;t4;&5T)xOSWYgtNo;!?i6SZE%8J9m5a28;h^uMs`FZrOj4iFb!lZ+^Jo4~_tC4yb zoh>lQ-JKl;hD42Y*fmK}lrb4=6Be@ltejxTmymAik{|#O;dz0Df&f__L?Nq+T8tH9 zIx;|56g6FG@oa?$LQh2IGlHB+ix6gbK^Eg_&=V2lSS-fJVGEnJJzudk)bec--y7KY z9kEi{MT(Ez0>)#lE*KcWKK4eiL#NZts?(1hF>M`}yvKtwtw${**F1*wUKd+*GtZK_ zg$C7#!Z?BvRx?zCRfVX=iaKc^F|Lci5VS}<LgHV?>;E@@91+C@&GMh-X<d<y47Qu2 zKn|P3glsZFE*TZM*7H0Wvz4rzDwMxbl^3aA+Gtnz(8kQEzuUi0cHes7)!UzR@BVlj zjNiXP!AA=>N_69{&#S}l?H~7?Y@d1Nden8ET9}UB{%h^{SM@=*p1gdi+_8MZc;(Fg zbK3RqDiyS(8%F(^;o+P2wsoG}(|P{F@@prbxbNjd#p#9F)29!9Id`~k>Fc@eWAAqF zz53(weElV9W@cvF&Wn?aznz?Y>qheRxdUI^UH|sa+R=AzuH9-ZELW@5H&c7BHX5tH zKYi|O16-N@>B_Gw#ZOmv&!0H{oW1tLlJ)*#tx~IwFMRaNVvWP8Q~R<zAAaNQ7gBA1 fJXE2!?*P;zKcf%k?^*pY_|0T9{c@$}+39}(VXv;# diff --git a/OsmAnd/res/drawable-mdpi/map_transport_stop_tram.png b/OsmAnd/res/drawable-mdpi/map_transport_stop_tram.png deleted file mode 100644 index 2baf5ff167043b45641c5009a33f59c3ed82d850..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmV<80v-K{P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH0(VJ7K~#7FwN*cB z6hRc9ncbb)y<Bow2o{N*g5XCGbDbASAsmXfTG)twgA|I5m8i8?3KAO?u2lqEK?^~! zFbJY1r@7qipWB`Bz1csvx8Cj=&-`F^=DnGDZ-4K-nIYtWK?`G6(ETeSXex8iZnsT; z;p%16aPEMrMdpA~>T@LB+izZ6dI(}j6DO@x>rdYuJJDX^+*X7#6|a^tn^c~qLm9_O zANV8o@xv?f`q{aoFuQBQ$AGp-nX$a*TEEl?*+og16!a7fg)HtfFLV;g{5YbFS&CBH zavZ1Wy6zAiP}{c6m|nVJiZq?>i~8xYl<|*9DFxb246EA2K6$XXl$Xz68|;#LXa`71 z)vZK>CyyKEg|k9z+#L<;*89G%e_Dsg^Sn|97uSVYTjjjrOv*Q9v)K#$$IpF#);=MG z0w=oe5v2^e9WL_5^H^K8I4Ng9QU>U)G6!YxF6Jc<w3#u0L2VB9i_|7Mz`_5x9%e!( znN;KeQ5A|ZBq361k}Db9yyp)8MpuB2469j0zVAr2aot%c>QVQjuVmT2q>7YDYH;J$ zXwW^w#b(bB#$g;v%c7)n+Ty*J!MJQ6gh(GYeUeE<4pxpBnq{{m{;2swElR&_D^<c^ za*|0!4nA##5}Hr;iJ2!EuB5rkHD@DZpdBa~4h`lp%d+P>bmOr{RTO-MzsCa5NtTU9 zBj|6xy)R{W#W3x|WDbCh(a)Xtk6`Gbm_GDP&iM*F63g&5*ijTw!!RiH85@uZ$XQ<m z>Jc!9=i>{sEog%@UO0=j-h|hUC)ams9A7+zI_ODZE(6Y?o-r0cf`|Qne-Hir24y)I ULx;GQp8x;=07*qoM6N<$f)P1P&j0`b diff --git a/OsmAnd/res/drawable-mdpi/map_white_shield.png b/OsmAnd/res/drawable-mdpi/map_white_shield.png deleted file mode 100644 index 82150d4f93958c47e291d0adc306c0ae0e54c875..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2198 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 CnTP5C diff --git a/OsmAnd/res/drawable-xhdpi/map_marker_point_14dp.png b/OsmAnd/res/drawable-xhdpi/ic_marker_point_14dp.png similarity index 100% rename from OsmAnd/res/drawable-xhdpi/map_marker_point_14dp.png rename to OsmAnd/res/drawable-xhdpi/ic_marker_point_14dp.png diff --git a/OsmAnd/res/drawable-xhdpi/ic_note_audio.png b/OsmAnd/res/drawable-xhdpi/ic_note_audio.png deleted file mode 100644 index 237069e0daadcf4cc19c458d62dc9b5a9b57e0ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4806 zcmbVQc{o(<-ygeVr!1i{*2-WQ!wixTW8Zf&W(H%K(ac~h*$P>*WvQ`b%bqORcam&b zB9&bdNkT=-lXvQQdfxYs-}U?BJ=b;4eSh!s{e1WDeeUbTo15x$unDsP000i8fvzQO zH2!t7GSi-e*%s$$gAiHIo@_<%AP1p{Sb#Q$;En|%{ZO7*ODqZ#d}Ro$0RS)r;;ik- z_9n&%G{H|E^@~TI;^$980{|LY6n_-j2TKOJV?A+rP0&tzHwcKsXoBoiOcYK0b+BGI zgAgLtD#X+p9pZzAV?bKxff^J9O@JSki~>^peDNd%MHBQ}E`m1ywX6UF{$?TjXoCJW z%HG5rs6!xPfhzJaFj^4;1**d3Au2FcxT+jbiAF0ZswpTbf)(Ki6=j5?67Zi3MAJsZ zcpxlwFa4v7Mrne)$Yg(nf<jPGkbID`Jb~z`0D;5d3W`b!N=jfF2bdI$C!;7}JW1k@ z1YIl%O~m<=aRfZ@mqe61A%Lt2qFMU43x574CjSb?ll}=5Eo2H5l)nN*UQxl%@0VY{ zxk+S8?EjkaAGt}^!TwkUODu^HKt$8>;UVz{OpD!rSM-aKW(~rOh@&M1<*Q3T2l!#} zWTdVpi1tPvgTo-y)D#t!RaDf#5H&RjSVa*E0lUM|Ft8d7gY{5Ug2T}m)E_zj2@iq7 zRMcRqN@}`LI0T}n0*C2cR8v*aRfZ};v|*~Mf3QeAiHyRdv43>qXuAKwLjEfjp+m%? z$ONJ_f#Cb63e3F-WCF>H;1AT%`JHv3tQ`)IAq0`m{7Tc`Uh86sxIirC5|Q8s{2gZm z?myUo!a||$SQs4afmQVYW8gIZQ7|PHFcgAS_JG0^F%Y;1=pQ`h{~JFAno$bBisk<l z&z~h)MgE%p+X^(|-)6$%X&pqQwTg4V4m$wAxsKG;wx+y#?;PqYG9YyK>iojui04w? zcIYAU#%UZc{hQ2;i@dJhxZ@^LUe~P~ft3ktvXu#ypcC<0j>oJkqo<3`%NAJ%^T*h- zT4?7yN`1~POtp*WlR4y(smt5{`XMYR^!tZV?5xlO&x7Yr^F+%;H`_ZG?kwc(G%tni zkEt%PGiAwG*n}iEO`q`0J_hto19*>c02|qX7T3e7>Zu$+>OfuTvV}^x^fAd{y2!vO z9mK1sGMDN|2Rc2T$RfE5k~2f29YV5G!DErdS*)_WlhPpMT_N@vT`EK6S%2%yo_dCa z$I0x0&?8UQsW{~tw-Vl;Rf6SBJuzKJvOEvpkB7Uap-K(i(j*@P7(YM4=V_#>8Jy3f zM|_2_xqaQ3ui`7?3yC$75uvn2myAmn9x)`$J-i~O^D)F^l#Rp(HR8q6kGMU(7Pao- zURN8s@QTA2`pW3*Rnd$&J_dQ%MM%<V^NfRB4X=(;Stj6!6&0A|6SG>IZYavbCA#<^ zDWwc`jAu7qR4NZ+y!UZk!;D&8a^KM;eVP#$eO(ARmUh-ID5xs5|J&RhgHO!EBcBid z`dO5{zb7(yOsrX--0G~<uf(RKj9urqDLmnTl0>>QS@>rgN^xCY?ToqDTef?T4tusy zUxTvYviYQkRnGOgbsqrQqr9atQyGuIrB5?KwHwHFZ5Sapp|Rl+zb;&HRlAS6D68|c z32xK4ivjSv<KtHRjj~MDIAI&PlN~R8Yw#fmQQQ5mDJ8{&u4lGCY|Ta~KLMEZmL!)i zaeK`$j<U%)Ul!uUZj=L>vHKh!7W2P{t@z8(S9W!sZ?;c;-!p<y!Y(IleoCcamSd)B z7DC-@#cm;Z7@k(f1x#PFv;mCVGs+$W3<rFzH2qL|>hzbv*R!$xtmU!qW7tpTh0hp! zATmtL`eT$mzhr$|47EjsyR*8=Z%A%fO1rRnCF%4SxUE>enF(!XUJ||Bas0~#Gkqtg zEhoo0(<`}l_LWhP5P^)fr1dL7!{DI@%4r6+!XhH~OLvFmF0_q);ZKY@QS#&GdQazE zgnhTim}VUXbb?b~$-W(;nMqIDn}CNyvz4<eQt87ZdbjqG1>zkJTfT&Bv#=0zKE0TN zPXcnIqo8d$oqBV=YBZI~8?}9)!H3_m&oP!Z3)K+gks}e?H7#9S7Lrzp4=mKx@z#%J z&RddNd3#%2QY+n00#53A#RmB5hsGUM1!)SHO6KszKT=BvRQ8oUJ2|PRK7*yeU-U-0 zDc-ijl{(;&^F_v{U#jlN5$Z>viGx<hnUYGDIdmSfpX5tvJltv9Z#4k%Bn+(bErU#= zE)*0@Szi-LA!M56hg}|dYjj<VG>I6kZXR_LZx9Cr*jg>;x8IFQpLsDak^}83FWmzE z&<Z!*L_9fsfZN|n$R5~%d{EAoSU@`~e>lb%&2+<D7b#s6SE_$HRnlTdWt({;!>Y$1 zFbjn!SgaL0dw4o#Zcd9Yad5Dg4QVjN&nEeXQf)FHvCQxc;7S7Fl5{rR71hsOH;$X2 zF1GUxWkG8DEP;Z#JhI-MyzCw&=xZ|MGgh@%%I;@CI7<=-<PHm}d;$cTcfXZU(Yp=! zW+(b{iV$`Q0l{y!0f+{tJnArStVyzDlB5g8O1CB}HDazwMq&s9v|dW3I|prDj*BgC zd1PL$|Ksp=9>Ps>VjU@DrQPP$VfP8YP!FG&YtYOxNRB#@A2!kQ23w&Y&>Fi|SZFZ{ zE_s0z@+<zdyJF@L(HhdW6PK>SB%j6@jBIaf@4C0;!L^=If=t$T?vrJ|kjuVsVi~qX zF7B?{@|lPg?6wA6li)3sWzA#j7r7Oue+iPpT)|K<DrPr)v5$Mtb#1(|>VerTv6Sp* z#dq+eadu#tXVb{vi&*sW{bJ|qI2jqE#t@m+__&VDz=OXS^7q>8u08)OlpKG_JDn2s zk`6XEnO49MRdp?(us-LKjm;SF^}I6=NvPdtqeWWy^N(-I3isR2igC3G#a{aKk^;I> zQ>f7)_fv$VSzY6>@Ro~F`G)GF;>99+--{mk4%&8toSC5p<0^I$;(}}@I*AS{*U)wj z%I3DS6T9NF4q{n(Wmc0a8J-7M-k+zsbe$KT;3nMA?^LOi7KQ0&r)8WvpJtK2jS?=t zd%zU!Aag4+@!sdLF}f;`YkS^b@sCce^5ouKaIf|+^czhe-qLMQ&zPMXxv~fnE}BVD zizbgDm{G1KOB}&E8X(s?X`~bKc4n(ZQ}6uNtlvjUCzHv+fWq2HnsaU-9Z%*w3}8RV z0$}+(A!i)?=oCw^ZpXV)CchXCmtJP{9fOv^?UloU!=UZk&Pn4hkg_Saz8eG(gIhp+ z@zr&ywJ#r0Bk84k1c!IJ**T>Qjl^2lBR9`-Wivtx+1H<z=9qwQ-gmQA%ou!T+)xep z{t!D*{d`BCW>)XK8kbW;^gPr7)>r#J;gg}9WS#sIiIGd&v3h~%p_irc?xJ3?7V-f- zvQ!IM>K7g=2)L=}hDsD4d3yY&dghv;tEH&z>jMcfI+M_2h^w5i<f5P~`pR^<D%&Q( z;b-1Q+7p;aXN%dFpQflkC0%X!g|Du7PY!a0g>I*@bcYVSb#(gcaU%oY>)<NGB8}qt zfT0qug~WV|F@(4n&jZGNJSU9Iw2#!=b*QhL@ZYGhNqp?#F}%XCFe&Tl9NN}>#Lgu( z<Sazycq8=YITV(eGgfg&sE!(7X`LCXr2)LI1K*SyXDJ-o%Q$<k#yjDtW@V**_Vq|r zdtWS(cC71NYDW*&{j94KQ9zyreLC%;6C4ZrYG@}Q+!dME-)|F;rgID(1v0bS+irkO z*#ws0q7}uB+)r)o@>kikW^;<%ZVTFeRhsWLeK2+ortA9RXy?qrk<GWqcb5*Q-*tVj z=}?OPFqBxdw;J`A)y#WVU<&@pmTYfSd79*?2JsF@+YH-)xC4LZ%qPwyfxSJxt5=IR zj?g)<Mh*WNn@Pii0wt{%Efq`wvs#OtKID4y)G7y=ClYZNFZTXu9flt&_M9)8=$BkY z!Jc<y?z5Cuy<}vzJfm%m3AXZaTHx^WD+G(?X(KJBpS9*nKG|z6zmO8wivIj=!mMd= zzU_XQfKcXgS?HIf&Tn`7pUr%b`s&<-R10^H3tN3g=P%D~#&{j+daj}G20ZoAwYV?s zv-dd)AexUXbKb5=t92oj3rc*(cjmGY>4us4^BwmBT&!*#RXE|n?WGOTz^%x!=LBdD zShFtlVCdkIK3mK9?Rtwo)2yuA(Bw<VdzKe8!YEp|Px*UR^+Od^S6f5`5{fca^0h#F zQg=tTz-qhnYGe8p1dL?F{%Kd?mWFn9vS*MP1M#Hrg|Q1ROeeyB-i(U+lrxyTjv4iN z_ef=J+D}q@kvnC0QyJ%5X(APT-M(*dP=FU$$Di3yabR@w=A2jZ$ZVgNHNRfy_ARqg zo<c)*%^y!Pv1VKQ-G~;+OQbsPXpIkwhfJjYnYXO`e&VRu4Dp9dE5#9=;PrhT6PpTe z;Y3{q-mS0G!rfKIsWQL!fRt;E2@!doad*bp$PKbwTz6?FimUE*<^<1&;ORSdIH6bW zopq+~JaZ-Tf9)?WZ5SC3rp?Y+F`e@LsY!Ii^~<2jmo1?J@8p>|dmTsLRT+L(e#&EZ zL)F(bo&RUa%V62jDA_j!mklP{Si1Ms6+}i_!+xGPbt78ln4v(#J8Q_n$lIN`vNO}; z8$Bxt5uB8V+qE0>Ch5sxJmK+6Mkg(sc#*>bspQV`IhV(dQgZ<HS04DDd8d<KyLZCO z3{6CN8(yww%DdcPIg^QC41T99R2k?vs8qlS*h_G5Jjc(x*_5^Ya0G15E)nTyD){^c ze?Ax6v&~CC3F@b<%1Tq~$I+T4?z1TlF}{w$qGt}HdHHU7Y#30KUw^)D;3B<VkKDZ_ z(arts`%%T#{q&pH>C}%&AYW=M)4qwt?<+@a=~CLWS2|ixFxh&v=?S0uUi<OYR(EU} zy#0zq#eUOq^=9v)H!KF%2Dxgh6uNm7jg!7mJZyCz+#ZoGSVZJRe4QDLlDy|fExM;w zJ=MqT1_^(@eEbB~op}1$VxW4#oe);XeCV<?NBXvHZ0ZNdTZSnC$@!G*G-7K@hUxJE z)uj+?lY9Q1Qtr<?9fz17JS0D6>)8`9C&9&%d%xXzz6Opgl3*VkbFNO8lBit_`7R!e z!Pv7Tvb=rms3J3kWf3f2hC`e$P^m-wZ_*~uH+A~)6>LgoJj|Ur%e@~l72J3$cdY4& zm6c~=MDTv--p0m_nl+A2J;znwE!HdbKgPW+Nr5(kP!&cmz?VsIeBiSCgUG2;bGi2F zbFZwmS%;NdOUUo0Sz_#5L!FWLo<{Chk&$B)lm0I@VeIS4Zu#m?e5h9u%Q|f}^2fs# z=gdVknA8~(fEATpXQzxQ4kV$BvUje=8eCecKhG(*Ue6tZf}RzAESrsB*vfiLE%Yi} zqqAS`i;aPq{4g5D_la|Gip3cQ2#CfzbM82^z^$W327EZZi)}utS?_tshSg~gVdvK3 z<8^+h@0^zoYiYi$D!S+P0mfmQ6Yb0`SVBy6kc`mEXoC%JsT+lMW_3~0<*OdP^0O5V z?$Umpc(axdafU<WFK{<$wq8E{0i)wRKf$m=82iInRpga<=$k-+-qm7m*%zZ>juq1d zdjrx}PsL`7`u4ju&KS=$qkvJ&Jr`BKZEWL$9$XH}>6+A6Wdw7n$I-jFXozGd)MjU% zF#s^dW^^}S@~IrAH=q`^M9BrKIDFBmr5C=8s3d&aeLB!K8Mk1t+}D(T>`+~t0_mv@ z;MZXR`p>sEm1aTp#u)UTYNtMK3`0Fxu~kaIU9@dbI`#2BCKu3jyECYoop6G|_!*rt zHG0Jg9YEBHZTNAh=D7CR&aHEk`}~`-+xaqR&HSV{XL`c3W#&Zly~R<P)D69E(dSGX zPZRO|DsFUw`2G7E9J43cL;y!iQ{xc-Krt7YfYvqGP4en)E&WDBh|^R|Wb;Ib*Kv)@ mb&)ggI*r6${dJj+8L*pVdT0<HYxL{S5>n4px8|Z-^#1^8c!H7u diff --git a/OsmAnd/res/drawable-xhdpi/ic_note_photo.png b/OsmAnd/res/drawable-xhdpi/ic_note_photo.png deleted file mode 100644 index 365a9a5b60da64b9db4797118fe00fcb500df4d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4813 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 diff --git a/OsmAnd/res/drawable-xhdpi/ic_note_small.png b/OsmAnd/res/drawable-xhdpi/ic_note_small.png deleted file mode 100644 index 5d1d0b5347d686d541cff97b81656daa2c6cf1e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2628 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 R=a2u_`FPQ&<(}-g{{XkVRpkHx diff --git a/OsmAnd/res/drawable-xhdpi/ic_note_video.png b/OsmAnd/res/drawable-xhdpi/ic_note_video.png deleted file mode 100644 index a5f9dba5d9823411331995c10fcddfcd38a7e8d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4505 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_pin_avoid_road.png b/OsmAnd/res/drawable-xhdpi/ic_pin_avoid_road.png similarity index 100% rename from OsmAnd/res/drawable-xhdpi/map_pin_avoid_road.png rename to OsmAnd/res/drawable-xhdpi/ic_pin_avoid_road.png diff --git a/OsmAnd/res/drawable-xhdpi/map_shield_marker_point_color.png b/OsmAnd/res/drawable-xhdpi/ic_shield_marker_point_color.png similarity index 100% rename from OsmAnd/res/drawable-xhdpi/map_shield_marker_point_color.png rename to OsmAnd/res/drawable-xhdpi/ic_shield_marker_point_color.png diff --git a/OsmAnd/res/drawable-xhdpi/map_shield_marker_point_shadow.png b/OsmAnd/res/drawable-xhdpi/ic_shield_marker_point_shadow.png similarity index 100% rename from OsmAnd/res/drawable-xhdpi/map_shield_marker_point_shadow.png rename to OsmAnd/res/drawable-xhdpi/ic_shield_marker_point_shadow.png diff --git a/OsmAnd/res/drawable-xhdpi/map_shield_marker_point_stroke.png b/OsmAnd/res/drawable-xhdpi/ic_shield_marker_point_stroke.png similarity index 100% rename from OsmAnd/res/drawable-xhdpi/map_shield_marker_point_stroke.png rename to OsmAnd/res/drawable-xhdpi/ic_shield_marker_point_stroke.png diff --git a/OsmAnd/res/drawable-xhdpi/ic_white_orange_poi_shield.png b/OsmAnd/res/drawable-xhdpi/ic_white_orange_poi_shield.png deleted file mode 100644 index 606b1af8a62be4ab264a35de4c42384741fb73eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4255 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 diff --git a/OsmAnd/res/drawable-xhdpi/ic_white_orange_poi_shield_small.png b/OsmAnd/res/drawable-xhdpi/ic_white_orange_poi_shield_small.png deleted file mode 100644 index 59a9d8360a01053f15af4b5999b13e87b5072342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2639 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 bT4N*vm3S*(IM=y*>=%#C;xLbUN2mS;jABoU diff --git a/OsmAnd/res/drawable-xhdpi/map_white_shield_small.png b/OsmAnd/res/drawable-xhdpi/ic_white_shield_small.png similarity index 100% rename from OsmAnd/res/drawable-xhdpi/map_white_shield_small.png rename to OsmAnd/res/drawable-xhdpi/ic_white_shield_small.png diff --git a/OsmAnd/res/drawable-xhdpi/map_osm_resolved.png b/OsmAnd/res/drawable-xhdpi/map_osm_resolved.png deleted file mode 100644 index 5850ea04660df8f7a36d701e4b2dd9cab74dc884..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4902 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 WYpX}pWp94}xk4D2>DTBwNB<8e6SKGg diff --git a/OsmAnd/res/drawable-xhdpi/map_osm_resolved_small.png b/OsmAnd/res/drawable-xhdpi/map_osm_resolved_small.png deleted file mode 100644 index cabf5388ea5a7dc0842f572a98c03fc26ddc0cd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2605 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_osm_unresolved.png b/OsmAnd/res/drawable-xhdpi/map_osm_unresolved.png deleted file mode 100644 index 4475cda0ab02cd13e8bb78c5261986297f6f7939..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4746 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 Z0p4?NuY8S0Ie+~fGQ?a$m+Cr){|^Sva#;WX diff --git a/OsmAnd/res/drawable-xhdpi/map_osm_unresolved_small.png b/OsmAnd/res/drawable-xhdpi/map_osm_unresolved_small.png deleted file mode 100644 index 4038709e717f161c7cac655cb1879054d00018ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2596 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_pin_destination.png b/OsmAnd/res/drawable-xhdpi/map_pin_destination.png deleted file mode 100644 index abb6ac89f89527795a234789ae5c7de210f243f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5261 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 O5bA0fX;!GaMEwuGpLSsY diff --git a/OsmAnd/res/drawable-xhdpi/map_pin_origin.png b/OsmAnd/res/drawable-xhdpi/map_pin_origin.png deleted file mode 100644 index d3e53732ff373353385ee4b42eb76c1ac9f177b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5438 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_pin_poi.png b/OsmAnd/res/drawable-xhdpi/map_pin_poi.png deleted file mode 100644 index 1f218bdca1ac51ff53490002a030965f638e16ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4896 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 P|E!F$7MMDHm&pGCjV`X| diff --git a/OsmAnd/res/drawable-xhdpi/map_pin_poi_small.png b/OsmAnd/res/drawable-xhdpi/map_pin_poi_small.png deleted file mode 100644 index 287964f5d6320d280f21d753bf50b5f108bfebfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2617 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 I&cVrl14++MNdN!< diff --git a/OsmAnd/res/drawable-xhdpi/map_poi_parking_pos_limit.png b/OsmAnd/res/drawable-xhdpi/map_poi_parking_pos_limit.png deleted file mode 100644 index d99ba8bf5796f8254b6996479b1f9c8dcab3c3b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4647 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_poi_parking_pos_no_limit.png b/OsmAnd/res/drawable-xhdpi/map_poi_parking_pos_no_limit.png deleted file mode 100644 index b98f1f18fa8d9d8a181bf376b68d8792bdd8769a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4254 zcmbVQXIN8Nw+57=2!j-*sWB93AtAJco)Ds;i8K=wA%sK_NH7V~q)HK`Bb@;RhZZ^k zMg<g9ic~>*w}LdKH}!^@aqj)`J>QRep68ss*E#Eb*SlBwbD}KF&+{D>Kg!0&#)r9p zvSh8M2R9EF>)DoiNs+aP(T%WlD+-D3ji(aX5Y7}QA^_uozfQCy;+=hOb`W*g*bd!t zwZ_u1W~N#Miia}(z(?7~!;^((W7E<1@x&9{h;)Dx@wzKn7r65D84%#=tP8xXZU!;) zG$gvXUhtz5t^CZb34U$_xHC{+51`|t#Uk(^((wQv4|g(6%SRXZ7q1p;fAAU%1pMVf zchd#_EedO90WhRci2!wF4G;mMq6W}}E32q$Xu>s>08o|<hQPp32nYh#QdiZ2Kmq?; zKvp!WGfB%5h5jcN%hCn9(CMC9V6eBhx3agYGKG2_tOAF_!4N1I3I(w|Kr~-69q$7o z)1-bepolaA)zy>kN+AOd81YUNFS;&}rS$J3czBwb{Yy-y{gWtG%D_H&Pq2zI1nl8) zaIU|+X>?2C|H}A}-ZX1pPa@coNTYaB39NdMq<(=}x%=;d4jfr(v@TLzSw+FSqbLL~ z4<eb4LFocnUzD9)owZ;v2t-v~9R^Z?!Bjx%5H%H$6P%y{f@wGtNf0O;PH@Km;`vW_ zLkJqGhD4z>VF*<f6(e;RLLG`!hoE3aMhF!Z2=o^gL#EO3WCHP5Y*$w7f3SxC6{}@P zCF1E6sx^h;{;LZtTqtx3&4uC#Ff{zD>HxXRu4HG5H%<PaOn;vmMWnjkB08g~6c4~( zdDe3M4;nN{>S|D^suM^}9j^)^vJ4QOs73^765vD<+(}gpj)wsM!8`wd^9N>$0v|NX z|7o6IuUH*<u>E%wSjNA@L?p8&h{_t3$!tG+Hnw9;7!<<VXKXR+O0>kFSny9(&GGjO z<&96L!uduyHKY-|GDn0t9tOBDY^_Taie8#9`WY5ilJ#;+iogN$Hbs~1LXHL)fNb*h zL~0cT<9Wjpkw-8!NBX2Q$EPSwT_c2E)83n;hPIl|(M$H)Q}(d_(QkgF*v~&d{rtI> zqZryF{Wg!f$oM{E8Oiq0hJ&fiC*Z{<=#=%@-ffSq3f@-NV(6iq#Cb%Wt?!~g_PoB& zrXOePp>WY$0dC+zdP9ppqUr}l0!B|ZsH&dnP+D4Rsni)I1L}n(ZyZ<Bx8U#+F3#Vo zY46js^Gteu;(d(~VuMrDr&q|-<s`rEgstNSvx8GctG3Et8h0}m>Sg|j8DpNpZ6WqK zk*1bKNY}bP#NHM@!~-ejl%3-Ylbf}dljfGRNX{3W96N<sX|%E3tLHVo%>Zx>T(C~$ ziNYHo=kDoYpLk^Yjzd3{Qt|!Jl%8Z}RMo@>MT*!cZH>PY=%sWC0y>(_>&YpZT~}-T z0xK&Axt++{!72O_XXAg1552n;fVAaaKH<Dk;3=(q*ihjx2O?gC(;35#5Jm`;%cT=> zj_I-wI%OcyK;iqGa&zJzXeKE({pQKc&PbJplg#<ywr?NBdpM8g^7byQDP>31jY%); z$PY8GVoQ<?qh|M3to_OU7S`|lpCkn!r89!#OUj$2MsnT6KUCj`=xY+wTl+70eCqyu zqIXgMT`;YNxBC$@)-A8>aO)izi`enOqTE9YiK2ls%bqLQkuBfWyX`0C@3snh@O*b~ zC!N6G3_L+KNjkSWa6adn&RXh=ZB%T()*X&E2412Baf#RQajf=C=usJpnDMco%_~(O z`pyg4AGW?+cDIg?r;JaM5#80#p#<tdl9m@u?qC10YZ9<Lg4_3+>M$y4!K$lOAsm&k zOxxq<PBlMP^c^tFiE{9szUa?I7R78)*kuG7ZtxM_@e;m~1wMQgusp8^V$90~Z0di$ zBGz!v%q3MbJ5dgMX)$MammIMERQJmA_6>@kMbx<`RVQX71gzuS&F~I}K@I_FT*;O; zQX}WlA{eu2#nxNv^J{I>b={#Ip1V^gIPG{L74m*=h*v7jX@X*sbEm%dyf6N-w6(eM zTc{Fu?f@o5<Syzx7U`8KF!{KxJ@$<H{WVT>^w0x_U}kW*C`pv}*3wAE*v{7q%lX;g zbsL9g&KYz$)D&~zavqu!1P5J{YgP~f{B54t!u3$U7r+0p|4Qm(OZ0M7r@Q&_BAlZV z_X<~@2o|>8pi%pNL3F4urXxELTOltT>*PW`c{p-ePPviRu6BYqTAVhh*R@dJP<i)c zoMX=5xb|-Q`{MNt?I%{>ZO#yAfnyu`%!<`r`Cb3=90SG9uRk;x`vRM8!H>wo;-?2m zv8OA$^Ttb8-E#BMAyw~`H0gj^Jcsu7ip*a9ipl1&=V*+=keUR>Rd{SHDHFDxQOHiw z%yV_RGbUqs(>5!NzoS{ZseeF|M*?)*r2rH+;^ZV4Dfu&Be32w&C##WbFDTM{e(-H1 z+UbhkMw0bPF7ifROd9G^C=xeiKUC<@8nYvVt|>mtM{qsqaSxwoud5mKo_mC1e<sH3 z1={R`5pQS_)`<%7pMQ0-SQ&U<XhZ5W<XV?avB=Z%pA+W=5BWD`jRhCXnKfI8MklJf zJbXUivLCf(T^~PRNDPe|D9qFkQJhqL`b^kF8ej9sMThgompZUk6MUv!0s5rta+-7= zTmR^WeZtGH-}eN+*9SBy!Yf^aJB$VHMZ9qv?T>0{=~%Ol<6>|aOr5^`@(l#3huW<H zev@vhQO~!H%$^#5yWu+-7L;=}Y<lTT<b5l@&fMeatJu0%s(TL2Kfjn)M9gffe(-p} zqlY)D4T;IrKLoRwEGzkz(W;_2&@3JBsJB8k+z>eNRPo5gfFNP6J!BVke$}`4WB075 z<Xv|Z`bH_@aF0*1MIqd}_-y`g;9}AnpSTMxpZr4Ca(y{*wdf+j+e<$d(mw7c_wJeX zZ^~337dz#asH0cfnp%}5p&S3unoFr=ctWU!5?W}(=y1c-ub48|aR=O&uN9qIWy}J1 z!bC)pr1P~yC8x>{Ba^T7-1_5blV_U$a!P{e{$|yikF9hI_xT!uQ3a?IE@ttuOi2M# zPF4e4n(Jl)Pi)#7a+H&0dQaU8(%LjH=zbO)+<w8?3&|VOhAtAigGtP2ifRby&b}L6 zoiT-g2auFxeGNjm)9$*(<1zf9lb_Nrcc)B$`Fs|d$WAOe6}}Z=S7&{$RDe@{<lNoW z0&cXkbTx8G=eHSG(R$yo!!q(0EIT=D12t<VhZYt%Ua%xt1$G0U)j1EUbzJ41sGeTe zGc}Oz61Itu=eYO+TP1omT@*-vD~-XvAt$}0BE1Bod!_Y@g?@x4UklpIj;I(sO6ts+ zH@<p3b-|WDS{YX~kE#JpR+kANTb`)o499|*6ZuYJDrzPUXP-sJyj(BrJkNmYcPd53 z%T@4Vab?FY?(baf9Gt2%-EVsvqH?Mv!LC~CNQ@~-wVP@@2Z1<6plSlwCUBxTeOInE z5mQu{{Ty%S$5U@J8T|>QWL_)M=!k5`Qp~2eu1{q?_;4o=$`;L?*Uj;1X}h9FzBc-g znva$@bNWAFV0Du?t2QV{y5Ld8HU+os3p!SGvO+4eqbl)XeSn#9q%V8I@lHR%6mDc% zK?h@Z0?z%%#E02><5#6NWolIle?G1=E-%Y#9QNt`R<cQYef|5&_bzR}m2=Qf1=j+2 zZ=9RhLGNmqyl8hPG9H{!6j7h%{)~8saBM^LS?>foE+Fz(z!KsDVliFmzOfO5VIot_ z#(rnn(<||!J0_9$!a>?bxXA~4rPy}1gg412Zxk|y<%BQ3xC)YD-XFaW-fv9HQS~V7 z7{AwbpHLoH7t)S)4*Td^*|1ZgcsotAw5YUBPARLwUEG8s8ov0NG4`0JV(LjPI@N>y zr$10AA*P+DQ_<v0gvj!dmtP5CPs+O+cG?V_XKu*|5HufUglX(P4;e(P?M-y?(wa1x zzJTiH)ih~FL}^M(W;C*XNU^bEo3AT!Z~2LpbzWoWpDNdvN_k}N;rdcre`?eAPhOk} zQsq}WWNU6xffU-$FydcIG`u!In!erIcT#JPVwV}Ege}m2p3Et*Y$r2)<QDQ!({LH6 zHhe2v8{2iwr#3BT^6Qw9GoacrogenRp;l@@XjS%Yl_`@$RJ+~#;|Sjt#u$YNZ8(ch zm*HFQ3fGC)aKU5(di2f@#uqqj@l#&QRtz7XJtNot<v9?i29U4fE3qGl&$+$SmcG{e z%-Ap5(N{MS2j*DK6z(cvQ<zTpDA!#6`=QWBv5scrj+F%lIcNL>KW+Es&?R*}VpDQ% z?Xa(@zA<Lsov0!-FTb%LQQ8|D<!~WFnPPIztrtzt?2QuYa9LX_M&uxDV>n;w-2y?z z>>0I~i5*Rjs)R;SyU+-d|J<r=P-QtH`ndpXt8xmma@tVJ{Kvb;kF751TE2ED_@06= z+Oqv!u41`g?DX^35)fXRALi+8R1|-Z=n>0QK;-cChH!NT$HKbmw32f4?=;8xN}Y<@ zgrQ6@<b)b{<Mp`Q!hqe)Z|m$bf$!yzR6FUuFCgG*N#vxtY8IE2|Bsi8BT3WB%Gu)H zSq%&ISd*-PVKa^D{W#4coV`edVN9OJS}VJZ)&pc{HQ(7ITDn{Y$jC%JzVL9Xpv=I% zZ*9gqCPI}B#;L>zz9o-0bMYGQ=1{dp!Ak?}W|I4<qH`I-FZ;*_7jAwRcUvOVLUPm- zN^37nL9uReufuT=YASR8ZNiyZQm@ta=qGtqHJJJ7+>UU*?hM)QvL%_GGx6_r_ca_6 zk&OY{vym4FNP&u;UCcncQ;<66tFH9a&(i^$Z@R*RByS=kCEt<<o{tMZBHP78?06Av zo`k*LwU+hX`Qy%?o02ao%WKQ1;7jap3(!w_j}DKWqX}^b!f5Y?pSATu5Ic;#II+6h z2@MVuwA47HXkFu&B_s-tHi#e6aKE1HRcQ=&52V%A@V&?pABhO5Cm46u;~f!)TyEvZ zO^sLFf3y`iF*-+(;5x_SB;a-}Sc&ZwuGIAC%|e+G4Ke>Jh5Y_Ho0eLW<4QFK1_?2G z=Gqbg`?N;#`s}bEcEJ{E7%FT^a8WS@hlX&Ta^y6XkHizR%A9*N{!BjBSe3xH=ryId zIkV$flc(WsyWTXx?*@9f>NoDm2YWu3Mlq!PIiv&&{;h7^O*G3Pjx5z%J+Bet{;2H^ z_gp|D$W`@gMnLRfERqa!T-u#v=t;f*$#IPBn5Qsql(%5+;Ew^u$Q)IUbPW9;gB*%W diff --git a/OsmAnd/res/drawable-xhdpi/map_transport_stop_bg.png b/OsmAnd/res/drawable-xhdpi/map_transport_stop_bg.png deleted file mode 100644 index a7a0333ef9ed96380d7fffb41f81733360fd7b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1352 zcmV-O1-JT%P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00009a7bBm000&x z000&x0ZCFM@Bjb+0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH1l>tQK~#7F?OM%i zWJM6~eqS>olVnDXZcGA+#B~YF?!lAbVXk^lj$RDp<XI3Q$<ebSDEJrT>ebVNUWCzw zfS3WZ7>vv4WRlEeKHf)Lzn<>ip6BH1yas>J>F(;+Jyox&y1HM5vHvk!@Vf?t5S)OT zp;k1Or`<7^@$my9_giAh8l33?bY85>#h3}R?6lwVa(#YycnF$L69cLvs!LSMqT1!n z&CSxr#)hVsts-gb>+5JoXs@lUnK86!4cSMn)`;}lD4=P&`aO(;7k>)B6B^(<J3HR- z@p15W{qxPa#kH?F<By2E#AXa3(r<g6Up{U;`J_qRguT#)(CXv6ySrYa(Fo?2Ke%6A ze)OaWj88&bUH$dbyHCGAJf%)TJZGdK0oAahqa#jl9x5uobN|6-V7^*g9o}1gtM7Rs zn<e5=pSS*O&UHF}EG^a^enq7Bx3;zh#B)sTu>dD0C(r~qoeP4}d!W7Y>Kj9k`{ZpY zXEQ_?mc+f)2YnJCVqWkNJT{xngnSjIB%OoN+xM!~YB(4S%6j4;E@j<*N;|=H@Bc3m zMV{WF7O9$}GN1wtq=9<IOViXR0ZMvO9A{kn$gD9MWp)=l!rUcq*p@hLTiA2`D2jYm ze1JzEJX7sS4V;~wp~KZ+p@Ek?8jU=~^F(0KLKGd+A1ElwwiZCl&(E8|B7@$(tk2KS zQE@E*@AZ0u)Z>B%0P~{Z1AN**!NFHnR`~w@zVrdfG?|bqJ^+Y|iwi-)jOjSQU_#6x z4d4$1@R;LpRRCitF2(^3esFLwjsq$vAj-Mo0}{9fNC6NOR3LLg1BzD(y$cE2g_tWK zUd;ysZ9*JUkqI#ez_kWw8y(-s)VabH2o<vca~5*Sd6~6in!}v!7)1um+&(#*H~=Sh z!3WfFTIj9c4rGD`oiHWrLUf0hJCP9pr%@L)pn0UzsI2YND5}B-GJPXcnAnA!FdyZ_ zl3)8cEw?3C&O)#j+{lao`i4*Hal(Yu?NK6sCw2nRfR4r!M+sL<2tH7&)!5$Np1IUZ z#$7NW1&)`F!`#Ga)D`^eFb8SuGdAEC<SQw1d|vM6ZoO;~<R?%*s>``w3H-#1!eU4f z$NdQr@UpRUk`HkE+bBLQW@*w#4vMu~r=|SFSs+bge%1a><}F6UHs$VER;g4{vKj<3 zlfXb`26|b3ZN2{Z&Bq^o!@ZzTP9d_Sclz^}A3p#6y9RatraW1fQcXjd>Db=h_FAo$ zUoMx!+nZ-e@A}z~^VO}@Fs!`JW{fOLZb!q;ug#}le0ur(hbCFcb&@3gcDp^2iE#Ct z%utdUEs%Y^MD3S--<SC)I<_MD=TToeIrYiGeTF)ZX>?7q=M%W1W7Cjyd#*JGdP416 zYImr#Rq3*Eo-8$aVuH+4QmK%XOB53-Y;0Om0R2Nj5O8_}jB253hFXtn#z6<vGngZp zRdk`|m}jYvF`?(EwU8W(!!R7gaSW!fDS&k^FE9ISoa8ea;Pralr?gE#rKALrX?{YG z3vjZHsI88+`TvQS3Y;R<I^vEo^Nh7N1b|wGsti;yiSCKWi~p0Lf>#uhqyb6lFDxv0 zH#awiaoPb`x7%fQ+ot6NohF!|=Xrh&8x~C{0Z^cpSP7Nswf_N1V?q>Eg<fR<0000< KMNUMnLSTX`;DSs5 diff --git a/OsmAnd/res/drawable-xhdpi/map_transport_stop_bus.png b/OsmAnd/res/drawable-xhdpi/map_transport_stop_bus.png deleted file mode 100644 index e2dd0ea9c982dde23747139c44294c14535ab3b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1572 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 WIl1s-Iy-Uz0000<MNUMnLSTY?K=Ka& diff --git a/OsmAnd/res/drawable-xhdpi/map_transport_stop_small.png b/OsmAnd/res/drawable-xhdpi/map_transport_stop_small.png deleted file mode 100644 index 493d859b3b3b0cfc0ca816b3e2c7c1bf81591385..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1592 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2c=CaI?h>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v(@i!sG*mFR)H5`- zFg7yPQ7|$vG}Sk-)HgKHH88X?G_W!<P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2 zOG|8(fG&l2A-BNS7jAG~F*KlnL8f1kSfFpHXP}>(3-T9Ob#X~hD#969RTqa;7NqJ2 zr55Lx79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD+>z) z17lND3tdAC3qxH~0~15tB+FzoT?@06)HDMlOUvYxM3_0)^t+iETe_N>8MwGQTNoO; znmU>}n!1{~nHU+GTez56TEO&r<`tJD<|U`X?9K$*4bf}rhF7nZb5UwyNq$jCetr%t z6$E7Dm*f{`<QFJ7JA-3gK_fgfFD1XcSQ8XY5MR5b7G;*DrnnX5=PH21*(wu@8<NsY z49!ywjdhdLlG1dOEKHJhEmMFA$kIH;(jd(u+1T6|=zoa*6mr8)ALuB3P+~z!JTM_( ziUcv?Spmp_XQtFVU=At*W|i4%tTr$(FhzK}IEGZ*+7h}y|FVOK-F#W=ZI_pE_6pq+ zkP2L)v|>u5P7cq@6Z09knVs1s1cjLYGw|fNI(-ONkcgNe;30b{tZ7w%kn4hFnZo}) zWUMXkZ9aE(Wswx;74_OrKmWYjeg6D?Tkn)255r`&GaECzkL<K?Q7N3^(eYhGp;(21 zOFp@Wf$_le<RcL(Q<F|ia9~zpRC9QKq(%5EBVPi;haYU}OM-YLh0bLBs`;1o^kQuC zvXIHb&z=U%d;ezlwe|e>&FAm``s=N|LFz|dKM&<Y9Xz2+i;vzmKXv{6{uqro@AJ>Q zVvSAPy*iTRv)?wS?YesB<-Z$MTk9_TiD-YR7cM>NRFhTBS`m%th?RDgv0CA0xPM-q z_FA%eop1Xz@4tqIZN)R2mS%c|g^6dkul0Y=bic4tGeA+0)45dp>T!Orr_ooRyvaIT zcCx}msmHNYz~WtX${MxeX{%T&7o}*d_@i}YQsBb2#J^`|E}gYT^tQA8y>y8mJjDjn zug7%mV;8My%L-MU7&UFm8s}v#OHyP`>}|?!F`ugO^Lj#Zr=ZvzGc(aUeQL67`}V%( zw>oBGcmMUP4CRAQeAXyFc740}e9Z2NbKN>DXK4SJ&>3&Z^tN={x6MCim#cK9nb@Wu zpBOp!ZTGc{W%bWLZ(g1-+f1D|^we@GrpA^8ix)K)gS)d^dW)v0F?n4Tymsb$U&-$u z(TrxL-(N|;-h23$oX$p8`AwVq;u3d$`Y_LO_ZBtnV@p50V9h)H@^8)l-9I1k%Iv+L zF1vTfvxXyV`&Uh5wQM}SUU>H5om<uyXKwiam-~nI0S4Y~(S1pqkLQBQa!*%3mvv4F FO#m~;Q<eY# diff --git a/OsmAnd/res/drawable-xhdpi/map_transport_stop_tram.png b/OsmAnd/res/drawable-xhdpi/map_transport_stop_tram.png deleted file mode 100644 index 5bc8cb3c81828f33879a6190133786dd98040977..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1664 zcmV-`27md9P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00009a7bBm000&x z000&x0ZCFM@Bjb+0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH1{Fy}K~#7F?OID{ zTvZr8=e}kpGf8IJrVo=qQ(`Tpv<p{?i?k~Zb|WT;i*76w@v#*|OtN$*SOo<aZVkAp z=*nyg?M8@JijNN1VzJiL$!jL_xR2xiojK?B&M>jLcS2_ZesDPNGyi}7^FPi#!`T1m zE%<gFLI_Sk&XB7%*50<wT*jLNMB8tP4r_3xJ5YJJE*DKA!eu-CmeE${^Yim)Gijnl zxkGu1a+y>)JuxwnI(qb|Zcj&&Y#SdRN7+GnY-}v-Lz&i)b>wOdN3V^9Hr=j%5B;FU z>_Bge1o+I%jIp@5Xgxjk(L`ow>@&{zX=)y3J%$ke*Oj$j-dVo-Zjq`UdngT|#m8r7 zXN~3MWh*ms;dp-J^woYKycJ@7{lO2<-MBV?iz*(`9FT+rM8g&q7C7xZM3jE!_=yid ze7-PRKRo(W)i7+<OSp|HU-_$;SzG&ac&KpdQ)-%?oSdu?%`TOj4BWhV6OsU>8Out& zfVKk%kJSxslD7Gr^$@n55{E}mREYtH8P+M#SS%Jj(p4NKsT_=U-^l0lcCA)R>xnft z6_l$!S%S{m|2W||hPF^clw~N@C_w_grN$V(@0-LxN>6g#fNLG;H5!c|S_O?b?vgf` zB~E4wHrI3<$7KBv&}f2Y$_*)j+qZ9{!c}Kq1Do7vGz>*Evm$+(iLS7Cd2r~z`e)wU z++f{7>H|4NcK7aGp*@?(X0u^uKZAB(=0rR)t|h=Lm5LzobS;7C4xc)1T61p?4E$X5 z{r5lIs<7QdxY1yMck0*;%uc5e$FMKIsn^-=f*(0@gkQRJNirabrX$2%*G(jW^XF2| z^jXU}P%w;6{g6Vm{$N!Ei{CctOV=7MO9pZ8-aSFi?4c6l2(bhbIQOh$UwFw$$C-1W zz>U{mO=Yra#;+`?Lmdxtqrrf|y2Q)R+p&m`V*0G(urARx10(y4#EK6|uw-aaVvVl+ zKwSI&D1Wg7@VU9UrXPS)0LYB?y&s4I*8s@?oPu&>eG$Ap3W`<<eS`#AA+}dQw1yuH z^bz9V%IV%HJPvRz0Wzb_8<~nL_6mgZSwI*Ib*;R+U{&HEw3yls^QdC<GjPnKk#p!s zpv2wiz#DVrGSY61+YTz67TWYjJ)xk^J>dsnh3F11Em7!+RW!=tVynu;K!)*;7jn6s zjE{~(RLWukrvy@<XjIl)ju3Ukc4S|CRjaL(g4mJ+;|Qr)Of*`9*A^?3==dyMcU>gh z39<vt@VK%iI<A!+;QahK$N9S?f~0o=NWivjX-cEvv@}aeW1;*oGeG?M1`D<$9zY+6 zKe&$@V1^|GP77{i;e|%u@RJ-NU}DUY8!<e@j8|SvrFJss*tlu@^sDEyn7|Q&zUq4W zoj4K34w<pz`jP$e`Wc%6020vNxFwWGdW5bl)stKc6N4lm3WWl@c=4jtflz^y9-$t9 zW784LwM3(P1<_zGywF5rY{2Z3ucWY5?H_9*n=P#N3G^OS=G@F#re`>Ie{kWt)fN`8 z*|40X13da|6rUCY->c#cij`JwrP?R<0>1C^_0sRsG&kxcdb?vmE|>FR_Mrn>Y4L3b zav3=^K6U2FGjDy)4Xdw|LIhsr){mdOcK?s>mZ|y=y_1#csi`hsI!>NEX{@ZQnCW!d z-rBt5RW|N?pUqE>+IH><)?);Lx7Dbx{Z_nj`MuTq*Nb#YHayR(mP)0Dd<a+L<O?Mo zqd_`f`>4F%G)?&)MPVx*{|u^2C8s(mxXF;Wqf@(Xi_Rx-)efT}+oN+MeQ5WnyhY_T zN+p$WpTIkrAHEY4<SQkm9C0~JJ^^7bj+SIV|Bz)_oOXawE>zBt>wZl*+5t5Nb0o2< zU8p(XSgNB>=s9XFgxf9!Z#4?_LG%VWu=48aYLzt~`9cZssi`TGo^32jDaD9<<|kNf z4o;TgwN+@_{-21BP;q?6u{y@rV<KyV0f?opQcb1sp}WQN;(rp9uthd;Y7wXA;NYOK zxw#n<P8NWb)s0Y>qit=Bc4AD>c;3E76p=Qe7(jwpT*XwN*ZvnZ$<xVOD2(|40000< KMNUMnLSTX-<{ak$ diff --git a/OsmAnd/res/drawable-xhdpi/map_white_shield.png b/OsmAnd/res/drawable-xhdpi/map_white_shield.png deleted file mode 100644 index 48878cc1e6ef9b0b525dce45a45943b009224d3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3817 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 L&b-9bGva>$`a!FU diff --git a/OsmAnd/res/drawable-xhdpi/map_world_globe_dark.png b/OsmAnd/res/drawable-xhdpi/map_world_globe_dark.png deleted file mode 100644 index 0255f1b8832aeda61b4a0835d568bcbc6dd7f65e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1808 zcmbVNX;2eq7!Cn6QYb2D5vj98P!TqFHU~tGBq%Kb4Oi4wvdJzalVd}&kf0SKh*et^ z!HQUP>VbHmK(#m(6{sMfqo7g*TgBqp!l(r-SV!#!!S;vakM7Lw_r2fuKF@p4Zd@F< z(8JBwjYJ}O#4M7?iIw4aDHDiq3i<h$#4-byD)0m>4Y$H(loW|zDinw@!0D(Qg^}!x zRy2%6a?a8wDsY7?R;b1dG}xg-vl&bTnnVf<x0ztI4#fc#nyxj9s84F^sDKs`QB$}w zhRh^JHQGfh&1k~PxJ30zomzlU!xsQyHX%V^Kyetb8T3Yr&?cge@(PK)<CsnbMpbZ~ zi2BAUg={e(#>^<dr9q&Y!Q=ou0gcIpcmiGsz#?QigHLBMK!!lbWeXWBVC<n1*33wn zP%eocvqeZEss_hRLOR`QwbHC?8fH$XGX(+xox!5BSRkPRTC$BeYy*v!+2afn)S@<P zO}G{_0uDx4g=OL*D&gsy5DX@n>@Bg;GL|SJWpo>CqBCg>y20RxYgF5U%h7+`c&D}{ zG24XF<){VAG^>evq|F`&6S;f8A%`O2jWFJ<C5i&;C73$XfEw`_iHJ(v&=4&m<Zuy0 zrGg-k1wkB8z~Bf#fdFBF5XwZkY83}fQz7F#@4`z3Jh7B7fg<@lHj^pkM6o#>sgw;t ztVj+7Nu}f17^4M;jcRn<wwACxhULB&D-@ei7{|<s7^WZZg2fsP$1EDm1c=3>RR`v! zXpIPFwFEiJ^d@QvYSw0<NVFL<0Hb*pYTw}lhl{cV2$Kt<5TXXt9P#scd>G^-JQWXx z*-Rn<)G<8rfAdEtoT59L<v-0cenfPnWBYa#2;uE8p+;hY%*3eVFDizK31q}bA`@*l z`%5nAydwRYU$iGL3DA6ytRpu;y=5aUm&JzoUTNF8`XV>#$ai<jj-HCD56InfOf(4` zx>nQ_9?{p`+;l`ab^o=Iiq49jwUa`^bH44qRnqF)Qa|zg6GbIG)~s1|&t>I(r$0Vc zdRn+F><8Dz-H=cJhCC(NkE~@-YFdVS8dg1>8j=_I)UN}d`M9IBF|;Aj^kIPb)i7uy zJ<jvo22LhZ3rN{dum2psZ%b(f`y{yJ>u{${$Db!|&s^@+4z4=;;HE6Qd&d$dk@9xc z-r|N$ZJ}3_D}$W&@us`ae4W&Jc1CPoU2I7{kV@TPFU^Np3vc=imZVs5*V2=W2X*!- z2aj=V;)|UJJhr(6xK~0+-Gk>nZpP+LJs}L-M`_Xd`ekkvkY6!^6XrS9HY|%JyDXI# zSD~IMooywxl$ENXtH!*250`eC{SWcx55zV1Bgv6F?(OdFzwbh+WR+<nTJ4nI9=#k0 zD?d<v)SI!l`)RuAyxs1m2*|!0>Ebu1?b7_>(kkaL4rlwUV7=P)K<nT%Q}DqbBSNv% zg29OV5ZIa3Q(g7hkw<e4NtzjtB{k7I+BYjdf0b45&0eQ3GsgcyeL3MQ?D_0A>qB<w zuLT=gvo9#x{p%<Hk$#cCt9Gc_E<O~`UB}NKvY#yux~qxnKWD$c-n*unyrSTt^MY?e zWs2R=(+F`-epi?NE1!g}3s=^<d;QgQ(C6qDS1i*@5%{{*C8NA{XVKMXB#&LwO?$Sd zZmS8JTTL0hTzE#O)OlHz)x)ucXO=?Vzwgf}5VRxHL^Zw{F<{<8WlO@1qz4g2?yC-j z6nxUzV9Oh@>{^vKxsd##!E@lTu|vFiqqgzM;ypX2Ox%5vvZCmWoH!CyL|qTnhNR>u zayA~>yJ&r~qHKw>&x>!gCH2a$WN9)c=uZXID>T*T4v)B6n{MnR*SfpyEH*&gGqmKx zfhI4%7d=1q4dw3F``=k!v$`Sj<xp-z@WEV1`<yQR!g-+ZiN5jEb2Ciw4-4Z{>^H!V z{I~80oTKk?b+^|1J*RSM>e})<8}ZHRx->&i$0^s7r|oOV?j&c~$ofC0Om_V9NHNkl J$?+&<?mrUKy_x_3 diff --git a/OsmAnd/res/drawable-xxhdpi/map_marker_point_14dp.png b/OsmAnd/res/drawable-xxhdpi/ic_marker_point_14dp.png similarity index 100% rename from OsmAnd/res/drawable-xxhdpi/map_marker_point_14dp.png rename to OsmAnd/res/drawable-xxhdpi/ic_marker_point_14dp.png diff --git a/OsmAnd/res/drawable-xxhdpi/ic_note_audio.png b/OsmAnd/res/drawable-xxhdpi/ic_note_audio.png deleted file mode 100644 index f00aa9a3b414d8da105072ce1aece0ebbce21547..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7357 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 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_note_photo.png b/OsmAnd/res/drawable-xxhdpi/ic_note_photo.png deleted file mode 100644 index 8a2a815188bd96b43514096740560f66677ac09c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7299 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 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_note_small.png b/OsmAnd/res/drawable-xxhdpi/ic_note_small.png deleted file mode 100644 index 36f117050387397a25ec4d12d885ffb5917c4c84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3569 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 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_note_video.png b/OsmAnd/res/drawable-xxhdpi/ic_note_video.png deleted file mode 100644 index 8f09403f52cdcb0c4818e89c8b72d644364e060b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6679 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 afB~--V@ga*{r>#=0jMcyLW>nF0{;it(@!!0 diff --git a/OsmAnd/res/drawable-xxhdpi/map_pin_avoid_road.png b/OsmAnd/res/drawable-xxhdpi/ic_pin_avoid_road.png similarity index 100% rename from OsmAnd/res/drawable-xxhdpi/map_pin_avoid_road.png rename to OsmAnd/res/drawable-xxhdpi/ic_pin_avoid_road.png diff --git a/OsmAnd/res/drawable-xxhdpi/map_shield_marker_point_color.png b/OsmAnd/res/drawable-xxhdpi/ic_shield_marker_point_color.png similarity index 100% rename from OsmAnd/res/drawable-xxhdpi/map_shield_marker_point_color.png rename to OsmAnd/res/drawable-xxhdpi/ic_shield_marker_point_color.png diff --git a/OsmAnd/res/drawable-xxhdpi/map_shield_marker_point_shadow.png b/OsmAnd/res/drawable-xxhdpi/ic_shield_marker_point_shadow.png similarity index 100% rename from OsmAnd/res/drawable-xxhdpi/map_shield_marker_point_shadow.png rename to OsmAnd/res/drawable-xxhdpi/ic_shield_marker_point_shadow.png diff --git a/OsmAnd/res/drawable-xxhdpi/map_shield_marker_point_stroke.png b/OsmAnd/res/drawable-xxhdpi/ic_shield_marker_point_stroke.png similarity index 100% rename from OsmAnd/res/drawable-xxhdpi/map_shield_marker_point_stroke.png rename to OsmAnd/res/drawable-xxhdpi/ic_shield_marker_point_stroke.png diff --git a/OsmAnd/res/drawable-xxhdpi/ic_white_orange_poi_shield.png b/OsmAnd/res/drawable-xxhdpi/ic_white_orange_poi_shield.png deleted file mode 100644 index fd74fb4a1d37a718153cb8effb1a00c70ba57c9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6317 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 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_white_orange_poi_shield_small.png b/OsmAnd/res/drawable-xxhdpi/ic_white_orange_poi_shield_small.png deleted file mode 100644 index de667297942d127db076a6c0ce2641079f143c0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3670 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 bUB(x{<ur01-ePRo_|wB%+T)7NeG~o<xw}&S diff --git a/OsmAnd/res/drawable-xxhdpi/map_white_shield_small.png b/OsmAnd/res/drawable-xxhdpi/ic_white_shield_small.png similarity index 100% rename from OsmAnd/res/drawable-xxhdpi/map_white_shield_small.png rename to OsmAnd/res/drawable-xxhdpi/ic_white_shield_small.png diff --git a/OsmAnd/res/drawable-xxhdpi/map_osm_resolved.png b/OsmAnd/res/drawable-xxhdpi/map_osm_resolved.png deleted file mode 100644 index 3f016cf21606bc98678c3c839e90d23e34970d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6995 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_osm_resolved_small.png b/OsmAnd/res/drawable-xxhdpi/map_osm_resolved_small.png deleted file mode 100644 index 15a0b462e2d68a2e62cdaad2d91e8550a1e11d7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3683 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_osm_unresolved.png b/OsmAnd/res/drawable-xxhdpi/map_osm_unresolved.png deleted file mode 100644 index dd70e4bfbbc94b604e9b260cdb5b2bab8add2713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7135 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 On>t)ux#od&<o^SeCKWpX diff --git a/OsmAnd/res/drawable-xxhdpi/map_osm_unresolved_small.png b/OsmAnd/res/drawable-xxhdpi/map_osm_unresolved_small.png deleted file mode 100644 index d9afeef173a7c527da3a6bce6136cbd4b4e8c67e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3606 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 QuKlUm;O#BSa2~P$0Y)TB(f|Me diff --git a/OsmAnd/res/drawable-xxhdpi/map_pin_destination.png b/OsmAnd/res/drawable-xxhdpi/map_pin_destination.png deleted file mode 100644 index 10adc01c2f9a2681abaf303545f0f8e5c267f82b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8245 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_pin_origin.png b/OsmAnd/res/drawable-xxhdpi/map_pin_origin.png deleted file mode 100644 index a234377be6bab7fa307b23815257ed625e408bc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8623 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 TBd^L|zfh<sXv$a1S%&>Ti+}TA diff --git a/OsmAnd/res/drawable-xxhdpi/map_pin_poi.png b/OsmAnd/res/drawable-xxhdpi/map_pin_poi.png deleted file mode 100644 index cd2a444309aa2b068b8413a43237ee0ef679a4c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7395 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 a0l>XIa7=whQtr=hM@>~-SfjFC<o^Q`rI-`| diff --git a/OsmAnd/res/drawable-xxhdpi/map_pin_poi_small.png b/OsmAnd/res/drawable-xxhdpi/map_pin_poi_small.png deleted file mode 100644 index 9a335a91c68015d243a265a4d5f966867efcc23b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3614 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 Zfu@DIN_oZT@|8a}SI3>i@~y#%{{hANI5q$P diff --git a/OsmAnd/res/drawable-xxhdpi/map_poi_parking_pos_limit.png b/OsmAnd/res/drawable-xxhdpi/map_poi_parking_pos_limit.png deleted file mode 100644 index 894d41feb6298f228bb2ab0dd1c0df95dad5e1f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7012 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 D0C?ZN diff --git a/OsmAnd/res/drawable-xxhdpi/map_poi_parking_pos_no_limit.png b/OsmAnd/res/drawable-xxhdpi/map_poi_parking_pos_no_limit.png deleted file mode 100644 index 3a19aa5bac31480d7bf6f7938c0376499e574d0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6375 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_transport_stop_bg.png b/OsmAnd/res/drawable-xxhdpi/map_transport_stop_bg.png deleted file mode 100644 index 1679401d7b0582563162c993580679babbe82047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2559 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 VSzEyKmu3I}002ovPDHLkV1l^N@)7_5 diff --git a/OsmAnd/res/drawable-xxhdpi/map_transport_stop_bus.png b/OsmAnd/res/drawable-xxhdpi/map_transport_stop_bus.png deleted file mode 100644 index 5d1636ae9e913bbc6ca027cbc50cec2c25b8f96f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2959 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 FV1j@FwN?NC diff --git a/OsmAnd/res/drawable-xxhdpi/map_transport_stop_small.png b/OsmAnd/res/drawable-xxhdpi/map_transport_stop_small.png deleted file mode 100644 index 33a327e22f0af058a51439105a6d9de226fa8077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1889 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_transport_stop_tram.png b/OsmAnd/res/drawable-xxhdpi/map_transport_stop_tram.png deleted file mode 100644 index 327e5250d24c93007c3ddd6b979fc123a7c40de0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3018 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 M07*qoM6N<$f(@&`pa1{> diff --git a/OsmAnd/res/drawable-xxhdpi/map_white_shield.png b/OsmAnd/res/drawable-xxhdpi/map_white_shield.png deleted file mode 100644 index eba1522750a01cdf8d495339a3c31c1626deeb56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5767 zcmbVQXH-*7w+_;gBE7fJOF|70dY3LzVhD%?2oeGb5<(SeFGWBpQk0@dF#$uBP$X1E z1q4AU7LX<&MT&|DqTKkldw+cE`*F`&=ggUz-DdCo%$_w@ot;i|u!*n%000hK8%q~j z8}|EUVWNGrXH(*6jc~XXJlqu*5FUvPLjlbEalR-i+YsbMlnV;!AAM;MWe5P!N1)x{ z;c!O>eLq|X82Ot992F8u;|2f>O`<}Pei&4^lrQQc8fygH?(6|dq5X}3=OB*ij-eK) zK(tLv7|J!q$;~eY;|KKznixwNM(NW8grLHaQc)qnSiF9e5%5pB`n3Pw!)idOKS{zd zM!>&}f;&1(S>VD@QV_5X$WL8ETS^xS)_~~fLUmQ8G--V`bv-prb&xt#AEKqNt||5R z1EgsS^AFH>v9$hM7p-Rm3=9ts)mKxCjEn?FYJqWK7u7VNP^g-^rkbWEh(-azM`Od0 zQ6MZ{<{t@`D7;@7Iy4-O!%F>@i1ft~!i|75OaEFzNT{RZzk;#&za2$$nOYPwR80e{ zt`-vVdtHB0<HKE0|7*s7q{h2NhoaP6P<R|6%#Rk20GWT7X}<gKihdK)tkFLchNcAt z8ElF3BZQ!^;kK4WK-vu0AMLNNr>Cy21%c>+H1zZ|KoE6p4UjL?PY0x@<BtkZ*Mvg- z{E`32`A_^-P+f?+mL)`2-9k%4!wRAY(bF_n*S69%)6}xE)`0%QYm3E)Be8y{e{`d1 zy8q_Y{;$0H7GWr4I4;Z$hYS8E3!DRS;W&ICE>z0G;?Jl{DV{@P{c(|arQc!tYt@#h zFmwdU-#QEzBK4=A_0j*q1}zj+1F3<8f;3RR5D>~w8wG-*0(?PQI(}LxUw<79ZCyR! z-~9gnU;nAmj8glZEdM8Y{u!cW<nP~qp+M{W3nmnnhM+JSRG6sMvH$=N(bm$;E$Z!N zS*(NGMS<QP11)v-6ZZw28wJi<-rt~a?apYiD@2To%rt*8ar9e~e``{R-JA-3*m>MK zt35k0f_)HDOqO>n)~TPYeSH|j&wpPrJv%9Ziln1E8!GYq`7Hj4!S_oY+1sNt!c6T7 z9k)8@kpZLG_-_2@&n>8!@SXmY@7rHe&HImqJJkD@IC2i-z+jfK#DvACC*8pPCMN|y zbih<5Vk9)2J6Mj`!&Xb5Z-<KXh-Mbp8gVgvt^(9B<oG2#V?^FEq_?b|{%%7*WOd3^ zL#VESc?q#xj*g3ao`3+dl)scA0`gu37Esw7lzga<=V178FTF$rkiGmRzE0i4wAnmg zf7MMYg<nz7I^7QJ!X`4jA-|qmIXcjzz&xm8xbL#+8x`gp&A$_5Hqj0k^i2sWuj1ro z9C0WsA>l<xrBO=h66-T6rC%!MkkAigUDXYuoCEAxP@HdIDNFuwWBP4ROLa#!0b9?z zk`<nMhW%zH`|0H|?mo(OcMTtjh;j=IY9ORl3^Q3^d~uHl2Hu3>@vFq@YLvqr<G9g$ zCD(x0!L9z819?6=CA<#uu6$xTw^!4s-VKjFMR4^mSzN}pz3XIRW;Te8jTJ2^E?&2@ zx5qFuF>UTdrdcv`ys4v8&Ln)!WpUxGDCIBq2iPS(SmdU6advJD?n`3C+>TnjiUNSO zl$4Z2r1H?O?r{U`7nhc<P6o;C+-LB~BasvrccWNLWu1sO*f}^3Zkt5yBmneYPEVf( z$ggc}MbN!|XJlkF9TXHaWM^kr4>g^SE9;kLgt3v%B@a(>$O{6~Rbh(D`agFne(sD_ zWMpK(z=#$_$@01~2nN=_`R0MGogG^u{=^h<SkSZ`a3efCJg2Zw;N{d*gyiUp*@uLU z55Io?h(Dpy>gs%+&n??p#r<UZ6Lwi*UqMFQm_vti&+<Sovcw<~yEs+nd4Z{|13g*_ zRT35!mNhb(y@*~orTru|mC5D8h3xE4^H=P<4^~Q!-*@0w!AC-O^%d<2nNwcgjI{`g z;--{`bg{n|$pauHBi3YJsA>yRRh=m;E<W^y!3saE5%0*eva<Ri*t_G8jSmi1@7P*d zrF3<5{p_?z<NS2Lwl*kP(uglXpP^hrxM+g|;sAbpY8g<hD7a3~GN0EP@~%~UCSW0h zUxjR61m3H|<;u2qd-q%^^LiLQ$hx&Z_P#6Dgt>8+&$(xKPxA!LcSIS>YT2^UpGVk< zRAzGGu0h16q8Bx4cl&nq%B?k@6j^=!V$0@sFK~;Ki?{dt*e@$1FHC-ZeU;ppYJAG8 z{(Q@o&pa5C+pe_Y&44m`Q4Pbxa+xuu(8moP4+4;vF73u192{6}Ow~Ow(_YWimN~zp zWqk1A2E!EAGb}8O^N2UVjNx)8g+g#PH=!nNMO`EK&YCux=G!YA!GxGk_m7qtWa<RJ z-ud<Ag~{>6`s97qDjt6->y?0ntJz99oFPdlB!Jv<wz_*L=6u0PejAG6*-h)UgeU81 zEC=3;o!i|%rmu<WVq>>DRx4IUN=`rNd|nE@0eGy~I7-=x3pfXZ!AvJM_zM`S!)q8@ zwxsA&gt+J&4n1*Q6lOsE=*Y;P+zzkRPNz={!$vGquNVEn$AZyOr%pwFB&9v40|r`4 zk$t?kF|8K+i8B2S&<j;LS1-%!-Uvrh5WIc*(~0ihxZq%_0{6#8(^uh5Gh{lT^!hou zk0NX8kCT#;_;W;miBCOxj2bS?y$XgCGOk^_mQ2ALmA<d7tLsw9P5M}T{w4$=qhJSe zlkVQ>Kl#S9HTXbJO-&6sUSZ|m%mSC4iu3E8TrvCQ;c?-@oXU;UcB~DNjgN{qGhNvo zJ}*hDJ-@s+dCnwt!dDp<C|@EgFYjw9%2BUF?CktO{Pyh|v)kQ-XYB~%Q-YYOz-x9} z6AnZnpE&fpHr(;_TMFi)sz>u54zRv{V>oJaqQ(_pTwFYQVl1uVM51v=oi!#OUn4M7 z{X|YyR(9(xWkZs79$9<y=8b>z$$JU`51<mN+MQ(bX3MKJF&+>34QntMo}<bg)Z*M^ z`?@Q3-(cQpx*kEv5c+K6;_Ax!;>%T^yRI)vq4=v=;6`SO_+xUiJ%!~|T;GT&j@raJ zvp!nn9dlLdmIITSUBF1O)%yCn0O0x5(9jSQe@-zF4w7<Y1M?@B=#k5?Gwr*$5?x$t zf3Z&vuS&tvvn*k)_Qb?Qej1uq5uTnJPrnLIFOze)CV(Dwxe+x@K5?#@nVECUMa6}; zZlRrTa8p~^`nar{zc?k%UjZ@>fAFY#DOL`7c`6RPH=;Xt6msRtuVFYq*V2eqguIlR znwq+b)GpLZ%d}<Ym`>UARzmE$R(fi=zf8EEkz3k(Jea@3tU^+m5MFnJ7atigd4!t` zDUayG{rb1frW!6Bt30Z1KIwgezAcDe5CZ~%1{7f+xdjTm>SjwG<WO0!{V7vL6DSHb zcPga$@<EttGtNw$4JKUeTi}4Hdb_Oj7MM2uMBE^PZ*_V3Cr`so(TXM!KOH|=OyZ-6 zZ<}v4bKRTavPA#fKcs{9+%JU=17#nIhF0cFC$g?{64D>?Df<a%9=0;ql;qt^7Kf4^ z#X7fPXAea~xms=BebTwjKuCLMe2J?8plLVOREjC^_xJS@WEGBHo{K!gh?UR*PR=tn zuqT2~Iuj@K(Lj+cdI(x|oTGEHqN2imZEdZ_uPZvLf{)d?h~%0Z>+Wa(uY>__7$Ew1 z;*Gd<oUAg+!Dos2u@DvVwNf6N>m*#{*A9283LB2pH)5UoQHEqcfqq_D;;E{+<$gW8 z0#gun-#Dj4Cj`N{W^LY%CEa3AdT3dOeNTnj`<A&~^K$&74mqBl4$;!WQ*w3J)kv=n zzN|LD(!Ef^O>o)shC3dz@BK3j2H3~XITOp@Rp(n3yWb?O<StI9-q$~c9AJxN6D^+h za3+#GCp3g-xy&>aA%hG$E<Ky}MzpO<b0-4VwZ*6Np{d;IY#Yf>nNga(qdTZkrqw2M zEUIrTCY^zhsV`q?Pq56yxGS@NcM$Kq=(EIVVJ<`R9J{1nAgBHb<BpK2R(;8Cd|5tX zR9#j(>EVEmmL^7)*lOLJ&P5sturIcWJZn{4jy?O7&5ZMgmGW|4_c13tCmzXn!rW8H zR9wZ9OgD)*%^!T}skV-+=5G;<IlGp>l=EdBVAJ|Xr<*{pquO7@Q!^SdQW+Z0a>*3U z13zj&fR_ztSvfXkBk#FG3zLEILiGDjdodi>PTw4p@_0!1<@I^)AJ2t&MEdSIn9mtN z<oi6To-Q>ll?c;@oC^Cx7^qD2HyD(<_Y;h%OwY#HT7iVlS+4ZUna;ND@{pGk9k>QL z>L8%|mh@fj&e`i*lsnJnCZA&nb$ROIoTn9Z$Pk*T9Eo%R%)-&G*((s2tzU-6l7#*J zeO<q4<exs8(1;G7t7<RHB*(g+jEHK&r051c`Bk0zhcy7$x`LI@R*+IBWVs<^qLng( zu~_WG$nD#AcTXh+qtR$!rRV~0MQG+jTc*<dgF{nqYE;w0)@&zulMb8SouqFyTX9_} z$1-tPUH3+kN&!N~XdWi%t9vE*!@tvmAMfpF^pOw~cFB8fyu$stY_G4)or+^5usy5; z%KWJ0O}QM#U^7KmMD^LSXv58Qzkd5RDA4<&S=rRol(%fQCwjO~lu$3QnMGRv4*L9Y zys}{D-oE6Bu7)L-+4%~mY%!>dnf2Vx&;z(^?$z`v;5kW~Qs?AHj-lXG=|h%vp70p& zo4;gkf319Snlh!_>U4ZrQNfASw;=x;3&XUXkN3l_vrsnEbS;90g$Cmsy#N-4388_+ zc}5zVj}A8);(1ITUOgNWd}HXsx~RCHG5tLB`6(xohOC~MxQ?!_ByYV1r&7E78?QTZ z*?h;+Z94%@rTi&=saeB_#FMl=A!@!i@u&X>G6>RE3(e;1oI>tr(D%H3_paxuhD9oa zJjvjhWRGAfaU5F!^)1LiECXRR1fKoa*IeTIErJ)Vgki!rAr)Jk5{B(Xh9UzWeBqLE z_9RsUhALV$6`b#_36YvxBr969u&%Qc6dbzo&n)jdJhJeJ8Rs6yEZ!**5f$B79WCor z0)a+!Bu>j*O9>|sa&IV{`4;ziP$7P6dwW|tTmF3q9~)hUudjo_2QtrW0zI%ET>6%& zquMO}tn)dN)<l`lH7q~I&A|fxgEHi?yt8qx-V2SOMqSe3JnFwvmHKR$f|-6sJF6)h zf1gjzj=H_gH6^lanjt+%C$TGXSt@wfODpd1Yf^rGeqd#8UW*U%h*k&bFU0LlZqd$= zUZTt?fs-<>BS>Yoz%{g!zxNV}3wpD(^zt;etzmd*Xt6P^O*)$~@*};e1aNYnQ_?tV zR*KneM)?a9s_+swx#7nZn1{!k;<B<bF<#yWr<kt@e}>a4n!3x+h!?kwjuT%o^MKuz z;@woo(ZciQ@M-(+jqb12<dv1#-X(}Im<<gN52l<HtVNzb%6zp(RcLoB%CdK#t*m6M znt5o$H&cIRJ~^iMxX5Dc0cX;kD6#L5Tgy+bi3-geZ9jNntdhD+EJFyU@p&mXzzR?D z$zn`D#6H;C!ZHK8u2$|ZE-w1YV=hRjrr&|$?;ZCh(#QWnX|hfT6r8fsO}3Ydfmb0~ zlv|&3A6s#7aKxP&@oq!ZMepwJj_Y-WXxb78kb~W)lFYPZZ{B!(m6zWwbV+TXiJa{4 z13}?DLBn+_z4pSjE&_pI1o*;4F6z)J0R=R-dxR4KO~*9M;3N$q$X+biO}E+w_eN_T zwoEsCQ&<C+;G0VoHIEiZ3^^|ls)b6tUD>mf_s`kVpfA||sx4d6<Vr!34YRH)w=%NH z8YJa`3=2~qA8Dmf3Y<!GINrhKohBw2T(iEczL<MY1Fz(KG=-(Yvm&Oll{aDf6|lgC z3$pPw-ucYMi>p$9ED-y;?wN*_a*K)@Am#5oij<+%dF#l-pJ|d;z7q{1w_46(DsE&+ zXnjPbyWFzE#Bw?@*7G>bA=}=aH#ypQ#2ES@^2gy}GxAfG$Tr1;TxPERW#{YKD@nS? z@sA=mD=S=!n9}L!IjUaRNvTJ(k+y4D;Q=9M&b)x82WokNryW{GcOzKY)vWIFn_q_? zEEiqq#_!DcJ=pmir+kKwC`8Tjl<PyF$~o{KQUg^SH}3VMZ};%#Ep@vRoys29gycjn zYKMqgQ*z%wWp3EK&=JO1*C-hFIDXMRtFW*TMpxdmX}#T*%N9&!8~g54rvksZNPQ{0 z`w>@|HWCx6&HK%wB+2!icl^)2PkI+I%R>dQQfFSY5pow>Q(LP%_l=!phBJP5K=6*P zj!p#Y&L*E}Lzc>(CIiH9yw5T9#66y|1thwk`y}8ZzkmQXnQwW3OePD7VKt|U9*52; z!2*?)mBqxx#pf0zM3J#iETnJVZ9_K#Cip8Pq$s`l#l=pZ#P}fn6O@q>T{YIH?1|L^ zRYW3j-iuwV=2U%ZYCB$%%yAL8w6bu0Wo3nD=GX6&FbIAp8NrNJaib?0Saz8zSId|7 zOGAoYns<2p5i}6t-9Y_3R7=Cnih`Wna>9mVuNYrLt<T^YwSAQte>>VHw|gBq!$*)D zRZEbQcq%^Mzk(!&j$z7AOW$1ByY6Jc;R5z`FLnsZOI&AOPZL>A%Xs9-#>Q3%f;Y~4 zY(7!b9?X97ZTxk#5Z)!&D-)&??jgo>t$e3<N;5FzwGn;i4WBP5@85f?e(v0nccq#% z-MhD9ZfiRTSx6Nzp-Qve_LMGjR&LYylrD<Nu~VNUyN=p{fcDi3)^vKFSnSs2yDtvK zHVxSi(3;;224J_up5C?k5tEl>1&zKP>8l0QJCvT@I1yR~Xlkmdsi|*iX%XmstK?&m z|L$ut9@An>vEz_r8%X1oX9d*W(pRlm6&NqZxTpwc0PWun8CI;`2F&M%nzQrUR9Dbt z4!b9Bq*+>2N*~6bIeJfZaZ*Vd*5ac?bAYu!8eSrsHoL{a>)h4|yn8nEAKX;)iU4-c zo|#Rm{;*#rpBeoe#Uno~tg_*sqOzw|bGmx_UidhSHA|$W(G%Hj#&p7sRp=E7VV#5U zX-+z+(%S?WWOL)Z`F11mvLvOBA8~=pptp&^R!B8{02P)MZ=dPj+>7$q|K0=(sG>vB z5eYJo2IQv+-%FQel{8)&(=K(Oto@oE$lcsps?9I2(kI)!XlH%N@;x5<D&sq68@79y n5AgK<3|FvMs7fD>Pp|`a&Zc>tYbM?KeKl-r<z!iJ?vwOC)RrwR diff --git a/OsmAnd/res/drawable-xxhdpi/map_world_globe_dark.png b/OsmAnd/res/drawable-xxhdpi/map_world_globe_dark.png deleted file mode 100644 index 97d6b3b781abf833aebda7d78e61bb805d36b0d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2412 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 diff --git a/OsmAnd/res/drawable-xxxhdpi/map_pin_avoid_road.png b/OsmAnd/res/drawable-xxxhdpi/ic_pin_avoid_road.png similarity index 100% rename from OsmAnd/res/drawable-xxxhdpi/map_pin_avoid_road.png rename to OsmAnd/res/drawable-xxxhdpi/ic_pin_avoid_road.png diff --git a/OsmAnd/res/values/colors.xml b/OsmAnd/res/values/colors.xml index 97a17a52aa..d8e36b3748 100644 --- a/OsmAnd/res/values/colors.xml +++ b/OsmAnd/res/values/colors.xml @@ -94,8 +94,8 @@ <color name="audio_video_icon_color">#128a89</color> <color name="created_poi_icon_color">#4caf50</color> - <color name="osm_bug_unresolved_icon_color">#d44a4a</color> - <color name="osm_bug_resolved_icon_color">#4caf50</color> + <color name="osm_bug_unresolved_icon_color">#D42020</color> + <color name="osm_bug_resolved_icon_color">#12B21A</color> <color name="osmand_orange">#ff8f00</color> <color name="app_mode_icon_color">#33B4E4</color> @@ -190,6 +190,8 @@ <color name="color_favorite">#eecc22</color> <color name="color_favorite_gray">#b3b3b3</color> + <color name="parking_icon_background">#244DBD</color> + <color name="transport_stop_icon_background">#5870FE</color> <!-- Themed color list items --> <!-- invalid -red, localindex not supported, --> diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml index b5cb7cc697..087d69932b 100644 --- a/OsmAnd/res/values/sizes.xml +++ b/OsmAnd/res/values/sizes.xml @@ -77,6 +77,7 @@ <dimen name="favorites_my_places_icon_left_padding">13dp</dimen> <dimen name="favorites_my_places_icon_right_padding">28dp</dimen> <dimen name="favorites_icon_outline_size">48dp</dimen> + <dimen name="favorites_icon_size_small">20dp</dimen> <dimen name="favorites_icon_padding">2dp</dimen> <dimen name="favorites_list_item_height">60dp</dimen> <dimen name="favorites_select_group_button_height">76dp</dimen> diff --git a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java index 7e50a098a7..f6bb1866e7 100644 --- a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java +++ b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java @@ -342,7 +342,7 @@ public class FavouritesDbHelper { if (!p.getName().equals("")) { p.setVisible(group.visible); if (FavouritePoint.SpecialPointType.PARKING.equals(p.getSpecialPointType())) { - p.setColor(ContextCompat.getColor(context, R.color.map_widget_blue)); + p.setColor(ContextCompat.getColor(context, R.color.parking_icon_background)); } else { if (p.getColor() == 0) { p.setColor(group.color); @@ -485,7 +485,7 @@ public class FavouritesDbHelper { FavoriteGroup pg = getOrCreateGroup(p, 0); p.setVisible(pg.visible); if (FavouritePoint.SpecialPointType.PARKING.equals(p.getSpecialPointType())) { - p.setColor(ContextCompat.getColor(context, R.color.map_widget_blue)); + p.setColor(ContextCompat.getColor(context, R.color.parking_icon_background)); } else { if (p.getColor() == 0) { p.setColor(pg.color); diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java index 6e9938f4ef..d6b0e55a2e 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java @@ -1,18 +1,14 @@ package net.osmand.plus.audionotes; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.Paint.Style; import android.graphics.PointF; -import android.graphics.Rect; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; import net.osmand.data.DataTileManager; +import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -21,6 +17,7 @@ import net.osmand.data.RotatedTileBox; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording; +import net.osmand.plus.base.FavoriteImageDrawable; import net.osmand.plus.views.ContextMenuLayer; import net.osmand.plus.views.ContextMenuLayer.IContextMenuProvider; import net.osmand.plus.views.OsmandMapLayer; @@ -36,14 +33,7 @@ public class AudioNotesLayer extends OsmandMapLayer implements private static final int startZoom = 10; private MapActivity activity; private AudioVideoNotesPlugin plugin; - private Paint pointAltUI; - private Paint paintIcon; private OsmandMapTileView view; - private Bitmap audio; - private Bitmap video; - private Bitmap photo; - private Bitmap pointSmall; - private ContextMenuLayer contextMenuLayer; public AudioNotesLayer(MapActivity activity, AudioVideoNotesPlugin plugin) { @@ -54,24 +44,6 @@ public class AudioNotesLayer extends OsmandMapLayer implements @Override public void initLayer(OsmandMapTileView view) { this.view = view; - - pointAltUI = new Paint(); - pointAltUI.setColor(0xa0FF3344); - pointAltUI.setStyle(Style.FILL); - - audio = BitmapFactory.decodeResource(view.getResources(), R.drawable.ic_note_audio); - video = BitmapFactory.decodeResource(view.getResources(), R.drawable.ic_note_video); - photo = BitmapFactory.decodeResource(view.getResources(), R.drawable.ic_note_photo); - - pointSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.ic_note_small); - - paintIcon = new Paint(); - - Paint point = new Paint(); - point.setColor(Color.GRAY); - point.setAntiAlias(true); - point.setStyle(Style.STROKE); - contextMenuLayer = view.getLayerByClass(ContextMenuLayer.class); } @@ -99,7 +71,7 @@ public class AudioNotesLayer extends OsmandMapLayer implements public void onPrepareBufferImage(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) { if (tileBox.getZoom() >= startZoom) { float textScale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); - float iconSize = audio.getWidth() * 3 / 2.5f * textScale; + float iconSize = getIconSize(activity) * 3 / 2.5f * textScale; QuadTree<QuadRect> boundIntersections = initBoundIntersections(tileBox); DataTileManager<Recording> recs = plugin.getRecordings(); @@ -114,8 +86,11 @@ public class AudioNotesLayer extends OsmandMapLayer implements float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude()); if (intersects(boundIntersections, x, y, iconSize, iconSize)) { - Rect destRect = getIconDestinationRect(x, y, pointSmall.getWidth(), pointSmall.getHeight(), textScale); - canvas.drawBitmap(pointSmall, null, destRect, paintIcon); + FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(activity, + ContextCompat.getColor(activity, R.color.audio_video_icon_color), true, + new FavouritePoint(0, 0, "", "")); + fid.setAlpha(0.8f); + fid.drawSmallPoint(canvas, x, y, textScale); smallObjectsLatLon.add(new LatLon(o.getLatitude(), o.getLongitude())); } else { fullObjects.add(o); @@ -134,16 +109,20 @@ public class AudioNotesLayer extends OsmandMapLayer implements } private void drawRecording(Canvas canvas, Recording o, float x, float y, float textScale) { - Bitmap b; + int iconId; if (o.isPhoto()) { - b = photo; + iconId = R.drawable.mx_special_photo_camera; } else if (o.isAudio()) { - b = audio; + iconId = R.drawable.mx_special_microphone; } else { - b = video; + iconId = R.drawable.mx_special_video_camera; } - Rect destRect = getIconDestinationRect(x, y, b.getWidth(), b.getHeight(), textScale); - canvas.drawBitmap(b, null, destRect, paintIcon); + FavouritePoint fp = new FavouritePoint(0, 0, "", ""); + fp.setIconId(iconId); + FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(activity, + ContextCompat.getColor(activity, R.color.audio_video_icon_color), true, fp); + fid.setAlpha(0.8f); + fid.drawPoint(canvas, x, y, textScale, false); } @Override @@ -155,7 +134,6 @@ public class AudioNotesLayer extends OsmandMapLayer implements return true; } - @Override public PointDescription getObjectName(Object o) { if (o instanceof Recording) { @@ -227,7 +205,6 @@ public class AudioNotesLayer extends OsmandMapLayer implements return null; } - @Override public boolean isObjectMovable(Object o) { return o instanceof Recording; diff --git a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java index f0eaf64273..a767d42a64 100644 --- a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java @@ -12,6 +12,7 @@ import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import net.osmand.GPXUtilities; @@ -35,6 +36,9 @@ public class FavoriteImageDrawable extends Drawable { private Bitmap favBackgroundTop; private Bitmap favBackgroundCenter; private Bitmap favBackgroundBottom; + private Bitmap favBackgroundTopSmall; + private Bitmap favBackgroundCenterSmall; + private Bitmap favBackgroundBottomSmall; private Bitmap syncedStroke; private Bitmap syncedColor; private Bitmap syncedShadow; @@ -45,8 +49,10 @@ public class FavoriteImageDrawable extends Drawable { private Paint paintBackground = new Paint(); private ColorFilter colorFilter; private ColorFilter grayFilter; + private float scale = 1.0f; - private FavoriteImageDrawable(Context ctx, int color, boolean withShadow, boolean synced, FavouritePoint point) { + private FavoriteImageDrawable(Context ctx, @ColorInt int color, boolean withShadow, boolean synced, + FavouritePoint point) { this.withShadow = withShadow; this.synced = synced; Resources res = ctx.getResources(); @@ -70,10 +76,16 @@ public class FavoriteImageDrawable extends Drawable { favBackgroundTop = BitmapFactory.decodeResource(res, mapBackgroundIconIdTop); favBackgroundCenter = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenter); favBackgroundBottom = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottom); - syncedStroke = BitmapFactory.decodeResource(res, R.drawable.map_shield_marker_point_stroke); - syncedColor = BitmapFactory.decodeResource(res, R.drawable.map_shield_marker_point_color); - syncedShadow = BitmapFactory.decodeResource(res, R.drawable.map_shield_marker_point_shadow); - syncedIcon = BitmapFactory.decodeResource(res, R.drawable.map_marker_point_14dp); + int mapBackgroundIconIdTopSmall = getMapBackgroundIconIdSmall(ctx, point, "top"); + int mapBackgroundIconIdCenterSmall = getMapBackgroundIconIdSmall(ctx, point, "center"); + int mapBackgroundIconIdBottomSmall = getMapBackgroundIconIdSmall(ctx, point, "bottom"); + favBackgroundTopSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdTopSmall); + favBackgroundCenterSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenterSmall); + favBackgroundBottomSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottomSmall); + syncedStroke = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_stroke); + syncedColor = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_color); + syncedShadow = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_shadow); + syncedIcon = BitmapFactory.decodeResource(res, R.drawable.ic_marker_point_14dp); colorFilter = new PorterDuffColorFilter(col, PorterDuff.Mode.SRC_IN); grayFilter = new PorterDuffColorFilter(res.getColor(R.color.color_favorite_gray), PorterDuff.Mode.MULTIPLY); } @@ -84,6 +96,16 @@ public class FavoriteImageDrawable extends Drawable { .replaceFirst("mx_", "mm_"), "drawable", ctx.getPackageName()); } + private int getMapBackgroundIconIdSmall(Context ctx, FavouritePoint point, String layer) { + if (point != null) { + int iconId = point.getBackgroundType().getIconId(); + String iconName = ctx.getResources().getResourceEntryName(iconId); + return ctx.getResources().getIdentifier("ic_" + iconName + "_" + layer + "_small", + "drawable", ctx.getPackageName()); + } + return R.drawable.ic_white_shield_small; + } + private int getMapBackgroundIconId(Context ctx, FavouritePoint point, String layer) { if (point != null) { int iconId = point.getBackgroundType().getIconId(); @@ -99,7 +121,8 @@ public class FavoriteImageDrawable extends Drawable { super.onBoundsChange(bounds); Rect bs = new Rect(bounds); if (!withShadow && !synced) { - uiBackgroundIcon.setBounds(0, 0, uiBackgroundIcon.getIntrinsicWidth(), uiBackgroundIcon.getIntrinsicHeight()); + uiBackgroundIcon.setBounds(0, 0, + uiBackgroundIcon.getIntrinsicWidth(), uiBackgroundIcon.getIntrinsicHeight()); int offsetX = bounds.centerX() - uiListIcon.getIntrinsicWidth() / 2; int offsetY = bounds.centerY() - uiListIcon.getIntrinsicHeight() / 2; uiListIcon.setBounds(offsetX, offsetY, uiListIcon.getIntrinsicWidth() + offsetX, @@ -151,20 +174,53 @@ public class FavoriteImageDrawable extends Drawable { canvas.drawBitmap(bitmap, null, bs, paintBackground); } - public void drawBitmapInCenter(Canvas canvas, Rect destRect, boolean history) { + private void drawInCenter(Canvas canvas, Rect destRect, boolean history) { this.history = history; setBounds(destRect); - Rect bounds = new Rect(destRect); - bounds.inset(bounds.width() / 3, bounds.height() / 3); - favIcon.setBounds(bounds); + int offsetX = destRect.centerX() - (int) (favIcon.getIntrinsicWidth() / 2 * scale); + int offsetY = destRect.centerY() - (int) (favIcon.getIntrinsicHeight() / 2 * scale); + favIcon.setBounds(offsetX, offsetY, (int) (offsetX + favIcon.getIntrinsicWidth() * scale), + offsetY + (int) (favIcon.getIntrinsicHeight() * scale)); draw(canvas); } + public void drawPoint(Canvas canvas, float x, float y, float scale, boolean history) { + this.scale = scale; + int scaledWidth = getIntrinsicWidth(); + int scaledHeight = getIntrinsicHeight(); + if (scale != 1.0f) { + scaledWidth *= scale; + scaledHeight *= scale; + } + Rect rect = new Rect(0, 0, scaledWidth, scaledHeight); + rect.offset((int) x - scaledWidth / 2, (int) y - scaledHeight / 2); + drawInCenter(canvas, rect, history); + } + + public void drawSmallPoint(Canvas canvas, float x, float y, float scale) { + this.scale = scale; + paintBackground.setColorFilter(history ? grayFilter : colorFilter); + int scaledWidth = favBackgroundBottomSmall.getWidth(); + int scaledHeight = favBackgroundBottomSmall.getHeight(); + if (scale != 1.0f) { + scaledWidth *= scale; + scaledHeight *= scale; + } + Rect destRect = new Rect(0, 0, scaledWidth, scaledHeight); + destRect.offset((int) x - scaledWidth / 2, (int) y - scaledHeight / 2); + canvas.drawBitmap(favBackgroundBottomSmall, null, destRect, null); + canvas.drawBitmap(favBackgroundCenterSmall, null, destRect, paintBackground); + canvas.drawBitmap(favBackgroundTopSmall, null, destRect, null); + } + @Override public int getOpacity() { return 0; } + public void setAlpha(float alpha) { + setAlpha((int) (255 * alpha)); + } @Override public void setAlpha(int alpha) { paintBackground.setAlpha(alpha); @@ -175,9 +231,14 @@ public class FavoriteImageDrawable extends Drawable { paintIcon.setColorFilter(cf); } + public void setScale(float scale) { + this.scale = scale; + } + private static TreeMap<String, FavoriteImageDrawable> cache = new TreeMap<>(); - private static FavoriteImageDrawable getOrCreate(Context ctx, int color, boolean withShadow, boolean synced, FavouritePoint point) { + private static FavoriteImageDrawable getOrCreate(Context ctx, @ColorInt int color, boolean withShadow, + boolean synced, FavouritePoint point) { String uniqueId = ""; if (point != null) { uniqueId = point.getIconEntryName(ctx); @@ -195,27 +256,29 @@ public class FavoriteImageDrawable extends Drawable { return drawable; } - public static FavoriteImageDrawable getOrCreate(Context a, int color, boolean withShadow, FavouritePoint point) { - return getOrCreate(a, color, withShadow, false, point); + public static FavoriteImageDrawable getOrCreate(Context ctx, @ColorInt int color, boolean withShadow, + FavouritePoint point) { + return getOrCreate(ctx, color, withShadow, false, point); } - public static FavoriteImageDrawable getOrCreate(Context a, int color, boolean withShadow, GPXUtilities.WptPt pt) { - return getOrCreate(a, color, withShadow, false, getFavouriteFromWpt(a, pt)); + public static FavoriteImageDrawable getOrCreate(Context ctx, @ColorInt int color, boolean withShadow, + GPXUtilities.WptPt pt) { + return getOrCreate(ctx, color, withShadow, false, getFavouriteFromWpt(ctx, pt)); } - public static FavoriteImageDrawable getOrCreateSyncedIcon(Context a, int color, FavouritePoint point) { - return getOrCreate(a, color, false, true, point); + public static FavoriteImageDrawable getOrCreateSyncedIcon(Context ctx, @ColorInt int color, FavouritePoint point) { + return getOrCreate(ctx, color, false, true, point); } - public static FavoriteImageDrawable getOrCreateSyncedIcon(Context a, int color, GPXUtilities.WptPt pt) { - return getOrCreate(a, color, false, true, getFavouriteFromWpt(a, pt)); + public static FavoriteImageDrawable getOrCreateSyncedIcon(Context ctx, @ColorInt int color, GPXUtilities.WptPt pt) { + return getOrCreate(ctx, color, false, true, getFavouriteFromWpt(ctx, pt)); } - private static FavouritePoint getFavouriteFromWpt(Context a, GPXUtilities.WptPt pt) { + private static FavouritePoint getFavouriteFromWpt(Context ctx, GPXUtilities.WptPt pt) { FavouritePoint point = null; if (pt != null) { point = new FavouritePoint(pt.getLatitude(), pt.getLongitude(), pt.name, pt.category); - point.setIconIdFromName(a, pt.getIconNameOrDefault()); + point.setIconIdFromName(ctx, pt.getIconNameOrDefault()); point.setBackgroundType(BackgroundType.getByTypeName(pt.getBackgroundType(), DEFAULT_BACKGROUND_TYPE)); } return point; diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java index 5ce2472c63..1023fd43b2 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java @@ -187,7 +187,7 @@ public abstract class MenuController extends BaseMenuController implements Colla } else if (object instanceof FavouritePoint) { if (pointDescription.isParking() || (FavouritePoint.SpecialPointType.PARKING.equals(((FavouritePoint) object).getSpecialPointType()))) { - menuController = new ParkingPositionMenuController(mapActivity, pointDescription); + menuController = new ParkingPositionMenuController(mapActivity, pointDescription, (FavouritePoint) object); } else { menuController = new FavouritePointMenuController(mapActivity, pointDescription, (FavouritePoint) object); } @@ -216,9 +216,7 @@ public abstract class MenuController extends BaseMenuController implements Colla } else if (object instanceof AidlMapPointWrapper) { menuController = new AMapPointMenuController(mapActivity, pointDescription, (AidlMapPointWrapper) object); } else if (object instanceof LatLon) { - if (pointDescription.isParking()) { - menuController = new ParkingPositionMenuController(mapActivity, pointDescription); - } else if (pointDescription.isMyLocation()) { + if (pointDescription.isMyLocation()) { menuController = new MyLocationMenuController(mapActivity, pointDescription); } } else if (object instanceof AvoidSpecificRoads.AvoidRoadInfo) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/ImpassibleRoadsMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/ImpassibleRoadsMenuController.java index 9bad770437..4d8ce4add4 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/ImpassibleRoadsMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/ImpassibleRoadsMenuController.java @@ -4,7 +4,6 @@ import android.graphics.drawable.Drawable; import androidx.annotation.NonNull; import androidx.appcompat.content.res.AppCompatResources; -import androidx.core.content.ContextCompat; import net.osmand.data.PointDescription; import net.osmand.plus.OsmandApplication; @@ -69,7 +68,7 @@ public class ImpassibleRoadsMenuController extends MenuController { public Drawable getRightIcon() { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { - return AppCompatResources.getDrawable(mapActivity, R.drawable.map_pin_avoid_road); + return AppCompatResources.getDrawable(mapActivity, R.drawable.ic_pin_avoid_road); } else { return null; } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java index a76cfba5f5..1537422e0e 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MultiSelectionArrayAdapter.java @@ -55,7 +55,7 @@ public class MultiSelectionArrayAdapter extends ArrayAdapter<MapMultiSelectionMe final View iconLayout = convertView.findViewById(R.id.context_menu_icon_layout); final ImageView iconView = (ImageView) convertView.findViewById(R.id.context_menu_icon_view); if (item.getPointDescription().isFavorite() || item.getPointDescription().isWpt()) { - int iconSize = getContext().getResources().getDimensionPixelSize(R.dimen.dialog_button_height); + int iconSize = getContext().getResources().getDimensionPixelSize(R.dimen.favorites_my_places_icon_size); iconView.getLayoutParams().height = iconSize; iconView.getLayoutParams().width = iconSize; iconView.requestLayout(); diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackBitmapDrawer.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackBitmapDrawer.java index e3f2195d88..93e4a182b2 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackBitmapDrawer.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackBitmapDrawer.java @@ -87,7 +87,7 @@ public class TrackBitmapDrawer { paint.setStrokeWidth(AndroidUtils.dpToPx(app, 4f)); defPointColor = ContextCompat.getColor(app, R.color.gpx_color_point); paintIcon = new Paint(); - pointSmall = BitmapFactory.decodeResource(app.getResources(), R.drawable.map_white_shield_small); + pointSmall = BitmapFactory.decodeResource(app.getResources(), R.drawable.ic_white_shield_small); selectedPoint = (LayerDrawable) AppCompatResources.getDrawable(app, R.drawable.map_location_default); } diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java index 7f07f303ce..c29cef7544 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java @@ -1,12 +1,8 @@ package net.osmand.plus.osmedit; - import android.annotation.SuppressLint; import android.content.DialogInterface; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Canvas; -import android.graphics.Paint; import android.graphics.PointF; import android.os.AsyncTask; import android.util.Xml; @@ -16,9 +12,11 @@ import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AlertDialog; +import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; +import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -26,6 +24,7 @@ import net.osmand.data.QuadTree; import net.osmand.data.RotatedTileBox; import net.osmand.osm.io.NetworkUtils; import net.osmand.plus.OsmandApplication; +import net.osmand.plus.base.FavoriteImageDrawable; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; @@ -55,12 +54,6 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider private OsmandMapTileView view; - private Paint paintIcon; - private Bitmap unresolvedNote; - private Bitmap resolvedNote; - private Bitmap unresolvedNoteSmall; - private Bitmap resolvedNoteSmall; - private final MapActivity activity; private OsmBugsLocalUtil local; private MapLayerData<List<OpenStreetNote>> data; @@ -86,13 +79,6 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider @Override public void initLayer(OsmandMapTileView view) { this.view = view; - - paintIcon = new Paint(); - resolvedNote = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_osm_resolved); - unresolvedNote = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_osm_unresolved); - resolvedNoteSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_osm_resolved_small); - unresolvedNoteSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_osm_unresolved_small); - data = new OsmandMapLayer.MapLayerData<List<OpenStreetNote>>() { { @@ -125,7 +111,8 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider List<OpenStreetNote> objects = data.getResults(); if (objects != null) { - float iconSize = resolvedNote.getWidth() * 3 / 2.5f; + float textScale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); + float iconSize = getIconSize(activity) * 3 / 2.5f * textScale; QuadTree<QuadRect> boundIntersections = initBoundIntersections(tileBox); List<OpenStreetNote> fullObjects = new ArrayList<>(); List<LatLon> fullObjectsLatLon = new ArrayList<>(); @@ -139,14 +126,14 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude()); if (intersects(boundIntersections, x, y, iconSize, iconSize)) { - Bitmap b; + int backgroundColorRes; if (o.isOpened()) { - b = unresolvedNoteSmall; + backgroundColorRes = R.color.osm_bug_unresolved_icon_color; } else { - b = resolvedNoteSmall; + backgroundColorRes = R.color.osm_bug_resolved_icon_color; } - canvas.drawBitmap(b, x - b.getWidth() / 2, y - b.getHeight() / 2, paintIcon); - smallObjectsLatLon.add(new LatLon(o.getLatitude(), o.getLongitude())); + FavoriteImageDrawable fid = getFavoriteImageDrawable(backgroundColorRes, 0); + fid.drawSmallPoint(canvas, x, y, textScale); } else { fullObjects.add(o); fullObjectsLatLon.add(new LatLon(o.getLatitude(), o.getLongitude())); @@ -158,13 +145,17 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider } float x = tileBox.getPixXFromLatLon(o.getLatitude(), o.getLongitude()); float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude()); - Bitmap b; + int iconId; + int backgroundColorRes; if (o.isOpened()) { - b = unresolvedNote; + iconId = R.drawable.mx_special_symbol_remove; + backgroundColorRes = R.color.osm_bug_unresolved_icon_color; } else { - b = resolvedNote; + iconId = R.drawable.mx_special_symbol_check_mark; + backgroundColorRes = R.color.osm_bug_resolved_icon_color; } - canvas.drawBitmap(b, x - b.getWidth() / 2, y - b.getHeight() / 2, paintIcon); + FavoriteImageDrawable fid = getFavoriteImageDrawable(backgroundColorRes, iconId); + fid.drawPoint(canvas, x, y, textScale, false); } this.fullObjectsLatLon = fullObjectsLatLon; this.smallObjectsLatLon = smallObjectsLatLon; @@ -172,6 +163,16 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider } } + private FavoriteImageDrawable getFavoriteImageDrawable(int backgroundColorRes, int iconId) { + FavouritePoint fp = new FavouritePoint(0, 0, "", ""); + fp.setIconId(iconId); + FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(activity, + ContextCompat.getColor(activity, backgroundColorRes), true, + fp); + fid.setAlpha(0.8f); + return fid; + } + @Override public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) { @@ -196,7 +197,6 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider return (int) (z * tb.getDensity()); } - @Override public boolean onLongPressEvent(PointF point, RotatedTileBox tileBox) { return false; @@ -207,7 +207,7 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider if (objects != null && view != null) { int ex = (int) point.x; int ey = (int) point.y; - final int rad = getRadiusBug(tb); + final int rad = getScaledTouchRadius(activity.getMyApplication(), getRadiusBug(tb)); int radius = rad * 3 / 2; int small = rad * 3 / 4; boolean showClosed = activity.getMyApplication().getSettings().SHOW_CLOSED_OSM_BUGS.get(); diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java index 4d1aa34116..0ed021a532 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java @@ -1,22 +1,22 @@ package net.osmand.plus.osmedit; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Canvas; -import android.graphics.Paint; import android.graphics.PointF; import android.os.AsyncTask; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.RotatedTileBox; import net.osmand.osm.edit.Entity; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.base.FavoriteImageDrawable; import net.osmand.plus.views.ContextMenuLayer; import net.osmand.plus.views.OsmandMapLayer; import net.osmand.plus.views.OsmandMapTileView; @@ -31,10 +31,6 @@ public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IC private final MapActivity activity; private final OpenstreetmapLocalUtil mOsmChangeUtil; private final OsmBugsLocalUtil mOsmBugsUtil; - private Bitmap poi; - private Bitmap bug; - private OsmandMapTileView view; - private Paint paintIcon; private ContextMenuLayer contextMenuLayer; @@ -47,12 +43,6 @@ public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IC @Override public void initLayer(OsmandMapTileView view) { - this.view = view; - - poi = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_pin_poi); - bug = poi; - paintIcon = new Paint(); - contextMenuLayer = view.getLayerByClass(ContextMenuLayer.class); } @@ -88,20 +78,17 @@ public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IC } private void drawPoint(Canvas canvas, OsmPoint o, float x, float y) { - Bitmap b; - if (o.getGroup() == OsmPoint.Group.POI) { - b = poi; - } else if (o.getGroup() == OsmPoint.Group.BUG) { - b = bug; - } else { - b = poi; - } - canvas.drawBitmap(b, x - b.getWidth() / 2, y - b.getHeight() / 2, paintIcon); + float textScale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); + FavouritePoint fp = new FavouritePoint(0, 0, "", ""); + fp.setIconId(R.drawable.mx_special_information); + FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(activity, + ContextCompat.getColor(activity, R.color.created_poi_icon_color), true, fp); + fid.setAlpha(0.8f); + fid.drawPoint(canvas, x, y, textScale, false); } @Override public void destroyLayer() { - } @Override @@ -113,7 +100,7 @@ public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IC public void getOsmEditsFromPoint(PointF point, RotatedTileBox tileBox, List<? super OsmPoint> am) { int ex = (int) point.x; int ey = (int) point.y; - int compare = getRadiusPoi(tileBox); + int compare = getScaledTouchRadius(activity.getMyApplication(), getRadiusPoi(tileBox)); int radius = compare * 3 / 2; compare = getFromPoint(tileBox, am, ex, ey, compare, radius, plugin.getDBBug().getOsmbugsPoints()); getFromPoint(tileBox, am, ex, ey, compare, radius, plugin.getDBPOI().getOpenstreetmapPoints()); diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java index a0bbd48bf8..9cdcfc8a51 100644 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java +++ b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java @@ -3,11 +3,14 @@ package net.osmand.plus.parkingpoint; import android.graphics.drawable.Drawable; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import net.osmand.data.FavouritePoint; import net.osmand.data.PointDescription; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.base.FavoriteImageDrawable; import net.osmand.plus.mapcontextmenu.MenuBuilder; import net.osmand.plus.mapcontextmenu.MenuController; @@ -17,9 +20,12 @@ public class ParkingPositionMenuController extends MenuController { private String parkingStartDescription = ""; private String parkingLeftDescription = ""; private String parkingTitle = ""; + private FavouritePoint fav; - public ParkingPositionMenuController(@NonNull MapActivity mapActivity, @NonNull PointDescription pointDescription) { + public ParkingPositionMenuController(@NonNull MapActivity mapActivity, @NonNull PointDescription pointDescription, + FavouritePoint fav) { super(new MenuBuilder(mapActivity), pointDescription, mapActivity); + this.fav = fav; plugin = OsmandPlugin.getPlugin(ParkingPositionPlugin.class); if (plugin != null) { buildParkingDescription(mapActivity); @@ -99,9 +105,14 @@ public class ParkingPositionMenuController extends MenuController { @Override public Drawable getRightIcon() { - - return getIcon( plugin == null || plugin.getParkingTime() <= 0 ? - R.drawable.mx_parking : R.drawable.mx_special_parking_time_limited, R.color.map_widget_blue); + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + return FavoriteImageDrawable.getOrCreate(mapActivity.getMyApplication(), + ContextCompat.getColor(mapActivity, R.color.parking_icon_background), false, fav); + } else { + return getIcon(plugin == null || plugin.getParkingTime() <= 0 ? + R.drawable.mx_parking : R.drawable.mx_special_parking_time_limited, R.color.map_widget_blue); + } } @NonNull diff --git a/OsmAnd/src/net/osmand/plus/views/AidlMapLayer.java b/OsmAnd/src/net/osmand/plus/views/AidlMapLayer.java index 58a38d40b0..248c911834 100644 --- a/OsmAnd/src/net/osmand/plus/views/AidlMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/AidlMapLayer.java @@ -118,7 +118,7 @@ public class AidlMapLayer extends OsmandMapLayer implements IContextMenuProvider bitmapPaint.setDither(true); bitmapPaint.setFilterBitmap(true); - circle = BitmapFactory.decodeResource(res, R.drawable.map_white_shield_small); + circle = BitmapFactory.decodeResource(res, R.drawable.ic_white_shield_small); smallIconBg = BitmapFactory.decodeResource(res, night ? R.drawable.map_pin_user_location_small_night : R.drawable.map_pin_user_location_small_day); bigIconBg = BitmapFactory.decodeResource(res, night diff --git a/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java b/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java index 1e74a054b0..7a3ccb3efc 100644 --- a/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java @@ -1,13 +1,7 @@ package net.osmand.plus.views; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Canvas; -import android.graphics.Paint; import android.graphics.PointF; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffColorFilter; -import android.graphics.Rect; import android.util.Pair; import androidx.annotation.ColorInt; @@ -16,7 +10,6 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import net.osmand.data.FavouritePoint; -import net.osmand.data.FavouritePoint.BackgroundType; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -33,7 +26,6 @@ import net.osmand.plus.views.ContextMenuLayer.ApplyMovedObjectCallback; import net.osmand.plus.views.MapTextLayer.MapTextProvider; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider, @@ -46,9 +38,6 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer. private MapMarkersHelper mapMarkersHelper; protected List<FavouritePoint> cache = new ArrayList<>(); private MapTextLayer textLayer; - private Paint paintIcon; - private HashMap<String, Bitmap> smallIconCache = new HashMap<>(); - private Bitmap pointSmall; @ColorInt private int defaultColor; @ColorInt @@ -66,23 +55,11 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer. favorites = view.getApplication().getFavorites(); mapMarkersHelper = view.getApplication().getMapMarkersHelper(); textLayer = view.getLayerByClass(MapTextLayer.class); - paintIcon = new Paint(); - for (BackgroundType backgroundType : BackgroundType.values()) { - putBitmapToIconCache(backgroundType, "top"); - putBitmapToIconCache(backgroundType, "center"); - putBitmapToIconCache(backgroundType, "bottom"); - } - pointSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_white_shield_small); defaultColor = ContextCompat.getColor(view.getContext(), R.color.color_favorite); grayColor = ContextCompat.getColor(view.getContext(), R.color.color_favorite_gray); contextMenuLayer = view.getLayerByClass(ContextMenuLayer.class); } - private void putBitmapToIconCache(BackgroundType backgroundType, String layer) { - smallIconCache.put(backgroundType.getTypeName() + "_" + layer, BitmapFactory.decodeResource(view.getResources(), - getSmallIconId(layer, backgroundType.getIconId()))); - } - private boolean calculateBelongs(int ex, int ey, int objx, int objy, int radius) { return (Math.abs(objx - ex) <= radius * 1.5 && Math.abs(objy - ey) <= radius * 1.5) ; // return Math.abs(objx - ex) <= radius && (ey - objy) <= radius / 2 && (objy - ey) <= 3 * radius ; @@ -116,8 +93,7 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer. if (this.settings.SHOW_FAVORITES.get() && favorites.isFavoritesLoaded()) { if (tileBox.getZoom() >= startZoom) { float textScale = this.settings.TEXT_SCALE.get(); - float iconSize = FavoriteImageDrawable.getOrCreate(view.getContext(), 0, - true, (FavouritePoint) null).getIntrinsicWidth() * 3 / 2.5f * textScale; + float iconSize = getIconSize(view.getContext()) * 3 / 2.5f * textScale; QuadTree<QuadRect> boundIntersections = initBoundIntersections(tileBox); // request to load @@ -151,14 +127,9 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer. } else { color = favorites.getColorWithCategory(o,defaultColor); } - paintIcon.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN)); - Bitmap pointSmallTop = getBitmap(o, "top"); - Bitmap pointSmallCenter = getBitmap(o, "center"); - Bitmap pointSmallBottom = getBitmap(o, "bottom"); - Rect destRect = getIconDestinationRect(x, y, pointSmallTop.getWidth(), pointSmallTop.getHeight(), textScale); - canvas.drawBitmap(pointSmallBottom, null, destRect, null); - canvas.drawBitmap(pointSmallCenter, null, destRect, paintIcon); - canvas.drawBitmap(pointSmallTop, null, destRect, null); + FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(view.getContext(), color, + true, o); + fid.drawSmallPoint(canvas, x, y, textScale); smallObjectsLatLon.add(new LatLon(lat, lon)); } else { fullObjects.add(new Pair<>(o, marker)); @@ -183,14 +154,6 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer. } - private Bitmap getBitmap(FavouritePoint o, String layer) { - Bitmap pointSmall = smallIconCache.get(o.getBackgroundType().getTypeName() + "_" + layer); - if (pointSmall == null) { - pointSmall = this.pointSmall; - } - return pointSmall; - } - private void drawBigPoint(Canvas canvas, FavouritePoint o, float x, float y, @Nullable MapMarker marker, float textScale) { FavoriteImageDrawable fid; boolean history = false; @@ -198,16 +161,10 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer. fid = FavoriteImageDrawable.getOrCreateSyncedIcon(view.getContext(), favorites.getColorWithCategory(o,defaultColor), o); history = marker.history; } else { - fid = FavoriteImageDrawable.getOrCreate(view.getContext(), favorites.getColorWithCategory(o,defaultColor), true, o); + fid = FavoriteImageDrawable.getOrCreate(view.getContext(), favorites.getColorWithCategory(o, defaultColor), + true, o); } - Rect destRest = getIconDestinationRect(x, y, fid.getIntrinsicWidth(), fid.getIntrinsicHeight(), textScale); - fid.drawBitmapInCenter(canvas, destRest, history); - } - - private int getSmallIconId(String layer, int iconId) { - String iconName = view.getResources().getResourceEntryName(iconId); - return view.getResources().getIdentifier("ic_" + iconName + "_" + layer + "_small" - , "drawable", view.getContext().getPackageName()); + fid.drawPoint(canvas, x, y, textScale, history); } @Override diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 6e1f63c3c0..34cc7a513e 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -1,7 +1,5 @@ package net.osmand.plus.views; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.ColorFilter; @@ -9,7 +7,6 @@ import android.graphics.Paint; import android.graphics.Paint.Align; import android.graphics.Paint.Style; import android.graphics.PointF; -import android.graphics.PorterDuff; import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; @@ -77,7 +74,6 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex private int cachedHash; private int cachedColor; private Paint paintIcon; - private Bitmap pointSmall; private int currentTrackColor; private LayerDrawable selectedPoint; @@ -178,7 +174,6 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex paintGridOuterCircle.setAlpha(204); paintIcon = new Paint(); - pointSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_white_shield_small); selectedPoint = (LayerDrawable) AppCompatResources.getDrawable(view.getContext(), R.drawable.map_location_default); contextMenuLayer = view.getLayerByClass(ContextMenuLayer.class); @@ -373,8 +368,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex private void drawSelectedFilesPoints(Canvas canvas, RotatedTileBox tileBox, List<SelectedGpxFile> selectedGPXFiles) { if (tileBox.getZoom() >= startZoom) { float textScale = view.getSettings().TEXT_SCALE.get(); - float iconSize = FavoriteImageDrawable.getOrCreate(view.getContext(), 0, - true, (WptPt) null).getIntrinsicWidth() * 3 / 2.5f * textScale; + float iconSize = getIconSize(view.getContext()) * 3 / 2.5f * textScale; QuadTree<QuadRect> boundIntersections = initBoundIntersections(tileBox); List<LatLon> fullObjectsLatLon = new ArrayList<>(); @@ -409,9 +403,9 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex } else { color = getPointColor(o, fileColor); } - paintIcon.setColorFilter(new PorterDuffColorFilter(color | 0xff000000, PorterDuff.Mode.MULTIPLY)); - Rect destRect = getIconDestinationRect(x, y, pointSmall.getWidth(), pointSmall.getHeight(), textScale); - canvas.drawBitmap(pointSmall, null, destRect, paintIcon); + FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(view.getContext(), color, + true, o); + fid.drawSmallPoint(canvas, x, y, textScale); smallObjectsLatLon.add(new LatLon(o.lat, o.lon)); } else { fullObjects.add(new Pair<>(o, marker)); @@ -510,8 +504,7 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex } else { fid = FavoriteImageDrawable.getOrCreate(view.getContext(), pointColor, true, o); } - Rect destRest = getIconDestinationRect(x, y, fid.getIntrinsicWidth(), fid.getIntrinsicHeight(), textScale); - fid.drawBitmapInCenter(canvas, destRest, history); + fid.drawPoint(canvas, x, y, textScale, history); } @ColorInt diff --git a/OsmAnd/src/net/osmand/plus/views/ImpassableRoadsLayer.java b/OsmAnd/src/net/osmand/plus/views/ImpassableRoadsLayer.java index 002de90d66..6acc0c8d7b 100644 --- a/OsmAnd/src/net/osmand/plus/views/ImpassableRoadsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/ImpassableRoadsLayer.java @@ -7,6 +7,7 @@ import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.graphics.Paint; import android.graphics.PointF; +import android.graphics.Rect; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -46,7 +47,7 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements public void initLayer(OsmandMapTileView view) { avoidSpecificRoads = activity.getMyApplication().getAvoidSpecificRoads(); contextMenuLayer = view.getLayerByClass(ContextMenuLayer.class); - roadWorkIcon = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_pin_avoid_road); + roadWorkIcon = BitmapFactory.decodeResource(view.getResources(), R.drawable.ic_pin_avoid_road); activePaint = new Paint(); ColorMatrix matrix = new ColorMatrix(); matrix.setSaturation(0); @@ -90,14 +91,15 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements } private void drawPoint(Canvas canvas, float x, float y, boolean active) { - float left = x - roadWorkIcon.getWidth() / 2; - float top = y - roadWorkIcon.getHeight(); - canvas.drawBitmap(roadWorkIcon, left, top, active ? activePaint : paint); + float textScale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); + float left = x - roadWorkIcon.getWidth() / 2f * textScale; + float top = y - roadWorkIcon.getHeight() * textScale; + Rect destRect = getIconDestinationRect(left, top, roadWorkIcon.getWidth(), roadWorkIcon.getHeight(), textScale); + canvas.drawBitmap(roadWorkIcon, null, destRect, active ? activePaint : paint); } @Override public void destroyLayer() { - } @Override @@ -144,7 +146,7 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements if (tileBox.getZoom() >= START_ZOOM) { int ex = (int) point.x; int ey = (int) point.y; - int compare = getRadiusPoi(tileBox); + int compare = getScaledTouchRadius(activity.getMyApplication(), getRadiusPoi(tileBox)); int radius = compare * 3 / 2; for (Map.Entry<LatLon, AvoidRoadInfo> entry : avoidSpecificRoads.getImpassableRoads().entrySet()) { diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java index 45f5541d29..700cb9a7a2 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java @@ -626,6 +626,10 @@ public abstract class OsmandMapLayer { return (int) (r * tb.getDensity()); } + protected int getIconSize(Context ctx) { + return ctx.getResources().getDimensionPixelSize(R.dimen.favorites_icon_outline_size); + } + public Rect getIconDestinationRect(float x, float y, int width, int height, float scale) { int scaledWidth = width; int scaledHeight = height; diff --git a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java index dadd9f5f58..517092764e 100644 --- a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java @@ -2,15 +2,8 @@ package net.osmand.plus.views; import android.app.Dialog; import android.content.Context; -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 android.graphics.Rect; import android.graphics.drawable.Drawable; import android.text.util.Linkify; import android.util.TypedValue; @@ -29,6 +22,7 @@ import net.osmand.PlatformUtil; import net.osmand.ResultMatcher; import net.osmand.ValueHolder; import net.osmand.data.Amenity; +import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -38,8 +32,8 @@ import net.osmand.osm.PoiType; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.base.FavoriteImageDrawable; import net.osmand.plus.helpers.WaypointHelper; -import net.osmand.plus.poi.PoiFiltersHelper; import net.osmand.plus.poi.PoiUIFilter; import net.osmand.plus.render.RenderingIcons; import net.osmand.plus.routing.IRouteInformationListener; @@ -63,12 +57,6 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon public static final org.apache.commons.logging.Log log = PlatformUtil.getLog(POIMapLayer.class); - private Paint paintIconBackground; - private Bitmap poiBackground; - private Bitmap poiBackgroundSmall; - private PorterDuffColorFilter poiColorFilter; - private int poiSize; - private OsmandMapTileView view; private RoutingHelper routingHelper; @@ -81,7 +69,6 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon private OsmandApplication app; - public POIMapLayer(final MapActivity activity) { routingHelper = activity.getRoutingHelper(); routingHelper.addListener(this); @@ -99,7 +86,6 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon return super.isInterrupted(); } - @Override public void layerOnPreExecute() { calculatedFilters = new TreeSet<>(filters); @@ -148,7 +134,6 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon }; } - public void getAmenityFromPoint(RotatedTileBox tb, PointF point, List<? super Amenity> am) { List<Amenity> objects = data.getResults(); if (objects != null) { @@ -172,16 +157,9 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon } } - @Override public void initLayer(OsmandMapTileView view) { this.view = view; - poiSize = app.getResources().getDimensionPixelSize(R.dimen.poi_icon_size); - poiColorFilter = new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); - paintIconBackground = new Paint(); - poiBackground = BitmapFactory.decodeResource(view.getResources(), R.drawable.ic_white_orange_poi_shield); - poiBackgroundSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.ic_white_orange_poi_shield_small); - mapTextLayer = view.getLayerByClass(MapTextLayer.class); } @@ -221,10 +199,13 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon objects = data.getResults(); if (objects != null) { float textScale = app.getSettings().TEXT_SCALE.get(); - float iconSize = poiBackground.getWidth() * 3 / 2 * textScale; + float iconSize = getIconSize(app) * 1.5f * textScale; QuadTree<QuadRect> boundIntersections = initBoundIntersections(tileBox); WaypointHelper wph = app.getWaypointHelper(); - + FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(view.getContext(), + ContextCompat.getColor(app, R.color.osmand_orange), true, + new FavouritePoint(0, 0, "", "")); + fid.setAlpha(0.8f); for (Amenity o : objects) { float x = tileBox.getPixXFromLatLon(o.getLocation().getLatitude(), o.getLocation() .getLongitude()); @@ -234,8 +215,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon if (tileBox.containsPoint(x, y, iconSize)) { if (intersects(boundIntersections, x, y, iconSize, iconSize) || (app.getSettings().SHOW_NEARBY_POI.get() && wph.isRouteCalculated() && !wph.isAmenityNoPassed(o))) { - Rect destRect = getIconDestinationRect(x, y, poiBackgroundSmall.getWidth(), poiBackgroundSmall.getHeight(), textScale); - canvas.drawBitmap(poiBackgroundSmall, null, destRect, paintIconBackground); + fid.drawSmallPoint(canvas, x, y, textScale); smallObjectsLatLon.add(new LatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude())); } else { @@ -251,8 +231,6 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon int y = (int) tileBox.getPixYFromLatLon(o.getLocation().getLatitude(), o.getLocation() .getLongitude()); if (tileBox.containsPoint(x, y, iconSize)) { - Rect destRect = getIconDestinationRect(x, y, poiBackground.getWidth(), poiBackground.getHeight(), textScale); - canvas.drawBitmap(poiBackground, null, destRect, paintIconBackground); String id = null; PoiType st = o.getType().getPoiTypeByKeyName(o.getSubType()); if (st != null) { @@ -263,13 +241,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon } } if (id != null) { - Drawable img = RenderingIcons.getDrawableIcon(view.getContext(), id, false); - if (img != null) { - destRect = getIconDestinationRect(x, y, poiSize, poiSize, textScale); - img.setBounds(destRect); - img.setColorFilter(poiColorFilter); - img.draw(canvas); - } + fid.drawPoint(canvas, x, y, textScale, false); } } } @@ -419,9 +391,8 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon public int getTextShift(Amenity amenity, RotatedTileBox rb) { int radiusPoi = getRadiusPoi(rb); if (isPresentInFullObjects(amenity.getLocation())) { - radiusPoi += poiBackground.getHeight() / 2 - poiBackgroundSmall.getHeight() / 2; + radiusPoi += (getIconSize(app) - app.getResources().getDimensionPixelSize(R.dimen.favorites_icon_size_small)) / 2; } - return radiusPoi; } diff --git a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java index db1eae9605..f5e61d05e3 100644 --- a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java @@ -1,23 +1,17 @@ package net.osmand.plus.views; import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Canvas; -import android.graphics.ColorFilter; -import android.graphics.Paint; import android.graphics.Path; import android.graphics.PointF; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffColorFilter; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; import android.util.DisplayMetrics; import android.view.WindowManager; +import androidx.annotation.DrawableRes; import androidx.core.content.ContextCompat; import net.osmand.ResultMatcher; +import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -26,6 +20,7 @@ import net.osmand.data.RotatedTileBox; import net.osmand.data.TransportStop; import net.osmand.osm.edit.Node; import net.osmand.osm.edit.Way; +import net.osmand.plus.base.FavoriteImageDrawable; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; @@ -50,12 +45,6 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa private final MapActivity mapActivity; private OsmandMapTileView view; - private Paint paintIcon; - private ColorFilter paintLightIconFilter; - private ColorFilter paintDarkIconFilter; - private Bitmap backgroundIcon; - private Bitmap stopBus; - private Bitmap stopSmall; private RenderingLineAttributes attrs; private MapLayerData<List<TransportStop>> data; @@ -64,8 +53,6 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa private OsmandSettings.CommonPreference<Boolean> showTransportStops; private Path path; - private float backgroundIconHalfWidth; - private float backgroundIconHalfHeight; public TransportStopsLayer(MapActivity mapActivity) { this.mapActivity = mapActivity; @@ -76,19 +63,11 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa @SuppressWarnings("deprecation") @Override public void initLayer(final OsmandMapTileView view) { - backgroundIcon = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_transport_stop_bg); - backgroundIconHalfWidth = backgroundIcon.getWidth() / 2f; - backgroundIconHalfHeight = backgroundIcon.getWidth() / 2f; this.view = view; DisplayMetrics dm = new DisplayMetrics(); WindowManager wmgr = (WindowManager) view.getContext().getSystemService(Context.WINDOW_SERVICE); wmgr.getDefaultDisplay().getMetrics(dm); - paintIcon = new Paint(); - paintLightIconFilter = new PorterDuffColorFilter(ContextCompat.getColor(mapActivity, R.color.active_buttons_and_links_text_light), PorterDuff.Mode.SRC_IN); - paintDarkIconFilter = new PorterDuffColorFilter(ContextCompat.getColor(mapActivity, R.color.active_buttons_and_links_text_dark), PorterDuff.Mode.SRC_IN); path = new Path(); - stopBus = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_transport_stop_bus); - stopSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_transport_stop_small); attrs = new RenderingLineAttributes("transport_route"); attrs.defaultWidth = (int) (6 * view.getDensity()); data = new OsmandMapLayer.MapLayerData<List<TransportStop>>() { @@ -235,7 +214,7 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa if (objects != null) { float textScale = mapActivity.getMyApplication().getSettings().TEXT_SCALE.get(); - float iconSize = stopBus.getWidth() * 3 / 2.5f * textScale; + float iconSize = getIconSize(mapActivity) * 3 / 2.5f * textScale; QuadTree<QuadRect> boundIntersections = initBoundIntersections(tb); List<TransportStop> fullObjects = new ArrayList<>(); for (TransportStop o : objects) { @@ -243,8 +222,11 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa float y = tb.getPixYFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude()); if (intersects(boundIntersections, x, y, iconSize, iconSize)) { - Rect destRect = getIconDestinationRect(x, y, stopSmall.getWidth(), stopSmall.getHeight(), textScale); - canvas.drawBitmap(stopSmall, null, destRect, paintIcon); + FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(mapActivity, + ContextCompat.getColor(mapActivity, R.color.transport_stop_icon_background), true, + createUIPoint(0)); + fid.setAlpha(0.9f); + fid.drawSmallPoint(canvas, x, y, textScale); } else { fullObjects.add(o); } @@ -256,22 +238,30 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa if (stopRoute != null) { TransportStopType type = TransportStopType.findType(stopRoute.route.getType()); if (type != null) { - Drawable foregroundIcon = RenderingIcons.getDrawableIcon(mapActivity, type.getResName(), false); - Rect destRect = getIconDestinationRect(x, y, backgroundIcon.getWidth(), backgroundIcon.getHeight(), textScale); - canvas.drawBitmap(backgroundIcon, null, destRect, paintIcon); - destRect = getIconDestinationRect(x, y, foregroundIcon.getIntrinsicWidth(), foregroundIcon.getIntrinsicHeight(), textScale); - foregroundIcon.setBounds(destRect); - foregroundIcon.setColorFilter(nightMode ? paintDarkIconFilter : paintLightIconFilter); - foregroundIcon.draw(canvas); + drawPoint(canvas, textScale, x, y, RenderingIcons.getResId(type.getResName())); } } else { - Rect destRect = getIconDestinationRect(x, y, stopBus.getWidth(), stopBus.getHeight(), textScale); - canvas.drawBitmap(stopBus, null, destRect, paintIcon); + drawPoint(canvas, textScale, x, y, R.drawable.mx_highway_bus_stop); } } } } + private FavouritePoint createUIPoint(int iconId) { + FavouritePoint fp = new FavouritePoint(0, 0, "", ""); + fp.setIconId(iconId); + fp.setBackgroundType(FavouritePoint.BackgroundType.SQUARE); + return fp; + } + + private void drawPoint(Canvas canvas, float textScale, float x, float y, @DrawableRes int iconId) { + FavouritePoint fp = createUIPoint(iconId); + FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(mapActivity, + ContextCompat.getColor(mapActivity, R.color.transport_stop_icon_background), true, fp); + fid.setAlpha(0.9f); + fid.drawPoint(canvas, x, y, textScale, false); + } + @Override public void onDraw(Canvas canvas, RotatedTileBox tb, DrawSettings settings) { } From 8b19f731cea95d0ab4800c0934775d7ce6984622 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Tue, 9 Jun 2020 17:00:44 +0300 Subject: [PATCH 004/300] Delete unnecessary map_ files --- OsmAnd/res/drawable-hdpi/map_turn_forward.png | Bin 1784 -> 0 bytes .../map_turn_forward_keep_right.png | Bin 2315 -> 0 bytes .../map_turn_forward_keep_right_small.png | Bin 1559 -> 0 bytes .../map_turn_forward_right_turn.png | Bin 1962 -> 0 bytes .../map_turn_forward_right_turn_small.png | Bin 1376 -> 0 bytes .../map_turn_forward_slight_right_turn.png | Bin 2109 -> 0 bytes ...ap_turn_forward_slight_right_turn_small.png | Bin 1445 -> 0 bytes .../drawable-hdpi/map_turn_forward_small.png | Bin 1356 -> 0 bytes .../map_turn_forward_turn_sharp.png | Bin 1937 -> 0 bytes .../map_turn_forward_turn_sharp_small.png | Bin 1368 -> 0 bytes .../map_turn_forward_uturn_right.png | Bin 2316 -> 0 bytes .../map_turn_forward_uturn_right_small.png | Bin 1509 -> 0 bytes .../res/drawable-hdpi/map_turn_keep_right.png | Bin 2268 -> 0 bytes .../map_turn_keep_right_small.png | Bin 1545 -> 0 bytes OsmAnd/res/drawable-hdpi/map_turn_right.png | Bin 2020 -> 0 bytes OsmAnd/res/drawable-hdpi/map_turn_right2.png | Bin 1952 -> 0 bytes .../drawable-hdpi/map_turn_right2_small.png | Bin 1410 -> 0 bytes .../res/drawable-hdpi/map_turn_right_small.png | Bin 1429 -> 0 bytes .../res/drawable-hdpi/map_turn_sharp_right.png | Bin 1925 -> 0 bytes .../map_turn_sharp_right_small.png | Bin 1395 -> 0 bytes .../drawable-hdpi/map_turn_slight_right.png | Bin 2046 -> 0 bytes .../map_turn_slight_right_small.png | Bin 1438 -> 0 bytes OsmAnd/res/drawable-hdpi/map_turn_uturn.png | Bin 2375 -> 0 bytes .../res/drawable-hdpi/map_turn_uturn_right.png | Bin 2402 -> 0 bytes .../map_turn_uturn_right_small.png | Bin 1611 -> 0 bytes .../res/drawable-hdpi/map_turn_uturn_small.png | Bin 1351 -> 0 bytes .../map_widget_compass_ruller_day.png | Bin 32575 -> 0 bytes .../map_widget_compass_ruller_location_day.png | Bin 5219 -> 0 bytes OsmAnd/res/drawable-mdpi/map_turn_forward.png | Bin 1492 -> 0 bytes .../map_turn_forward_keep_right.png | Bin 1842 -> 0 bytes .../map_turn_forward_keep_right_small.png | Bin 1360 -> 0 bytes .../map_turn_forward_right_turn.png | Bin 1625 -> 0 bytes .../map_turn_forward_right_turn_small.png | Bin 1232 -> 0 bytes .../map_turn_forward_slight_right_turn.png | Bin 1701 -> 0 bytes ...ap_turn_forward_slight_right_turn_small.png | Bin 1296 -> 0 bytes .../drawable-mdpi/map_turn_forward_small.png | Bin 1194 -> 0 bytes .../map_turn_forward_turn_sharp.png | Bin 1579 -> 0 bytes .../map_turn_forward_turn_sharp_small.png | Bin 1236 -> 0 bytes .../map_turn_forward_uturn_right.png | Bin 1809 -> 0 bytes .../map_turn_forward_uturn_right_small.png | Bin 1317 -> 0 bytes .../res/drawable-mdpi/map_turn_keep_right.png | Bin 1790 -> 0 bytes .../map_turn_keep_right_small.png | Bin 1342 -> 0 bytes OsmAnd/res/drawable-mdpi/map_turn_right.png | Bin 1637 -> 0 bytes OsmAnd/res/drawable-mdpi/map_turn_right2.png | Bin 1590 -> 0 bytes .../drawable-mdpi/map_turn_right2_small.png | Bin 1278 -> 0 bytes .../res/drawable-mdpi/map_turn_right_small.png | Bin 1288 -> 0 bytes .../res/drawable-mdpi/map_turn_sharp_right.png | Bin 1578 -> 0 bytes .../map_turn_sharp_right_small.png | Bin 1242 -> 0 bytes .../drawable-mdpi/map_turn_slight_right.png | Bin 1660 -> 0 bytes .../map_turn_slight_right_small.png | Bin 1312 -> 0 bytes OsmAnd/res/drawable-mdpi/map_turn_uturn.png | Bin 1878 -> 0 bytes .../res/drawable-mdpi/map_turn_uturn_right.png | Bin 1884 -> 0 bytes .../map_turn_uturn_right_small.png | Bin 1399 -> 0 bytes .../res/drawable-mdpi/map_turn_uturn_small.png | Bin 1222 -> 0 bytes .../map_widget_compass_ruller_day.png | Bin 18379 -> 0 bytes .../map_widget_compass_ruller_location_day.png | Bin 2867 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_turn_forward.png | Bin 2079 -> 0 bytes .../map_turn_forward_keep_right.png | Bin 2856 -> 0 bytes .../map_turn_forward_keep_right_small.png | Bin 1759 -> 0 bytes .../map_turn_forward_right_turn.png | Bin 2391 -> 0 bytes .../map_turn_forward_right_turn_small.png | Bin 1545 -> 0 bytes .../map_turn_forward_slight_right_turn.png | Bin 2606 -> 0 bytes ...ap_turn_forward_slight_right_turn_small.png | Bin 1662 -> 0 bytes .../drawable-xhdpi/map_turn_forward_small.png | Bin 1477 -> 0 bytes .../map_turn_forward_turn_sharp.png | Bin 2308 -> 0 bytes .../map_turn_forward_turn_sharp_small.png | Bin 1560 -> 0 bytes .../map_turn_forward_uturn_right.png | Bin 2851 -> 0 bytes .../map_turn_forward_uturn_right_small.png | Bin 1746 -> 0 bytes .../res/drawable-xhdpi/map_turn_keep_right.png | Bin 2706 -> 0 bytes .../map_turn_keep_right_small.png | Bin 1747 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_turn_right.png | Bin 2471 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_turn_right2.png | Bin 2376 -> 0 bytes .../drawable-xhdpi/map_turn_right2_small.png | Bin 1604 -> 0 bytes .../drawable-xhdpi/map_turn_right_small.png | Bin 1593 -> 0 bytes .../drawable-xhdpi/map_turn_sharp_right.png | Bin 2334 -> 0 bytes .../map_turn_sharp_right_small.png | Bin 1556 -> 0 bytes .../drawable-xhdpi/map_turn_slight_right.png | Bin 2459 -> 0 bytes .../map_turn_slight_right_small.png | Bin 1595 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_turn_uturn.png | Bin 2964 -> 0 bytes .../drawable-xhdpi/map_turn_uturn_right.png | Bin 3003 -> 0 bytes .../map_turn_uturn_right_small.png | Bin 1839 -> 0 bytes .../drawable-xhdpi/map_turn_uturn_small.png | Bin 1526 -> 0 bytes .../map_widget_compass_ruller_day.png | Bin 46704 -> 0 bytes .../map_widget_compass_ruller_location_day.png | Bin 7957 -> 0 bytes .../res/drawable-xxhdpi/map_turn_forward.png | Bin 2719 -> 0 bytes .../map_turn_forward_keep_right.png | Bin 3869 -> 0 bytes .../map_turn_forward_keep_right_small.png | Bin 2216 -> 0 bytes .../map_turn_forward_right_turn.png | Bin 3118 -> 0 bytes .../map_turn_forward_right_turn_small.png | Bin 1882 -> 0 bytes .../map_turn_forward_slight_right_turn.png | Bin 3526 -> 0 bytes ...ap_turn_forward_slight_right_turn_small.png | Bin 2015 -> 0 bytes .../drawable-xxhdpi/map_turn_forward_small.png | Bin 1746 -> 0 bytes .../map_turn_forward_turn_sharp.png | Bin 3029 -> 0 bytes .../map_turn_forward_turn_sharp_small.png | Bin 1881 -> 0 bytes .../map_turn_forward_uturn_right.png | Bin 3913 -> 0 bytes .../map_turn_forward_uturn_right_small.png | Bin 2197 -> 0 bytes .../drawable-xxhdpi/map_turn_keep_right.png | Bin 3713 -> 0 bytes .../map_turn_keep_right_small.png | Bin 2174 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_turn_right.png | Bin 3269 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_turn_right2.png | Bin 3104 -> 0 bytes .../drawable-xxhdpi/map_turn_right2_small.png | Bin 1948 -> 0 bytes .../drawable-xxhdpi/map_turn_right_small.png | Bin 1958 -> 0 bytes .../drawable-xxhdpi/map_turn_sharp_right.png | Bin 3075 -> 0 bytes .../map_turn_sharp_right_small.png | Bin 1861 -> 0 bytes .../drawable-xxhdpi/map_turn_slight_right.png | Bin 3245 -> 0 bytes .../map_turn_slight_right_small.png | Bin 1931 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_turn_uturn.png | Bin 4142 -> 0 bytes .../drawable-xxhdpi/map_turn_uturn_right.png | Bin 4159 -> 0 bytes .../map_turn_uturn_right_small.png | Bin 2337 -> 0 bytes .../drawable-xxhdpi/map_turn_uturn_small.png | Bin 1755 -> 0 bytes .../map_widget_compass_ruller_day.png | Bin 78920 -> 0 bytes .../map_widget_compass_ruller_location_day.png | Bin 14683 -> 0 bytes .../map_widget_compass_ruller_day.png | Bin 112642 -> 0 bytes .../map_widget_compass_ruller_location_day.png | Bin 22887 -> 0 bytes OsmAnd/res/layout-land/map_hud_top.xml | 3 +-- OsmAnd/res/layout/map_hud_top.xml | 3 +-- 116 files changed, 2 insertions(+), 4 deletions(-) delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_keep_right.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_keep_right_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_right_turn.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_right_turn_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_slight_right_turn.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_slight_right_turn_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_turn_sharp.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_turn_sharp_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_uturn_right.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_forward_uturn_right_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_keep_right.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_keep_right_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_right.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_right2.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_right2_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_right_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_sharp_right.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_sharp_right_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_slight_right.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_slight_right_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_uturn.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_uturn_right.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_uturn_right_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_turn_uturn_small.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_widget_compass_ruller_day.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_widget_compass_ruller_location_day.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_keep_right.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_keep_right_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_right_turn.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_right_turn_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_slight_right_turn.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_slight_right_turn_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_turn_sharp.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_turn_sharp_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_uturn_right.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_forward_uturn_right_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_keep_right.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_keep_right_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_right.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_right2.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_right2_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_right_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_sharp_right.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_sharp_right_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_slight_right.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_slight_right_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_uturn.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_uturn_right.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_uturn_right_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_turn_uturn_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_widget_compass_ruller_day.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_widget_compass_ruller_location_day.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_keep_right.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_keep_right_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_right_turn.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_right_turn_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_slight_right_turn.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_slight_right_turn_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_turn_sharp.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_turn_sharp_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_uturn_right.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_forward_uturn_right_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_keep_right.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_keep_right_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_right.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_right2.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_right2_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_right_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_sharp_right.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_sharp_right_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_slight_right.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_slight_right_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_uturn.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_uturn_right.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_uturn_right_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_turn_uturn_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_widget_compass_ruller_day.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_widget_compass_ruller_location_day.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_keep_right.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_keep_right_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_right_turn.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_right_turn_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_slight_right_turn.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_slight_right_turn_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_turn_sharp.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_turn_sharp_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_uturn_right.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_forward_uturn_right_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_keep_right.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_keep_right_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_right.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_right2.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_right2_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_right_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_sharp_right.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_sharp_right_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_slight_right.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_slight_right_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_uturn.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_uturn_right.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_uturn_right_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_turn_uturn_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_widget_compass_ruller_day.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_widget_compass_ruller_location_day.png delete mode 100644 OsmAnd/res/drawable-xxxhdpi/map_widget_compass_ruller_day.png delete mode 100644 OsmAnd/res/drawable-xxxhdpi/map_widget_compass_ruller_location_day.png diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward.png b/OsmAnd/res/drawable-hdpi/map_turn_forward.png deleted file mode 100644 index 39eff5a3ff7ec6c0ac3a89a06023cf28a2f77c86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1784 zcmbVNe@qj16tB~w!4)-51`g+?%pa|^*SogBb##F3F_~5vE%HN_a=kmCgZ9qr0Yx@- z)l3MY8|cI!6Hueu6r4;!i?S{_6oyV&1Qi`7V{v1EfruJ^?FucL#rVfAxqIL5_r3Rd z@B7~8<%;81zc28e@5|%y1hFf$37oXM-x)sK7a>Bga3YXJlUY5L!RBKO$%`f^6A8px zuuL+6#E61*7sv=6Z)%>|kjy6QR;h5xBE{S`QoDubym`EcNIQ+;*(3{?$V{_UEgW{X z2mv#p7A7fmG99fUv&<{jGo*g~Y6HGL8%GFX<a<DbUBv-dNEQR^mK>{1WmgNwaaG*f zeGCeLaT7LMEu2UySr-pzD24=-(ohKwK@bpzNFimo99D(^unbayG6aNV5*eg|WGYw& zcpf1ajUh5r3ECJ>EN-V3X0a@-0>S+Jd}+R1N->!rgdhkggFzUUa266<ftAJV600rP zi=ZWKIAf++Gi3$bh?t4WWz|A1(}^osXq|2n*lP0>iYpmt$7m3e%0P?7eXntA8=F8r zPvfQ5HbVhTf(fLJ%4Kk_9~r@3XRday4&*lEvQfn`X09n%j+Vl6Eu@u=)vAS@MoO3o z6|TVLBt}A#P(-1SWP~e1C5Q|Um5`VmH<6(bVKO0JoR|4WD^V0yguyW~ISN6j648Xo zP#EQo<)|hMo%D^h+E~nrlit{7F1E)PdZn*Q!;lzDF$Rjt@v<O3i()BT7DWRZ&3M;= zrAcNhLFL;-?lw)_T1ztKJd%iEC<`!NXO;OSIlxdjB1d3cVhYa)m4p!rNP@r_1h)z& z6u1e(!eLzK@hARo{Xi}$&`p*X$m2cY80lV4jsmxt946ArO%TJ4%EvVu_}l~r#A>4r z_Ur#tp2>bAI$&#NX~m}5)8>3%JY#+f|1Cjk&r-3kqcrPK`dsIC(`Mclmjn!UJ=|JU zlpd@tZJm`<H(QWegccc(wCt|h49pL6HWW4tjQ&`^f^nArVjFfg$}8W|>8B5p0{y1+ zC>ani`}G+<)22G+1TBm$+u6COzv_zq;x4rj|MRG5S<0d%_lid114oP-^?u9ZO1?fO z8Xb%LA*(R6H)U~m@}b^?XyfLR_L|5~o>ees?+p)q)p%!4{|R_(_r8|IF_F=Hx${7S zBMo;lrM}h-KDFl7(*4iuH#5ntBgMW}|C>Qfsi0jaZc3TgY~1r?uzd7`$9LPBYaNxY z!Nl{*t73icV&&$p_Ttytszml6$?2c{ExR79x~8WqkpAkCa{mQOl2)D{G&<|!UF+7| zJ#1|1F))YuWZJ{!{I+wYJm%5;OWoh}HHqz&BME_iir%v0EC2e?wT@m^orbsWEBD=A z?Xc9}|FYvGUt^lf&EP8jtY4k*N1ye6d#SW<ZyJ5AJTMWu-Byjxszz_*Ub(uxaZLn! zX=7h%E!w^Ekk6@$J1*Ba29EYM7oMp(hVH0ppDu2C`?Rt>cf%3sytFv}4Y^^gX&}C{ z#bJr+iD?a*mnP9q{bJy8MOW|Q#12vaAH256y1fU{q^{bIp?jbIWbO3Jx^-6X!uD*7 zsvEuET5g~p_-+_FE_fJF(cL_V(#fuqWs0B+^$mv$*2b0ib>wXC?y2l6hV^}q<xhLg z1=W8VRpMuK<vlr*xscwuqrGsqx>i1Xyz}Xs(zQ4Lj+8ZCj|@r4dsi_u+?fAp;Ovu< z4u5h#V?1@FU~LqwoVlPtBo6=mLdqQ;$A~GeP3a!t;YrMMx=eA6v&L=XR(gb&OB0lu zP>$nF5-r%vxBsGV^N{gG*#UEVNc@X{!2zi*aEcFaOZv&*>>)t{_rE9>U9GKKp6>V; D4#S!W diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_keep_right.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_keep_right.png deleted file mode 100644 index 930a6ed29a2073ce87cc53a693ec1ea862be93a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2315 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 diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_keep_right_small.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_keep_right_small.png deleted file mode 100644 index 4f061a8f65003e863b3056e4dbf6484fb3985410..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1559 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e>Z$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%w?G&5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8<fR&VF+bTgE72zA8;GAESs$i;TrkiYNXsBRrsb^?v zVQgfoqhMrUXsT~usc&eYYhY+)XkcYzpa2C*K--E^(yW49+@N*=dA3R!B_#z``ugSN z<$C4Ddih1^`i7R4mih)p`bI{&Koz>hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT-VtFWlg~VrW1CgG|37u|VHY&p<yn7vwLn>f(~1RD?6IsxA(xEJ)Q4 zN-fSWElLK)N18HBGcfG%TLe-Fbd8mNQ6?}_5_4SglS^|`^GZBjY?XjAdMTMHR>>yG z#;J*^hPq~!CMLRR7A9u8mIldYx~YlA$w{eZhABx&mN0X$>31_TwzRNxbaFFtG%_@F zHFdHuHgz>Ncd;-rG&VGFw1DaL%quQQ%u7y%*_{cr8>-h4uU;$XqSVBa{GyQj{2W*+ z2*}7U$uG{xFHmrH2FJRBMtEjkN`85<CMcR9zII71$}CGwaVyHtRRD*xRVEfUSR@&n z8K!|foMNnNYGIP3n`CBYuA7!(Zf;_1ZUOXuvJzB(3c2B@4|J41D6t?V9+(g?MS_^{ ztN`S|GgE3FFb5R@vr4$~310>VCUZ|0$B>F!Z)V!+vpC8eE7un<jB_fCYjShW*u&C$ zAz(#J!9t}&(;a+U{1v$FiiT^5D1H3I+2Pjl!b3xa>-o9L?yo*Zv)63iT)h3wyE8NE zKWU$tb=r2`%=GksC5H{RB(0ecwq$9`$*@Gh{ZrPxwlV(ZDAvRDdxFA4MX5Qn7AJ9B zK4ah4vGT=(2-O`-U%xz$zQ8mu^?tIqSl|+=gH3PxOq;m_W*Ph4$znF&WVJ0%xhq66 zVzQ|Xn{H#`arGC|b2TT0mh$YfyzJ*NU-G}=#3M7FT*;AJ<ngsZ@}W#Ji(B5F&#(Bl zG;MkDaAQP+Mi6h>pYAsj+V?8IIz5U{IX*46<I;;cq7!Akn~SE)e^=R*+^)cU&SBC! z^W}SIEZOh<>`lkKF8g!BYhDK3Ieur_Rh6q!0f+Xi)=2*2T$VVu=VSHF*0aXP&Zmlr zF$edgvpbcql+p5w-&H1lru;(6a@7}MQm<2^*^eF2d;V<CQKOTeC$m3y31mHX(BQ=) z-<dV98Mj0qemr|xgUo7%)e1)oTUa}P2rkbRZP~zhOUpQBQYx$GghOfvZ|l3nHpeaB zoFs6l?Z9epN6lN|Yo5tA{pIV|sGWFC%;2lgoF?TBymH)@cYi;<!FGJ2t%0Mo`8s~y zI{l+k?W!{tHvM~JmnQV>rA5f09lXa^M*mr=`e3W-F$sT*&PfmLt{s%P|HWiWjfd-} z|EoLBF6PM1%Zk%+wQqTPH*!*L|H^soLd#k-6TM~#sl7evY`LuEZ*gKg6Ay#@nrNn_ S9LuvoMYX4^pUXO@geCx}1VQlt diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_right_turn.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_right_turn.png deleted file mode 100644 index 132513feb95fdcf79f97fd5388dd4001d1222ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1962 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 diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_right_turn_small.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_right_turn_small.png deleted file mode 100644 index a8c31c4d633d23871f78a8b476879ecd0e03a3bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1376 zcmbVMYfKbZ6dnStmMS%s21ID5W8@J#&wa2nVZmi*fQ>BBWgE6BQ08$LrZ6+x*}>gK zTgcj%MDg*1D%EJL{;*9fHijCku~sQ*BB@1_iiOx(n_x?9n^c?9)OHqF><{9PPBL@P zz4v_QeCIXW>uM@jrst$X5VX=$#rn+Eo_Lo(YJPWcuS}WC8iNZM^;*z~@H&88k|qGy zqwuZ32Y4y=>X)Ddf>Jlj{(uqiRx_feV0=Ociz*=#4M8Pk(GV}T0|OR7tE@VaU(TFE zU|Dh^4K^>~4Y@&^T-Bw6`mP$k*wrr55>i$QmqZ!UfC3C2jw&5$n29=(IlGK0CysFh zo>MW}oya_?fVU2IYdU~!m>m^Kl7x$CjI=o{l<hf~B1juf&^Sq;1j&#DLlN-8gP7iQ zDaiQPiUnWh&WW@cMu@@jNF;(qESRRZ;v`MeI6>hQg_;^@IHnqW6jj6Pk``DH7Iisf z$eIc#Eb@ZZX*dy+>3j%E$m?A+tcDj7Wu^>|@*$kW2wYJTam{Im4Ig+wV@d6>KNbSG z4}`T&T{P<vT$co!xqG;ygrdoYsnun(D0~O2iJb~i4G-%?%o|LSB}TN07Qh1%wbNEB z8gy9gC{2iV6z~>N0CrLm1UhMFDZI;0a%?$isUR#INpd#YT}*Hk=dy7Y&RxtcVm)fu z;8hVMeaoir1uXSYEaTPzZ)mz-(>jt}P}imzTDVOM!EX0l)#1VhS(UU%xF}Jk`KVc- z%bS5zp=$~}muE&^f&)c5XbVk=sNe|N(PGI;qBIqhOvxcxMS<iUl!z?grT?2h+$4o3 zn&m&ulRPpzG9fOGg1K27CZL)Vq?@A>yc;Nmpp+gD>+(mh&+I?9DV59|-Fa%;^1SOA z$eliHd<@B$nru2SazY*dXX7+-Fmt%~vMZ~pDK9gvpt7Lg>zliTyR$pl!qFe^d^*s$ z;>NN=>qEC*`|j+!Z>)B$s{S)OE@Zx+JyKXf_CCMkfp}?jw~)V|=yN@j+w*a)@D;_4 zq+a`#n+aCWyj?%I`}glp{cuo!>f}&{>at+n-;7|kpVwbb$!htntpBEuEqW`q46QRf z9Z%2nSVAA|T|ps#o$UYQTJCgw*JJFF?6`fO?e&e1Kl}Nn_Mf(Xuy4lu?FDi5fwld6 z$-x(UH{4izU%CC}o?~a11v|FCaCPkb(W|z=khA2T_~fjA+fnSj(hH}%Q_mc3*)rL1 z{=@v^m4i7~HjJemZ+v1J_4-~uyoX2|9?%YbHk3OYYmRRjxYb8B$7{zM<H|cz^2MB@ zi?dkSOU+i{Smy1#KBu+2^WMbi*tC6B{vVxxPn0j_VQc#RiX+)0m%ga#Nr5J=Jd$OZ RY*>@{=Xtmq_C$G0{9jy5=34*& diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_slight_right_turn.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_slight_right_turn.png deleted file mode 100644 index 61e2369dd5006eef11a805082dfef768474e1e69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2109 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 Gt^WbVw?5?n diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_slight_right_turn_small.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_slight_right_turn_small.png deleted file mode 100644 index 0423af6252b26558a063aa440e98e2fd5c36bb03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1445 zcmbVMeN5bB7(X|Lh(P8xLWY}ZN*u${>&J1&wc%vP^?>sRLv{#rBe5UvL4j*aug4uY z1-7BwHUeT62`+@OxoEPfBx4EUWJ;zoF-}4zVIxekOr{PA&Y0n3_W062$o{Zt`#$g6 z=l49n=c~cI+^p!x_(+{j7wyQV^R?9!dLqKL_c43fxVCIo?M3Py$*uYs1?a52!~)3S zVM;(gVEF3FL6D}?t*sJVMQTybE{c;pdM2c!4|rq^t<$BY2V{mT2P(vZ5<#@UzxDOQ zkic8uLSqh=Bilf!kX@sIJvF&5uBMzLc{u%fC@nx~20TDzpn#`B^ilx}ykM8o<j^q+ zLklWuxdmP%Rg{wl*(3!(M!gB)a2$tHNj+{f8wg`EL}0iP#Yhy#5Dceqj3O{->4G(H z3h$=!>C7cx+Rg%(s;W$(sNe6``we<YDM4|PBvFh&2?EhH5O1}pG66*NCM;W^ftOPR zSrsG^3Rz@W$){Rijp<?t9yupx#jxmIN|cr|G{DFxuE$W1CluF$wpYyu|I%1h+v}>9 z0h$lIl275Zdbkso!CLMf?I@(Ev7vS=f>so!f|fX+2Z*YJw!qpKJumPSm%<qU18~Gd zrlcTlbBYNeG0ubl#=x<_g!3#*F56iRZ#5Y+Xd7nD#0+*Ew;M@YDrP6_R-@fux24)w zuny6yG9m|-eG8iJB`o<!EM-#wqe_ZPk}8(FAg@$XC2y%DLpIw&)uHW$g2+pLZ&IjC zi&4`+5vl;6sYo7ZA<vYs3I_r=lLnID5Z3HAA*p-{j*x_#*CaEa!m&7GCOCKr&;Q^2 zp&BVP)GYsLp5-I0BSYfKC}^9NVFIEyL5emi`peT(I^AQJ9kkUI82h!o-#M^z(^pS_ zzuj*A{A8DT#8JF|oX+wmR>p>HRb%6Pl`qnC*y9f)YNIAyg|$CU!AB-t&viAXPyPut zI0v0WJ-4T?ygIXaZo2i}!1zUHGu81E_!*BUeDTR&va8;o3{;*VzPTA2h&-`wTKFRA zc+2dmh_P7d_o#RFmnCd#3J-32vLLN&$Bg6HXl>Ve=VbY_x1!bXj`Gg7#=D2vzT=1Z z_M+6$wG&UAe*IG22P}K?+q$?0A+Y7b*<I^57R>ClzCY9!WUJ+U4I^YhgipMBs8ct` z&IRw>&pq#HDHP(npOGKFx#6=lW0zje{wqOFirdQWm17fpVKwiSzmYMQoEhC3)BShb z@WmHCeX6)n{CZokDJ%Q6`oYE?(~dvJgZo|*j`Y;^MReb3gNGya4}=?_b@agD5jS$> zYz+RxM=X<{+Sz-JZA!YkcjL%C>rj33={08_9PEH+6K{@OJ5?WpWt=~E{lINJvOQyV z_w2j9P3!<Ye|4heT<kB2v+J%mPt4Nu!&Ti|-m3k$IN5p2dEsa;J^%K1(*-eQ_nX^7 fSv|9%e@&Dw7&p~?BfNkJ{Wu-=T>8U|R}TII!vqiD diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_small.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_small.png deleted file mode 100644 index 4d8d5d6220ec43f2a9118d7a81e770e99b122cfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1356 zcmbVMZ)_7~7{5Ve%V2B)9H0b`8-y*{_5Sp(?VWAe*4|v%I%Zc#Kg_`O?(KT4_lLXN z+Kt2@BgD<=7{M5vK@vNSQJ2jC(U>SktN1}<G|_}anM5#%js=6sW(dCB*6D|Z4_<Qj zKJWWJzvuZq|8B6Y^@+05M@kU{DGN0PBXD))-;y=(J1iXf5iVP8A!fJh2|F#C0I8St zI6y<H*aad$l=}{U3A_lhx>t$D>{z&kmvq%3=5-ty)qrRO@$ShOqSOs+G!D8H&4=Co z@M8>BWFNMl4U=Ib0Fp{mzX{s=Tcc8cx5UZV9zW{M@X&w?Y!S_<Db3<DK5W4*59RzZ zfuRd3cDD~(Bozy{p#j|lDC=<H5=Bv{n{!aC$4RrbC{0o<L2?8|;v~gWBu|s*(t|;7 zrkvm-!Nw(DaOcC4wr%hPkxr)_X{SRsy9kQoID(`Jn#Q39ZuM!ln87uxs$d}qEXh<1 zThTQ%Z&8fvJ+=>nOcz5?jc|C`ux2eK3Z{(6hz3D9NJ3TfaV=<Db_D!OV?}K%+GhYF z0xZ49lwds)RRu82-Gd$F6(JjbpQ*s2h^e41^{7CzLqQ(~Zyd5B^AaODfe0wv#W4(? z@Gvf%BPACOM5h!7E=rEaxq_XQ@b#=9(2U#FNIC_I5?C(aCIwo6$4(*O7M8Ig&9X&J z0tMd+^u2^-ABg1xCJ=4ijOu!-&;@Nt-PWz7ZlHm{Le<gg{fZ{*X{#n*rp2g(z*KsH z+-T}5x{zmHS%Cvhc{nFWOL*LqaN%y5p>U2)$WZdgj1;Ft4=rI!c=`Y4kAS3ze6#$g zc?w6cBlF_&D8S9~FaZrtkO@b{Tm0fK1Sv{|g7wkNmET{PI<%_3;)K3&*R#(x3`J}3 zb;m0nnwo5Vsd)C`7Q#Oe%dV}7zviAi-z<*55G(2EsBAcSvhMhw2V%iryzES8$6T?0 zrY)`ewcfwhM?boK<clr4e;QqrtG?0nSt^`8UHbR@s`HnK4083>Gs$<)+#F0z?l^mQ zeBFhnJA-w#<%#C_{KWNaF8f1l8*}OA-Z^*5F>pV*{V8MfY+q$`C-F`S|NiKW(W0k~ zi;2r4quZO9^0yv;1HamkwO<`O6~(reup@7dC#DA93;H*VXUh7~53YZ+&sf_y@$$7> z>mz(*I(Iix`$yZcw@-KCx#n&2)4z?h4}Vg2=gj*ZLl=Bmuk+%}HNPvjW9nDtz~$Xy z)nj8LY<RZh#JSa1raw)6TYtEG=-k1tzni{San@UTuSVXu`H1@SqfD;4ks5k(IKJui pEh~x7@7#1>+)E7&e%^Vs2uaj!82f6VWiJ1J3kj{kiH3v6{sEIe)++!2 diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_turn_sharp.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_turn_sharp.png deleted file mode 100644 index 08cc5042a73effa4d6288cb87ed2536fa0a46042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1937 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 E0OgqU6951J diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_turn_sharp_small.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_turn_sharp_small.png deleted file mode 100644 index 4d2072a5dde3ea17c12eb020ee453667e15c6927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1368 zcmbVMeM}Q)7(bn10@1m@1WdNubrKf2-dC?5M^6H6!A6UGbkMkrc)fc|59r--chG_} z#w{CRBW}^e5ZpgXHe)7i1TvCoGMx*k7|{@t%8+H*Lbe1qHl~YXF?(AmTQcGwdz1I` zp5OEQp0DevuBzOYQ;>ro$Tt5zZ!O&Iskt=^uD!nI`*6!QeIc_>jhJyk2S}Nuh5_o2 z2~D6D2vTR;4d6zQXFB9y$P5JzaH1Ns3Mm<DBBnt!g1Ac)njp3S6AgnVS>dr?E`5oi zvczKzY=8`C9uSrHb?Kn4t12jVwTLbWE8UB_6C6|!1Ezo`Vy%k7C3q~YmxJfjGl8LL z5wnHIR!M~d)u>0+0m@qKxJXeH>Tp>p*2&OpF-nsZOOP&tB5{)9D3YT|bZubJnl44S zT5rXgEqLRxsA*~(LB!*6Yn-vFdJ{ppTrPs737W>C1a5RHrjWoD!;;b91%{~0nklOa zn$jqQ)pnD|Ak$SBVp<@uu2?bF0tG`xBm|A1tRxYOrTj`u8)hx|hsK7|MzB)@L@hAX zc3p(|h*&aU7`vw%N(n+X+(BK2NfBDTs@NU_is|?A82n<DWQh}PA_D|K;dYnJhDV$> zJMJPyI}QX!3<EnQg~P6lo{jJob_e5QJ)R1>jHW0bTkd37ALH;kZ4^V1WzG!NuNbDF zh#+HIhPKzR<xj<O9vuj#ss~lIHB$xEQPot9sH&kJPde*pQG={VYTS4wm8Mm%y+D^c zfK;KYF*F@#PTqinGtAhjNZMhE!C9v*jEC)Z2Og0e4jbceLia^%4KMxQ_z{p4kt&vd z6;I{~R%Gh9-U{%t-b_G&9i+on`T5)^iy)g4es5VYF}s-jbpMvJyzyUm4HvyLlKlDy zfo`OuGtHy<i+?^Fx;X9`n)BhO_h4Awt;l=+Ezj4SO1wKXl{+#)&kf%m8o4|$b;WTX zFL^O??99vl=3{MnUv0JYlK)+blRHA!$-<hQ{MnY#x5hnFV>zMM7QQ#%?tf|Lg`DK_ zj=tY}wpa7@p_9}6><7zy)BL3$H{lbT_m@=WS{B^z@1?tkd$J23-hH88TbOHmGFGsw z_(9g-y~no?X^;MxbcdE!`lyd@Z9j3>GF$N5H#uKu!mINW6@xeZS7#2COm`LC3{{Tp z)&hfMeqFTGm|4DXKL7Ly-;tW7<45m32wrP`^klTBk=MGZD^l^<_;Y>kes=U)<j(8I zjlqHZ!tU?ntDg*9T>7v+*>Pj#(EiC&-7DxG;@tG^j)$8k53f)@Vwpek*h<gesrl$z zx4V9^q0yE-owf4Q8`+lL&#nu9bsS8Vb|1|pk@)cC&vVb8<Wm1Szpu(WRDSr)zX7?8 B>7f7s diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_uturn_right.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_uturn_right.png deleted file mode 100644 index bdb46151001a5e78a2b62c227b53063efd6dd8f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2316 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 diff --git a/OsmAnd/res/drawable-hdpi/map_turn_forward_uturn_right_small.png b/OsmAnd/res/drawable-hdpi/map_turn_forward_uturn_right_small.png deleted file mode 100644 index 371d917de12f001a2216b35cbacfc56527e25309..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1509 zcmbVMeN5D581EECF{fjIQ_-zfMTK2^Z|}2>C!Tjjj_nwnr(TRY`thC=uGiWt-ofG* zCW?v#A$}}FM;J@CWK(eJ;#jsAWfRQMOpK1i%q&C_VH2}25=~qWf$b0HA8Xpa&-?cI zJ<sp?>VcxdHHMUVDF}iXy!jr#zS<Jcw5j^LmMOcdFLN~}sI8SlT8vd8;u2&IqF#yJ z3jL53Dz|mP6$mnUyBG*+LEl?6FH1O^(81%9qN5RHMQ&VS`EsbC9Na2KoY=#TZ!lC8 zoY)4d&*W3wuvE;iQsLUF!T?`Y&Qk)GyAoXyr*#7o)L1kwg(Fcq?!-pz(z={DCNOkV zMJsn=&qxJ*MW|a=A!@~KMjilw+9@1Z9cI${21=TMl`v5RFd0pN1}2&`p<@@OdsBrF z?f2x3`O<eztW?t!njm7a7#=g@vbvQ36h#pxk|0T=u3?N;Ml?2Vj6@fWTkyaruZoH$ z$`LeSk>%tH&57wupM@YPKHr4lNOUYwddi46s}KM;5t5XMYg9X``Qbk_o~s=VR4S10 z!>C-L@_Ic&i^jov?q2LDp{TQ=-&RGvC~Vjx^A!?|XkL#K)4$+?DA2rxH$xTzqm8my zj3I}`W~5BK%?MdD&p{gyIF1^(^E|xEW?k)Z12WHKW&mKUl-q7%NXBJl%#7R4Okll{ zsK!QkIPP22eUD+m3$e6Yg{&s40a*@@cR^99tjW<*SwY?I(W;}%Hi!{HjzyOz%JeL1 z4^+kNP{>nd2_4NdEk1_>2^^G}B6%a{2-%Ew!2*mF84`5KAy{}0unv;P#_+=b%^#tY zA`;E=ujUy)(mOICPK<)SnHVM*(I-gNN9F1C&T0giG{x(21>$`}?{ySRcBSvz%*<$9 zJ?x*Gl-XI3e!gveTiRDGHAkzz-g7T4IPyvgXhzGH+*!8VGn|qgtZ6k*+cG>UdvI6D zdX6;z===HC#Z8l6zc_Tt{M(WKp`j~hrH)V2FLPiv{~veG4sh*kV1M?i+&M|k=IOn= z*C@#|FJ;}C^3#`~b>{E)ceT{8iu-cM?w-u9tYhHxb?z4Wz`yL|$5-uzwOJY0i@O)% zjWhhUJ4**E3#f2SRbGuRBfp#NOKQ)qzxu=ckjvAQnR=$;`y~r|41sXI`O<=y{g#e; z$La0`hK*qcwCAil{${!3)q_uNHFx%;r@gOL9{!-H|DC}rPlA<;9~CX7dXWaapm*=P zU619S+rj(y_Ma$2uDRz*hZ`~)H@ErH4()kKnNfG?NKk6ZE<3k(%Z(}YDsyn}&03Ko z(58X<GfK+w%<Y*OIRV4XmF*jq<#Y&l-TmB9IBVyo?*ci=>uLwu_sxI&OT*NI#o+<; z{2v2#eMRkg!$YnI-u^j69(d>q<NT~ECE&rGWW4oHXg`&8sQ6s<EZ^bS4eaiDa#Jl= zyq0%eT(BXDJ9=+Z!!E2Y<Fh%8eWal4qk)rshF&c7!(d_8=I#r7=Jn71;&yZAqt`}~ ocC>6uTKetN3vDMlMp8?VW6fv(%Kd~IO#FDgOrhuW>XPce0fhP&)Bpeg diff --git a/OsmAnd/res/drawable-hdpi/map_turn_keep_right.png b/OsmAnd/res/drawable-hdpi/map_turn_keep_right.png deleted file mode 100644 index 53bf1bbd5a415b5c569b6a25b42abd9417c8707e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2268 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 diff --git a/OsmAnd/res/drawable-hdpi/map_turn_keep_right_small.png b/OsmAnd/res/drawable-hdpi/map_turn_keep_right_small.png deleted file mode 100644 index f99dc29a3a0f079d97c348136ade15fea2b6cabb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1545 zcmaJ>eM}Q)7(eDF4r2(DErObyhi0I?-d)>kdnZ*(Td-QNmKuv&qSw2(^q}q4>oE#w zf`}g#7vtAtbAIcL_&Gno%uNh#D8t3**qj@R(XdYEWXrbBiJD!3I{z?Ua`(RP^FF`l z`8{73u@@DLO36%tAZV0zrr9B{+W0$SxcpsfDZ3#r8Ir{%6$>7zk`V!9<ODZ>t$wBy zH~_;{E$#rh5Hzfwce*53p^at*zmkdTD8v4sjE11x>ER&5mIDcPgHk?VK>E(KA~4Sx zkojaGUKlh1FF&(d1jW@wPPV$7r8s2zG&na*%Le>FV&Jgf7YNZ|12SNjmiKWnhQI?V zQn>*cB;_i!!zMulFsam{EI|;kj#3h&UacY(unH$g45u&xM{$BCa9V}KLk}W*6FCp< zFy{~Xl1~Q2D@j2b!zwE)m6d9xAeLeTMNt^8!c;0$)<8p50f`BtflyY$f*FKZkq=6| z5P;(r8Mja&84#K2U<m$TVc|2wfzVK*<dk7yCWsMA9P|6*aSdpPBnSAP#tXGW&Z;25 z93UiAh^$->PgVjf=kDc>;)*gGdXC7;MPYnqfvxa^fMhir5cx*Q@f^)+ST$e(fods@ z2KDGQT9m?BEeaSl>jqkabGxa8ofqNtT8f}_S|VSkG7^M^q%=m0iO>)xoe?*xEXD-Z z8VE^DfCUNPyzF}ji@y|0n?%4!g6I?kU!n`_UO^H<ULgpZOaoPiv*+^xPN)p!#LF}o zwHb)~dw|Oq1wTBHXPSQj2Tsc}Y8}p^97p0P3*;m)q+5;ZbQG&`t4JNE!I2?6_gwx4 z`&5?5aRd`|Xg#a-s2G+-Jz5<=2?CHPr3Y@5(W`YD7AHAer$aEAA{K9*=UOQtlKV5h zeKr{K;n`?`fILs4JUB<!b$3C~D`Tx@qci;D{f{nBG0#oE5Y5PJh^)vyZdYV)=!v`* zIkm0zT%B*z&#CrUTi*5S3nrI%)5lKC8NE-DzH#En^^Y4fdbaAm-Ai4w^=-R0^=Qq# z6OH{hm;SRfdNb5Vm9~G)sdm8&O0su)>a8cl{i(+k2OEDXJ2&ki#NJx**%flf{8TY- zee;2p$4jD1c68TN!M<1b{#n28+)jx}3vPaUawpY0Jn;IRo4IezC|?#U!Y@<Ddb>)< ztp)0twX<$Nn&M4v8Mie#y7n+{&S|Kd*L>x}CBCNGg>!A<!!Z{ehlX$2x$9y<_cCn_ z|EM}gxfz~SlI8lV-*JCf&m_fpMbn%u3tRe+jh|O<c+hz^JvyUh`O_zh+Sf&Y*f{<^ z{b};&bH2cK_vcPc+H))O<2q9i3TTo~ugO~F>v8V5^9Hi6`>DC2*Y=KWcSpv*jaO^a z+A&4m$^Cmr?z#Fw>D{(_t7A2H+g3(m^&E2#+Wwt6$Gze}ZS$7X&A)aeb=Wh<Kz-&1 z6_@6w{J#6~_ess<)Z1%HC%oUF{={r3Q}s5qb}npNd#cu8KS*ub+_P`eH!jOBExyAC z%fHmOM~~dN@HFkzrN6%tQ;Pps<j5*pK5O!m2khwDrs8qeSDlQu-a0eE_wI=j+j8sx zKRflx**g~7#hgPCZ_kG9-uy^ReYdS?b&Rvm9wr#yjPXs*{Khm-eMH^)_<Yw0b(`zA bg4!ggdvVtzWqNON{O4@76q%3YEvowuSHDRX diff --git a/OsmAnd/res/drawable-hdpi/map_turn_right.png b/OsmAnd/res/drawable-hdpi/map_turn_right.png deleted file mode 100644 index ebec78a2495e5a898b64b557c47e683d305a552c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2020 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 HL~7pO>6#>2 diff --git a/OsmAnd/res/drawable-hdpi/map_turn_right2.png b/OsmAnd/res/drawable-hdpi/map_turn_right2.png deleted file mode 100644 index d6430b5a2725decb54ca17602ee9f97bd1a69547..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1952 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 X+?NVgmY=_E|7S+a;-poPY36?cLQ&=a diff --git a/OsmAnd/res/drawable-hdpi/map_turn_right2_small.png b/OsmAnd/res/drawable-hdpi/map_turn_right2_small.png deleted file mode 100644 index 03f80cd255f32cb2e57c02d0369f325880037d96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1410 zcmbVMeM}o=7(cR#1Vx-96J*o#z*#b`_t9SAZmkIYkUEP{Dv&ITy^pu$gx=M=gBA#8 zgGKj2W?(KOVT=VdP9wu*A1qOWWMd0)Q-s8kO(e_AoXZwA;vzAccm;|klKtT&cklDQ z@9+0~Kewm6?3J|CXHp>uO7oODefnyRzbVQ3x5M?;jJ{-Pt{SaU4r)<W0Z_3Za{%^) z*%0snR%m*A9M~XeO{3_q(Q3S}F}xf$v2lzk7LMp_2(lH$A}n7AG?)V+QL-a*UyLBI zDA<u|%8Pp=4p1wWHY=dAxy;Wu*YUJ~6uku7VvMdJ3^W#wh3h4iiP@1wy^Jo$k1+&Z zglKhkWXY)-Z#nFc6#!EvE6NiD0T<9Ff+{qVR6b1N1cl)=M&Kw;Fa*w!IK2EIx-~@z zGCrq!*_OVuBej|qVK6KjjhdonldOa=f~IK<Coz&lbp)z5Ng5kNB{e6Z!3k7e5hI!? zOK@Bx%gGIz9nn2q3LzZvdRG)n>T;s=lwmP8f)OSh3y0%zEuvM;2mWzmRkZ4FiU7<9 zRJlRn^?C$z5@bDh4>uGC>fSJ~E23T$w%#f84PhW@9;Y4AZ%l$HFua8~0~Qddm9|*W zV4=l|(l~EL0c++tU?l{OqZ4{o;}_#Z0a@U-xUE*2AY4>2<#fAAH%{X?LE`3;1lJ>} z8Y}T2VO!K~FLTWg<uVQhu$rv+Ww}1l1?9D}Cabk_1a>$Us}38hMM;pOYF@ldOHn(4 zA~piSt;k_`G0%*+iVu9D*<28$^^URdB+7FZ7G*6Ihf<WKAXq36EP=DgGGF+=`NMRl zuz0ilt9cSfdPl~^l~K?)E5igNeS#EyRDQVLcM*b;`aRBKf9&d=?xC%Q;*5(k4uk8- zQ^vN6v$@^*ZJXN11H``3&DLvRVCJ#+JUvH~4~!$mg&XO3rp5SifB%u=vpd(`+@ICx zmU^S}t@o}6vKoI1g=Twtw@zB_F1+7a-ocUm@a?=8_i)*^_SDRYD__>8oaTHJ_m53Z z{@C`&?4wf=Y$q3bcRIZ#kn8*m{@hlEUI~uAU~D?{-E)H_rTN>cF8!R6F)*@sWcP{3 ziLq>ByXh0|Q>kh+>1^`cv%XDF2THo8@oB?@m)B<Z1vdV6VSP{1>Gdg;y5ZzzQ(NoA zp>too$v2GA_YR(WwRHzIvGK+m8w|hGrM)}ucV8aps`ztT^SY|-%B16#D?0UU_uY3& z=eC?N%zf>z9Q=U%@QKl5yV9D+Is-GvNBy@mhnQcx7{l&`6!#tGsX=Cb%W%ic_bq*g zhg!}bbktw%oIOC?Oun?wcIH;e@SX>S^VgvCKZc8h9P=-i{~Ag<T)%x??%<JcG%@?c yge}ia?5*hFG6piojQ<turjBNg?K(dUt${9751yPFc>YxUujp}=IgghF+WrO?kN24X diff --git a/OsmAnd/res/drawable-hdpi/map_turn_right_small.png b/OsmAnd/res/drawable-hdpi/map_turn_right_small.png deleted file mode 100644 index 53e123a4b0e95534a8e43f758de4a8267ff7f152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1429 zcmaJ>4NTl*7`|<6V<3ql5Fw1zl1+%$>(5<#*UEu#1v%sxJC4DkakO7Qpu)9huj~%C z`2)_d-?(H^(8RH*5S9&fF_Q!r=W@89$>Lu!or7S;mMxM^vt`rG8NUM#XF}Gb{oe2U z-sgRv_piHZYo19<$w{$TENR|K(T`Rx{wA+N-@WB8PNF5-EN?XH^ky?68PHOy=rY8- zL8%4$p`>)aGy#h&mKCq7fkv~@S1kZNXp`bPwrDVf&=yNkNi-yZHfUlpY*95getql< z98(oH-oW}OU&sSn)yggd)^*hcKvx^!6}+SvD~bxpKoFV|77ey*VIk_q=j;kdjvtda zHm72?x$${YjlNpUqZ<%oZ5#n;n#P>Gjb>eThP7f0MYANulQcz8v_Mk=LtzUKj=UL4 zv)~si7JQ+d8*equkU)}=NW>Pg+jOIaq<NkvDTZVi0%;K8PR*2}gci<ESP)?t7;4B= zbq$MKlw`fbbmNHWd<emi&$nn;3oj%JrHqV9A(FOHWH1<yYfd|C`r&^xmedXhIzy23 z!?50A0923W`~(=~?!k`YiinM{!BA0Aq;^pU9YLs>UeS%C8=Imk0&oC3lpsxTyu(2> zyBr+BQ-C9&WCt?jXhoL!gq@}EJjJl0qs&v`WJ+neoOM;uR2e6V9K+jPoP$YVy;|6m zGyoI6RpfgCTlPS#;4z?N>PA4<+Y?<-+p3#-xK$5f9?x9Wv4RFwQ}jr<FkYtls6}X~ zTcJ{6=s|2Q&w{!H2ZaNY-AMsLQCNxq5G6rkWjo<?^1vZ8tW$AN_yS(JFMsoWicU}* zp#&Yl1-NEL0)S}doRFYt$P&B@%7o;yI~{;x70T(vNkoy1x6Xa7lsH2D85b7^18o*Z z3u<Vd3^X`dANOMx%d#P_SQ?0)pMB?K)r!)Lipl!A;p7weS5?IKt<vMgJG1U2ab9qE zCbRw1OfhwQb#m|YqrF`Ew>8$->3|%FUAdE1{mAM4{r!{u`+kf3`gHnFv+k#yk(VnU zF5kE%FMr^%@q){aGJOM;oW%Z~^fh+ykSgWMvF+H!`U`$z&E@AWWp|CdId<aQjp^mH z-3LmZ+s%v!Q@49kMpr&LJT-CrgLZK8SjI)y%DUm1tDD;g_w-Gt1xgRU9gF=iwY=r{ z=Px+Kz=c;oJUYJq)S5r5u=F!dR}$FVdu&~9_S%shpWRIhCB4z5T|Lkg+XRP4a|{2t zx2@^NhQj?lgJ4)_yg6BP>lN=6&&c{Lxysz+skDx9Uk+T~x+RGy_un2k*wj7p+QiZI zSB~Jr5o+?%6FUY*Z!NP9olmvK&Sp*o+io7|I>R1nTK&+_)QmNjmnpAH`(*H=;GTVr z&wlq-YR+G4dsY>^d(B#X!%>`bO5?6|x6tQC-_w0E_RY>x+u0&xTc3yCy>YLc@jgma o#s9>6CG<ac_o17<`oEJYi?Kb=>iy;CnfQ;=TV5lMlr?q#3tlPtrvLx| diff --git a/OsmAnd/res/drawable-hdpi/map_turn_sharp_right.png b/OsmAnd/res/drawable-hdpi/map_turn_sharp_right.png deleted file mode 100644 index c2bb82a6cf994d3d5363eaf00acd648c3924e0d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1925 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 G+5Z64qx3ug diff --git a/OsmAnd/res/drawable-hdpi/map_turn_sharp_right_small.png b/OsmAnd/res/drawable-hdpi/map_turn_sharp_right_small.png deleted file mode 100644 index 4cb21fabd22e60db9d546bd7315205a1348e9fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1395 zcmaJ>e@q)y9IrrRVbH}%a5%`$1A!T?cdzZ;^)9WXwy;%Jew3OKmnrw-70%LLxjSgV zWkxbk$lStEXBIWaMHA;F@P`p0Vw{qp3DG5sSu`kfgrNgwmPwZB7GHtlV#qGJd*Aoo z_w)UJzQ3-ou4Ye8)}vV_lPSly*Bd}9lYF;4h`vWFUzkBlzERm|G^imXE@;r?mQ@jA zzKGBa15l7V+rEWPlPUd(5^OXY{rh-HjaY=FjwKO^A+*WltVqNJDGUuvgw0CSg<l{4 z62}zTh3}{Rlt1QyEy~_54K{Su1f{O9#L0NYlbAEXBLfj=2v{Q08rAuP3tzR%BRP3Y z;@GN+5q9Bgq#FHom`BwhMq3y{0svqvX92XsW~Iw9D+Oqh;z&Rd6yO2HTPbY)!I3vj z4)FnR)w(aVbKxz95#vcR9*<k%HjAn?lYrwmlCqLkD}gi!y)$YE2_mW&r7U=%E@?{4 zP}C@vv?z#byWzqS)3p#HF~5Jqa8zGU6iOMH5Mm^-P-G;MjB8a}Hv;fK8k=hC!Oj>Y z15j7nH3`)tRFndv+}+<%QW3G?Yc&NGMQHV^QhNkO4WHMAqZ^B?$h>5iY*2uJU^u&- z2s!Kw!BG-JK*1)7kO8tNaw$8T;T;SIIF|NSu~s(#l{9B}S9*XQcvv^(wpO}RSYK2( zgs22lz7^zq9qYL-miK5-FjOt5s;#LmsB2LTRc}#an8&kPb*yZ^5|!1szB^f_wWz&N zQ#znrrKu5YHP5`V2?v>x1RG09ge=n(AwiS`ffj89%W{%kw9>3>r|@;Wd{6$?`V^g@ zIASR}yhCC_RzZ@85W_+O07w&@1B!&;u(5WDqGgI@aS~A^ldW@4E2WN5e<sC^!9bgh z(SlJlPZ}DW{vP&ulj(sTpVu8s{Iq!Li|TYx&`Um>(UX_y9_Po}w|{0f5B;_{Uu^D{ z?(7_Ee~349txY>&J~&zbXL^r0tNZEFk)^+KitCPreS<%iEd71Xc5wOji<ZxCZm;>K ztzcTrdp|#Ca=vEYmVxw>vya%_`E%~M{)V}^%V~kZlfEC)9v^o0{X(4yXN#ZYg6XZ7 zwmnnM%;x20Uz@07!(;~VWd_}cU%kjIoLSk{1Tw(j)$1h}R;Xeyz0<MqalG_{>4&F| zl)QQ9?oehy#SP!$f$84kz1qxU=b!uPM6EdR#6tEVZsm^=Rpi6(rQI!`JauRAwOWxs zF#BC#`C>D82Or&4zgT$ot$zQtr3v%9dz{UMZ~t?(df0#bjq+Enluq5|bK~xxg<dE7 zQT6C@XVc8<9WU=1=4W%c47Tv_jdWVQHQGJV@X{1B;F_VvE;lTUjGR3`-|>CX6}`=J zx^Fy~dwR!YSrzE7KPvuT{1Cs@vwO0Pxo|UMhw1CB_TN7}_v@wPZ_rm+;~jdcsrz5E CH|v1_ diff --git a/OsmAnd/res/drawable-hdpi/map_turn_slight_right.png b/OsmAnd/res/drawable-hdpi/map_turn_slight_right.png deleted file mode 100644 index 9e1697651e8ba755b87e80bb63920b734b14a870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2046 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 diff --git a/OsmAnd/res/drawable-hdpi/map_turn_slight_right_small.png b/OsmAnd/res/drawable-hdpi/map_turn_slight_right_small.png deleted file mode 100644 index c560ff67d6334ea71c5034bf4a8736d260e8fe60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1438 zcmaJ>eM}Q)7%v$?0<uJzrm~rwM_drS-d%ei?P+1PE!b!g5S46Ua=m*C2eeo2uC%bt z`Tem;;@ILC86aW^&Sf&eKQ@=4n7P5Gun}c0qFI7$b7)yi3}$TETcFH8h?m^G@B6&Z z$M5+)&vQrf^Kw&?(voyKU5aayqY$o4^i52F-(${-QMjzooW<HU*{g+k1?X&|>;Z_& z$CrUZz>Brj{a}Mm_uK)gs8}m@Z{Y;lXW*kchOjRHt#!H$+2H^$R00k0fHKK%MI#q` zQA850=uX;AxC3@jE^Vq)z_z-)BB8EQu!v}O7P2ACK?gpd@krQL<yX0|6`k?R!F^PW zqsWYkR%u0NK^4365xcAagf=jkK$0ZFS_~v@HW}%4h>;*^oUq^|fe|D}5}c7h<{lJA zQ$#OU=*XFi1y5GAT+;#^j)y`aL&#*1l`@>PSS&bU#EnJ_YG7)uU*p4=UrmpBZ~#?M zq<|*LekAIV_sBubibABbDfj|z_q=1jI!6?w3=i`GoHP))&lk;WMqAYi!T&H8)K-gX z0{|}ssvJ}VSPyS{%ouX_>_AaPh=$v$NU$h;l|vSSKH%3}4l4?845B1*0wtIL4@iu$ zP!#4hQw(My1O@}VN$>!M6g?hG%+EshW`>~%h9q-Xqm3k;w1u)c?IcCoSsP(9I&Cpq zmtWO*zW`#fB^Z0omUyNuXIB8P$x4wdSH-#@zg*U2wOkG$cKb}#k&K;^Uz9`YnrNA3 zvvvSQssUn-BKwdTo;hg&3?d`&CYBH|QKSh>0FVTp_Lwl1wFs2QNV6hEpmX-(Q~b^L zDU`rG0x>w8Szx?IUJx)Z!vc&X0gYMAz=QE-6H5sMEfOq?;t(PpZJnoDDJFvb8Qsng z20YA<7VyJ)QsCg|4@{{#U0j#TVJiy%GSQTc$J_K*A2jDxf0^9BJ*j@<{;5z>bB3f< z9L)Q5b7$w7H{%M1jvOCe^;g^rX$J#K3qI~{ag8@z1G{eBx)6Ez-J_Scn!080?)8z@ z(Q663{`u+L<is3e-;<Q(@q5p1PH8&4{L_w;sT1lb+x26jBeiMICvS~>CA88X1{WnC zX{de!btjunT>9;1a0%A6y8Oka{rA^QpZh+kW^uhZ*{cLQGxo0ZPX2S~)$6Z!gvZVt z@!3{(pKgCRJkfosn0nl{?Dy4?>7N#V)6#4=4du2x*&g5cxw||gk~-`k>bSk@DplIw zaxw@1cA(C4C@>h88Pr$o_q{UQcl+$Q((#^}gI}zFE&tBHnZ4BCKc63J-}0!WXQXk* z<g$+{bFbX2Em_@_9yiew$%;6}ub+QuPeSnx=AOChMkB)Q$!fc>t~Bl5ow33CeB%CN za&5uD2M_+(y+hwSm6G{q%1Gxs@Ark*4m#;er`fSZcQ2>)O|?f#uk=lIM_TW48{abu zC9UrsE~>rw^<mE{$k&o%rSa+d%Tem)whj8XmqsNg26o5mb!|UnomwFteGvU)x}15A J&o-9s`wz0+45R=6 diff --git a/OsmAnd/res/drawable-hdpi/map_turn_uturn.png b/OsmAnd/res/drawable-hdpi/map_turn_uturn.png deleted file mode 100644 index 7731d4de0ff11e7a57cbbe8b17c377e63ca02e24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2375 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 P{j~|;263u<<9GiTDY?|Z diff --git a/OsmAnd/res/drawable-hdpi/map_turn_uturn_right.png b/OsmAnd/res/drawable-hdpi/map_turn_uturn_right.png deleted file mode 100644 index e592adb98049402cb5e1c48f3f58aa634c26e56b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2402 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 diff --git a/OsmAnd/res/drawable-hdpi/map_turn_uturn_right_small.png b/OsmAnd/res/drawable-hdpi/map_turn_uturn_right_small.png deleted file mode 100644 index c83264f13c65969c372fff6ca18110c1753fdaf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1611 zcmaJ>c~BEq7*8rH!+;lu6;anHHWfCzn`4s=Mj8{4aLEw`t+Z@*UtlH4rkjN%XjRZs zNOi1ru+-|vV5Mj+g|RYD9dvZ0EmWzkNAaLIb`)pCisN`zXg5Hte>m>U?tAZh-|zc= z-?cSanM=b$qC-R?QJ5*km?NyX{|%lXe77X6=@ph4d{RE2%UXFi$pMj`W-S0R*~uc1 z14!EYK_^%w5{=u;nDhDkjC3u<+GV6)N9M6R1++-CDAD62sS?0L7Er`Ebdr0=PDmhz z)=BbI8EA&n0E(HEat`E{XPT+<5{jTDiHo5{9<5-&4tNss*liA%)}xb**wqSqzZj7~ zBPx7}PBKa=KO+k=upEF?G90Eb41?5!3{z<oa#cJeM==$G5(tLED5k|wtsI5M9*N+M zqpjK;WAd0U;iQuk^So1wAa1u?=2pm9t_Z;hf<RC?BA3I02JG@Wc+vwqT=N1JjKD>4 zjFV?r2jsU%TG&!vClQ#AhG2JQWV|r!aE&EONEzZGod_mF5xd<V*NC=@&jJ6_c%`<> z>~#Vp2e{Z$juPr&ofiNLxqH1MzoNiKyNqLmqL4NtOO@JzgEtv<65&QhGqjdcQVKu< z48{qi61HlTI82}v4g*p_SpbgF77G!u^D4Xs$CW6Ksgl)lJ%%Nz2&F#BfGIJ9T94}G zN%{cR<Z$t%g8~8HjNp3=t9&h1Yv2IMvz(b_ZGkSxDrR}sRm?gegJGoVkTj2R(5&0_ zw!ciHQ5ylrlmR-KW9`sLp0&&?IM6snD%2<i)3geODIg?)R9O_TT1`+&i(I9qm8fJ4 zPrsDE(LNO<LLANj9j%7Kt#Xp0U@NW$FoppYOlW`wCN&DRl0sE9s#Z%7fg<8>otIiE zAQJl1zkM+n!r{ee0f#V8oG>^)AMg8GBzmL3WYn8IR|a++OC6_=sB*VQHDt%fkB<yW z(^unbNSlS)HyL_1;gYzdb+EGbO7YyD>aCuWIq9)cxTHGRWQ#BlM*q7h{L>c27nk>( z%{&$JWY^j5&Zm#$Ys>Q0dw)&1_@*kewkq<Q@0)UGUH_r^jN@Tp%$5rAx$&zmv&*hW zeRXoGCTQ>a@kd=jL-k8)>Tl#iOAo|)X=>Gw&wJ@Wwk?{D*zD_UiTSbmV&xIhl8!^I zySMwY#cQMYhYWOfeH7akQ)#ZKZ93gJ-<KdhTt88XmiM$#HTQFGM(vvsA1A#Xy(J}P zaB3TZENi=9JMeCNtn^l>GA`YA))tDqe{i)Wtg=61)==HHpR&`Px43~s!}K&R<cavc zs32?i&B3lc=Ew)<;}&SHG7Xx^P+2$U>F^M{uCMQYR1nsFr}@T)gMI5N)3&=el$K1n z6Lqa9_2IFD?77>2_YrE>yeGlZWN)9YZ9~iR-+SBVV1J7K_$@s3srTVkb#a`v<4|4X zVatj$zLi*<wV_As8JAZWerDr)Cx<^QoMdaozAOCl>Y=4Qy@{K4Zk+hm$IlYd6DTH( zh~kgyAMETjQ&ZLv!+AdBoo~CBFD$S`e6o1|@sK-Eqfb>abB-l#fAi6%4r$e_;qr#* zkGoIQT6c6vS45s(0B!~6p1vJ=&6INYm(2Bz)!Fk?SAT}oAD-4B#e<&qFQ1*)SaYOe z;<js_PwGFvHFfH~I%(HGVO8dtq2V3Uvf-Nr)9*I9?k*mPb@<AhT?=+(_ung--CW1? sw(o2yd3<qN^U$dazLl+6f8}iyixQuksK*Oivi!eyQ&Og}c}ZdAfBRuq!~g&Q diff --git a/OsmAnd/res/drawable-hdpi/map_turn_uturn_small.png b/OsmAnd/res/drawable-hdpi/map_turn_uturn_small.png deleted file mode 100644 index bb3725e373fb47147576aa8572dea3f8e11cc67d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1351 zcmbVMZA{!`9Pe%jgfNC^&>7Lkq7lq`eYy7TS~$6v-i<?!!Ewsz2S=}cj%%Rp(H8E& zXof5flubg^EX!gxHH+Jn1miyWK@{R^=0w3o{6Hoeaf#W88vQ_qJ>bv}WFKtOK5zfu z@Be%LFCA@dIk2bXo)QE>_JkYxs5L&Ady5OL?^Wc)32WGA2IFSCmNYYh4iTTEB_IeZ zLKloeK^o}&9M&Vq?tVEIH{+3JPSg~;kh8I8m9&LMkotyfS`fRT2@<eNRz2wT4?aYJ zEP2olCPGBg0hp2-2X)v!*b);5yG2$)8y*GqS<WI*pecZ?(xVz&)`M>Fa@IVzjiX@0 z#O(H<o1)^8RuIs12pGE)6G@T;F4j&mZU@Ee2NXdvIKkp1fe|D}5*$T<tp~Nd=~9x5 z@}VtX*2;sXOf${lcqWsvXB>7-@4`uzWpRSSDGIYJFk?V9g)F8T)p-UU8lo<zO<7Yx zj!{TxeWnMslx|)@Nk<~v#Hz6sC@W-mR!HNdoxl|(cdrd=!;HdzW$b8e#0Jt3k3vK1 z(?u&E$?81ViruXp<qRz~+(BKok|Ol*n%Jj6)eQ3<)H<<Cvcx56*6oIg1je{X3Zopf z3v-JSjR{T%OSmZqL%8TX&rWzh?P6I!MFazkpCp5f+Zkki4CM@wZi4WKTzPC*HB3Pj zVcxfF`QF5mp<80PfDQ#y(_@;}ldpo-lxAv1N=t)4U?c0GrbAXGEo0Q?(zJPN9_n&G zltQ|ufQ>kF@(vmZN0NZ7L|`P5q%lX5rZ9nlEGD{W=t?G?j9ZY<Exh!9<A+<K@LaL{ zr+D&PRz>Ef+pS<Nwwnp6RtM=;t7zu{iXgkX!n`k*T}-U4uQ$we+L}v;OUJm>yl>_! zU+L+dgT>28nYaFqk?Xcq9Ne_cUOAH}`)Tp9<HL6jWgq^m*_OR4hDEBRl39E-U0OOk zfAZTed?nts*9tzJzVXc4PoJ+#xsIoLcO{;y=^uLW%!MBUO40Y7Q*YfrvTtg(u(8Kh z`R8}@=GQzubJ<2ZUT-d#s2e`pg)&v<?U!!E(WY18w5Q|TuctGq7rv~x3ZA4rOC!DI z)#PsvghC-R_>On&=wW9ixOwcMXFsaqFP&fB`|AAI6O(}@-+r3-y|Uc!$|my2)WYGv z>&h>*f3xPr`&Nf8^7C4EEq1iAcf6u}eR}!s)|Hwc-+QT2Ub*jm`^;@#{jXYuoT%`F z>7v=oQ!BeiSEFxU0}DPdJ{CM=yLgS#?=5I5`(^x(Qz3h@@M9n7EP8x>@8a1vp8B~d vj2<d}_sYav)scnCxw)6yijHw3pCDiwkq@*j9WmN6xnEm2*uqcxJD>jtCydOj diff --git a/OsmAnd/res/drawable-hdpi/map_widget_compass_ruller_day.png b/OsmAnd/res/drawable-hdpi/map_widget_compass_ruller_day.png deleted file mode 100644 index e2b29ec08302d342dddfa48270751c96e59385b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32575 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 PJxu$mfqI3iUFiP-$WtpY diff --git a/OsmAnd/res/drawable-hdpi/map_widget_compass_ruller_location_day.png b/OsmAnd/res/drawable-hdpi/map_widget_compass_ruller_location_day.png deleted file mode 100644 index ac2ecee8721c61ef735906ce085006c275b7be9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5219 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 az!wloHM<J?%Z>kU^HocGi-ybo_x=ya`kwv( diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward.png b/OsmAnd/res/drawable-mdpi/map_turn_forward.png deleted file mode 100644 index bdf4c96ff439eda21c5723675b1ee37cd2d5cdb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1492 zcmbVMe@q*76z>362AP53U^qz5V+bnk_3mit-RM}?E29|&1R^!y!u9T3xIug6dZmR# zlM<6{EDDTelMJH9k!*=0sPjj3nG18Wi8?dXA(N?_Ize=@34(L#_X<U0$o}w>yYKtH z@B6&>zMuEr?JX<WzBcauIF(AZ)>g!n!?jF#V^_oPvxzs4!zER=I^+t`B?njusLZ_R z1c=Se)`4=s@-0p0LB2{A-7Hi(WQV<&=0vxaRcy3Dw-=&Ss{DeWm*pCOj5tA^;4z^$ z-gy^A1m1*J>FqkZ*8=K=qE-o1w3bwItqmN-qXk=#{2&b-xPi<fL3g9aM+Z%4*e?xb zMUA0I*hFqHp^Hg5>}7~WlmMdF8Z;b^<47K*#q~y#(B~k84%cHk3d4089Zusqn$RIj z4+^76yo)Yp3YTKRoe8a%WiO3kfj~eTAhn`Yhv5`OVLAdM2o1E*_*y(N8`OAw84(W* z@Ntshl?Bm*C>~j-=$B0>%yjVzZm-?G?AYU5A_`K51z9hKYjv30t=ubY?UT#FKWVIJ z?W=6@0<0YPM8CwrdblzoV94Fw11W|u8@f~yU{TmcM&$f%;E`>N356$GUf^jimm>iS zaE*b=&DFS!xdsiT;|v<WlAIG5aNg;pB7RoFTL^+8t(3V?M_O^*sy8xvGs7@?%QjMP zG@8i>*5>iatcL@U*aD2bgr)9^r7aR*Wl^dW#l}b%l+}x}=&KjKh{Y1FI+9%_cz7}3 zdq^qM;;k7V3C(~nltecY=9v~&$brC(6iE@B#%XjJG<ke3uAvAQ4<#d?%Q<n@NO0&9 zp8vo6VK6C7X_kLAPecVfQW2L&0dAIu33%WHNpMuIW_B<t)v8}@jJYy6KHY2Dai(lT z;l|_hAxom#pU|J(ZoLNz7bnaUeY0v~EM1hMzGIpC`oXsB%s79ddLqUwXFHyc4}4NS zdcuDA(_Zzxlb4=6Z#tRxC4aOcCpqcJ+=&-ep;!iqvW>*bX~UTCP5WkiDo`_eeRSGg zyuSNn!pPigk7JfR`o*oiQ|osA^}q$*`m%L~d1)-vH?)3o|Akv<Mx6XYp!tJyWNOM~ zD5>Z6sk?r^cDo99b;z|nX~A>kWYTT9cA<DrZ_#7fj}BfM%1@u)ynV~JJ@VLB7ekqs z4~#y%qX)mv25Rq%d1GG#{scI-5zjhx_0-dE?&_=~8iwC*UGv+xdt~b~-|d|K^B2=V z`dihz^SjN}83)siIX_!V`!WmOI}&WKR=c7*4-M*HZTj(aOOtSAb>-*9PIJxK{^*YA z1BV7*FNqpReLQs7d2E$G<!oWvLGQ;`Mhxh{_uUIOq6+*!>?&Kx`zY(P4;MCB97DUE zr5n0Bnjg6~Uj172Obz=-=X0+F(2C}G5`Fv3SW@9k*HisTH*-#B+)0j)O5C$G2JJ)= z6ei7xvTcKkgiuVF+BM<xb&4W(lfrdkQNn)!V^dA@Sw4EvL2c1Oa;++VIHXPWl0PZ` NS(~+l8Q50a_BS&<3)%nx diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_keep_right.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_keep_right.png deleted file mode 100644 index a2a0f3d7b801881338deef8d1cb69fbea0a90e31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1842 zcmbVNc~BE)6pvAg2BCvj6+ySbBOJ-@<{}$|5C~wDU<`qvsFP%~ArX>IlLdl`ZLr#U zA&M0lDPU{q=!l}As4$wMqJpSk6%Q1xC^9M_9gj-YZV+t$aQve?-|lz4-#dQqz1em0 zxEN2G4~;^hcuMC;6yz*-y(2#(zq#Ih<>WMph)N>jaXpc#v0@al4%cFU)TBwl6qrVr z_0@SyM4=4NFe;OXBw4Hw#Z4@YONM1PSx7X6A_}uxG-xVD09q`?Xbz?K)SRRPMqMaf z#gjoYOC)A6&RK57;+MxM(dDTqqN9h+21IrtslbF08o+K!GuwprQ2KygA-Q%PgLGg( zgh&mgzjrE0CI=#MD+cgbd?pIRFc5;UV4i@(<^=<62<Cwh0>Tgzf`u?7WJAE<Lnp0S zb$X#f5<O^(+=bE&1Yr?^U}k0}E0e>*ttlXkAP5MtK{lI7N-%9%W<q0Unr;3=8YGwv zwHhsi5jO)ajT$YUPK44)Pv3`NvdCl~6q{{>M3Iz%c8vvuSrBM4x#Aj-wh;>KUpGD~ zZBu4hFi?Tn@N_Fm=0op41SYxrv>}%u>5Xu{)kr2qlP1B@bQ5MKq>@lNdBf5fbwZSj zaxe`BGx-RY%hU_Fd?o^+d?u#hpjwO%>$F;ANYBUckeH9~U=BN)E#|;*6c0h71QA?` z7>aToK%610)NCU(W)vH;Z6s|EV&P9>g^^ZFL*P~=j;9S(f!u%-xXplDfXK*!tOE>{ z(X7KWZ2_({y^mUgS&bQ(F4~HlfB~L`#*g?Q&~o^&ejs2ShshIgwM;FaAHvk@LPEHl z5CIuJN*~1Q{x5$Z=@jTHmj4vb&=FaYuH}bTAU7YH2{V%&WF=cgwmG?z>_CN7B39aO zJ}J7jLAJp6Z0nSbV%9H=n7Z@K8Eboi>QP_>V{^TK*0?MHoYpWk{Cwpfqi{xtc=VO# zjiaT@XvdlwJFX!o!dCbpR}Nkiru3Lz+<DwzeyQyRlB%EGS$*+%5pS$AaQqo=$%Met zaN6#0nvP*f$^i`D(jU2Ht8*W}S@m^EZ5+DyWGUL6bNKcBo$AWQA5Z($R48iRZJl{z z#F1HH@?zE9q{|-bPn~${TeW)XzHpn@wJkFjQoJgtO@*|jIRWpEzV*H^ykw!{xvdU3 z5co<ERIzIJhS_dtaMMcnc}|Z+wdtbpTz*v!XP@&Xk(2DnuO8O6N98y%YTJ~TBMI*H zHnd{Qw(Op|C9-q*!R{-_)!6W`9nHG@;p*8F`wmk-kI9=E@Qwe8M73De{_6WCudYDf z-g4^vdSHGRKklzY2b&^NK6{$oFsGJA^eY^l%G$|ina7*LN;;5P&!-8x_qo@sd{h^z zHb%7n<lZgpTk1G7;#M&ekM3Mtx^c%@r>fUS6o1dFN~zx?^n-O}w9K*s#~JmO2_as- zed(NCdL%Wq-kx%_afMs`nD{Nv5{^xL$Q|vb0NnJ@kzrM_j)&udTTjYMk<{SUc5+&> z{qb}fSJghD(bSEU+eM2TWbQASlRd+p+d5Y4mn^H4uL1LJWf;xM2T1v!EfQ+s$ZHOd zyF2fMLtkDgxVk_0P;DXP`9yv%w=#{_M9oJZC8(UM*Jk*z6CFX$gz?2idrx0Te&gHq zgfWl$Ah<p1_L;y@!0npKW_siL@EhK%e#jGuFGlnj%L?@3(xTF-vGU^J8%Oy4+=2|p z)7M|b&Mj`-Hlvb?y>2ea6CnPKucwZY_!+K<HX-G8@qG*YSD$jf{A)o<>u>qj6Gg`4 zhOX&5YF9G8bH*TTQOEC1w<NCt<G0^`TNs<$vd9tR*O5)_cOLf6cE%?;@_W1e44k$! zIe2OAf*{7SmZOCgP4xMP+7p(xNPl*2+Wz?VUF)J%*SWN`>cwFPp2V<gCkR?KzsoM! zGHCAJh1G|B%q?Y|83$t{`xsEmx`5oeNggh$$-y2s$3cz(<`qDs;~i(%yL==lj~b9i goka89_4gPxrEB6HYUb9f2G?Iq8WktmAED0q2fDVx9RL6T diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_keep_right_small.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_keep_right_small.png deleted file mode 100644 index 8a339f920cce64d9e3051e79ddafe548ceeb43f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1360 zcmbVMZ%i9y7(WW*5Gd3vnH!3^94;AV*ZbEiy^{)sQfangDOH*Ulii=Ua6<3u^`M2A z$n1m~9r9r!i80$kmMwAqAsQo@iJ3N;j+nsW2gA(F$f6J>&O{9#82GkO^aI%kFS&c) z_j#Y+^ZcHF_j<778Ebh>If5Wof4esX*C%psSt<P9L8hnSa>#6pm|c3*Oo|3TJc=#> z%pVhbK?sP-@Jru<Mg%DyQo|855;!i%ddx27bnK~E9HJ4Vu_+Z7<$hpd66jSmH~#z8 zFL6v&+;}$^paSt$(5JSK7@%vUBP@^f%e;a&J&iS{1ZW@zOc6`P2DF5ba^rcs0^H}s zB#z}(%zih%O)3%yVy(IXFwX8IWSXY22Hs9{E|%erVhlxdB*l|7MNqUrQvyR_I}Z-M z8A?<Ld3`&+;K_~mnPyxd$z(EVPqKF1=p|{M=Shko8HRuwL}FMo#T20>>IxRTAR!xS z+*EZ9%UKj9eb98{km+^^v3MY`YgkL{BnqaCOo?%lwo_y*mWwN|oiIb-UmAOAC&I&V zK!!j<A2eiGk7!*140HEjM>$2vMtIgxVNt{ZuPzV9fM)u=ZXDj&6;%;rhs**I(1eqB zIEbjr;UsuUb`n5jWeGTGMUwb}oxSjs$H{Xv>+~@mmZsY{o^NxtIJ_RJEhnJZ0@kl3 zOi`0T!M6&1?_jwHVue-%h^B6Yb$y`F1;IYu)DwMr9BXaOR~<Xjt!j#%Ow{Mfv>mk< z80rvEe1;yw@_822Jvg`|)=5Y60V^!Qxf~K9Ih_qeRB32%unjI4zKrkSmH(SR5|Scw z&GMh-DTrW4=C-?|01vyv1T;871{{?~>)*eQAVqP%*Aq@HNgG>RO<$k19Is4QRto6s z!ji@3^Yw)8H*cVsW1U`)nwdI?28)+}YTnqNc^gfqpHE*ITfSJlhIL_^<99LJt;wIO zzAFA3=S#<uRcF&be(Wk8dvA3O3l2Rse%*8F+KVeI=i3`6PTiq=C!VW~+&K5{!fzAR zJr{cY-xXyqjk@-~(R09YBeHU+<;X?r)Sq0-uguYA%bBg3saxoir@vTSufAN<QgX9g zm@HZLIc96aAIxV;HkuzRvRdyNzo54Hx~u5}RX6u7uQtD2v2^=dx9zhFXeC#heJIP0 zu9FWRX3F#;$$5e=Q|>*E*IJA?Y5PPvCVX!!ge?>6rP+5*eO{5_W~a`E&B>~%PYrA4 z{^<1h58-O|t(tu@V`J<7_{cKL*<Q&;>lf`a*lGLBYZK_<q0XK;ONB4ke$O+vb$)K` z5j(m#GxN=OcJs}7dgg`IPV`I!r6;N)Rt_yHIf&Gk{B?!7y}p_I$NAejydSoleDxnX C&dsm@ diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_right_turn.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_right_turn.png deleted file mode 100644 index baeeca927126b85f7870b5f415ace25ce98a56cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1625 zcmbVMdr%W+5RVD17ORNp*g9y>ld3J|E_Zp5yAm<xfFPn6qu|)8m%B@HmE48o@PbGy z>J)+2v19FE)u8cFq>9f$#8>MG;$sS><1kVbWOS@rs^SA%#P)*3_7A3i^k(k9{r216 z?tc5*y`uEl$-~0OhRbBKVJT+9BCYAccgX9~cYS2nerb7INX!)G@peHZJ&epq^EL)Z zagh$j!jN=s_5~(hCQ~eDt(ih*+AN&nT@V?xfqX8vgqF$T6MSxxTE+-~jd8G?0la_W z3<$8a0nE^*snXmg#>tvjc$j%BW?QKh%P5Qn6Q%+2K3sC(VgwTKxw1Gf?lXXWesM_- zs$mf5GZB^<z?Vs7rlkWW-opS|NT;L_1OehO2+``*sCFuVst_%#!eB(DR3SK`!ci5_ z|A1074{gUSL{fh&X=ebPg5btsSQJG_R71SS0V5cO!73C+QKe*|^yYE`=~Hsvi6IXJ z<E1>TTVQz(2zn%Ke2!oMrA%L5!R1a%d*zt(_7_Sj8SEq7FaoJymn(R$K5MUFVg5;D zKx?lx*Ui8d#>?k;D2WgI#1L4j-G2uP8cNyVb3Cj>3YkUlRE~?`gcQO6N+%G_(m17| z)C|cWN*$)rDD8TUPKl`~osuEdl#S6Lw9STv{0xLQp*mF@rZXm~)QJd^sMQl%BS8>a z(+ss%uQ#eg*c8qykQ~K?VzW~0ek}H%Slr}cNP+iQc|I%D1?f&+;Jr@X4VX-QtOHXr zSdQjJ?|VU-Uf!BuJnV9YPV(?Bps&t2J3tO7qQ}%2N-1r6yG|KLYY-)d+G$DB(;CW# zkb0B?`|<Sutsg8U1qYkuU(FLzNgWv!UyXvac{NN7Cryw?8kIx&3PdK8=cW)wtFPs^ ztqrN8$mqg+SM25OsfDY{hwnFzTWkKceMh;eaW`aahF%N;GmAP`Plm?@4z3v!0nYts z4G@?&^Tvhg6(xBOM(&tmPFVZo(b>EWWX|=?+qQ~zw-phA6T|QKJlmGr_Q&trS>2X# zG5Pr1Rnx=35d~odLkK|rhCFiJ^stdZ#gLewBGNoUQh*x(NkIVYrkPGfMe{w^J3AMA zcNLDPRUC>LU(&qrbNElqqRp{xB6{?g+SrH2$JyaM4ntS(d}Q*TS~jfi+n+idNv%;O zw#)OU$i?~&=s-?Ua>thHw)KVR(C2p_`ZwAvD<hjN2i~9XCCRnidH3f2>J8^IHoxXK zPiX9#6CZUxKkS=Ee^XrDv(rxwRzuvn)If4{R5CjDV#Ok-zxd1tor;pof~PfF=#$<1 z4(?hxM!e__&uG1P{7`a7VCASQ0sq;myNiooY%T0Iovtvp4L!E*RMn{{hy1NeWr0q` zoTBc6`Xk*<$BK_e#K+jZHP<)UBKO{!$|b&8lR)3lH92behN6}|Ka^KTUsde6X8z?~ zYgF48Lb<#wZ<g@$ljk+)$xV3^e;nPrpmNc^T<e9-(vlZ$dG@2qC8gEkh`{$J#z&3s zD!upB`RuPZRvjq@+@QUwszGd|D$7KyE~(|SkA;&HxLtYF;!khjld{<>RmZyQt#_`~ z(?<s_Xm2PDk1yN4<#2EJw4&IBJ>hegwm!YJ>h_0&TWv?%rwvB_+SxuMYtp%4^*6E8 zy^oJS@b5ZYHu=7PsWa9pF*q=xzPblxm-qHlk1?sM2FcF#WGyK+T@r&o`;^4lMCFX7 GtN#W{xMHaQ diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_right_turn_small.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_right_turn_small.png deleted file mode 100644 index fb3fdbefa4aacd3f14fef4ec7b2099558bc636b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232 zcmbVMO>Em#9CsSA?yDuIssv3n?j*K?KVzr1+t8$O(nVUjF3o5s4y!+28q@lt_Dhpi zNGlD{pd!J6!z84MeZhnPapQnQh1j7SkS0+iwA;#M2M|Oc&?LloPLsl++5t=U`@i@8 zzu*7cZ%$24^c;;I#W1WVcSb3o^<?lKK7_vau`5^5@)XR>!fB@jtEvaEl;LOq&spj` zC;-)1S^5TyVpw?DEY8B&{8?FdEJ_V@sG8*>G=`0i)m&9y01(%}ylE$hU%uEPaMMT- zGeVxpyJ=81&#Zc2dUdj>uP*44L5#hCkJe;FU;(J&HEYrK<ywMh@ybXJj%fmKslbH< zvFFrmehN=J9>4`EPU<Yn;=>Zf3Sx{Cp2s<c6=+7HS%zd-nPp^-!P^gkta(OBE-2Zy zEwoDzWe8oFrmNK|RgF=OH&3&YB+(2<a~z2@NPoqKYK^r0!4880eBCo$XgW3?FshnU zfe8Y6x)*}w=JWf+w%<+^N*P^KU7DpB+OmSUTG~D=fPdXMP}?uAxPUGI->G;ysz+(C z14g-fyrDo5c_W|mOjHzgQE~K&1#Fm85(K)T4AYQxUXKA4uw-1~d9oz(aZ+ORI0@94 zu7NmfXqwdFIS8NT;>@rV&t#cchGjE?s0b-VQH1n(Oc2FXtb@(jK2&WTbZnc*b{nfa z7AvPcphCwhI?iIJ3#Q5rbo{d8;^}m&>iDS{(>9!{e>y1BUepTk%w=F?J;%aZd6vxs zeBfA7ib<SKYGNr)4jVj6N?gf6l4$U{#;PKx6K%ZlfAdEpr|6(r{?k02Bh-<BxIYSL zvp-D0Mib<rQF-Ipn@7-?{hCu!#o9gXuSbu@zMktkd%S-9ExEjty3rf0+`V1Tp5S** z+`&Hj`Se#O*Pc$k5^a2PXtRE`{&9GBD>-_kvC@4nHS&J%`u&aMPtrT)gZ}8H-p1#l zW&!WJ1rD2`rGdz$@a{nQ+WN7ruHF8ZM;bki50l?*U*?+8zM)L_Hv7`6KfFHf|9$?s z*FGpjhCVyBdHuzA&2V#oKW2xPB9Y&odH7}ThTb<la{kX77qKDiiS2Ly*m3Vx_|0|q z=G*hX5A|QZE;XLqs8e0di{lr%2X7^2ve_&Q_fNbx(28PiIr8I!weP3=NOCQNg|1Ez TON$Si!9OOKnN&U<pIiS2$4rvk diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_slight_right_turn.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_slight_right_turn.png deleted file mode 100644 index 452ecefdec51a43ce13818654ae34839739aa2c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1701 zcmbVNYfuwc6y63@Kq*+OBdD-lg@T%FcJm+`2^bO}QG*abqf~LT*}w|PhRte%)e#j$ zs{&(n)V8Sjz!4t^S|5l7r0TRXq7~FyEBFAWR3%ntWa@)%5Nv<g{^-u`z31L@zVkk_ z>k|{=eSHFb008jSYSemePjr7?L%FqR<R3@4Er5+Ru*tNUb>IvMC{47H1hp1CgVd9_ zDL3Z_G7<nhmQpDO)}WguCuoZRcgqNz78{2KfXHa44JWcl7BrF>lvM%soUMaE%A|ni zN_0Y<O+{u>nq>@`yeuJwSe8X#CMY@zjC9I51s0OUL8m3#YL`0|P`_R|N4u|K2<#VO zvlP%<rwqD8P(?E&C=p2c1cD%71SUWvG7&173Zg<p0t+!15%PtI91+S<Avo|roHfQ| zmh07V1Gc!60?K4rn;eE64u`-Y63|Qrj9?fB3sD$F`J4pbo@-@sC*NwHIH*BQ+6jiT zu@r3u-5PNty@XXjoTqO?u-J6EcZ#j{fkbgBgPphyMg&6GVsXdSFKuV_<lk<*SK6ME zYa?MjX{VPk1XmC9#6d8ZyZ<)i7UaB<&t@pDD0sG-CYD%8E2~v2AdVw2Q6@PdCPXAo zB77+(7W2(Av6PPq2`Qh%MTC)*A||5|8`SeYyb6^HBd`cGPAG~+kXVUKEm5k~YKbaF zB$3IKqCu?IYG-jPK@QrcINJkQ<Ug@;6+_}I&7{zD_FxwzX3{Ke&!lajO4VO=Fl;Vm zHPH@xxVubmqgIm)wUji)F|-Bj&$FC*j}Is!!$cTL@QpIFlpkRdBYX@sn>b2l5)(!Q zm!SkSfH(c${K1@4u)A6Q(L94!Tt~XeccZ`^-VGCJ<tB*XMrBb|SQ-HEE@;)t6zA<n z-^|veD92w~vA<+OK2N8CYV)s#ggxKA&7Vh4F7+v!=^uNoETOyV?2v^gyqdi~iWvqg z6GK~qW@yS3v3+|RgF;UA_;of^*U+8kO0VsB`m&&hGH0~CtZkz^BaRpADq0s0PyMWL zT^`_F!oARR-lXZgeO_)F2zS$yrhoBoEOyT%tv-EqbVHi0wR&Z}!?D~k0yg+W?vHlm z6sD(sP+7D+xp%{Zr)`&_hAk}Y!va4a_g(O``ctlbd#iTUXWeaHC3!aQ-Y4xDuI(2t zZ$9&_-<#CtDHqYWC$7L(*Y0mm=Fv9~jK)37Yk<1^VkvfI+Ue-hG`|?nok`DHrwn)H z-#F4#pk4Rp!_XG*=Ek({i<aK1qPZi0kgiYL+r~7k@2e=>?0rn)Vz(}6NOra~-1>6U zm?DF|cWNz#b?djaH-^^6Y^qoGV#}M70@&+p{3xh?gA2X0(7)(t!u-7SuZzdd@tLWZ z6JD};ii_+mYdD_+`BjzxJJ+u4^n4LBy5-<d@oT!v_jDo<lr)W(Y-<aAR1mV_a=`HT ztiwQX$HtljU9P?_0ILX`jCK?NHqEcQy=!;Gb;NH<cv77<FRaGg`{6O)yTbez;HAa2 zDbKKZTWW|Q&PM;c*;km(@vj2j_!K{^Skry<X4iwmOC|Sy-=iuzymmrRM-MRe$DA9f z9!^HToUCjwI63MJakXpbjK=bb2W=OfU!AXhU}$9*917p~!gqINc%=1eMon1cA-_A< zy|#?5j@bK4jr>aW$+6#myh;)1+=HbHZp7!U85*zO;Cai?C3ze?|4yC9C~<w1?&Y{$ zZr%a$;}BlcoNeXjX660-)9b|NrNHsla;nmQk^OdP{W^7?rzX$SS+do&t0`cWo7RkM ekNT|+@BosY-gg{dAAG|7<Iu(?sE@`hTKyN&27jOc diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_slight_right_turn_small.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_slight_right_turn_small.png deleted file mode 100644 index dfc000e52d810c4092b7967912acb11e31ebbe93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1296 zcmbVMTWs4@7<L-9fzgz%TqMdmJQrzP=DVHRrdgWA$(C&iT^6Yk4=~3*Y1}q;u-zuj z9%xo^>8M6tCRL>p8)MUu5E4~2kPzab)mGlhm=N&7HZE^tf~O))EhlMGc&PS(CHws6 zobUVZzh?#$hrGMGcOeMkjUASgaDBG+KGX)kw~@IyxIE=V(#{Dp>l76WAVJN{05q0Y zhCvc2+T`osfPMsVPw1(%la3#gR5MQ~H4IV87a$u!`U9ncqK*Ow&46Lu@MHJB{2D`b z&5sT7aVlO2gPeZ2Y=INyL`p4>s-lJk4x;@f2`b0~M?p*ZF~gQheypxnf^zMc#Lzm# z8TDgZPNn06XxOv>$`d|ZrD+=N6A79ZScX4<G8D~|lt|JPPSFxgNeqQH9t>Kuw5*hr zqYYbd=f`r6Q;<lqSS%7nmN2bhk`_ggq!^N6aEQR|NyAY}xMBA;HORnLExq9Arh(Qp zDj9R!@ng`_tq}5sczj#2VK)*5Q%07Q0!b4Tna|has-tZu3I26sN3@-qEC4bIY;)XF zVLh_FO)|{ggALVy&>QJxONT{K#$;0+&jZ7W$$kvp5Sp$@DyOnQ0W|ItIS$VXoDUZ% z)rSLxRWraxYnhDL)Uy*m%*cF*rJ_-ajnH(27i2yt%Q7DhvAiGz*(Nt;*p6bTplMr& zwj12Y1G!Sz0*Yf=DbpNlcEMoIbWA&E7SM3GUUl@jA>Gi-qWyfWOj}XQz|tpx7PZVg zTF<kj@8APN3nD8rDxMLtKD<xkXk28n8k7W$Q!}(8Fe=vIYyUTYBy@_bHOqgRr+EZB zvL<ei0^Dp56ENTeS#VUm-#>N>L0nW!4yH;!W$tfo29{5@9BZF$pOtbqgBLrx$Jee* zM|-%NJu9J)U9+>Z>mPmY`mA;Lwf>f?Qu~!VXv?i<Iv?q}@CUchI`Zi8(+?vAda!Nr zEo7qd{vp*<xsmJYd}H~SIeXO=KI)0N|9lk-?O)j2@mI^8K3VvkIMDOmjo|Kq`%l07 z+iO$nPt2!@@++6GPA^o}_dj|46C@Ku6Tz-i-j#(Vr%H7O!uBeOCL+mY_sYEsmUnet zzkQz1opqfHew+Sqsr4N*=pSG`KdLjAUq~Jq9C<0{nODzFkDRMm)jeFf+VktcncgbR zkDLlDt$l&4c-j{KR^GezGqrYiAI@!TR3@sAcW>^C+<o!L+v=2;bKJuDOZ@Sf`MvQU kK5%!3E`HTfc26O0WRG(F%*Nu-o3(#bERv8v4V^sw5B=P(Z2$lO diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_small.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_small.png deleted file mode 100644 index d70eace6b7f045f77a80578bd008709039c96eb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1194 zcmbVMO^Do798X=Cv1LcChf3=QkL*@k+)TbE(<E%Vot@0M!Ol8P2fFmM`FOLF-AP_d z-gdH!)Q>5}7F=5@vf#mmQjk(b4}wL-LR*Sn+Jjy^SwR^D(H45EtuM1PtB0ir1Ihcp z_kO?s_dh4A(=TPV?b=3BRK}RnYh)cw-bYj9dy86KCCg4+n!$%q1Gmi(QUwQD5E!00 z2W!xDmR|b~j#JdoQMW#WXDSC(8+lnX!DM4EAZ&^npNIp~UVs=_aL)BL`p>VvrGe{c z^kJ#ORe~aHx>L&`JhVJrx0e@e#i1wmgYj4;3OtBS5PK~@Qe%zo=~aoG9J4g&LGXe` zuRAqUse&R3A&|0p#^!k*>{GJ5B#VMH1_X|mSWaPij^TKf=Tw0M{f8#jLZ_kD^m5-8 z*=ckW<3MHEcDtQzi&+%TvAm)vEGMvnzz_rzE&14t89y2sXwYF~hi-sf<by<`X`w}| z(ZtjB5WJvL*--39{X~(Jv9TGje3oN9FNv#%j&KeB>&B+&sJ;|Hwgw}#7}}&BjgbMF z<nG~y5+LzLeI;~BQOuT(>_rdy*w8ha++-csQSF>9LKE^#UdiQ{hMdbY3TNjTXo|K4 z^SonO%0SO%{GuQzVo52LIkCj^B}vw$g0AaQaZ;3IxgZX>h96<mx8cCHOKkVK`a`*D zF@z>YVI85?pbM%^gi+K)0Vo!GRR?<xyS{_k(cYv?>rv}4bdN%(93l_&@~pa>_#p7I zA}WH-SaKuJ>~nHFqX-R$NV1c&E#8y`o9^?S|C>LSIK?K-@}K4z9FdMp#EnrPn~h<D zKAE79jLMI1?0KDx+4qKCsK-B9_Z~c$xH9|5!QsyEu$un-^o6(1oZ0^2Uq`_G%+>AP zCr4k{dOB6(c07?0Qm01t=0BQDpQLUtjHbUiek!xt`2Z-X6HjH{?|l84oI0U({{YW{ zWA9uqJia#H{cX*NpBcJxw)-o15!`?Ic;~?U#qO;&Q76b7XXp1TyQQ(eTSLDrkKMUj zy_CLLr9b(3_ZOqrYPEAuU!F1y?Z~ASwfRHg++({IZ+_e<Kb!k~?bY<VYV*tYj?KCw h;!1g^w&lQ^TPW(r%6a?wmX`cIjMB9J>E!I&{{W83gXI7K diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_turn_sharp.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_turn_sharp.png deleted file mode 100644 index 1f11c2004f91c2ca9bf4fd7990644360631d128c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1579 zcmbVMeQXnD7{8Pb#sssC;ld#7yn&X$_3rw8mlf9by0y-3wQMpp%w6xU?K#@(?ryY< zC@>Q&$d^J0Eb<K<M%W-raAt!c8HospKv04MlS&+B5av)ID#W{PMgJiD;U#zP`~KeN z_k2IM)>~CEIj1NG0D#GE7wMB%ukvP(m%khHMvlnKG|5>fE#w1Ij1pMD#_)a?bcd-R z>tiWqdDB_86adC8<7(=pI?w9_&4;y=BBPCmqcR%+N*BbV6y3;5pq~wL5i4}Brw;-- z#tJPmdQeZ)!G<_ji@+{ysj8t{8flz?7R(1r<Akgr%t{m(4=;^~MBECc^%C-4fe{Ey zi%5-DXw<1Xj~8_C0t*_oCYZ)B3^e0f%xKZ;jPpPpiWw0UM=%sdF#<yg9SV*;kZet0 z0)&q&AG0N&tWZdjq6C7(Vliz@ujPdxg5fxhpgKgSgJlU=Tpp3AI2;j6G8#x$qy;W2 zaeM?+G*W)PS+YX1r=uZ+qaM#w#Sw8VQF6+VI2A=OEsBK0N?d7aQS!0>y75eDv1WOc zMSQHtHw&~}k3dO=Ea&d|h7>{B8=_j^<f2eZNuF*Fvk}QnS|RyH%Ww=q8)!XCu^4Q^ z4F))1F_>T+rA;tP>1jV}!Wh3F&**s;AGO(xq)tbc>uh=qa~g5nX|Wqf8|qX5RG;Cx zBcen_Xf|V;lWmW29na+w4uPd4UZ~;urI{}9hIok=Lwpo;IMP)IHH)|i!^gxqN|{EZ zCRu@7#xmss9|qHTCb(z#VDalsSRfrRqlb+agCF*rOlCO1n9T;g*&>HeLt}jA|K<;o zokEmm`A_p?Ah{!z?bA_^4^M}QjmQ%u$fI&Mm}&q3Ri&G>)x@vg`Lw!mifzW4B^$Qd zkIrnFc-N`X_}1089LjFVdkjE-K(}qfsR_CLA0!g(t>!Ew^_g>T0dHThYH((oWA?fU zw)L%#Vt>7O$L@M%%Z&?%-GSYOyDD{4)&zrt=B`<5Q<nK<>juG`+(elg+6?Bd&L%+{ zsLD%}waP&5YPABWCMtkBUjedbDL|e}ArSe_kN3V@pXl5NAMZbS>x54;<NoaXP4*pA zR|G;Yeea}e3V$GOVg-*5Z0g<0r#5ac-?OBlan-2;ePw6CaMWiw(_xvu@6^g^S;^k1 z?P5HB_0q#GOHtdYZeZn^u1P~bA3G2Z{$x}K-YLGf_|L!d+H<e<%&$Lg2|eKY!ppqb zQs<^~<F41wh0vleil@K3aA-wYQe!RbJL9S7sZMo=dejfr$5dHQG~E-{>j#p_Jp<pC zMDs76ezpG`>FQ|QviAaf%<^l+m$sp|+VrWNgT^b1z4kfKjo5e1zg_C;|GYMDdr~_y zv3r-g?FHe$YpN^r5|gX*ix<7o&?crHZ&s~rE-d&l?syNnF*4je6x}8Y301Iv=+;+v zj^fChJ6G(VIN<7eAb!}N?7rRPD*oie;6tzJa>u~Kc^8?gfg`6U^@2B<(xzJ*@CxMY z)vB-c!<>8Ma_flZcSu(|GT3>o{&3c;;c}s92Xd`%*LlO+Clepm9y)z6nN$0yuYFDH zldidy+gCfrr)xA?5@>S)-gCeDm-A!QEBWRmFb?>rcN?RQ?tfqTeY>4iWQV<>^&cC; BImZA1 diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_turn_sharp_small.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_turn_sharp_small.png deleted file mode 100644 index ed6c1c4cbb644c5f9964fca5bffdc530f9a0f0f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1236 zcmbVMZD<>196uYk%+bcp4{ACr&#rOK;l1T9m)y}?ljf2&u+)%cEXdH_%ai74?`3z_ zCG9}Awy+9gQy91x9NQG;3kVaW>X1<sCHO%H`{XApIAx%7BKoB;pG%YKhq4bI+&$0p zfBwJU|NUMojqU5(+P@XUu)e~mTt;gwc(-gu-xciKIkZImT-85d*ZhX!LM)@(Dg*^n znSf=e=rc!Ja0tUfM~zC=uNL=<nr)IwphGrI2ca=+Xt?Pp+9dRW3MULp!tdR<i33BI z@I#3rU39XrZj8>l@WAX?MVp<}1RWpV3x=8^A~2z^fTlTRd16z-+q@#$2Vx2bZ54k~ z!q=Rt7E2&&yAUKup3oSE0ZD;m5-B#Gcmc#|CPC2x#n1%Jhzu>pY0!CaWX;uUVp-02 zY@w5c*L~j+DXP(EkPVi!-3f{j1c9RCR6I@~4Z@qTe5FZP-e8wOhMwjcj&Il&2pARB zp7tdidAb&Y=@g6W#Fp1d6iOM@R2+&SY05N%xZ2vDUxxp>v7xqCnQ<UhhMqm`YN#Hy z!7do(?%{?4MdXe6qHCa{C{wbnO`Fj23$lcx8&WrPQR6fgDv%*~f#Zl;isK1^)_4Lc ztfoSq(N$IG@@#~sGns@OXPJCF!!k@RAqctD2q$OgTp*y?F1BEKzG7*xYuiA!J6QUm zSTXBD#kbvxZBKQ(pj5Yg+pF6S$Y$GB2fGg$mTot^=Yuk>MJ+?uI12T=Ynz~*XVKWe zhm^|lOsyTT&Ju|frxGg9CyAP#Omb{8g~HeH4qpGi`J<3iRM0H{X`ZeKb!4zz9|d$+ zA0}v_33Ab>yv1MGiN@^Df}E)|zgJfuJQ)6Byk~#!eD5i-emnDaq<{LmcjxoZaCa}S z{026cjx9dX`{;6dHL`dQJJSE@rG<<8Hif0|`I8H0Lf1D9+?WX6cV7~J8Gds0sl}gr zuE#EXz9+pJe*df2FGc27{!Sn6{c@^w?76`f5#17A{{0|`gns;XRK0nkdU_xtj=eLO z`Q*$%r01uPV&K*M!hCw?uJmMh8GC%&5_Uh?b9&FUH|NJMFC0e~tvnTe@9MMq;nW*1 zM{xecD|6?+9y$5hAJX=_dzYU+b@s1cqtWQCzVX-+x#R4|(l_ZPF2AE5yVkn($Ol*M cfa6#QBX0ljSm{pdVDO(Q<i_L=N5<#=0WYwX@&Et; diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_uturn_right.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_uturn_right.png deleted file mode 100644 index c5d5f24f36690fa33c78eab7a1485c7ade004ee9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1809 zcmbVNYfuwc6b@Ao!AB8%-~+b-iZbM}2?<G>n8qYPP>@0xPz$)(ED%C=x5;8cFp46e z;NVzkZ4m)M1a*{$)zT`jTD5?Pwphgnh%gnz5$d~&(hY*`59^Qa+}(Tbz32PRx#uyv zJv1a>y2E@23WYLV5hx2I=TPfwZ%2M}ogN+~Cs#rqMTBE<gb~ss6p0#BA%H>$#Uo(| zq)z#w84*$_lh$jLQAAYmN&$@N=#W*1Zqnf-nnDqZO*jN=5du&l@fuV_9Xi!O1vF|A zHIfs|492BMf+o<cN5ah^O4zK0`D&_o86Y$XNCF)~K!8b?gc<}U5p|4LK+4u_1{D}n zA+#du8>gazLjftKM*t3;OM^iW1pN4Pki%oMI6eT2333=rJ_BUZn4kb;3Rp~F{GpQ8 z^y)Z4n9P6N7P%5p69@tqFc?Ook#1zuF?~D(<n#FqCX2yh(MS!NAq6EM6Ad-EPcX<3 z1FYBJga$(aD<h=Bk_i!&^z_XYba-&^TVm8O9w;(o3=@PiKsuA5(^>B|rfnd?kbm5G zr?x?vf+LJD#DFF1VKN_a?h{}#cJDW2RV2L;tkP@9q(DhB3{KV|D4~#vsN@M<tx*eL zUzm+R2uS1deSK+hJYO!2&xE-&1Y*M~gbS)wD*gn|yYNz$jI*2#vi+HCIS9%*JQ+tK zlgT*J<!la*Ct*)u6{vxLP#Br8ts!lXV_EOT3Z!}jA~3xY!;&VdAT$9ZFhc@{15)W& z)`2CF8dQxL4NI+QdUI<TqSvfP)c$%*2aLs8pm~Q6ERe@%^I0%W#f#(8{M5c6jn9fx zlM+wu3#&kg$AYQjc=i8{AA@v?VJ((_70<*LS&>%pZ7YzAx6Op0WC!WVR%vv;TS9gq zsE|pNrtA0jwrO3!dFR;PE!k1kZr*nkBR(ZSl&xgAxc}@c@!=`7B|$UKc0DUum+JhP zP}@{^Um^*WxHyTIR*3o~BmN^5y^mO~*Fubb%@=Ynstc#M1?}y-^*Df~=(=DB&GYuI zoAaTK%`AW%^0di;<Z!aeHeq9On#+G5b$m|qUX!&2zz@|sFFUXa-J06t_S|{IZKGXx zM&)2pNR2r)(tCFEoWo7&!-j$S^w`D#B2}Aq?)BHxZbQ$%a<4s5W~oc0>}l+EZSoWy z>ow2B`NAuRsk)pP>7b;SSlT|S-sY3()nnmrJn*T|estyWZ7!At25!75=)8E(kI9?M zaZ$PE#>M2K!p)qlD^DG7rail7DNZPRUAMng7kM|IL774u9cUd+JmWF=+moa_i=NmP zw|$)Q^Pd`y>W9u5Ei>>&eP7vSdCs*-bV^RG!;oLzri`8CJ1o;)CsY`U?{|I^o%zsl z_*7oCXA|BW8gJ~hLAiOct@B0?@81yKY4db`%i{PQSYkuVK%cU)wBV5R%QFRS!%mJp z-3QU<`aEq}=jhGCrIyO@7f5YPLgDrL4}`WwnGH?sVdpxN@Df*%yXi)c4i}%cjVWz! z@k(Z${4Qr(+tJ-=YxBeBiqlu`9BOYISO~W(At(N$O4Un2hWz{6qUZ-*y6vu9$)l77 z?o+eS+}x^&l|?pP#{(DE_B(7ipH*7WdTOz@r#w1pSHqyknZdqgm!9qZWx?!QIqC@a z%*Yc?OV%7LQCebK=ye%>75)042;Jmtk91MN{#Q8rw0CZ!srcsA0QOwbR%3<Ct~}8_ z^f6gAm(f7iUt=SJ;%}vSExfm?pS!PIDnE$(bY=^~{_yEwn2uz3;rkj&kKK03^-TQ< z%rW1+(RAd6y-Rc1l@%uW-iI@X&9kF7lk|VhVwNsy3HYR`*M5gb<<p={bM&2|nw|$& z+dn<)bS*}#%*$VOZ|l^U75Sbo^QC^t;cb@K>))=v+`a4KT2_YF6aTgKRcxJORaJXq k&Gxy2WTBS*9&2MqInlkRQ(AMf!}^m_$U|humap6LH{e6Rn*aa+ diff --git a/OsmAnd/res/drawable-mdpi/map_turn_forward_uturn_right_small.png b/OsmAnd/res/drawable-mdpi/map_turn_forward_uturn_right_small.png deleted file mode 100644 index a2a5cfff468ecd59f2ec79ea338c6d14d40d6cab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1317 zcmbVMZA=?w96z!JEpdU!vSqr>%WY0&yVv$g??TzyUV#z{rPM$cr(Exz(i85k-W_X! znXp<6YK&}I*uW30F&eV@vY<p|CUa)KkSQ88aq+{P(FHV+CBAINsQ9$B=m)Y7UUK*R zpXd4g{_p>LCe&QNsqCII1VJ_h8iX)hcjw+aOX2rB<kTs+Y_t3wR+}EPlA-|+kE}-l z8c@Y95C)>$_rxryL68lHl}Lxx5p3cmT_waEhDfOi$VQNw{i%c~bps2Hf-XgKV>ixU zz)(eYW9@8^3MPCYt~B%;psl|-BK3DmoQ&<SMQc(#RG<P&L{n;yX7VXFme<QeId@EA zXdYs9yRlWLI)Wk8ryBre2`4VmG>uks1kJka47(3yD4HcHj-)A^qIsI)844{t7_?@{ zF+MER6>Pzs8;e_3f+xvjGD#%ugl=?^G{<oy#gGhxLj-R2X_lD6HFH-{g8)p)P!g7+ zYiLfR7}a|%HwHaj4M9x=gKLU4vydp5GBPD5NSdHXRn5hfN1Ij{{OiWLXfx860Av`L zdaohDdc<}W$uM`fH<SZHZ}=8NfkhE}1YPP?fo25+HwJGAS&@0kA=!ZlXxzy;9C*y- zaN-;#IdLG`r6_RHax}^n^{mJDF#_wg)75p9-A~hg)+MkWK@eD<*Uq|J9($1+&`e9z zBv7=iK-&eb^R`^xX8_UCjfk%I6uTf4*Dc+Q>j~87%U2zJuwBt)J!w9aE7NM!0x*=r zK&~@%70u_FSJv@?p<SGvV<bH4iaGIW*+JtR6O*Cjk{wc%7F~>l75MW1%^wM!B6H31 zpXMnZ!H&#{Yoh=+Yr_OII6(#+mC@;~X#^?p2Lw+f_07_#=kX5?Y<_yj-t@JpN8cyj zta_)SCG_5)aAV&0R{aQZX=vp6<QIcyXFm5f{#N?(@xRMIVrutPemK@D?>v%OocQ#P zv0HZ^Tj;w!+PE=`ZqB4b6=hz};@nWxZp-%S8MM@PWq$cOee6Q}<?TIX)1IpPpKSnh z?^fVHAHvK*qlFk+r1!O);Lb(vn^3da*hSm$fkQhV7;jo?jL&Tu-|}nu$;L-)%U8Uu zM?;s4$N21X3nLZjZ%>!r9ADh<`@?g$n1QceBQhCfX>96;uvwG*`gBR{Mei>wdl%DP z=Sp_mJ20Gl;oy(kUg`whZ7*i}jW<rrhF)3l4gd7l#_ZcGpDlYPZOl_md+b*;lYf+E zw@zO^VrzXeJ|$hfSvz#F=ggPM`S01G$-0@7XRBl>JTWkP*Pnw&E3@ZUK3S>kM8>X_ V*H_GJ|2X&K3iz9a*S($Te*jkZ&cgrz diff --git a/OsmAnd/res/drawable-mdpi/map_turn_keep_right.png b/OsmAnd/res/drawable-mdpi/map_turn_keep_right.png deleted file mode 100644 index 6775427dd66840380a2e890fa6670ed224a690ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1790 zcmbVNc~BE~6b_gH1Q`q1+FGSca0IM5HkV0EKp-3e0vMnIj>2YlAv=(4nk*15IiyA9 zC>9a5MMMiaa%dHciq?pZNTDjAV5t`IsB|b2FTiTC8wA@w9RKLf?*5MbzW3hmd+*I| z2@eghw_RjQp-}8)fl>uIhMON7EAn0H@VJp2J|g_0i3mJ_NP~1J#T&tuC?HcqiKqgF zko3<xP%(uvCl!l~CZgpbA{bXQATx$xP-{sxg(CJcXdyTWB>*Lwh-oCWvDULR07E3S zwLCdXuJuJ#SYU<@jmQX%gfo(0Awu)=1jGgrX+Vt<5MWRzYxE+6gf?wgM9$6IOd2o^ zA(AAt*Fi<g!vSAhhXOnXpALf{2&@z`K%RiZ=B)tOERe@!37H^^&H_asOT=aYGZ&5Y zrb7}$3aS5$FLEWJsR%+VVlvax(imwR2ChqFf<mE?$zn6vY&wac>(ey^WT0#GuCo@T zs2<i~S^~p0fY~CX#8U_fjg0j55!70_{EcCaenu!#GNu92GC>B5saBiMHI3F23iRJF z-ip>orfX5A0@dRwI+)Byg6k}q)b8Dm%s?_4QJ4-RlL946aX3YdY6zKBLL<L05DXE) zT$qDGC`jiExm<dJfXk-~SumfDLL69$@<BwY6wcat8{dcPEA(Oe3;j84DG2)Ugi?XG zKSv<t`boLo-fY1vSEkVukOoF)ePg8W8Lr@+T#>I1g$P_1iQ~z$RS>Si30$wjwSceh zbk+g)wU`FM)ASzZG`&8x6xCs=DB`cf)xfmQBJ3?O@DP@O4Rbj31RfWm^Eq54UCBo{ zbiqncz=9KmyaXjoo8cq>S3f2h6w_QR|0$l?EwUob(>JX^F5WZ~sv$c_N4APC=i)rF z1D$13??}VIpWlXUmakddeg*x|6)ZS%bvuhaPqye)P(#R3qyGm#sCMkT7Omnt7R5xz zZaJ!ihvH;%McdP_1GY)a72J~DYcEdpuX>!2G4b+p=ERxIv99MEM}7^d@=E*dz*zc3 z+7*eM3xd$Wzj#G9Hf5B#WfTv~rK>IHDd^aG_pSS43mfvrI>JvZoEql1k6LeXZ?x;P zFnOGApPI7qEDOj@U*8t6{Pvdd^My|)3x5am8nx#bLqYEkF-}~do=T~+6?cm!xlY4< zib=^$=iaF~8<KL^c~L~SMOZWSVWMSyy_55}dt=ae>yb;;&_49aDWY_=lN#y~;oK*v zEl%(98QA%YDcGPdiTE+U<y?+WT$|fSuG@gJ-Rexi!W&0XzpCDi$DR$T4$c)<Que57 zt6VQpo4y=ud*T!-vBGn`3U?Uutc;x0(!8sVCzfo~{FIqpQkJ!OiK!^u(QrJ^R9rO@ zyXip}-3Xf=F6(Nw^Ax#Onzr9xm0XQ}Q)B5F)*oU$`SG6q?}Gon@Bj;QiVwC5o^;GQ zm;Vw8-j$!t&9u*nx_CIhb+r7F|GGB9sE)Z-5VQ2^gVIB{Sa+-sWG%c*%j-zmvA7Dm zSCnGbHDt|Q>duh;)Zx$Sd#0)=w_=-`b6i%ph$_Zu7N@S)H=lJe8anLi?gmx6SQhuk z7<TQ?E|^<fc^dFK{Pg75_ucO;T`jw%HZ=8&`8(V7Hnbe04$LteW`A)yEAACD?`FyK z`D3Nl;_eDDV{nC&yY*JhuE%!E<YTwxb$61vPO7fGZeo|~iQ6~bud!GF91y?Q&@#B~ zWYj=#bm(Ab($D;_Ae|1X_BflhdvRxOrHMqJ9C1Em#k@z=@a~r%+>Nx?whK}>_{ig{ z1FGXp-sR`j^$kw$ZX+m%*w*umniX+|XT8%{<!stBX|y|D{Kuo=Uc9cR$MVMLqvl7& zl)Kk!ng@Bkk(kA`&^z-T_O2_c7@toa?(?b5E}&E>!m&@>jL0HaBeL8felKnHbS1_( sys~FI1?Ex%a~D`R0^}XlI%UhE-2Alvg=KJXr}>X0^9z+W`NZe{16JO*r~m)} diff --git a/OsmAnd/res/drawable-mdpi/map_turn_keep_right_small.png b/OsmAnd/res/drawable-mdpi/map_turn_keep_right_small.png deleted file mode 100644 index 57a11ac3bed268560256803db6e29b6b85d10559..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1342 zcmaJ>ZA=?w96#2CHV9<SxQG#RIY7a1y}R~adY4vOI0|Jet6djrqS@}{DZN2^$K7EI zG9AOkZ6PFX)1lcSnL0)13&|4WG{G=3?VJfLOPoeOY#6^7UG`B!z^6cQAIL7bd!Bpl z_xt~U|F=6H>+Yzkc)S8Zkg7<h7>8?p@phHN=WS$i5-v4%d(z&kr|g_$0wkpBGC(64 zsTah7qz(-ffFD5|uW5;-os8}l6g}gXiWql3V?Z{7_*?RZr1SwBl|iqT4PbY_p2bj2 z4PZS?l#Ci}Agy%{n_%y7cS0HNQ+O3?c^38O1!y1xYzfV0`m>gh4`6F{1-LIB6BxP% zvHJqpx~OC{hPLS@Kp8iSD-=bc9Pg$WpVz}QqaKoC2$Cl#5+^BvA_WhLZd@4jW~wP6 zE`~RJ!M6aGwrxWoh+Hn`&UxLs*-KD7&l9AF@OW^Dz^$RIE#>j7Radeg0!uM9!`AdH zTC^z1`k)=apwjgaGDbAIX*g?bBnqaC$V&!6xk)0EDaN&iw(L0gU&fYbD=}mMA`UEl z&{SYOQgtOV%-w?>6@gHVu*cM3QKWuRR|Yd6Ye&QY2EVvfO%)Vc@d61@ILp&Cp7PNw z&XWp@1Ieq%fTdJf=1X?A;`8k!M^j!t%y~i-)z0uCnhS?R?P4n%4$&f0;zqKTEoBu@ z@~uJN8(iN5xk8%>BwIHVy53*vf>>I&bt|nKXj|J_)zQWtEvxD|tEpI~^{7Q)YA*pb zZ0Z?wEzg3sg$9*XBriuQxT-QFt^k+>iIKfH$MFg+dl*ioNo<3!-j~1iK7}VR4x=PT z@F{G{BPj}=VmW|Q6ku@P2V`9Gc{y4k8I|NXjDQk}V(Z-3N~I&%pT+IwV8EBn(E?dG zPbM6k{Wlw*Mv$^tL<}YJzsSq0t1VX!Y#V>C`uv5l$7*V3DjfG%bfs#3B{(jlg(u53 zbmtP%6ze!__#6Hh`)g_;bUwITUI=|Yn#`lMms|yk^yj9Y_#K&F{le#}Pwmp3Gmd+M z%@d=yKM7v%+T+}}G*DUDv-m^kT5$QC%X!ElHw^pI4?PS4KfW&<J3c;_s6D1T28iu{ zN^ku1`nBK6<ex_yr&pDxuL|zzj)}4FKfUz!M=v}-`{7NbtG0gp>Z{&`YExX=U)$-N zDI2JI=hiDH>dsyN*m2r8Gxg|^*~7`RzjnQO<MPGYUDN(kCsWRb>J#7Hnd}HQ)7z_e zAa}k@PyACcf8jLyVqq{={npha@_}}0hchEu3tb1*om~fCj?ya^NB=%^Xj}Z7&eoCO za!rqG@k(fQ@tJ*3jXW2=d-C5$@XI%LSB_PV3u${KeT#RY-y(DL(Rb(Avqy`6v`Blm K_*v_LBmV(@lgml~ diff --git a/OsmAnd/res/drawable-mdpi/map_turn_right.png b/OsmAnd/res/drawable-mdpi/map_turn_right.png deleted file mode 100644 index cf5e5f02438e9084bc288bf33cf2a1621a9dace4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1637 zcmbVMeM}Q)7_W>ki!#M#OhVXsMk#80cP(wNCmobtk)o}oz#xt(*SjlRpuKWEY^gej z8xAJ}5}6Y}wkk4-Q8%*<jX2Q(VqKiZnPobMlR+fWO-InN7?NF)y8S`?W0$-4ect!| zJ<s!dpO4#NwXB*eP7;emqPeDA+$PM{&=(smj7{^$jtkR5-dMsHunyi!aI{EIv343T zIf-)GMiW$Rb&$>wiC)^s6qfKM<~10}I^{$NBlkJog0@JMk?C_2WF^f5cDkH#>A;8G zJs`kPI<Qz}hRtpRUBTq~Il91aDJ1=sq?Q6RUk5ULm|(z3^90~?R=GTwPX|uf#RNID z4S~QEgs;?r&q$S+t$=~$Xh0=b%SZ%40F73Ts8FRswE|GUhzf$W5CY3!1Vdm<0Rz(y zD0t&22WG=_rhN%39azEhZVZCFUa#D%l(SqpglM%|2v$G}g-k%mJhd*K@X1`B#bFCL z?IAhF%`>bE2w5cTYz?mi1*Xrg;B=eK&kegg(}5B~2Kfj#gvepY=?vX#3hm)-^uIJ_ zM0*Nr-85vQJ!}m}3i)s>4l4_>d$FSsP+)_t<rpC;L>11GHBQ>an{XW{oX9DL!pL+| zNfR_8Q)|=HWezl5Ez`oJT1FE}(oU-p%5K+&?aZWaP^vX3jvzU((ug2N6^g6$IF73f z*-90P>Xl(#lgq;sE|L!WW(3~`r9z`ZHTVm4F#|^vJj)fbY*n}ltQ9QJdMa2qU@%N& z9gr3?E{gSf(n4u^c59sGn2j`*!?8|aD$W=)0|y0yYL!|ADYK&vwM;{$BQmYRK?xE{ zrIU7qKoul7txx^m_(1|GC{!%}DW33_P>~_=c`FEu=gmaBgbw0_R&m7DPl`kl^(I_j z=)3h`|5_=oPae<>Z_Uozq+e9c-)-Qm@}Z%niJHVEBVel}Rg0bmMuwIq^qasVMMD6d zJiOuWH@nXjwEuYVT;|Hb@2l>xTjHNMf7sXDrs-)*eFIIl5NA_A5=&bm(pn-GiVtTA z@6ur8y4_1&jkpTLVk70%?GI9F1}_Jj&TTu^(0uBG=%?l*&Z0>*A<i^T-j028K0!Jn z>AKp_zPo_0BjM;V>7$3q1E+V--F|-ds0rV?W}a{O*Ojy2nE0$+pL<hNK3g_1@YM%D z^TDLf#~pW~W9RthNhczefr-qhWy{H-&f|T#O!VVGQtP{=E$yR;kATFz%%g*68cjE1 zSG0UxdhNH-v2W8VG+V?w^Ht)MEt145@tunNvN&{Y;Ph+l`9(dGQnIhNI`Y{4FFY-^ z%8tgMC~j}#8MZ5{ZFWIP<5}Z}eG5-DG**Itq>O)evuw?xU!t?+SZ$0$AJf@zbk;Yo zTz^=WAZhDb5R567_dUKTxw5{CTOPQ6<M{2?UW@CUgqZuc198>wkDa~N(_e5hYteAO ze$_qwncnOR!DVm%{sdiJT-O_qb&Ic;7Os1W-17hF4;*dJ%J15L^HTS$dihiT)72{v z`kKdUBqjIC#%nfZn0Hi>iRl$z)>)<Q^ErbZJMXQh{3AO%0-IkxG<@K2Q^d#4NXzK> zCs_l%?<MWKzc0<Shp%@=Rh@__YD#(Q&{*z<<oWc)iM+j~x?OpJ%W3-=kFK?`V9(YA z#yUxEo#c`gh_V4uijbUJHzy?90K?2jf$b+JHf+|0sv)iAV5l0zl=RwPn`gr!OWxfh T62;)Bp&!4=Xu(fpmu>q8+MHB2 diff --git a/OsmAnd/res/drawable-mdpi/map_turn_right2.png b/OsmAnd/res/drawable-mdpi/map_turn_right2.png deleted file mode 100644 index 594b8c6b8b61190806c93b379d68e6dd22902a0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1590 zcmbVMZBWx@9Ph9=1ko~vs3?n7@5D7t(l?Sy)zTE{&hpaMiMO4aCQl)QHZ=`2ppF-H zQk@Rx`zdVtf%!q)9L~+F!cKACHea@z-gY{1;>jK7#J3HnQ?~@D^MmJy<t}-i{PO$# z|NrOzl1Nd(yyV1*i3)`x*^y7Wq_s%C6GlqUjVX8Aq-BC&FA?0FPY6>yP*@qx3m}J| zDg`b;G1bey1vv`Eh$_}oB9u7in`zFkrDTp)^amxiLXk5^3{rGC5FjroWdj!Vt!Sqj zVi}8iq0xytgEmmc=GXART~pwpYszVYQO}tT<%nj<fFB4HB>F1?A+u;v585?Ldl^R5 z&>%%9x2T7LDsdJ;HjW37QEP%}48x#oLW>!3z0RnCbSP#-Py)eF7{$yOYSy99@THc# z@r=*xBJ+lQNpBW)nIHts2oes5wPC%M<4X~YAP5B2Avzr_G2l>jK%hi85SkjZK!Om> zvq6F70+4Kx@^Y1eMJ+`-bOe9U>3nK95E@RDlrlu5f(WKX5x-wP*C0D2xWIp5JeM8v zR0jd#0wJ!Fr=@!MrpCll?q2LjCQ8wm3wc&53ROXJbfq5z1P5tROJB4M%a~~ctp^mq zU=v|5z&_kyf(ev1!GO}!USPr)ua}6~d7j>;*JT^=Y*QYpw_}*yh?7PuNs>leuHJ~_ zR((wC2!sSGK!ccXR`NZpHNH@5w()=xINrl?6|pWTD&qt$RK^7%n{BY_(2Rv_fZ@WS zEV)cWrzQc<RsklD=lsxMp3UrYV$fkYp(k`S?8SX1IGZtGFro7?(hg?~v=^gr9jzYL zGygY#h!hkeH_J246N99Vl($buL3(*QOdudl5HF2Ns+hwn6mf4lNUKM@`1@{4{v_-8 z_u8>Hlq0fMcjc+lR@r};3jt-4HN&cUE5n+Ulrg1k!&due#rxyDo3})^dZ&M=Ql^n@ znhK5Q(MxGZj@nxB^w6wmOaIy4>Z@5f=Rhx2)f?r;uFBnWd-b$)?pGmIeF6zNCWR79 zBf8$rc-pSLxAv^KzUa3#JGqqadsZHa?|m?CcJkv##rq@G#pg1|H$R@WIH{}dmvO0k zN7nyywkmRE!6genZ*=!5TT6U^IQmJ!>By43BkI3w&%Ac*rq}UE)wTtzy=N8@qdeSd zZ(IK<RDO8}l<@YIcgECZF2C_bWaJ%}XB#`?)WF9NGzZqjKkSIx)wLfl{OWkm=dah? zE6SgfzPab_rmi)MQqFXAANO5YnZ~&@yIWQm(>rgUUiH%-&3|bZgQc479a}Nqb=XI? zJkVUe>7L;BmmkUfPF&tNzg5$p|9)iVYnK*nI6T1b+}C%1!@6xn$vX};ng0HDOZk-M z1@-M4QzvH~{2)BN>HeAi=;Cb8l1BZ@)y*lpo`|EDb^1He^vQkit{pXY*6BajpQs$u zbGUtl3QxuQl8djRKYuj+z_Lw;_Dsy=#wGRbE6ixE4POg3M=uWKbvGP4cK_Z(Pe1C7 z?}+^9%z6@CaOY~RI5Yi%W*@)%MiYJzoUL1#=^BXNe$tnFzOKP=Dt+K&cB(jY?Odh0 zX{b6@C@!UOZi57<>XmZ2;zr4U@)a3Km?i@$`6>x`M&K^|x>i>jKSY?HRjVAYIPuN- UQKNaZPX3cS>;>e3+@%fw0-01eH2?qr diff --git a/OsmAnd/res/drawable-mdpi/map_turn_right2_small.png b/OsmAnd/res/drawable-mdpi/map_turn_right2_small.png deleted file mode 100644 index 61f149e592760e40729671a1ea5597bd61366819..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1278 zcmbVMZD<>19KWu$l`VaNiOy}#hpWP5x!2q!xwC1S*CnvjG>u#Ii@BF4$<gF4y}K@H z5$sxVQ@4SWLH%Ia96}HoBK;svv|zP}42l$mfl8+z1etE^OTpoME={T*%075-_q_do zzyI&~zufET(WAY)_wU9qtT&m6X3+SQ^FG{-z8l!W0vaB-V>x@=DA+a0gjh&5WC)TK zsR%PrQl}@sfkPP9c~Z;f>|E-Ys2CMea%{+YrHarPHWaK^C1nEIK!!z458!`Z`vM1= z8o*ERDLPe+z>=1jG2!^kXjYk-Py`hZ4uhe(hzKgsmO#By)-ACfz?-}xnmgMR4w@$R zL;&9sl}n{T#4sV?NiU%=3<G=u$?$#;%ew(fGdx8L6hjj<BQmte(xCO=$eXDa#7s2a z@`Y9byky%|k)mp~8d>v@hFPQ-K@cdKrC63g7KAme+ftp-t-&@!6k3X@Rc+1Cfx{@t z#*`hvk<zUzRH~`eHnDEC0);|G)uk%MkTg}PIQME=TXqKiD`Q7%D?43<R0dkcl&PS6 z6b9R16uSpIatx6g@i|jNNs-D?Lz${T-A+aWI65I!O%)YR@jwYOgje7=qTuJegg`4^ z0!ki5hF(UMWueWp6F%(qc_XYp9QS$!hKce1a7c*7!k&1X^~Zz=*TyDw%a(KnwtZ{J zcMBVOAXbc+P_hj(YZ&Er6{JgsZCE9v3L=qa*1_Qunywl(>lr6aTeprvQ#%ROxM@^C zGtQ#6g9gR#@%Rb?su)gT2}R~4LgILt;Caqh@T-i(&=TIltN%BC6cR-_#qyuxX>Xy5 zbf(*_fEL@$1a;IwCTf+g{vU5+SjVAcG?cC1kni2UAN(@E>zHfab=KX(u<YFJr@?UF zN+CUb+|_f5iym=3M2&op-FXuH(Ie~S^QV8meBu4g<-W#ze)G`4wO`DEz;|nt+~@fE zTYF}6`-<r?=G9+kKiPYR!tV4ht%X*pQ~tT*V_&;gu8-V%cXsfjjpymRxyB;|Sp9I< zP4I^G?8R{7+}U);hHvCx<ksQw&YM4%9zFH(3_Gx=W0L4wb$80li|Sv)+?$Kxy<S&2 z{`M=bm7kW}r^)wTSU6MoA=20kg2nEYmzT(W!AnA->-yDi*YM@;mp*vyoz;YPw=>s& z`M`4Gyg=7npWax6!2Q)@N3QfPjrE)pOY5O4efy`@8uRfdqQzyunCI6Ib`9jQ3%^MR Uj^6tFGv|+#jEzRGhVyg(0F=w9)Bpeg diff --git a/OsmAnd/res/drawable-mdpi/map_turn_right_small.png b/OsmAnd/res/drawable-mdpi/map_turn_right_small.png deleted file mode 100644 index 095a3362be9760df63065402d86c32bab796890b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1288 zcmaJ>U2NM_6n0x^y3&pCz<xR=UECo7tK*-<acnhf(zsbuHC>uUv`iq)zP@R^)^@Pn zC9MR?x=Jw7O<Og=ka*ZM3KFW|WmE`|3S0Oo5~83X7)Xc#4}*uX3V|k=R&Ls+?4g<^ z``&x*`Of*ypO2+__ib)$ZX^g|bD~R5<8^oCZK%iJtHhZzc-i504!ZqT)-5PDBBGk5 zB9JhYA(TdnHulT{Y9olcNj)>@4kmjfXc<1GqT?$Xd5k8Aw)SFPfy2lJDjL$wF!{&( z^CZx<Fgd^{nPfhOa(dUejrzxXGjMzuiW=Fz7qk^6Y`{RS0*c0n=}5&exnfts`-+$* z!HSAI941#u4JK0{X4wevz90ozmIZ?7WBHJu<68m8usqF(G|Ny7E3u5kF<|W>u{T@G zN@+R1<_n*~WX^T-5=|Eh1z*AMv+N<76-AL|IGW=qtU)<rrmGYw(`l(%kdXszJ@4w4 z2`Uy9)f#ofBxbrAf{{-q*A1J_TB2~u=%SLRSsz0iMkTHlZO2Wc|7mQf?PSLCh)yHN z8nq#=N4BL3#<{z@qlzMCBki|!Toh$Qw&19NOgABiNqpnebWMT*=tl}-sh}7LP}xu* zNQn##Qb_Sb6$M#MRmG~Ejqsu@%R-zF#sx0QvYosb4G8ggv{UW~#-jn5uVNFX<0>XZ zRo^=Hy@uuQij`tEQe4Z<Sk_3j3sO1DwVa%l2eH^n)xo0!x~W+O=dnteR-=}Ytsh2O z+_ns`l4nWZfP)r<ieF$LrD;4vL4=c_@T#8@1Q7;Qju*55L$2YqJMy>Mr&xmH$XDq| zAsEbZ3WQWPC?JYu5l@LBq*6-AF9aaNYm6X}G^R*bTIY^ds)}%bR<`Sdfe-7Wg-kq8 zHXfY6zz5d}qNX_^M>ECm)mzKU?UxSL_B0)BYTEB%Id0+x1%9kAf1cX=M31-hwRdKF z<MoNDx}UAcQ+4H$U%%Toi^`>il;@)xqu}uNF3*$a#fHh{nxzh~b!O(MTza?mh5Kul z9B})^j~~8vlk&bXF};)Dbx-#x6uI?EgXgD<KWw`4X@}-AbxSHZ@fs7meJ=EJG`i>B zbF~-WJ`y^0pzrl9<@v8#Z#I-?BD1B;OIN!u|9SSe6Niqyci$J&1CiOdJU3rop1bhb z-`_5_c9$Rcw{WuYlgAHiotj^KX!qo$=(Z!po!&it)7c%H9(?Y@e>_juv^;WU>g2Pn z7v6kl!5BI|_k4U;;P<nAp5s#Pa`gO`=F!Ejg7=qerEgM>H&Uu0zDytLpE&*Mw#vUL M(b+4%)p2m*KNd{2yZ`_I diff --git a/OsmAnd/res/drawable-mdpi/map_turn_sharp_right.png b/OsmAnd/res/drawable-mdpi/map_turn_sharp_right.png deleted file mode 100644 index 26a5fdeda260aa56c61fbb9fa5e67b3ea1eff36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1578 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n9DLlB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk&``nLQqR!T z!q~`EN5ROz&{W^RQs2-(*TB%q(7?*bKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD<cE0=g99h1>#PU%0_}#n6BP2AO_EVu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9 zlv<o$T9gcok2GbNW?<Oiw+N&V=o%~kqD)|<B<8r}Czs}?=9PH5*eU^K^incYtddQV zjZ+g-4Ry^dO-yvtEKJOFEe(>*bW;<Jlao@-3{#SlEMewg({JGDXzF5QZ0cs@Xl!Wc zYHDfeYT;z!;%MLs5->1^>GjMjE=kNwPKDW>3A7uk*95O#E9aur#FG4?ko^1{SSkp} z$S=t+&d4uNaCQdAx`IY{W?o8ud9fxanjpS*NiE7OOHFYr%Fk5*hqF~C7B^TV8JiiV zfjyjJtZQmvlBAntW@fINmSS#hVr*^!^nS7uRDTM&;inIDls+i2ASE7{5HLl8nDDFs z<iImiY925L6#=u#=?Phk3=B+Oo-U3d6}R5ZIqyBiQKtR7uC~^Mp0^v?Tk<Bcd5P;U zythlN;)HkjOO=Wj6COkgE^NNn;y2gEqus_+pyLaBNmP>)ztfRfZjrP1*0DW1Dq42E zwmf}X>AmO7=QE%GHRLxwQ}evF_mRc9iO-4|Svg!3m;^lpIviM(CMXCr0=X|W8UsZn zxgJf`=$!wkxk4}R#{Jt((`P)^nXgg#@utlxuK1%{cKq4z7I6A+cJqOyQlGRmyWBa} z=oKtyY~*}@BtTg1*HLlnOY$vh27V_eMhLcw$X(M~_g^h9Ei&OyV};_nc@H1-O^vI3 zYsBPl5d66_@<O)7jI~8);|)6wT+ZoysKwW1dMp3h#Ce{LZS{|~zS#PAf4$r9<@;FO z_St7=F~5Gyxc|ta9eT@NZMiL4`>5Ksaqhl}c`2_iz3H&YT5$ICh2;h3@)mXXEw6Tp z<Z00}NIz{Ed~K?YM@@XTBd2G=q&>R-PxYz#rMM<c+MRTFp+j&`SvpX-{n29OPVPvN zj7zHXI{%8X{@Zw4DxK;4>CP>hXYX|!7JFZ;={r~E(!_tJAH(hx6|6Tje77dxMT3`0 z)`Rb%A8$O&&b{sW%6;`;dw%7DV;gNI-~P5j=ZBz$lGzbg{`KFY?*#wvR_s3@>i@}S zUB}N0;uGc0f0yTteX!)ml%)ML)T)#8xL0rZetuTu4fe8}U7M~%%5Ux!1VxHKBMT@} zm^hh0Tp^GEhYBLn+U9oDZ%9EG1xDqDUQ4kAhM5_&`|me5e*u-=p00i_>zopr0I20c A4FCWD diff --git a/OsmAnd/res/drawable-mdpi/map_turn_sharp_right_small.png b/OsmAnd/res/drawable-mdpi/map_turn_sharp_right_small.png deleted file mode 100644 index 36ac46e5e95f0eca630ceec699d3da5bc764fb14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1242 zcmaJ>TWB0r7@ovhHfswC)iyz7oCvYd*_kstmz_zr>1Jnlv(=63cA=@Z!I?8>vqLhM z%$#&LL5sbF)(0<7QVW6=OQS+TQUp`5A}aJn3ssOjhy?{9g(?KaAn2LRZtO$oz|1-4 zKmYgt-+!Ce%43C{@xC}kQ9FyHdWEb{MQ?07`QE0^pC?N%&W+<kUJW;l08tssGZ9^M zj7d~MhBY^H0}WBs183~&I36!Ot3l667?Dn*>G%XqQA5K`-+)sH(<Yj<-86Ie+I5Du ztu%93D)A*hi|Y31e1Hzkk5%FP6jUu{ct1VV)QABGVS{cu({89W(@e{*M)r}IW9XI& zo=P(tq{d5SI_m|9mJ%`x0RXh3CV-Sm3erAW;DN;PDhGI$2O8itfv4LKL%ao6O{?hn zwl8u@Gj)u8jpG`PMxv2Sc)=tGR8{48ffEFlXt3d&i;X7hhW#B2ItpQ6``GqeI<jb( z-YiZtgy}{Ij$bNm8g|2WqDacPrr~oS!E=ri#nsXdaRvQPV@vI@I_D#<f<kXLfTSL^ z{tlSr?*5J<MZ!jVF0e^ajA`A2vkr1`QBO1ECSlo@21S@e1_G?CiXvM}i88D5P-c;l zgeH=KWtwWo&Q^Fe$15U8N_j=d0FaZ^jHu-EnVdc%=QE-%b+AP@#D)t|$G1&<x3S`V zv064j2KIug=S_FIpj`K`7uG$W&SqOxr=LD-yO!4o_eN#fh+0R1eH>Z&z;ozUo;7<5 z4wej!q{2hivLv2`h$O*~%p|KQDilpYQY?{Y+IZ`p{B86pk&rn24jnB8<(gnX$kt>9 zu>c^6Ra3}hjZ{(*Aun0HqA(nx$VIJlPb+mqq(7tW=3tP+=4c_8%u_%HXKgj#M~3cB zQO{JHD|dbb@h|yZ-^}#?P#k)7X=!Qq;_`COPhWgJ*z7743NyRjEFZnr2*OA3ad6_~ zwu4}8LAKBS_4D<s3;)C}os92AmrMP7s&ZWKSsLNi4h)LFfAaQ2qlR^5VCB8VZ(sMj ziqG`E@M({A@aEcgD+TOyf3W_3vTt>EVEw}KZlz0j<>nK|;)B0EdiB7E{o<cJm0P(f zJaEeWJX2e*e?0skT09ba>zyaHUnZ>8#KJao=GcX^-S3{eTQOf8_~`HY;}@0NpH2LF zYa;gi%jIhN`(8cApUdnpA3nY3D|-7M|6Y9T^oi~r)aCt0V{hERN20$?F*l}P8F}f{ Ef3~KbdjJ3c diff --git a/OsmAnd/res/drawable-mdpi/map_turn_slight_right.png b/OsmAnd/res/drawable-mdpi/map_turn_slight_right.png deleted file mode 100644 index 45db48c507ab6094969d750e5f4a6e17972116e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1660 zcmbVNeM}Q)7(WoDVjO}4#2`CP%`n<tuV1t$MQX3mf(4|gH7=3s-4!bIuDf2PAR;a! zB2%|G9T5<jW6t=!GJ_dzMKLoI{D@(=$y{*;<`f5$pp5C*l@I41#y@s>-uHdp_kDiP z^SsYTZf90T>g<sDApii(Ht4Zze$Da^!3=)h6ZZHdzeIC7GiPF~ToKMvfQDo&6lk#H zc~mxqlg00TPbC7tw9U30GiNrgLJ7t$!u>KLx81>`0U&XO+kq1W6bD+UJR7Zs23ouj zXd~6oI=NA7bZDu3o4$mlOeGmPL`eamBB2#YV4@r471${b2i^8U+KIZ=(70Zd=l#bp z1dfYv1!`!*DYG#P)G{mu%0&txfglK&pb{Z+rBotc21>+;92To!L@X2|C?ZBBVsP?< zcxx<aMYFM#Nn89*4drv31BKzDq9Rd|RK&1(FrreaV6g<2NQAtE&{<4#xLZg&7fxxw zC?~<%9Gs1zLBB@a!nim!#CtmN1iQm%e4&_jP6mn(8SKU#Fd`DecDw&w<I+wpoBGd< zS4ul`iX9Z3O*t7COYr%yE}R1Mv3tECzaZ}on#tPuq~L`ZL%8e|%^5H?#NUWW8;KG! zLQ3HjB2=hkGNDx|QwUXJLLsDZDPf@$2x+mXru4iDuaznilo+B)5leLlqLV8zxdy{9 zxpt*gu2gEIQ&<D-<Zzmxrfl1I+ml%3Yq6-7rErd6a~P&@stU658IE!0GY(Lz9nU%# zzs^RJOp$YmKTQ*_#wgadnIcnI#tx3h8MVE_2MMB7NmUX;Xi-`f!UR%=2vrg*$#Y6l zMpzJBDIuUqJo$g)2lGzB{$hElc&3i{iuAKDT7loZXeNs0JBa05Md!H|4gi65227LV zzTID^(MM?JUG`bAl!`@_@%h!QT5{3$F!#={lH=|#TM!s`zH4=;rTIZ$TxRTB3o6{B zM?dJ)#0#(%-H!gf`Z<rGqmRZegoOUo*JOP%{OFId(6P2H(&fvCx(8|x91Mo5?wwot zyk*avfPiq2CtZ1vo~MYQ+&6WfZjFhpIMlkqF|917@pR<IUh+nO4Dh|5dN*w3()P#d zUC$c_jC&&EYlFU%kEHzCl=eI{j;_fo4?hw$*GvpXjQqIqoiWcY;Ckz=+QTQhKRa2n zzOS`?5DV-N|2eWJ($|aU_U}HN+7pxbv8JWKu@KXCJ>C9Px~Vz#SlmP4P*{WSSy5D3 z(2lyJ&3AWuu%673fYMpN%<Syj6z!|1zB|itb$+t5dtR?RBP6P4OKjMk=>u1G%ptCK z+d9Ohm+y@x{5^Q(lZ%Hl&egE-gT9*ynZROKbx%_I(8hWoqwQY3y|m(1yWmVznY*&& zcGV!X9!m>$#3pU6?5v|*qidg3v*}3<Lx#>vZ?s>?PnBeL#SD*n=C!!W*G#W({pNO# zH~62u+04@8Jzv&c3`d&xqaKNu9(@*Fzv@8fx~2z>RJkeQY4PWEzg<02>fP(PpLqR5 zb&AOx+n>64Yt(|aP3bqcg_hNHe0X5jod+#vItotjJLYLE9G#K5+GOsQd50^a($;R9 z8*RFB{AA^+^C=C5HNpE)*V2P$1rGi1)%`;X!HwBjwPTjRXHD0Z^bRa@bwSCGItJ7M zU;l7=A2YXM!@;z_-VWp*?#uo*y_`O~w0DKzMy8J+Ucs4UC^>MEpQ?bFAMrG?Z4~%< tV9CT)+L}w-{-lClu8XkT_TdfX0f5PC$J)NoC;9&e23-brYGv+w{{l9`Zn*#e diff --git a/OsmAnd/res/drawable-mdpi/map_turn_slight_right_small.png b/OsmAnd/res/drawable-mdpi/map_turn_slight_right_small.png deleted file mode 100644 index d738f28bc330290e3284611dced9f6be86f61212..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1312 zcmaJ>TSy#N7#_8{BC8~%ZBP<>98<`}*}3dooT(dKcU)cK+RbXKw2(TNv+k%nGnpCP z)j%|{*yO?1hqRS84~Zc~l2Rg+6w(HTT1ub~g<fd&sY3El3ZXBh6dQY1U7H8Vz|1-4 zKmYgt-+!CSiLUm_ikb=x!zyDPauTga@^5(=`u>K^&7q~*YwPp6t(2El9EgQ=ONAho zQ3hZVD*D*j2e1jlO5Qel`n<k)r=(e#fRfh<<T5rwV^~vj&Q`P`=m8ZD7-k56{N)l3 z3_XPRa&andM_}6M7<XXzcvp`$KBS2{-h2`?<s@Vv13d-gGQ*}T<wE$DT?y^;ViE^i zD&9~C-zL=;Pk@N!K)?lfLZfLK2x5Td8iNei02qqqNJ=DWilAtTrX+>}I}eV$IeJP; z%F!KP=oG@!o@YxWnaySc*<iqO21r^IMUrAjh9Qs!;f|S}k|RvFzF<LyuI3oFXILi4 zTU1nQ#0%kw>2?SiJ09OPY`Qy%LMbD2icQi1ip*s4acyb4UK0LKV^3|jXUv9V61vui zqoI1F>I-0$yJtJfD<U@1tB!$+q72KHHj;s+7n4Icx(VopE@`Y5gbJhyUSwG!)yVRM zNNGF)m7u0Vp4L@WEZEr#FUqnkM7eNOV8S%r#))B8h(^P0aw{JVvocq}#!S~!Obr%% z8_4$#R(vK_ia1d5ET_k^h6`PgNL!xerY##pB3o4lM|%xZx3ccBe3`bRmZ4*eLOtqO z8L*XS$=HK~&TC3gpfp0)If~FAN`k_vK|&Bjja3;=&{+!K!Rt@uZ@W*C1jS(&=tzwk zpJEhEBT~Eo37Uo+AvQvlP#S{*t5KXz2?9<cie$cZo@%9n2=!-vyE_=@usd4NMDygJ z!5Led4PaOi6O+R|xm9&zbF=yD{^Cyml;1D;788S5eSLl4SPJ}Hs=f*CURXc4d_?W+ z_SF@20lr9m1>BuhPqN%w>Dtzo*^-t0iEr;5NSwP;TXo#0R^va_-fW*AEnfdvz7=Xs zlr9{ae=c$X?6XR%-|;OKKP+l}bo#{Fl5hPucybEdd-B8WL&XpOHNO9}YxJM%pG;kx z{G~#CdG`JD3v<(d-MIPTgO;yKE^k&|`t{P{do@+bqV<W64<>x-e(+-1`dVUfYNZV0 z=D(}{Xu2PJp0OtXCieNTKV5L<)ED>sZ}iqpm2~`ZyQQJ+@#>kEW+nz(hR!wA*#~<c z)!o{-_W3vE!{;}`CnoytyfC}68ksp7A^n^0@=E(*_V;V2eKS(}$MB7+8hP@pw>-EY cmV;&N>ixs7Umt(%e*T{oYwMCfYwf@IA1Pn5#{d8T diff --git a/OsmAnd/res/drawable-mdpi/map_turn_uturn.png b/OsmAnd/res/drawable-mdpi/map_turn_uturn.png deleted file mode 100644 index e8f4a529e2636e61164101c8ef08f82256bb25cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1878 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 MRT0V~0gE#J0pE|=zW@LL diff --git a/OsmAnd/res/drawable-mdpi/map_turn_uturn_right.png b/OsmAnd/res/drawable-mdpi/map_turn_uturn_right.png deleted file mode 100644 index c1e4ddc1d44961a17f1663291f7c577332c75064..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1884 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 Oe-{)GDnINWoAo!!4C2ZF diff --git a/OsmAnd/res/drawable-mdpi/map_turn_uturn_right_small.png b/OsmAnd/res/drawable-mdpi/map_turn_uturn_right_small.png deleted file mode 100644 index d09f550e37681920399060344200989f4f89e94f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1399 zcmaJ>ZA=?w9KZ5XU{FLfC=BE{aLk13-L<`5??R!a*GkRGno@y8&A6AR^aAab>tRb1 z6$BTSnY|>_u}{8$ixRVhFYbdT#5lJsjs*yd%VMG|`@n}8olaepiBEyzK9F5<_dL)4 z`Tzd^-~a871-o7}?W@^`Ac)D|$%o+Dlzoeh@VkagPs62J_x9=CYD7;78bI8#Dgx9W z69zyC2=eIgRnUqc`IAbxPwxvH;v_X@7P30#bSweU2-4b~P6*N<&`}W#C~+tD%a;on zs>n{PmkyADga<^G&Wr}SGhJaRGbph#*4~D;ra5RJ26O>U$A;obF73p&>~e6Q6%!b` zrJ@fyv29X)fgtKpHGtA)J1$Wag)*#}q8(NX-GW+3iY7>wph%pgIEv&fB)aop(3>Vl zxDfB#@dZy#EUN1Xjv!L0lsRQJtJ(lTu`ElF7Q$k|p$48Djq5@hk0%>*7I=`9G$o-c zY8=g46hw7IcVdv~b_lUVAh2sVp4>?kOc{|D5(H%?iC8Qf*Oqot4}t$_?5Uj$k0t;S z0!ej5lVCj}jX5yP-Qyi)6(Jk$u%^JG2t&Lojl@7)_w!B+-k4=Y<|LbB1p=UOJ8QGy z5r@r=v!rClfnb$HV5ekJWOH`*!n0nIu~Ama$5`AH<)vA-jq&;1UcSTbbK7`2hxNyk zx)7H@&bI=6?_kNtVmXfn1YOm_sydYGf?!nD)nrsnpdQaw)zO2!N?cY`$rrL^+K!qB zn({i3eVQ6WxAM#>dvK8Ll3-;>372J>#3cZeAkd-}XBbwpi58lXZ6vmXmmkUBcAr8C zj3bew!#N~-#3D!%9<eh3rzk+<tOJO+;IJ|_iKJzcVK4$xB(kmZNGs(;us^fg-NAr| z-O&PZI8PcJoTg>rI)WIE`FVFZeM{Wf+-(1*Kkrc4L|GYEM2&r1R)5)WbIegTb=Gk2 z4fNlVOCO9s;KD6W&mEQjxjGy~D}FSd^CA<g1<Nb$Ypx&slb)sF<}h)ijz1xts`I{F z^iKbL!I}7hy!pb4-(B;C;k(UMe>ALW6$gjgeAbPUiv2(NYm7m9J#+KZwGX2$4U&sD zt`yy_k7gt&xDh?tg?$u0H+eo~qHFIXi^0;$T6z5ZUxtPvs&ekTXRE8-Utd4bR3L6* zEAG2X(TVXR(TH$n<dUQKHACZP?-|-2uK#(m=fX^R&B)SJvZB;<?JLtK7m<6FEx#RD z`g^%(YC&8*&WG#P7mGXkOG|#9UA(gjX1UJlsfDN3rd8MH{1ZjvF8ayxIqc#W%~zn0 z=Zei&UM&=RGF)*%?bw6*s)s1`%1gIAci_27SZ+VNVyt<-yt42%)0sJvKmV%>%0s8_ zU+$jywo}PB&Az$6V$&$Tr5`r&$4~e7W`f^?cW3f@Jd19`U_|mZJbl_Tr{B;13jN+L K{z6Cp+y4Q1{?|GH diff --git a/OsmAnd/res/drawable-mdpi/map_turn_uturn_small.png b/OsmAnd/res/drawable-mdpi/map_turn_uturn_small.png deleted file mode 100644 index badcad0df2d911a2e320b35ae6c86a9311eb439e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1222 zcmbVLOK96>9G9CWxE&p1D<vB#sLEg|MAoO5EeX4+Z8^0{odwrj?6E^+=~JR6dPGuc zC8Us*j3#@)DD1GEyzLU!G3ce29-1-_8rs4FgTkOJgR<-BcIar!x=)Us?GSpHK>8l~ z{eJ)V+W6S1LkHhDh+)_vr6`xt+8@2~KJ?vgWd1_S>p`I!oOO(#p?VO@>P{Wvilt7$ zGF0`2xlNeHu$~KMr5aRAXC%$B5^97=gqDlg7?vIhT~(Wb0bYkwrkx>vzj2emO+7<Q z@Fh@k^KjZME_(3n;#fsnoY6#`7&(EbLkS63Fi`Q(nzel?%n)r|3GJh6ion~DU?xNC zI8`l;<9Ww}IG;$88cox9N=(qaz%u+W&H$RHfJo7R1hhm0i2-=$A&@msH>9#W+OdUB z8DcsJT#2F@jYguuCLC{yqD4`p07Eehi4df}U<YbQ+WufyL59BOnQmY@HXbReb!R@v z5XjS=5G=P;+7-6_PNGoCs8Dq&IsqulisEXc{h$p0bz@JoUs-S=RffJZ?`fzW#$cC> za`$3G5fFJJz3rK(DC(^2X!91d14Ygd=ubj7b;;mFL4fr-$){+BWLPdm3YyN5YLXR! zz_2_>ab2Cg__>0R16jUM$n!axF7P>-;{`6s0>F;40-(EG#r6Z$)?nARiEMYc@(a0A z-h*o3cooN)?RLTVv=cb~wBzFWe7oxS(1dC0PQyPQm1!qx8G7agsE>M%g}3u8nS1yE zSOY*&2P6#)j${pvAypoVq?Y1f$}p0=pz1`2um9itQOGGOYL@>rPxlISWVGEK1$5XQ zCTODx^3bT%`cu)E{iev-O89gA+4JWkJ!I^)o=<MA_pZc-u3S^!+&Iu$IJq>iI+A@f zx8DEOu|MOrX1q0#ed2Ck9q0AhMsMr>qyCq_Pc_dg*P8>IpWZ(?fVBpGoIJ4d;jM>v zHm_~(yApf9`W1Cp`8zEhc{a){AN{B|UHs#hx!T6+)%8hTUs0C!*JJOky;6JW?xkNp z+p6CF>GA&6n_sRyxZL;otNao;x_WM_b$B`KJ6`A={$OdN9veFMAa}=Yp4mKon)zWW z77v@X?c(_pxE_mtd-<DM)>co&Z|4UmzIga?^4+hu?(JK~da%bwE_%gxo(@MLD}^!n JyWHfZe*oV(khuT= diff --git a/OsmAnd/res/drawable-mdpi/map_widget_compass_ruller_day.png b/OsmAnd/res/drawable-mdpi/map_widget_compass_ruller_day.png deleted file mode 100644 index 986f3c1582a87fcb790f595bcf914e18c18bfb45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18379 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 Bg<${y diff --git a/OsmAnd/res/drawable-mdpi/map_widget_compass_ruller_location_day.png b/OsmAnd/res/drawable-mdpi/map_widget_compass_ruller_location_day.png deleted file mode 100644 index 411e1078b5d706cff6c578593c049aee1c6dce5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2867 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 Izuf)(AJM!Y1ONa4 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward.png deleted file mode 100644 index 0a222d0a11bcb81a03d7e6871cdb004de34ea49e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2079 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_keep_right.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_keep_right.png deleted file mode 100644 index 5c290d77071fa09d7cd8d8aac940eb4fe4ac5cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2856 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_keep_right_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_keep_right_small.png deleted file mode 100644 index 38ad7adaf48c970c19adcac7eba25e42fa3909df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1759 zcmbVNc~BE~6wYuP1xM{MfZ`HGz;Tmo?v11vav%c%3?NY{CE093gk(dqLI7dfpn_Nh z0Tt?qSgft0QUwJHqvB{#K*XxW6UW-ZRIDc|FdDnzu>HgFkM7Lw`yKCl$M@cw-5eVo z?n(9`lSm}bh~;8AA(uN|4>#hQ@OMKvA-r*k0*}Kqc$U(Hl7wnZg#r<Jr52T=N_BR| zMKpv&a?aGnD{zG@ijQD=s?woDwdjomnnVf-wHTF18j1rdRI4)xC{J2XQvjV>KuKiF z=rW@SP1P;WF`;oe(eX%58Um{+p<e(Y7CvD>kK#(eqE9!N`4$0X+%BJ3JC11-U|a=H z6Hq3CQpjQf5oSUGHkAV+5Cj2Sm<q9ZOa^-iz@S5H8XcxVbdV15Av&Ky2PPj1;mxGh z@a1CZq%UG8prqoskx!##Wo1#bm{iQ9r9m(Z)94Hug8>p6pgG%sD=nbGykN?L7&Rj% zoe|ez2EbuaslwLb0tyl7L<)MNO!nTe!8}P6K^e`WG}0g{ou=12@*3AR<8t)hFg~bl zj?XrtG&yR<)|n8Z9-0MHV1m1kJ8~!z(ePtTI-)4bbTNjk)1wAFLM)&VH&nGw%|}=W z6IG%R$bnfbP{U(!K$wnjKvc;@R44~ht5oomoe$w9>@Xge35lc(Ap?RWY#|$B^0-o1 z8U}ONVJyxRHo{=Wl?DWz@~tC$Ph!J9isg$;s1nCa@femq)djJs7>=1!F(V)njaMBA zO4J$DSe7~1QKpHk#i&V_iK?Y0Ob?9n%-4M&2A+z^fi&X@tC=91$5MeR4u=bB)Lbr$ z$>kC0Ba}(J`v3ArBZ8tin&m&uGj&9Cq+|Jh6o}3HVL}bW1eu6Y@da*pkVsDNBE-UY z%dJP>$%?irKk2wvS9Q_&!>W{T&Lxd{h{|@Pisxifrl*xx97s=>2A{pv*=OsQax_Ts zaUb%==BSmnu%ci?oBhYvQCo-lbE{uJ$lMEG9__0?m>v4K`<;F7AUv3TPd>L}`@xoh zDpyUZx7w{rXg?HrH8gJVj-=={BwIV{#?1UxR{M3`&(4qB0wq`3*M(lw9y%x3BgR~Q zvtm1I#9D2YXf?S<VVw=SW6Q9+Pfiz*E6D=kpl_vUalw_|IgNfH*s-;JXWXjyTBCX; z`}Y4eU?vvPPb<Bq@9JoK6SHAwO_$ezczsVmg6P}X%-wE2PPy_srunr<(X=jp-e}C3 zWu3R9pT=%EG4mMW-R-Y;4?hw3lY5&}9kc(J&aQk}nst-8QuNS0uyIl9EK673O1~9D zE3Q=5Y<KGR2WxY6QN0Tl3BBQMeU&u<uKjiOk^6*+?ZMTeWUDsm_MKTrmv%?KA#t13 z!>*S$s%n!X*Rt*9HkUu;c`1*Ml>p2OGZ+O)jdGqn055n&?g-sr=*_r4vZd6M|3_)f zvjgY1KM%{8X9;SYKYT$esR-HRb;yhF;Rg?Evb5d0)o^B+RdV@m$=8qpTxkDVf8<SN z<Pm9A9OQ9QdU4zR--B)@2fQUskL!Q&nPu@Szv{rE<R#7RZs%O(Xu+DX`whYu?Vmnv zNI_K88QfMETVlZ&JeJ`*G9$BPThM&Z?>*~E^o&9FjS5ZYvr9E(T8qRt?!g}0@vi*R zdbgJ+m5M974>z^jSiYK5)E9%6(Vjy-F{jGgX1*oeasJAjFto?OZvIj+C!nObbslw} z?fIhSnf;QpxjorUNqOF?zPW{6#@5@lW2Y|{x~zD)G$6jcqRiiq^Z4GWvU%s7y}+|Y z>TLsHpRf=f%(;;J>zWM@t`)xZx>-|fTz|OMyx+Zi7{4~+IpY1&xV1cg^Ga3h0qubQ z5mj;*!D;sdwG*OBXg>aVgG-gr(T0oy#!x-Unbg!$yu+z~XqV%c6CsHf9}P>f{sYZK Bsy_e# diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_right_turn.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_right_turn.png deleted file mode 100644 index 7756a121f45e48c2174efbe301ed1ae0fc168e4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2391 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_right_turn_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_right_turn_small.png deleted file mode 100644 index 1b90789e77fb3b8fd4a57cf88f8e5ad73502e871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1545 zcmbVMeM}Q)7_WR(*VHMl%h(sYofvU?y}PzodL4z8UXf1Ql~R>COt_D?aMJe5^`r%s zB?Ha;7$RznIyM+iWXw1}W<q8rYLp2Z67>%wnz#)Ra2lg7OQvk@3KaK;@sC}ed%y1a zJ<sz#zvsD4Zr9S;s#jDBg<`fNpYq6ae(as4l*bi!jxCj^mnD0VR4DkQ2rUAIl@k~M zIRbPk@Bo^ts^|e(3PoZi?=6ywoXgFu5YW;w9c?ralF<r9R!%fTv*kd77*NUwE%4nF zT`<IR7I+om#GD};DC6_1MNnAn^0L+CEXlz+*-%#0EE@;_iH4#9e=uy0THp!0W_cYu zMqy||MJl(zlR*_Z-H=TX0Yqqx2#e!5lu2rF!lc&`OCTMF6DUTaIEG-j8OO{z44Qgi z*_+7u%pNLl%9p&ez-5vYGNWiD646HVT0tyDagroaOo!@ph^&ExtAY|8MS|h^aSId( zvmzgocp(VIEYggyPO`vqq?1<&gq+T4!@=-WqU4mJQ96X;S_};YV)vTR4oe>JB#ftO zhrLxHfO<e!SSPYFAHMl<u$;SRJBlgF(U{*8d6^X2PYLY000>GB$^y$@v>eZwSp%yF zG{6xfX)qu@lfj6P7;8iTt!Eiv#5sl`<942gH|0@Ou8kz}Fufhe?L@B0K-sM}qmIy< zbXEe7V;#Y;L<d<A_sz?`r?7@+V$C)Y(2^i}1;HP$0(Y4p3E?s!1lep8tV0>A_#h`l z!i!=wP2QRUB3}u(JW&Wh6L~iCPl<sbIUmE3G?IyB;)sqgun5T*fIQH8%s?0kVDiCJ zc<%q^50!&LW5x2H;)x&06&YJjw}QNxZYB_vJ4lpUrLg<YcNL0+MGng9jSk#yaxSI{ zQh&S)?$2XN>A}F}`okrgjxt{kC6*m!^{;-o{$5II^E<t+&D-~LJKGyK)cdz>zclO0 z<I%G}ciwE;Qqe#5PxC{>cR_l4By*(cQPzlSu=<M;>|}%Ltrket8W+YrH@P4#c*e%s zX-U;k)-LrufA;d;xetCx<E#mt8gJ?xrl{(6txJ2PzZ0ppsJEU@*jS+?FSstMdlx1? z+?QRaTQKnORCZCq@q!nnma>MP`r;)g8Z)#<cFkLMaQCXis=cl0`Dg74N9|&4Eb?aN z?Hd{2AFABznbSRdbTm28lHz?#M~tVMG`>Fd+L?Uwcw6!HkM}erT`sW_P_p<qz59U! z`@p$|dA($fc0V?lb#wPiaO1V4KII<^N>`_)uWdtYL;kKC8udUO<*U(L`e;W(`*54{ z`d5X@^Y1^>)yz&wHx4iCvo_VHk7^qelbss$^!lDX(rR|@Z<RUU6yzuoVi!2W`@g=} z(wL+o_wD`c_nmD`dW^FXIm%m_W=C&0?ekRkcR4=|KHtdRx$5rwHsj>j3+}&`&h&k9 zfBE^2#A9jp6Q-@v=R!Yp_SZC&q^NtnXFBFzDL<#arOFuZKG3%L+PK%Y;?tGMuX%D; z4qdJ77(Z~lb;h}lj>O>ZzXx}$ctTGrq@18<Tg9*U-)J}0O|o;aK68drAuYRH>~8Pd P5c@eh>@Mn1Zb|LGC}=76 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_slight_right_turn.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_slight_right_turn.png deleted file mode 100644 index 97de9a60fef095ed55e479268df47164f83aed2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2606 zcmbtWc~DbV7Y`8>B37s(;6{uf5XtgF5=bC`NkBqnDT_q0KzMmTgyh8}ED4b!?jML0 zkV30~!>1t7idsdCEaL)$6c81qqJk9#EQ^9{3bro_e*MGgA79VRd-vRXe`h~u<{tL* z*}Md^5`#jamhe2e{>WOS{qz?i|FpI!0<xGZ-1&+CI8u=ykU^+TLO24#^2CBD$R832 zmAjfCXB28dyeN>b;CpXjg0Pq<&|-**VkshxLOHu8N(EpHq`*c%Q6dQoH=?P-VMRg~ zE|}&`_Lg#>XpyH%1_h{m0zp*_$PnUOU9irHOhkbgQV6h#;#i5CnaIL@(91-4?J)_5 z{QyzKuy7xp;(PmHIj{`E(ui~d2mk=qfk6alj`kFq9hO1{Xe2U&1ds`2fC-S96f$;> zaELXTFp}xd^_a7T>{z&Hg+j_CkrEOThza&YSQbSB7z_r9Od(My1O!2lD<uj+B0(Zw zKd*rc$w8S&st~~vtX88S0*+I#aEPZLLl8^7y+0|I$mbG;q>Pj(kdgo*nIsl#<NAP> zEBvAVx$#-FJWwfxNdAx<j+22%JtEi73nRJvXG2;b;tkVRCPIoLh~>gyoEVZQcw80^ zxgiQgLMBKB?I8gK5a<jll@RGjr4txrkWPRE_Fx1=2ZRw3jCnnulXvvsa@iaP!-H(^ z4gl^nwj-76zKKJp(Ci&4n`pqiEKed=2qYjhZ(D@eo|AR_M_DFE1_>0fED(lc=exi! z8dkvaXjqEna6VKWYZEMz2;l^|t+q@bqvk>~Q9LB{kilZ?hdeVypYegl5JpA_83KX> z*#RI>XjG8Eh@e8qPhd}`(&#kEF%mZ?FZ_S=M?#z;X`AJ5%`<<5bflL3Gz!S((=b62 zWP)VKsFV_3;8CcBK0NNGz{H1xCqfPd1(`KI$Z>bTU)blhu=vNo09}r$4W_w*e52pX z=*^w9_B3~3{L37+fyvjL+HE{5s>w-r!@y`$Kj7XC8_mhPHw`b0`oA1_$B&858aRGo za(m3k#rQglnf>N%zx55$>Zb39zEdap`j&T4P;tBTIVgREQV{x=%)eHE*cXxatn*AO zC@44=R)Ej9u4Yq$C|_G-O%Z1{Y}=^Zdj6M=ofo^ieU_#?)OF^Jo)pR&H1^nJf?K__ z-VS0laqRJL8<M?Wn2~*n;(C|W4LHlNOVn@+mreC*<=a0im#$uLI?1r}S;m61EsEe= zUgSAUYp~n%<xQ$4gZ!a}wY<XKW}jq0ucYNrFOeq+`rY8z+43+)eE1y`X-=c%g8ad2 zRatUN&6~xidm{A{OMAsl>4x!wjNT*dBqMT$QJgeOc=5juPoJuSDe^%Fqe=!EZ|b$x zE5l1#I&o!xqp7>D&^XI9W?5*Cv$9fc$NnK$XR|VJ)Q>&V=T!A->RHd9MQHlba;rYC zFD%~_46pKa!H3K7MHAvDf><~_EP_LQB#CRqS;9KwH(^=8@HT@l+QPENtbV+O@!YJq z5*?IJ8t|QBxperrobGYnSQO881@FM@PJI4`>6*uT`TKgW>sForCTg@lrMfO#9ayi% z7ZqINAD>b<<xX1O)hMwh<lV!$6-}PCyR(uwxw}gb7F)HgN>W)_|I)1FRGJ^Ky_{>C zSaxpBdQ%~NwX0`q?%?2r!SMsUqiL3KzVq416Tw`>XO)RGx7WmB_C*5*9J%f1X|`hB zfV5m_6ELlKy6foS+xz#XbVy5thX;OV4{?>PonzTgqs&hC^as3Z$@>0?xcn?;_T)?N z)QlySKUo}^y#a1M<8W>Hj*Sn#3N7<<8EQ`A%6{n0b?Z_WRUk2_Hij2ENnL+VtvXY< z#V+S6_<ms7y@62DAI|Nd#)3y2V@wpI?_Y0fc+!Erq*fW<e%_F5cj?iLh8GlaDs-%K zBDrbDvg%n2o$JMShsv{Tjl;m=b0^wWdJk{WkA}Q_y)w<Ru)%fvu`hY=ovacc1sySK zA6_=ZW?XgKGhKV*j~PowEvBwCMUXEZ95)8|&>)nr>PmCfs9X1B1xc|luI<H`m7piC zSZwbvD`|{ayk%N`XjU(5<XPsy$Tf|oO{oT#?e63_S*I*2G|8-~yM=CCzWPAdV@6$O z?5+~G(500>-PBvLwtOS2<)+eYWGp57Q5jX3(A<|*o?bJI(|y~wwiX!D6kb}@weuoN zq1Q{@vSWouCaiLsPVc(!cd*fU^>(BrGnmqHe{spujti$8;_l^^e5bFG9S#XkZ&X#0 z-hp<qGbyk0Ec|N44e!6n{LXVEXoT<T+&cN~u}3R7wGy}b(SG#0d(X2~zRy=}`M&Dn zc#lU@QLicJT9(v3)Y$Ma5~<#ufLEBw>x=hHEUxXm@fyTrTu)CKT|y5+j9<l+ihb=D z#D<o*uwHAN_V3)6qSP-<06LArU!Pnw`*yNt>nX~b^ZHGDtM_cJO)JYeYJ1t-<drAr zn>}?2KVWNG)7_ncpWKhhbG_i5=Tg0>JeL$?RB5)389@IkG~C9x(q?lWc@0UWdA!@u z8olEA$|j(oYwA{KGgU_?CO>)6ndFMp=8DvDiyFVizLg<08Q_0HbRM9~d(@1!02ip# zXF4x+?8Plq7ylX=7ru=+p{@<xLH$+BtIsYEn4Tb~>+=_~#$~7b=ud=Z#+7z=(dl;= z8Lmga)$iX+C#hSsP@hTl`;`ZbbawZTtKT!V%&VHV?hRTduXlQ;#c&<^ExCPcI>el< zTM<xSs9ogg@xVSrN85?v1d3XpZ>=#$>sDmf80w%A(!Oy}^UNH359MHu#{d1|69R>1 ek4=T7=%B3MWZE5iP<&PUg5$aSaDQfpr~U<%%n{xI diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_slight_right_turn_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_slight_right_turn_small.png deleted file mode 100644 index 81a4cbfa6840459e34c8aa065872b790640926b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1662 zcmbVNc~BE)6pv_B0(i72U<KFcC@9$@$woF3a7ltj0Xc$zZ84k81_C4-HVX+EI-O$6 zcyt_EMMe-C>lEWLRuPJbl#2BzqEfY5wN+{Z+EJ>-8MR8a8zi)UIQ^qLZ@+8b@4esm zj@k98DNBO{GXy*yFG#aYmCnt}yzj*E+?Y9Vcquo9vFdC#gEq2uf}wc0f!0%i#!Tc< z=@eloEB=m(<?+UrnzY$$c5;%Oq|G4V)d3x5D~IOsV&ffFf-Iz1Ku_hFEDGU+whkd+ zGAM*uXfm8^RZ{t;Wlo05aHeQUXCa9hgz<4etV7NjFjFi6ILt*Bo7|xg4%?M;Yws~6 z1cp`ELWS@ZsqExbKuI$cfPyj+i698D2m=u`Mj}R|0WplA5R5?xEP@d^0?WlPF!BgF zZ;ZhxPgf<5_~Ld7VLr=R<q%}I+d;boq?tSj!7vPh#gJGm;xt6IG7C#ML>Ai|p9K|V zBN>yGHPIHpYmv~?C9FcoF@1Ffvo$$+)Ud@i5-2WYkb|&72na)Fv-e)Z+BP<w`iI7A zwQbrmD+Q%fHoAl%xqKMs_`qE3{@amPkz*rY$(XpL5Jf7QEHP6SR-;k~xi6r>WRR0m zQbG|FB9dWJsmK^3m5DHzl!+)pLh30QV$ka`pPkp?F&Gh}GB`02mZ%X#jV8oMRcc%* z6QhzCF^(cWtj1zv2@6U2e49AmBUtr+V&zJPB3PQy(sYrp3R3fFmbT^7RzRs7&N>j8 zWwID(yDiF_rdPLCQH-gSG9)sz85oYU-1Hg_C}uF~4HzL>1TR8FVpK|sFuj!G20{W$ zQ5j0b7=<Hv!~cyR#F2u$#qzJ>@f~p$>0OSt0=F4$Cd$Hf5W}@f#CXud<N58-sBo?0 z`u*AqE2iV2r=JYGhpKnEX7%=|mv<I!an0YHQaNGGu_%YT!&O%UUYz~VqmJB}5fK~4 z-qTH7{bhZEzaSwEpK|u&ahj%q#c;rj+WMUEpSRgNCYSg2)n6;ii+|qTeg5~lfD^FJ z{j1-!)G7QlpCFOzDn=zVScQ*Dpx|@YCH3)^Nq3mmyX3-9zZSf@|6sf>D`WoT+>eMD zNAHvJ=Z`w$@WS58zW(<+Pd6_Q)9=gc>3=>aWbQ!V^_r=gUH;{~tD@4~L2+HxpW?Uh zkf-K7?NO-*nlkUd>B!ey>^XF6!|bi|WQkFsRr|D#gs;z(ZhCydhU@pdbO?~Cf9?J7 zkIdBY&@nHg&*Y5xVFAvce5bxmH}j{)%QxX4)3!Rd;_bQ{30G7@el@qtpEhk!@JZJx zeI4YH&3&j?yW{Qd+I1Z+{LYC9_*nmy?{v@K)w{mord!i_1aw2cEJtUz079@LNZqdJ zx!>kmg#{*kJH%6L!1|9oqmy>e%;LX0W@9B|#M7Gp)Xu!r-{!hn$*AUCE~xx%XeZgQ zIeIlHa8@lzX+A#p<=vj*`nZ5M?2p$3d6L4q{0;3bgAEV29ca8)5%JcUoW`N5=v7rK zRtBG}eldOqxp!k<Yk2qeFMzCD1zV(yU+db>4wVchhV<+VtQ{AQWM1uCxZ~WTU{9AZ zGxq2a`rxb^u@5%23f+sHo;}Vr{M?4`k*smm(!SfLiWgQ#ee(h4&Ye_Wp47a!_wc~9 zuA0E3yFWQxq}+5txnG^}0z7xV6>#Td<eoq3s;eDr-5;=^pev*iyjzfT?W<!Gx|&>P yXW;l1{>hWm`B+4-=h>>YVZ&t*D3BKqh3I(O2i><%1uu#8{t-0l6xD$QUB%zI>uu`* diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_small.png deleted file mode 100644 index b014067f0348021372d372ccdea327331b62af4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1477 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n9DLlB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk&``nLQqR!T z!q~`EN5ROz&{W^RQs2-(*TB%q(7?*bKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD<cE0=g99h1>#PU%0_}#n6BP2AO_EVu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9 zlv<o$T9gcok2GbNW?<Oiw+N&V=o%~kqD)|<B<8r}Czs}?=9PH5*eU^K^incYtddQV zjZ+g-4Ry^dO-yvtEKJOFEe(>*bW;<Jlao@-3{#SlEMewg({JJC=xpffV&-OG>}qJ} zYU*TR;^OM)Y-VI?Y+>YRY6#QonO9trn3tRivpW-LH&m}FUcFY%MX8A;`9&f5`8lvu z5Rj2yl3$#WU!dUZ432dLjquF8l>G8yO;9vJeC?82lv$RV;#QQOs{jsXt4u6zFttoc zOG>d!)HOFSH`FyUHA&XBOfpFY5{bqJCZ=YlsTOHUQ2i<7hMzvrQTm|7f|Ph*LckOW zV#2cmkOR+5sd>O0R0PZ_ir>5K7#J9zdb&7<RNQ(q=e#ycqD*_Qj0XD@<{}3VuD6bs z6Pcerc*Gy@Nxq=y;KbE2e|{*(sIs%GdQN243)183;$}Cs%irrIZN0fH?fKl9&x8GM zzdN_*^S3v@YwuS+-!Sj}Z__95uPkD4<Zu#by5k#rNBo10{+oq&A03#Zly)R}#^gtF zt$T0i3;0d2d=cSu<9mD3Emp^MQ*J!sw^R#Gy4Tvb)1c|r(cTQLUw>SAI-c+8U+^~m z$&4)>YmZc?*EL#jo|yB}iD9$nH~W)9+1r+06}xa`vV_R`O6`qj1&VyEj=0@Zd+Ax2 zGW~miabxULzfT47R}|K{`p@*e+pYL<;#Z;Q|Lro9<2KIvDx}@9nQNQH{G^bWv_ck1 z&EKN${-4=def5U3nqo#|kIRKV$yV=3ZA0Vwn9g4vvuec;r#(97)G6s~EqLl@9B29I z9lixo7o0Bo*{<rjy)8ICX?xYn?v+2SzwWnxtGr_Kk#c^;bNZz|*{0L(?bxgqc4YQm z>3ssvA6?0FX>Kc+ez(8(X7z%mxnHDLZ=ALB!vUQY%yAbU_pN#NELf05kpmof0xb$G z$ebnxxQq)(4yFvkIkC6m53{H;L~GD&eMUBhh!j?<PaOhHpn}!Y)z4*}Q$iB}I#3YX diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_turn_sharp.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_turn_sharp.png deleted file mode 100644 index f3482f0c23417798500372ab3ba7c6e648385994..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2308 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 OUlJU^V^{ib&;Ab+9fgtr diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_turn_sharp_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_turn_sharp_small.png deleted file mode 100644 index 27bfb349b9fe73d9e778f43e2b5487459a6e3a66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1560 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n9DLlB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk&``nLQqR!T z!q~`EN5ROz&{W^RQs2-(*TB%q(7?*bKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD<cE0=g99h1>#PU%0_}#n6BP2AO_EVu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9 zlv<o$T9gcok2GbNW?<Oiw+N&V=o%~kqD)|<B<8r}Czs}?=9PH5*eU^K^incYtddQV zjZ+g-4Ry^dO-yvtEKJOFEe(>*bW;<Jlao@-3{#SlEMewg)9-5P>S|zU;p}GQXk=*U zYU*feXl!BbX6fc+X=dtVVg}RenO9trn3tRivpW-LH&m|^UcFY%MX8A;`9&f5`8lvu z5Rj2yl3$#WU!dUZ432dLjquF8l>G8yO;9vJeC?82lv$RV;#QQOs{jsXt4u6zut+jC zGfV?}IK^1k)WRf5H_6P*TsJMn+}y<2+ydzRWF@Hn6mr8)ALuB3P+~z!JTM_(iUcv? zSpmp_XQtFVU=At*W|h~{TIU!Tm@GV9978H@y_w^y?Gh+)Ja*ZQ6*tfHO=;b}X2XVu z%n_5Pvu;vQ-5pucS;HEn<D!#O!yM0$s_Gh{;Mv8Rwa4Uf{j0up*57m289$q6{C|1f z?3u;>&;PtLes1%;Oj>#J$ti|+7SG|*=xBl?2@w}ZIO5@2qyR^3tbqbh)XI0*faUH3 zh9w7BBNz%lTW7X#ePjwXbS!BqHx!XBU*P`iEQjen4vt&p6OvQ;ulx&la}T^QyI<iT zw?|V%hoygW_y%sR5RoY-n}sh-ZI_u?sd@VA<6YcBOAd;8un26)+x_j7K6k0Wl&73N z6>pAweQ@~Uu8l#0Q=STJu{=|Hc<J7Bv6mViA6Tb3-kFo$>-};<s>uq4#W(aPEpC`> z*-%})U3lx&Dek+yFXVKc75tK2GmG=r%;hg`EkDa~<D0O^*UdL{CD{0XR`Fj*)ANWG zEp>cU_O3x~Lss6$O^X<LRuzbSj;dLodpMWfeUez&!JT_|ZR_{ndR+GSGbS6(d8(-w z8~h|wdRrm`m;ayPntpAm+gF}V#}-GP|6-MUz0zfIxY){nE*pi;wAeh2PQG`x^;J`t zLwie|%f%b(Z%dh|6q*aq>1w%{$}9Bx*sLdZ(GK(V>^J%b#5UAT-o=rn8?e9h8-G$4 zR}{<U1za^=I?~gM_(}!s&)&DVd$mdKpNREYaoeP&CN~ZCi>1M0BXGjD#1HZ-W<cZZ e)UoXh%nTD<&lEU5VqOd?t36%)T-G@yGywo66)zY7 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_uturn_right.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_uturn_right.png deleted file mode 100644 index d259fdbe3db411b3ea9d1bf3c23adcff08427981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2851 zcmbtWdsGu=7EdGwf{3KH8j(N@g(?#APDnHXBtdbFP#y&zm4sv<A>=_aKtO0?QA$9m zTdF8X(O{KoK`I3;h=7PfHA+Nam&ZyA0u{va5V1Vm!Af`coSy#CopWZs@4IvF?>>KL z#t^u3>vC&*YZwf++<zM{2wG1s+*U~FnRP#!04-}kemEGciUJcw8UW@aQAGkce}yO- z2m(Zsq_}2aGYn>tAPWfx!v#CoVwJ)}w4mdmQ>Y<p7;LkbPAwA40T34nM9Y*M{Ilv> zJWeLz;KS$wl0fYXNM+lSH9&Ck&Jc03T+EW-y|}o|IyMBL06-B=r-)T***XsXH7*<4 zFNleF+-nt3&cXi{RJb4z=d02HIJyUeASRQ^I3~-3O!uTx=<YZQiA*PwSVS_3Kq9lr zBsPVFdvoC-ZyHGyJBa7^#us$r;H4m_W)q2tiHRPGR1cLVnn-4`SVR(qNTCoQ4T3gF z35s+CrPg^7fd^>C8kriDsg$?{L{X$F9^~MmNPkN~p%w^!2Ucp|6bdRCQ72Lp$sQ!4 zLa~t7Yi%tU1pFtAKh)NSB&h*n5TI4XYs64LqMR3vq1yeqqXk7M8g_t21~o+#%TtNt z6@U`-=W+1R8xM(0!WPrSR6qof2@DpEMu_sHF$gS@m_YzURB<H0AWI@6S&KM-WX~dz zDRc&z>PMpT$z(o#izki8_wi*==u}UN51qVd>#x*;BBdBu^euyYzp<tKsV&=A1BgJC zCPbx*U7UhIsR~qSr7AVf*Y|bTaqGimN{K2_yJ4YCzh%t>G_nLh;-^t5aIfpkmi<8t zbe1G4Qo<4um?S2dK%vvb1Xd&sfF2?$iAHD80naG>8+*xLtsfBzinuT=|1~^|B4{EP zw!c#WI{Z#1KnXEO15u^5q4OLJX6ftC^9j*)juh<42o1&D?r5gaHo9HT?};6MV3$DM zKejGweVGyAl<Am!xhd1{u*A*f=Nps#N4E%9_@1ze0ndz_ao=cMMhogR?I;hj&uc*y zIc!di*pJ2Z@10`FpWf-5d6DKty?d(sMd$GB{VVPJX7<QKFSK2NH)Zw}FR9b(;cya8 z=nb>6!q~wqmLL&-S!81cVOcB@de`Y;7&{UUhD7`yB8(kwZT5NVyx^}x9(bBU%noLE zGtJC5HXDQaIV1A<x3F(7H%w(-e@C%8)vdGOgVd0Vp|#J4XY?3S!X0YBcY$D*G_!B) zBeVjou&a5Goe3ukIS-{-{6xdOfa0c@Tk*y=V=BhZ!Yw!BxM381B;f0zSDE`(aW?*n zwm9CZ@BDaw(B!uCxu@@&-OScqpWW2EkbAMlk5<fWDilmK7)?nOTmxzTByP9dYiI+@ zE%!K(L+Co#ol<Ym?{n^5YV6>J_0L{L@~>olbPnZ_4Q~TghI^>~2ev1qR??%co+(jT zl}HKqaqOOfVd*Cg+4|fpF3lXAWoJIWu_NpHS(NR4edo8Y-i>CiEhvisOKO78p==Kt zj7)1GS6pqY>XdJP$L1fbIe7Qe$~4z4*Swubhh4)hPcm0ee!iMk&G=RS&$WS0mt<}a zla|)>NARh9=SlcP^EkrvqFU+=UaHyP84Mba&2ziv10uAzGnAo<l5Hi7HgoZ}*=PO+ z@-CXnLChe-j8de4eY`7~l`esfHMf42O)t%<h_0*n(n~7H$$Pdg`|g$7<GU*3WtgK} z;Vk#G>(Nol{P@fEtkIR&ad7j~{OeMqB+Th>XGU!<SI7+?F{cFVDsmVP=bD~ZcR6-h z=G9Ka8b~iQ^qtJs^N1Xd!}yx_RW};<ZAk8Jh)W+4G^6pt%I@Cgl;L1f;rKyL?#AT7 zRPpCa8}(!1y+2~S46D8hAK*`&D(yDF%LiRo+}5?wFx`R-^!}Y;%5y7DD4f(6;tE5j z{w`Je<(8QmzORmnhia8Np!4*LNPqn7jz3mdXB%hInQzNg(c$xiN}FBna3m<K>YIuG zvPqi$*r@_gi|mniZ980O+@^Z^wP(}w%gDlnQ=`-Km$d5Tn;af}yb5_YI|uuy_C3pv zUbdso8fnv^cV=Bhc2G`z5mJw_j1BcUmMLEvs?luNSDF^*z5eY5ioE9C<1~f+>7Mrw z+*8)C?dFK<)Ge|TRX0a{UAN~rG0ZeLR?==5-!u}?_GrT~|FGQ!qBezbaA0-*(AZa{ zt155vCW@If8m&)Hs2xjMWBHIa<GC^${LHSP=KQh%<rRAx`Ge~*2Rv?^-9@f)=s7m^ zq7>8PSyFrGr}85hQmn-&^~chi6~QU(N8k;NUQtd_V`Eo;@pP<1V!dc0wGMdHHspjM zIWUlWr^2qHP_?M`FN#&XLF5OA*x#q7Psg6H!Z4~1-@XjHQvx`;E=hNS%i(=gbK8NC zLR<KUfNIN-#VQ!KZx~g4jdQN?UyT^jX3&^qH5^>4G@8ounJZ}ZKJ<F}B<dhHd2L~9 zOl#YBlZNKR3a=K#>SfrlJq3N^C2Qndyl@PET9Y?qX<oy+NU7;-GmLzEc+MGJrkj-+ z53QfL^@G^772zI*2mv3rUphQ9zV3QUMz`YDH^ti#?u=i3yz+|1-Ake&oH%FUkwpFk zrSw9H>4%o4XiOOf`4C|yQew?u*-QIY$$e2?Z)B0vtatjL6N${c=DK7Rb%|S^OOaTW z6I6=tDdc_n;S_T}8eKL$>zd3>o0zJgIHAiN(19nVMZ(?Mt>BlL_cAthKRLv!)13Aj z5{#wP#NCC03qX9c^cYQp^kSNyy!`gbr&i&P;5Lc>jln?XbIc36C0XcWK4gv%{4$-t z<GYvH`<MBy+<Vpas$UQ*?Nx@y%BRYWk_U*~?6Vr=Ocx#UcnTdjRzNKdb|=1rjje9o zhH!Veu0`f1MnYL8IiEJN(yDf44=3!|#4q3RX;(HHekW^Sknmi6%Ek2n=NU=J%AoTv zqn@3Rb_iY(Yy|2b^Ly<J25e#;wl=OWn946grSH@tBPgT!*tg&Y{i`Af@1C%`<`L-g zF1E!{!y%*XzDUp_3#UX}JPxgPkJBRKpU<6iO`aUELEFXLG_6Uwn+p+Ji7v~?ZF7tM zMQq;Nx2`AC%IbOXW1DvEp(}f9uRcOZ$4sW(s57iI`IFf>)>>@vfs(2pjwt88y11)H zW!#!@aR==Vp~k~D)w`*RYW=_881J8E->ZWy?{5mk|D-s(@Z0Lo-^nZ8BK+jv#L|J7 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_forward_uturn_right_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_forward_uturn_right_small.png deleted file mode 100644 index a65c919bd22909ce366ac43218233df8060b6668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1746 zcmbVNc~BE)6pshUA(z*9AYFrFMM-uyCkX@^31}*z;gWciVY9n|2%C+`0tr@)VW3iK z$1;Fa(MAxh5V5pq@v2&dihv^8DWgakhe$_Zs4}!jb?gR-?H`VRbm#4N?eF*A``$5I ztc+jl<F(j}!C?5v*U1v;d7bn1aHq$V;qTYd(;_NHMJ16MDi1N>3@JvcaX?NW8F(U& zVCHRYcm#tnBUhWOqEw1FF-j6_#ED^>2tCbaFe0K%dIZhFDL{>9Xmt|i$oWf5K#NJ3 zseA>b&`0B$+I9H`JSjgu8O_f^MHn+G5{NK~X$1sMA%Ka<))~bn33F1fm|i=NK_)N> zp|T{**G{PvN+6mv-~gX3V4*M!140oS=7(`P{7`@c!F&)BfiT2^U@;7dIS?@QFllQB zOe0Q|#ZK9xcM@hMMd`&Ln3tEw&f~I4Lk0+oL?RI4fE*5sMzD-#9fg=!I%BX)gA6yK z2Cbgbk~+Yt5mA#ll!Qrp`uYllUZHrSSZACH6df|qgy=z-4S@vVyw@b!NG0O`y75-D zG1;ug!9?6h<`_^qADUnnnU3AN4LO0dH{y>BS~@96wv0q`2wX?WWfCU+g^g)3G0H=^ zID*40fr!UrX~K8{mIy)xEF9sYYFq$gYPHCv=WTou1atTTSQra&V_-Ojzb1?)i;+eP zIDBpxN6Lp?T)ECjAvzRy+1Apwr?`T5a>daG9HB@<GD&8;sz8}ZQlv4H)C1AclUWB= zrfPK<nP&`frs?&qWw=3`i(|0{k^m;-EY`lo2fhf?s4)@35<)_l#o_Z%mPpOR=>g$F zJidUBhiRBoeC+?m52T#}oyGE>;&C0(73o~QX$5-orkQXZ-9ZMrRSNM{MGVIDXL6Y| z*>rE{fFx_abY9WOM1Z0uq3fsQRJE5|g7nqyV^D4ShfnJRq%&Ee%PRt=Tj%)i+MVvz z(&~42lT_NYZ_gZAF}yJ9gSqn?M*0^u_x3(83J#9l^c~rK{A~F4+`o{FM;*P2#d~A- zei_vMjm5fh&l{0S=gC}h%?5Z?yF{(@cT4bh%i(OGCfrMxH}W=nx?fKFc1gCo#4zM- znsL~&z2A47xcK8lPDxgmyi7l*=t|T1l;E!is)Fim9e;bPy8J6|EIU>n(iU*Y=18|& zDmSz)&zNWJE%+Qf5_rpW;Aoxaxh>YfTjh1$VpVnEEoGWiemv@7nYOPp?9}DfQgBey zyfefn?#?GG3m=BmR4vl`X3wfGT-tvj@Q%7*OMB2Xs*#NzGS0Afn#%ayvF+U8U+o<W zd6{Ks$l19yN2T>P|8qT&SDUw~g5rk#yK^^bh05BN$81OQ!HG+b>x1{wR+&0&Gsjl{ zOtP4RgkyZcXy}s5yr|zIGS7GllR5|E?$=h0dfUH?8(rqntphe<Ta)_g?n-+hZ+^F6 z=*7Vlhw%5%ao-hJc0kj8Eq#Had`DG48yr$NaAaYt?LAw#qi3@+^_k}MSB3k>Qg#*e z;equ_Zk}4*qII0_X?ax|ZaH0fMt9?JzTf&DZvMchhn0U8e0Ep5qu<=BDic1!R^!Z~ zjU6pndc<?oCtTE+(%n$8eRl4G3*{N<e&ci3FCDll=}LH&?q&$o?hmf0ZB2qU^}k3k z7gVR&bK5Ns_Kz-Dfu$cVAx_+09ChXC0b;Px+_KA_a?={KG3JS_skx%&(b+n4@wTYU zrKV|ukm0@pqCd-C|GcTv?R}r&_@iyb7fYUBpYV8i?w9o)n;RNRF4|cy_C4nIctvit zs)yB)krpnoGwNiU=gE@t39EIM;^QX`V|!;0Kly@lb;lp(q-#T`Uf$op_w=eR^_7hO i;OCa0Jn=NuGL7-_<!z69-PU8yzl=O4Ue>TC-TDtwnV-%8 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_keep_right.png b/OsmAnd/res/drawable-xhdpi/map_turn_keep_right.png deleted file mode 100644 index 7277425cc1fe94d4094cf6273945787fcf95bec9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2706 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_keep_right_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_keep_right_small.png deleted file mode 100644 index 54247bcc2561a2005f6e3515a88418e29a097883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1747 zcmaJ?Yfuwc6b=YMgIY#GEf!stilA=xk@qTKNI*b9BoU+2Dx2L6Ng>&|Sq-ldL@THr z1$<FQC|ap#ErL3=4!&lDGLA|qIzp+ow&F-f5yeVtk=hLq>JP`A*}Z%3p6{IReCM3m zZ7Io1CW!(?0)b#se4I9wU*lZ&cp?8>(R+Fczr4@I7&skc;+zCa3)B>2q=9%VkwK@@ z1eLSyD!oV`7`MfuH*kieM4V)-V!~x3&bHclv_P;ZD%(zwnKTC&=?sf40_<zN1OgT+ z0$eFeLXzwn+H8r-Wocb*vYyP%Bvlj`6$vcL#(4);nj?U0YnIJ{XGeg;esTWYbqs^R zunCtL0gjL|B&7fvhNS_SSPqdWiUJCi7?mj{m}~)nA*c*SR4|G_2#TW!jv>J41@h5Y z%7mwCV@G50y9m(CadsSrold9NDG@Vl28^myDj30F41;(J$dO~?h-}E_2yuJR(hicf z*f|Sh16&>nBeR~10C}b(DOl}ENn?&}j!~g_$>40l4x?fOwpv|z4O=_7RQi7!Z?$&l zbL=#nN;{bKEXmiy6ygT++PyoF%aCV-FJmoyQHU%pL$0^dHZEQp0rFqOl!d}cDJh`| z8inL4sT49PrE*AxkaCD7B&3m+qm<F8a{GB3UJ<QTV-k%fR)MKeG)5LJ!IVlg7LlOQ zm=r_Du<<qrN7zW(9oxdk9>qq#6N_tDn&22#&oEi;E=Vym9OE!Ec0i*Ut~wC5(qf|+ zrz6}|rje|*G;7&FQ?V>#1%`FTEpOpK$w@+@KuCz9WC%pkya<HMD1j6T6)81hG6f|? zz)?K)hJGV`%AfFg*xht+B`G&y1W7_Bxq^mJl$Jp%C2fQVr9>em5gCOj6d=q~gk7!k zMk~3G`2KXgjtvIC85=Fy#?KSW4^F$bKTsg>d=Rfy>$AHaA6#e-Q2TGqkUjf!xxcop z`Y?!Yf3_`sPKmKB`OM0Czr;gfC0<Zd`*e|!4DK|C%<%VBXC0mvNrKD$W*fYMg=;?q zJ6_x8`rT^GsC)9bwN(|BzlAcvSN2Q(YQ1hN*Ut<1@>u1%<BPqI0RcyfyhI7*N7i&* z&TJdE`lFN2E1No6@+&ugA*d>xHaHYgKlxR+_|FT86X@+hGeU|_iMTCDz27`@aF56C zg29&=ZK7Y6o~(8hlxZxU8KT)iL&E%f6}?igtpniqQ3++btiT>`$LAZF%h=NuUH%K7 z0L9qs56T8YF9`4W+z(p&#K+)Ul~4<mvxg?D_Qcw&&M)o!<Z(lQo{<;cZCKWzs{Y}k z`t?#_ZxIXJ4&Trp)tzE0oZ67qmS&gisF~S0(e`k;I%mQG>g?1VSnkV>^_~-3ux4Dc zN3+Uvax>Pvuc&1pF67!oT>$ZFh(1|;dRBKzXps)px19}ae6gV4`##ejUK?C2!Y2)E z4u0BNx4G(P%aZego4PtiIA1-}VCzudNXyMQk=M}hvT1z6clUQ1oX>0GG^>QGZ%MpX ztLMe>D*jQ_o;<BsUyAB<UBVjQ16R)!l!|NjTKaa2Ybz}Up{x8VllqMR+}XRJC#+&` zdt|zE5cIZs3|2&TB)%wIa}dC9o-_X4cx3t<vH!zOk3xrD6|*h+zPmf7Xpa_haONh> zuUFc?4b-EG%f{l1`xiUIiu#po&4t@g{ng)2o&73T^K@5);ku70FX%zr-CaS!St-v? zRR44@;B;`!XNA`4uhWVR^J}lDlbh>m8xsqkg_k6lk7_QF_fAcaMjq|V%|F+|<)t5A zwlm=0xjr%aw%FoGpO3qn@a8m0?|YigZ>EQr<jv|i9<I(8{XT0--#&3kUiX6<POYmL z*wyYW!%tMj_$FL)>dO7+n6=(9Q~0jZmx@x=9&>+uy|~7`tGNMt2nG42F?$}ZQKz_m OGx0IW+PdiUqW=IxYK+MM diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_right.png b/OsmAnd/res/drawable-xhdpi/map_turn_right.png deleted file mode 100644 index 84b2fe994806bac07b9d3dd5b044ce41e7037b90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2471 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_right2.png b/OsmAnd/res/drawable-xhdpi/map_turn_right2.png deleted file mode 100644 index 28faea75f122d2d771cf048ad1c878c52ecd2117..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2376 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_right2_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_right2_small.png deleted file mode 100644 index 873a8779f84a44c500eea22ae1bc2b21c22900f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1604 zcmbVMdrT8|96yl)t3$>Bt&U~K!4`G4ch?ua8?D1Wph#V<RdE}H>)j9NpuKuMXzSET zQG!tyaT;|nLy-nwaT>Gvf(Z$mL3GN<rV}I1sU(ZeN2YVcJ+466{xJTr%lGd0`hLFO z&+q%V4c3KuiQ<`J2!ayL`39RX=11OyIN`hG?$JD9n86#1_{D4)@1r;X<ua@Tz-AX! z4s3v80xNn!4g^iEaoUUcB1<7jvo0AG(UJLG9svzOIrID;imn7a>;UCXw-&i~>NEm7 z87;C*Wx*^SJ*aTzujIhul?(0k%1WAGka;>d$4?3dT!5!wzpKjaCH-1t)GjH^Bikqf zkE-yMT4an=k;Mw@Sq{J|nOaKYI1XnMGF+um$W?P;IfkoHj6iWris2-Vk#Y<ke-ObN z$CQyagK6BCu+kzGJntb<)aUcbd<q%Mm7_R85GW=`<#MT@A@v5_Jmr_Vy_r!92H>SR zr-yg4Za89*a<J9B77>_^UBTtCSSAd+z2kurLWcS&4~ok$)a8oYYgF6I+rYmxo~iA% z2Rs0^0WVw4(Lz4TGNWK2cF%VdQ54va?{H2bDO8n#rK?@Q&6^EcL^zQ#PKKnFv;t57 zm#PV+Qd*`_s-*-*tEGTa&<>!+8Ha<2+IbdUqZEQ~%qC1~HG$(s)%<Lu#$Z%oazca8 zH)6R_tl915DK`zGzMX>aajfRKSW?dcif1`H%T`6Jz*@obtha*oz<T{?*5O&poNk8o zd1pt`G<ItP;G8vpF>$O59*r~Ud<F+vqflg*5kkc%X}OekC@CqWR5_$7l`^|b!{8K- zQOG!+`M>c)1yX3FSpHKy(Ji4OBh!gi5Ec{71l&RgaYCzvR|Kv@Pz+-><l6mL?lf!j z({m;D?APh7tv71dr^l^RzHI2xCuEd-Qqc2FTR|wHvFL;LFT&yNrBo=ks&LMfSCVZv zV_Mh0P@grN6njo2O8Hwm)SdQmHCyiM9Q^FTwWQrQYAz4%DjyzhA~cyz=S`A7_G}W* zY6wPT?<`7EUz+|jeyDrPij?HjR|ECm_I3Q&l4;%U4Tw5KLr+(=e}6_Vam?r&o?e=` zsWz{<4r!D&Ri>53w7s3TZ_3CG>kndGt=YPKe^9sJY+rZ6We8nuDWGg?D^kyUdee4J zdgNZ66Pt^y@o&j`l2~#oIdw$N?)Xsi+qRO6qTNBw-p=8l=dGm<?_hUb3dL6kjh>&5 z>^Oc4>PWd)a4cim<fFGc8WW+$Qe8i2c)cs8LVTQTy5H|8j#;uX>q)|Xz5nrsUjkOd zKrFb8wA{%mj$ad}9J={1zN0@Q>C?yk$Lagin@6@O;%D;tse@hNzCwR@y7)+QP2g_e zt(N!N3r9LPn*NNrP<18sci7aiZnkyLz|zdyj)pc%a?OLY;pWe;pSaYyPkf*#se#<K z@z}Nanpc<V+BMl1>U*$~NAD784_n&WR+VsV{l8k@n0hX*`{cbVv#}oA)=);u&M!|4 zzb1J!Fv;FrC*Qi{%{k72(5>Cz;`@82?g_RidQWVg8`t&K<-FRz28#os*nNkWSMTpq z`_q}#2X*$V2d9NY;im^oi|R&mHI}i4pd{6hJ0UNMTj2?b6D@ivD%Rfm?vGj=Nn^*~ csSk-H(2=dWWhddfGm-zg*|^YfXntw%A48``v;Y7A diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_right_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_right_small.png deleted file mode 100644 index 8d344bcfc36a2b04035f43f3642b1ce7be28b9e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1593 zcmaJ?eM}Q)7%xsJRPlom2}<I5ECUDEyK8%G??S~wMXDA{Eup$hx!%2{9rUhTueRVP zpa#@sx-o-hDr#g#opZsDL{V`g45Lir=aj`{%c7f^V~N?OpxfR8MgK5fp1b#bpZEFr zJzu$Id&&G{)pV6Yp-8qCTO4pLj=qTr@LTq{V?JEc<#{f7iRh8TtOOKhUUUP*>Srr~ z1F(E;%_WehP`tIl=XA*~+aiV&{c1KUqmK9kP+OtM%Z~(Dt_sMA8&vuP6FPAA0*d%} z6IxE$2wR{Kczwln5?E4K;^gY8IGRWE=OB3z1{&}KnMET0Y9Yu(Oz5y(2JWM597Tpj z<SG+70?K8xBZZ;_5K67bIFck01Fa@0qgF%ZA{v6EaDv830wYL<Bp3~Wj6NvzCh;D| zVJRB*1y3f_E6V`}$HU>UI;>TTQYB8(G>sD)T%*CD1Qx6nWHy2c!OWNi3kY(OFChCw z0f|~<-C{^Kp%Cdv2>yW0HfC4|jwTAG43Dq@oKzFI-ye-@SUM;>z)Kjfl@2;<0|0k` zpcs-kSPxHTOd00x&5oji5Dl|f^1-68)fSNp`GFu?EhZG+sCggHa5_#4SU_TWTBpN2 zMx7p`2~LjzR?E48p5)zbI%el}`i25?0Z9>LkwIf7$$3<PR%0}hMTC|t(C9Sen66a_ z%B;YFm~S8SJ*rE*QI{!{04s}<QxvOXU10Z$vKaJ=0i>{SxavrDxliE5aBz0COe0ZS zfaF^V_##R4Bg1)Se6PX4>p50yAUKTYDFWjFOae=}wV1&`b2_(%GVnSA9o6Sw$=^ty zLJo{05QD=QIlV{2avbK-8vsU<fWl}aaAT}dYtV57#S;btibIHav~^x-r5FqLXLLI@ z81OJQT0nsFB*DSicBT=|?zn|ki`f~u_xtCUb1bD9-wl9m<#%h_bDNTDpC_d*m_1|F z1a{WGcXC~IM=v?PKDFJoH2d44ec9G(Q_ALRPxqWza3gSaP2UUKlNYxt$?zk2-Cp`( zc<sac)3wvKq;I{D*{I5HYKT&C&Y~O6EA?qp;!U@yJCXBQ*8a}VuI2O&g=!~EtgkX~ zb$yF}PFdAF^kY&<S7Ougg!CR;Lsfi5QpWmrIZgieYPb(kO`E&+jEd=awjApy4XBuL z7iN@ocTSmm;z+;L#bi&)&984*kfCzqt)Fvp>LAwpL_g4Wr#J4)wq#wyhxYN(nwGQ5 z!HXML^sm-<?CGt_f7G5$GwyfkdUu@fc9OeK4DNCz9zvJnWp?_9$<{04vCao+mda(y zQ|5!~cl@+)*-U5L$_>4A!UvxWB4w$Q<8zNx5`PDUPo0eq#`oUcy7!!8eA&|eBPA)P zD-uq0n{GdCcBHv)#+`m&$~t#+dv{jrb??O88PuGv{h@nlt8QlB{55p{zrl@fcW-FV z2ptv^J9`F^L*<z}Ym`GhyZT%oSIiA7cOc$d@6P&bb=Kwjwgc;W?j4`hVeLQo!khZI z{n_TS967UeawsX`qHz7}?3tcxyZa^{u8A!Cs^(<X?aR$8zDXH6KDFgH;tTdqKJ?2; zcCjLVkMeGE#q?R5?mS0}RF>9(Kb}6?Ib5KTGBugasg@XZw;`(iF>>3d#FxIL%$nBc k%J;q>xovCtNQ_HR%skNEc)BGk`Y%ve=apEF6;w3*4|E+nW&i*H diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_sharp_right.png b/OsmAnd/res/drawable-xhdpi/map_turn_sharp_right.png deleted file mode 100644 index 8c8876b63f5737caa751d22d26c9283a70f50305..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2334 zcmbVOc~ld39uFal0m=$m^$DoMBw82EF-ayD1VoZ>NlGCsD2L>jK#0kN9FVXoENww? z5u>72aM6l*z*>rkRS;-BP()zWw%`>jhl|e@1zuac*a?c;KV0|i&U-Vz>-+hBKi}i` zeX}`666WFN?S{kQJR-t{vDmoZ@e*CI@0RX#3O39)i4sk5sLGThGa$GSB`QaN2(2s~ ziA7{eYu05X5QlTlR!b92iP5Y03RFv#Ib^67tsX<;aDl-Vy-cA&On@9oSL+1eNK-2a zsFeaR0gk3e>qC(Yb$G4;iOZEp6}cJ(PYDJG0f81ira+6BWPnAxPG{s>1mKijJ~nr3 z(?DQK#H0~`uSq3F#{i+I0Rdnto1%aq2;lIj5X@yV;N<{=4#6}!j|R~xbchep`3ySn z<^eHl2BnH0D-^%6g{=f&hRLMo(`Y$4In*2`6*Z*OARdoLqcdm>1_hI#7_B;!%tFx_ zNz)pHh*4os>rHA@2RJm!<fz#s05PVoUC`>Iqu(ml8Q%m73mMHK)6*a-ou<_~{F;(B znqrZE(|D(}QEJsAv{=N5nhgppA1cx`7>nKe4LJlcHvEqbYAh+TbwX5O)*?Dngirut zCsd_c$ycxxOhkr26gH2=qNunmHibu5uqlX)sgNUVNGX@|ruDoFFM>rPI>e)k86gY^ z62T!b#N=|sJn>2%8(zs`Ph%r=Mw3jZK&EZ0G25@PT=9Fc{7?fTGoc14imsckf|v}{ zgc>tYJrEi?m33fgf?B6UbBup*r0KQSLd2lXMwDU$ss*Ov%vZmI16R&uL#io<l}rlE zWyvXWHk(6HDLEV#lf%W_SAcKu%KtZhG>jC@Q7peHp6M;DA|2DWR{>kRy-bJ>yFmu* zsyyoQE5YG@7Zf23ky>s(x|8&mlsMn^rvmr@)x0Ik>O~NN=9%Cp=q69wH!dY0R3Q93 zd~;M;P>)b(FAk48AG(%IUN{~>_V>?HSEX)~?p#`Yq_I5@8L{o{9PHd9F#ddVY+^~P z=~`D`dgY1M^p`*8Ri4b5!QUrw8sB2Qi}&;-5Qs!Po<MMN!WZP@oI+OQ=L5is6`q~| zKqS87IBmI$G0(}_+4<n)!_O|I*fgZW!fesTP3yg_!S#Nl3ZI#(t-nmnzw~lQc#yE3 zUe93U6%@UgZ4Iag>p#yY)JC;EAYG|`(j%~)v<=!SiQ#R-L`#%1rL?@)%L>*nsV~nb zR2<8n(Z0wo+`4C|x}{d!^UF}|?4FT+dm;7Lt=<Ds6<*d;9mCJ!@Yz>j7#$hCG?Xc^ zS{9{tPuNPqJYmr0WcxEe?gN7T&~7NSZ{d8ZYQ*&YQ`_2$y`@FBa$np6?j4{1p`KhB zHn+PVU(;@Vb;CF1rr7CL&u5)O?!7T3;-vJnTcNfQ((}@>k)ytAJ^N~0_cT?Z2`xv4 zirh2r{(Q|9Bas9r|Lr?sZ@?|ERFqnymPXn;mRAhqG$t%~)-7J)n{c&{{XIRnxz2q; z+%fKUSXM_%4-4AVyxRQr**c|L>z{H40v9K`F5J=z){ttzfTs1GPVu~8xm)*+uGy){ z=1Y<ESN&~YCf|Ny9{6E=;ve^+1j#2Yw(V!7t`~)4=YAwD`eXg7^B#hr_7gUe>!!=% zW8|NnWepXn{Vv1{bOA8A+tYK0B#y+HGdOW>Fn-U%pB_ejmm1-5nMV+Ed}B)zll=X5 ze8G_z%b$x<9~+Jzb=RfMyFJ|h?epaZRrIHA`$Ser?7WKkts?5O4)<NEauM7z**)jw zYQDJ5yEk#C=E-Bq=vlV%$iw2Yd!3O_zB(x0IzHBKd%oobb@iRN4cn?&dzXEC6-?RR zQ0rfMI>l$Z_jdR+OeXl2oBn)lPJE-P!9LvFKWj19J}Yppy5#N#(dlvjqRkuE)SEM5 z3`zkg6L|-gqGL9R`H}Y5SJj2eLtb?P(!Gppqcsipk*sq*+Z&Xc6JB*2s;JC;0juot z^)-HeX|0xJhBYwfc3<1erlp3aS+`pp`VU<>mML9#?FdsH`X%Air_y4S+7aKeh*RsQ z9>+-4?rxB7RGu7dEPQlbU^_wN=7b+sr*00sv%j$F>!?N|msv%fxZv{7kN0}tu69+U zv+HRe%^PIAI8b;tez>LAJ&Z%%yDd8_abTZI$8PSKkn4DSS5LBL!{6^L`2DjB`s?1a z@ISQg5Lrvm>%n9id=%p;NKV+9&^*|-I65<&<#!!jDe>>1y_}~UZ#*>l%|~|-P0<qa zq}6_=b0Ess#~SI{RT)-18a3&Qr4YmqUDaQF{#WXm+#A015#GJZ3zO(cn@?-|)8HG# zFK9kY`=r&laR%eTfy@uDmL-(kYmU<2KYz(No@uzjI#u>~S8j|4dgX;{wM$-DOL4Q; z>ILn29H+6lbWO#K^A)O|q%;;2FYj83wSoV&Km4|R{P(^hto~r=6`sGZEB{=^doBG3 fRckJ`;y=K}&ZMPUc9nnS_+yC>NrcB&rWO1PJ*0hh diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_sharp_right_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_sharp_right_small.png deleted file mode 100644 index cd0b8f8439f4ef9dbca9668bc175c85c4a883070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1556 zcmaJ>drT8|9IslY;v>G8Q<Hffin@8dM|*AWq~g&l(D4`+6sDN<9>2<oy{mVJE$)%o zff1DiHWu9?kvPq?xFrS^otsjJ2DdqlCJS?#xnxrj=WEL*i6*-OMgK5fes{m$eee7E zem~#W)fX4#PDq`ZYBHH7c=K4FvF9c3F)ta<<$ty38ruxrQ?8dN0X@vAz{H3O4<K)l zTLXN66KmF=1DPh%s9LGCTrV#ypamsp;SxHQNHAoeO{UDONQe`vfDZ9sjU>C^dnZo8 zkR-a`GO`dW47ow2l($g@B^!%Mg^g7LCBj)tpv(wu7zhHLgCfCovPMT-@PJ*~I48s? z3=OF0RW5jtRC!@B<W^Jwkrq25;5ZIBC<{(HtpvFUA~2jpF$%>o1jA_@qX`Tex?sbb zDh6mDn=|Cgcyqy(x*noYG#n0F!d8o-u0e5%qEL)L2?8-R5Uobmxd<X_=}8ML&;(Tq z>5?Kt35y)BRO>F-U^*B=FjQDLY*^NY5@n<ejc_3pw_s>6n22jYTho2uDUIi9Yo#?I zfck)@RI7qfk3f17Y~=36juMIn8~ROEGK#{jV-=w~2xQ&Mx?tmrMU+HZunAVc0UWVY zHX9Of+Uy9033dc<R)Gh0T;zEwY3F%(M>fk4R<|?9K`=P(A+xQ7(~0L`Ry>=q5%@6H zD{DF@3n1xRGJFqV9WTVvZWVC4qLwPkx?~p=S1P)qRVpFK?H;H)w4h9qMJ22)Oq6Lb zY8I%{1|a6BN)Q^zGc7%bgJ>5xs{<1dQ6w=$07eoxlD8rb2PN2ef^>*B3?9OZ&*X2g zPYsC?M<_{$b_(_Y!3hEqusZ;P<A6jcC*TpzX?55Hj1)1414a#sXrgtVX{Dsd=+DG) zcrc8Y;n4!JF;A*7IIny$tJ`E6nc-!b(#VxNyB6n<Vy4wuGaCF&Mabc_k_CMFm_1ob zJ(C_REAQza*Ofbe!wOzX-|wH(v$AJv1IoVpLBqbfH;O0E?wj%HCU7p$zTPfo-0Um^ zVgJdizkJ(13(mZdkN<w)^O320pwvCBGpEk2ZTx4GaDU?6&Y6`ZyXR%YO&v9tA=h>H z#M#%U9*iC&HE-TUW(4*AtMTo<sYksRSJgu2$KLw#4|3m1a}EAz#ILP&(XAhk9@o0$ z#;%+3*LzZ=9Vyb?cwW7FCEjuGYVXQPdnxnrE&X@RKOL`+!8^>oNByq7NOwvs*Sb7E z`ZyS0)cxqj*E7^R)rbC#zs&R#o^wZAXCIE;PF*Zt+Q6Lmr;GK?r-NNL%edv@HmF4o zHFtj0y!`}pOHsyUbbiP&JL+QHISf6)Po1^zn|8Kh%HDLe^PSD+)#kSD6o!5%SFc@q zX@6VP7rWQ=<ig)s=9ad;inpS%Cry3RdwdQ2@!l<mI@)@sdP>sfp6Y*Z)DL$G%9^Uu z4x2ZR-+p=Q=GASjBaU<xTzmMZ-E+*xG~8Y&T)Dn;wg2KL|MBYXpPM_6X@}nC<~`_} zIH$Jk^qG$Ghp~2h%k&=|ec35UbpCh3_YYQ79B5^KTYLZ7H*vAzvw|sYo6=Zj+VJWs zo|LjIx$viQmKmRvH=ddNc=T&429+9*^r!hvjVD*>nI&6yCjQf2PZ9f7wm<qmNeC~4 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_slight_right.png b/OsmAnd/res/drawable-xhdpi/map_turn_slight_right.png deleted file mode 100644 index ca38c267261ee9676c53f7051b0585993cd68bf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2459 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_slight_right_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_slight_right_small.png deleted file mode 100644 index e130b53d6f75d17e07d0212ab519d5fc781bd2c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1595 zcmaJ>drT8|9B-=i0kUicnTpf%Fis-ZyX*DZ-i;3W;8CHhV2LPm@p|_|4rs639k#{C zcp8n_oX8wbGYWB{!I?014>3A1!#FqR)Mbf}OrvJX=9b}$A;evQqJJ1K-}^nj_kDc6 zuiNa(%ZiJc9ivjI;vCub0%gyRyi+DAYvH{^S;{s`&M1<X3MF!Y5rN9W2_67Byv%A) z02nS*c?P7aR1+F_cadD=%%xeut7RfG+Mw63XscAIX+b~3mIE2`fYrRu4FA)80)}|b z3@;;{nA2|qrF?d^2$ojox!LM+mg3;Fx1rP^tr+kEnSp}d3ZFy=&G3j_S~*A9C=88= z$mM2u6jYJZ1=$1<K%~}yusDuGMoNp5CPGK1KspR3QH(-y48d?3$7me}jXkj9P2@`G z0(<6|FXd*2OJ&(lqi7%y&;|&tAg)GnilR_Vhw5~QB7sODpUeaipOh4}U<VQ_@_v~Y zd{D$9;}NQ4GpryT4Z-VoI>!zBq_IRPDMN#dAH}s8>h(tA8j+Ud0`LsR3#BD@$Pds0 zAPH3>tJI?;DXOgG?&Xdmf(jb?9g$ax!c^D=w#o~9vcqnMl`mS3=V(^X5`Y0XVxaVT zq{O5*AQZ+L5Wo<u2N-b9<DsH<UZiidTC6yUk(oxF1;;Z;E1@%)@Jx)rtvbC9AJ=vG zB$@HCAnKb}e2?ksU#d&nM8L>`=oW;EXcxFj1zC_v1wUl7jZ__4w2b$0LO@E6lxZ|- zI}rIbfXfsGFEo;8ntuTX&cHH+5n~aKBQb;pN)i~-Lm);Y#p*pe(#YvCcub#rE`Ota zs&JGz{82cxi8Yky7?wp!3`T(9I3N+q1Uv|1B8++#BRR}ygi!?|8fl&9S}Dp>`ZIDI z9}ML(K3c%1%#)}LPI}Fr3o4b`>9AYe!OMT`b}qK(&pdr?eoF35Bz|*a<M%~fEyoVT zZ)+rT7RUB$nm<liH`&1f=Hz53p?OjAf`+(Wb=S<_o?dEOezkHh6*#)}t*0Fu_EV>K zuH7J=lRjI!tG9CH*PFIcushunZ;#NdQ<Za0Y^pJ}OzgZKbF6-O=by2IEz7o_#eYbD z^Nz+GPIOm4$nkvm>$k@pXVO;O!;!Y)oV)7V%ZGm7{?o1{377U|3{BbmN6Yj_J#h9H z8!HjpFMSuk>1JL#JazCs_IF-U(}OMNhz-5OzA9v4^8QyoRVTNec3(MLrpcaucv|Mk z&Y$b7g^teDX4NOt`?ub*cEud1nZKniO};U}6IuHodmNbBkkV^%i9PEMU7ozL{_1;8 z8nUL!wZt-)pPEujZ^4gO2>627*%K!0V0ZVyxLnu1D!=DnZQ=RcgyQnplv~~DLve*k z6CEqucWz!Au1{Q<G^0F!=ire6GRsl7H%^SN=ZDL`Ys_jbPJ6v}fu&;-b!BcMbg)&u z=W+4<r5`oV*)zBGtHi+{L&w&%&-?Q8{-*aQ-VTRO^-=m<R-IZ#bz#0Pwmy6}oKV}) z{a^J^===<MudCz2kq^S}+Ion)4VH5ugV_Jjl9PSmjg60nAvCWpY_L7aZ;LH69B!R) zG`!IEWPMw#ZhhDFgXc9FarcDU9rM+F&_xaRaJU7VcfY;9ZqcS^G;_3aqwBPoc4(X? pX?FJ9KwXuZ{8uA1d}SbEm1?ScWmQ?nw4BKA+>w!IKWJT5_dlWYJ}m$M diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_uturn.png b/OsmAnd/res/drawable-xhdpi/map_turn_uturn.png deleted file mode 100644 index 0f758155e04b24ee303f598d26682f8093563a28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2964 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_uturn_right.png b/OsmAnd/res/drawable-xhdpi/map_turn_uturn_right.png deleted file mode 100644 index 0870146a936ab384c46148e0c7cac527845a88af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3003 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_uturn_right_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_uturn_right_small.png deleted file mode 100644 index 957fec2df77002bf4bf1f79a0ce64290c937e996..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1839 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 A8~^|S diff --git a/OsmAnd/res/drawable-xhdpi/map_turn_uturn_small.png b/OsmAnd/res/drawable-xhdpi/map_turn_uturn_small.png deleted file mode 100644 index c3e50eca92d1dc7453d6c19ba7957ea9737432a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1526 zcmbVMeQXnD7{8UdkA{z7hD_byJQxhw_3ql<+Fn+$UxNZIvs>8sFxmC)EjwxNy1U!j zvW0X^L4<4?rVi(1F$86Tnd5tae8#W{PEg}U6ebe+km;fkG$!cVv7&zv{_v8!_j%v< z`8{91=ebR#-USo1PiYYZnc!aN^ud)(ycucmTcP=LBV3+TU6pE?6i_3q3=kVH`2p$< zv8#a(uzakh4-_NFxH_S{QmynXVK^zIV-q^MXebQP2vR&h8fLjQKt=svwIEutUydBd zP=U8%6|{%+gdLz-Sh!XOWoy0V+}bsqg~#U4LyMyfG!OzRi$+61QDLH1Y}76T<-{?8 zp`$A58Y^}`s7g;M>X2lB(z+s?qbLeBS#%U_Ht6X>R8LYgL0Slk#7T;wNJdYhV-E(s z$$WtEIZMWT!JQSWR@E>=5Rphk7cuB0c{M><EEa;)6M8)kHE<;+s%#V&l^ID3PM~nI z5LN|AL=zTSzf`MQF&OFn6hdK-=Ye5S87mYl84+c}1f?U1P$-etsJ5c|z`tQUR9h*J zg#qCMic~9ekdMHOBpBB2(T);|FdAm5EI?A&pi|;%LqJsBPAdj)biBYb0i(ri27W(I zn<zc5HyBO0nd6N(TV$}1X1#$XO~$01hv97w(y4dQPM3qWQ<RIgn`{)6&5n{Hm&NF? zC9!T%QCX1#N#6qWJ%)8W63aMbz^am5E=j>;7nD{@s-#p)VbtLmWgRW35JX;zD031t z-Ot(yWT6i5C9)JkN9)W84~c;^1V~`vNt_}BM%)lE>T#9^7MwE~fhiCuqRlLijp6zK zTR#E@MI@T#Kh2Xof*qL<AB+OrJQyY*!U>Y$sHDaAl_7}c3AfW$9=&vXn{}~+%HB}# zy0FaTx{;SUc~xPrIitD5wY%wF>J;@xOKHtT*A9D4_Q?xhd(QOrxhBtjS@-O4rw?Co zW!#*z`R=XXwp_MPEN-23cgJ;)IL~{_*nZw=TDkPS&(3SRHM^0yC$uBrSntH<AI^5Y z(5>yM(r$@Mr78L0Oz&U>Y!wfb?`k@6aVXXJL0^$^V6Tvuaw@9H>K@;vZLHr#U1`=< zrXNo`c@Vv_-<x@MPU_#Mt7l_V_s92L+aF6?S+yR2{ET^^s<wE0SJ3;?Go1w)*K%g& zcWmSPM;bOipBaAaLywIEg&E6co3tsh&s)CiefMJ4YyNqc>wfLkEUCL%_<nGD!;AZD z{nH8#gg$X*mUN!Gd3cL$0dF2|t>siz@#p5>`s2pk>`9H2JSj~>-<2)9j%#{yJgFnO zxu^HG`BwJi4A)%JzQRl&VW(ETnK%3A6MKdZd&qG+Pv#s-TU^t2W=coy(Dq~Krx(me z?MF7OtG7w~(WbUne{W1b-|+qGci!pjx9`-f7;JBjzd=q^)}?;2>acJ8y`A*It25(4 zFEycK(og2$3S@A3`%wSsbLs1|p1b+uTb+3Cg15&Tre~b0uC-);mDl(e`CB7e5)Za1 zR4I2bw&_p{GWhhsoz~&_H{FJwPI!Y9e_XWacKx-A&Feyq#};j#)p2{^`0_mof*?<E d@xc6)G$fWWEwf=sJC*noyIo%ANA{}q{{WqYAg=%b diff --git a/OsmAnd/res/drawable-xhdpi/map_widget_compass_ruller_day.png b/OsmAnd/res/drawable-xhdpi/map_widget_compass_ruller_day.png deleted file mode 100644 index 3581492366e54b4e73f21bb76f8b431335f1f7fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46704 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 diff --git a/OsmAnd/res/drawable-xhdpi/map_widget_compass_ruller_location_day.png b/OsmAnd/res/drawable-xhdpi/map_widget_compass_ruller_location_day.png deleted file mode 100644 index e7258a79ef77a06aa0acc2a1f6eb0bd499027390..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7957 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 YVm_EFHgB0a{@0rq+J;()r;dOBA8tk;K>z>% diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward.png deleted file mode 100644 index c1015b73dd355f330e5ffa4af43ebf87052835c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2719 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 NAwgk*Cj;WP{uhd4KKcLv diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_keep_right.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_keep_right.png deleted file mode 100644 index b4ce1ee92fe189c68d5fedbe82d489a21d735ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3869 zcmbVPdpy(o{~s$R8lB|0Bx^gmeVc7&*j&=)E|e&(Vl!hiyR?gq8dl=8BV8niP!76j zRIGA2OmdV`R7T3JI#CnODG70YAFA{H{?7M&zkhu9czpJGz2BeL<@vh2U!T|K(B=TI z#f!`rfk2?eKHly@z<q4)g6IJMt|70F12;3FN2qWsH%cg`^68+Bk=zJ6%!f^lrU%if zk@0)((49dba2zu@R2b^Ni9qABZK!iRHWD@ukOqOAH%NF?8jCK3MbM*}92fX#O+6gO zjC6r-$N8iEc_cc6>7Br*Z%qgYrX{dw_(=E$SD3Se04QM7g;bb?9m^3ABrfoIy##=s z+eX1*^DIJ^3;Z*vQ2)&^5|>Yh;cV=YGz<m<bHLkRaE@48+<KTT8iPZj@hA)$iN+8x zXo4*o_T>i$tnnkG2tn?iUu*#@7dS&G<PlIPu~=*)#@cZC(I^Zak4K?xQMR^7fCDLr z=Lo41Bu9Yws==Kupz)bJA(P92&1s}Ya798FIDquC3v8ah|DTFEf-ivrLWYu1c_@qx z8pUSM`8Cfi5C+lz3FB|M1;Oz=Ix2`R;EMP(ARkePufjm={=1<$MgR>Vkk15?LXCCj z(nM@JN9g130tcShL^2}@G&>rWPNidz_INuxWR#<wJra+m*(2#xEG>d=kBN+kz<<^A zck=G`j(98@P4cweXp6yk;P9A@jvgCHXio?Gjkaia+pn@d9D$I^q0ztEW&*aq$P)jn zEP=$QQ-xf9Fqa$qwF)*fxI(Ug!R5h7r1`AF)@)~TBDrG0+PO4+_S&7!XU5SZJ^5TV zY(CBe=HFm&jKJDsqUIfr#3FHyb`i)3dwU0DRHTE09oE4SaGwVMA|Ls`#t#L6Ld_M+ zzZB2cEubRj$Ulz)u=w*Z(K)~g;sZw|%v2l!0_nT>xNi)WbPxAP(=9{HntzLayKT|6 zAA*j_mpnatZH;jWJR}Uhe_3fU`3Lh0l&u#!R!ueM9{sVy)WLgwwcEZ!EvFdfN55_Q zmIyOV0qqabZz6XGDNL?(1T6>(n<91&QtzK+PjL2*_6qLjVc*Ss_rU6M&)(>$iR%w? zoCNoU?<XeolbwIwPXZZHKnqMkS~?IkNZTM81cs@Ag<G<g5#{q@et(`RIVpd+c5!i0 z5hBY!=WIu*C{+zr>{QmB9hW?@u$L^$hn{?_rM2R@l<dGd+%x#chC<v<P2d7kZ>(ym za$AgO@w@R>GPcsb#E5cVCi{8!mD6LndgMO;SB5JrO@;j~uEiohtp8?BuwvSj2xczm za&41_YLNc3)4!5O`P3-L;uEoZ^apUOV_KsDx=$9aPzGqmOzOEs`ZEF{<&3in0#c6m zEj<M_IMFFv%~GfdjFi55e@$!9uCSlL;A2QOqV^ZghmSgzrr-C;0@c;cz1LbhpD4zm zinJk>TXFp|a<&9A>XtFp(xs=JUQO_l`)#btE5oI&v@<29i7%_o*SdOqxMSmCS*pxj zX=fB5P9Dp>K=vC_odKs|8$>O8WMN6A`oCuiDXRM3<N@3ZWu33Cj%8Q<YqDX?;YGC; zPCZp)1OmE0Fg#@}x1IcLbJt41(B-PS3V2;#nzHw<k-0(P)6O@$!oy>4B<?pB$6!)) zJQ;iR25`+R<Qeb*s53t;#$_Gil+DlqWMXu7*0pw-Og(<WH0)i1LVpg(b<S}$;$g3F zqg8BEMv-zw5g6QB<0u=;C4JYHM<t*ycFUx#<KuB}F5<RojtD9Jpd{T}eY^UKuO9*x z$z9hb4o*$+<!a~DHVVY07DHxP-ve~bmW^*yyfrA46;>~WmR|`$*LwqwNzS(kq|$h@ zyo7PRO(x48k1`6QiPNO{Py@o)-3Y)8JzM>>I5fBbn%=FsyQcQ+R_FB|e#u)FR#=Y! zKDwR}ts*fV$3xipu_eaYQT$3@IWw)slvtEu61_Z(#)_7vLemLx{Z|1{5!sn%87?GU z&;0knu-fMz3e$i`qW<7lQ&Ye1cUsovrt4|BuYx#$qdjwNmu;DZ?mMpj`M4SYzdrq3 zOplkYCmmZRVlHfSy39qknypgZ_P+?Azan)4@_W%SB|utMj<P5TT`(G-+IIf<h<VEP zXRdLNWLrw0`%;Vr(wZ3ln%I?+Q`p)ZX!^P##TH3xs6zj>>O4{RJ{u7Iu({GKXp{O3 z7_n1|GZ=Mqorb<QOg`}|p|dj^Tlor|;+a7jdImUhRh{oS90@s`w;o=L$~mh{fu`pX z#;9agvH7Eg(ynz)q!u8W#}1UFh*3ZVdFXmVExQP<>&)*NnW&3!6`CQH_Y-2GgT)_G zL38R#yW{phkkFSZOo@o`mG3KpoI6&K*q!$>3c=v`?gk_C3)A{(l+b$1PgeQM4Zj<T zQREba-Q5;nSyQ#*WCZcnB1Mu;@2rClMz5jZ1~1Rp5OeC~faq<&C4IcE=bJ&5{homY zMLcp}DKcYr`&!Oy=&#zWap8d^i>d6o_7fLvzJ2++EVk(|t$32vgYx~&SYE0VeG-Id z0vYD@=A)YEOQ$`qTSva-6t|WgnDv+MO<}W#I!0Kn>kz8OD;9Rcaa(FWu&-|lI2qxQ zf#~TR&YR$L#*Zd3U+AH2Aw2K33vY}cwmPxnzU-Ls^snj0&(}<UV}6<lHbeZ!PW9Jz zwl2y}OXqi-&6tLZP`Np#ElixrUtkJ}_U-RXl7qkln-+hX3N)g?^2EA{Gf7JT;*oa! ztd6!p%ATLpDXP&c1t2i>-jT5tTTWlPT@-RO&n+-YlBM2I8D_zIgxplVWWo(sa1ZoR zkk~(#i+lKy`TYV@Mk7!g@Y)BXv{6$nPs{h-zumasHj<uL-GE20ON8#LRfEap2DMLW zlwqq66l}eRN4Kq*?tfDa8Nf~Wu?)>tt5k{U539Gy&-FI*wwgKlByYL1<%W8q@|Al+ z{cf^@5k(a^I8&$|gx3wS$$!|;qMat=i-^^gW$n2ZlTs9leZJvbn>Xi^)78Mjw~t<F z;05oXp}_lKqAt9DE2CdEyy|cX`K}+Nyz0^x$!nl*jP^B<Pj>*txx||N=0(t@vEPVA zs9$cI461IgdkQpe6Gncih;iqspq)2R0&X0fq-Ok5b3dWjsa~0I<W`mSRWqPc9G^UZ z#|bGfZ@Fp}jI^X?EmijR?`P08m?Ncavxz?NayOskflTBBf}cjH$gIrRLwZK|SfW<= zq~A6rVpBLWq?h2Dx_LLlt7FV-Y=eSUa>&8~DC~uC7xr9J!xa@V=G_ghDC-`PM{@h3 zQw<evr8`@y>T-XglRH=A;5109QFVjW_(5`bdji61-;oe9R$0LMU;(JGcPgK$Q$NKU z@4a#kd5>*fi+R8W?HqpVtJteIYUEVuy7E}(-m~DM9aintzBe~0QC=wDJ<Xl@7dSA> z8+F6K$o(o4H%cr{-}J?t`<Qyd;W%_xU}o`0yYc+xa;j6g0wMK(W8s^u88lX$vi<}g ztm-ZsXZj5DmuRKttZq`?!z`Dl4%?I-iRsC@t0RE!vKp)|BT6iGBAZ0LHT-Ud_AbLg z=8XG|#eByNq5-Mh^~I}I<EHlE$nl)DkKY`f+&Ypc-kIT~Qk<xoQITu19#+eDH#(;v z98&!CcKxJW``F_0dCP9h4vj;K7*bQz61BZ`u~}GZ8zb%Dhe2|hV9kfFmxMB;GjC@| zocykL$9v0xf>&A=l~a|8>-7RW`<MSH=$Af`n>naIp`Q?1#f%v@jmg@POL7~}YY?7N zJNCgjsr#FFZpFd4s_7TwSRYD<!7DKBJJKNGU}xFW-XhU;Ai~_Yvu7U3{_#lGS1#In zFs@_7Cy{@;`@B+p*mfJkCF^%6&;~2Ct{r<!3fgxwS6h=(|0uytzOe1>fnp^2K{Z9K zO=8%wsM-TP>za^<I%8&b$R{iB=q9hUYZ+1LRtXxenw+W7l=i8oj%hCM5M6%OE_){q z^BL$V5nb3;9+_Z;u{5QNDK(k*T_5Ls6OX<0;wh19_$m>a<HRYs_f*#pGFo040I>`+ z>L-L6PtMq6M<hJQE>8gB#D%a8&G&A4F3q4`x3)P{RsM<dP*yrjThchqQlNOZ_0XU2 zP7kNMb_c#IDb~}XKz28+tn3+$6+0aad(l$h#$|bxucw7i_7sD+cjSB%EvvrUvIqs? zW#yX;xWp2|P-(fK#`;V|ZL`Ns%WZk!#%Vk++xXEC(Pk;@L8FVWX3};dtIwanTjrlN z#&Sme!>Jag3c(?7?p^-^y_E9Oj8fyQ+~2q<c?kz%dEDiWEHh9$-EEal;>-r#_j>4? zW>z1^JLf6ApJRs;pcpMr$0Bh3Y?9-x$$rm_XNeR`%fcke9cQl}0W0YFA@BbWfAf>z z-wuC&ZK?l>3E2P37ztPaX3DSQ<rfRGgx4>PUY69?*B>YX{S(T+GycmQ`Wdg*On9;u Z=wR*9Y^_Vs_PGyMACCa{G9qRF{{e7rZ&&~T diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_keep_right_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_keep_right_small.png deleted file mode 100644 index 7ee6716151476388c745dcd2799e25b41f3cb3fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2216 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_right_turn.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_right_turn.png deleted file mode 100644 index 0435ded215806148d8fe6ac9a1a168a1acfc7506..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3118 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_right_turn_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_right_turn_small.png deleted file mode 100644 index a744e9f5956327e0620cbf72b95755df920b41f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1882 zcmbVN3rrJt7_ZYIGDY#xp&}lK3JUGrwY`?RwF<N#)fJ(DFfne|>!CMkue1kk5g$VY ztKu8A;#gb^3sM!|QG8@D%}{ii8YN8Kd`zQM2|7R*ANv=<ZHY0<?#umO_xm3I@B4i@ zS4#5qApv6o1OmYjZIVV0=3L+F?+3<pIhhy0G@4Jy;?uYs-cDH=L7b5@Fp$<n&1dus zWpw5>F-n1;e*v4G#b@b0C27tirhFK&!(;*40)cXx!$Q#u86Gk)^I5YBZm&NLL#$B+ zXW}|kXHhc?*rY-$lUA6VP8Tku2_rmhDx`Ffz<`P2Dac{UHQPvs3huE>g0=4$fuSA< zzfc9g2`WpM0;xGG1L0!1h{iAsQV?PckC967Xh?!$ID!%ghKf*(#86U#LcI?RyjhJo zq+XNQ>kI5u@B*H<kO*S8+r@UNn6u7DFoGZuRDwt(B7hLtoMxVKh|IR|J_{PgMq616 z&vItSXOS{+`Me4Sk-oWt$)eM}HEg!^CJLksaZnZn6QhX9<hxf7+Q#ddzr%PZ+LrFL zFo>S9arssn)FUUnPZ{Ly{f>M<5DhuY%7UU$xf+hnH!)^jt5Lz=i`d8-Nm@or8H&L~ zazZ8(<;2M3A_Ar5B8HOE21bq<4F;mm&b#y#xI!(7NAW~dnt)*mcw8KgC2AyUsgzL1 zsZm9ruGVbhDKpLV`DTIdUR~LHbxF0Ap?J=k&T+YYEJ#_v@tkb|XMxn}o~lEUnXK8! z*=>`3WqNaK4P#{s7-OQ9GeJFhCfRqyfD^_XgOQ*_3RHoKB)E(g5e69p21<&`a5>Jz z<iNf9#{Zi?1O$cn$np>J^c?|4`j&570c_qj6JrJ)WCg7<z4;UiI<QcyiA#61dMmS6 z>QY0>x~Y`lhHX~u=9=&O!zUs~u87}YT^v5VeBg{3O6SIzPj1Iy)g7^uOBJhjuD7}* z8{AFHueY;zpY6F=h)Q=5iyq<k4_xf7ZD+cs&OdzB-Zk&_;jXH5^6Rxp4<@WYOM-xe zt%24+gQ)>P{KJ8$gX4fS_yZZ12&5D(2J!|v_}viU+%<Lj>SgX|vn#M;uJ_~RL9<UZ zm@99!#n)yvi?Hm0`kHwBrEc(xpZ5EuM%;X6J~VVwv2Ci6I5Jxq)D|>b>Ac$5F(ofi z=IZc|Dhj>psB&Kpb&Z>Pb}aSy*!Vkh(^R3OE*JtD0yfnLe&ePS#t(a0GyLh;r}R>! zlw5Li<itwvoV8KWL!X<j8MMNiiXX64SKW)d)n&DOy(4-H<mtZbeX!`P>-=p`a8t-t z+wL<(*(0y48dUI`pR1qq@ulqjX;;EMw#1d?1(}A@=eyyy){OlbC%k`LlU#o>ZepNo zUuyS-UkrC<9{tchdQk1KdM~tV=HRsQ<f!km4dpQr)mtr@OI;PeL%GLdM5O~#Dvp%R zyUGdg_us%=3VJdsXNqS;zn9OJtjyRMkUdGf^3+#99yhlOMPUJz6CP`xJHo2FpK86r z2-D%<xfLzQIc3+jG0Qxw4V8}0?(ym<^5F;TJLh<WQOC~(m~JUs8^3KiQC*M{J)E|+ zOy6-oFE2Or+K%Ck2ag1=ue&oSVNYJ9zN>I!XMA*X&6(H|w_@|DPXf2Nqo$1GKGzLO zaNk(nn0l`!Ha)rFVaPylQnB-T(PR39&xW4ywCwSNy;Y6N@WiIjnk(e0KPPu3tVM2> zK%Um*mc09(U2TW*0}pI}ME*>KZSMRiWbbBG>OE)H#^yD7d)f2KYulr$Cb5TL0d<hB z`t?h$OuMPAuzghv+*-uTOQJmTd(X?egxh7fDr9MdT;o2vv$ZH+K7blQS1rAeR^NCa zWMQ2x<7D?uzZAY`Ezz;AL&k4?)p6sIf!+5?*?*YusQzhZ>zs;{C$~SU+Y&kJwPb9A zdGYnYT{DiK2CQuWOf3lm4E+zwfAhPfLjTGi6{xo*t)nHeTYY~!Z9=kUZ~Pa<e*s1* B%47fl diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_slight_right_turn.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_slight_right_turn.png deleted file mode 100644 index 9ecc92c619f00dab6eeb1a3d363ba3503a6e1ea7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3526 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_slight_right_turn_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_slight_right_turn_small.png deleted file mode 100644 index a44916e49193c431291294fd2205b8df7a3aa0e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2015 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 Yu*$Dyux_lg!oDY0Ay1QinDk2N@183fGynhq diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_small.png deleted file mode 100644 index dafb941c8314ff8d0236c827e2f7e3f41072263d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1746 zcmc&#ZA=q)7(a(|uG7tz>2M4^54Pa6y}PzoY_YJ?Qrpd{D-|$9<$C>JxzP6N^`NyA zoMsHkRIE*ujXB-iOB9?SfsHAs6{mutnV_OGONNe#_=1G^7I9akZXb*v_GOpc^MASD z?|FZ6r3>fJ9V>cW1VPYPqd{jDR!8_9JxY*ebmmE6nZl=K@#!qhdr1yJ8XIc`u+d4{ zff<mt70Zu<IS>?8z*w^QEYmy{#X2Qq7$fmH-2xke=A`)CB$Wqv*b3~7OO4#zcL0GI zn;OX^Oqj{71-XpD&w+IRd<*5zqm(uzB^jRMQwa*3fG1&})8X={d}?G!uS(d5uTcaZ zg7A52<grs(riHMU<p4}b6k-a;aX3*a!HL;2DKQI{VmN_fN)*S$7_P!Gl@x=AA4IUm z*=UtnrysT@oYY7z&%0G9>h*dhUYUgD>?p2ODp5>|N~K}}A@;0r@uW}e^29|n=zxdf z7&p(bE;y`_w6giU8WB8w9D>trGCfi3@(d?RNEzxQ-6$@>P^U8-*AUvno54SBJQeM+ ztZ)O=3_NT;M+x<y<051sch5Ey1`6J&7I2JE6w;w%seC7J@kX5*5xz)lj7>$!DH$LE zE><Yzaxpzyt`I9RN+AZMjIsg+ZnIjI5j{`iClc~hT(2SYm@Ey)(+G`*!1X$*Rwh$w zHCik&!Zo@)Jn5o9#5N<?9_GrQ$yI4NK=LeSVOd9{3l`?GJnPA2-LO_WRCPEZlX2Nt zuV+TMOpl}10gfpEHa*8W;h{XMn5XzaC~dUWrX<CQSRyW#5^_qcw90`XNEs$46a<(} zBg1^#f6X5%IE99r<zLMcxe_`uynQkX!r{p<0hcgAoG>cW$G{a3^xSQuPGj+1=)KUG z_p0WNU-}jwDG!BG59ueSTCjvBV*IQ%<K|V5t2y&-)x4d>ipi4;LPTiN;CMx<=*?ne z<ir@$*K0JEcun8)$OPRf`}rEIxv-+4(Rercmiw~v=H6`;)Aj}9cW1P2tP76B4vx-= z2*d8qahH-3j4MCX7w&1RjB7ed6;Fctk4?`vU%H$;_|?>mWfpY~-))aw-O2PBVzc}1 zy*Ti(`p&fxvwjZz6{uNM?f9hq(`>%EF63|T?%Dik<-<zV_M)8PBLRBU=93u%ip<jG zm%s4uJ$Pqp#wqE9q@)Qy?)2QKF-&eR?0HRZwf~y18q{hVkBF|F5XCIIxv0UMS<>;~ zw~~$*XcVK{mrUA5FI8_Zvd5ndR!q%O6!whOTh%iir?2PUZR#v)pwwi1{VR^z`|V4v z79W!hti2x$oc}WWrL~}TS!0XAaY_{9uB@DSD_v5-Z&|e=5dE@a$Nke)O${+fSw~k7 ztGAY~s~g|?XSu&L5KR|fx!zpTvMFXCyO=Cu&VDp-hu%Ns!SS`Rz58d>Pn`C4+*_9( z+T$~#OD}dTPIq|{b;%7Ml$5P&<`^Do{i)kg9ctNKy(_72x~HXS)Q!Wp53Th6p}n#- zcD*X)y>-pK*`-h`{k{LQK>2~t(yOF59__AcTac2|nNz^-nYn38ZB_r7lZF#*wzhKz zc6RmT2M2?>onsod#d?pnv@FqE2SpcmlqB_N^4~A)lB9mu&J28e&l{}oMK@OY4&NZI z{@%Rdb3Sj^xo;j-^}o}&y}y4-wKcIVtt)EtD!1g?h^R5xLFoSx&qWIzH!Mat)?X=u aqM*4k8&)qxI_txK8DrXf-4CfbYyJkgv59&B diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_turn_sharp.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_turn_sharp.png deleted file mode 100644 index 06d941c1ba317fc5b5f1d6f9ea0249ef34131d44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3029 zcmb_e3s6&M77nB}6|CTDK`m$+S1OAk4?+R~f{++R49IKCLnN;o6GI;6K>|V`w!k1h z+Abg{)Ix+HwHPZdV+71XSGHmSOF%^=wWvTq1Tlhuus161PS@$|bob8Od;kC3bH4MP z*ZencSJ<}q?bg~sAdvS%wo@X(_qg?bZwdG$#SDK5zShXL#>%2Z9GQY40U$wa5fgxi z2pD^TNPxjk-TwpN4}m~ac+s)4SlUh^OC<1QSam#=0x@U}f%pe1#S9i7kinV2UY;-j z@%Zu;1f0hXKz!m&L({}$fXmySCIO<-!lGGee3ma85lDjjD~TY00FW`@N<p$vN>m0Q zUg8qLwN;Elz+bA!_yLGlq+)5i;AD{mfO~u5kt_@b11I=;V!VC4u-=>DSTx2Ph4w{Z z&`30fh(QyvX!z?30eX|LImAc`^|dc>7l7c(WMU!;rBEn56<(eq$zBx3*Vh+?#-gxT zB&dOurV3>YB~mEeu!ukbq$~+fEaQoUa4RB%DU!<q5Fpc6Aqd1Y+8bb@^mU@Zl%bRi zF$&{}MhOJgxL#^YWs$(YXuMTh8l5TzP?3OCB$u$jdT=%@8iTp}ZAVr`kPR_h!UK!K zNT!HbaseQeg-`+z;1^Fek4<FZSY7}Fz##FyI2@AWgTo_z(JVX?V0f{Z03O3;GJO|u z-eyn1lY=oB3XX~m!eTI6y?rr3K3jvxXet38ghf-Zi?$&`sf;0H0gJwQpzqhVUcYHe zBufB>OeBdGiINw)U>8>;6G^!uF`P_(S#|iPPk2JMNFjB%mg!a06hOjD0oYWDNC1DC zXCm({9DJBwcns%dz-%w1w-1hqWa9AzB!^8P;JgSvVE8P=YkT(Z%^wORg|arwzctUI z2<%Af^35oKn>WJ*2*C-GfTJR|v|}I;m?eY~6s_zXz00o#fHko3DdWV6qJuoD+h>Wm zuFnjco*Z4Su1JZPqdNyxEJbQpojI#BHhjs9USDUx>e`NPx#3C8aQ||c$*iVSRCUAh zwo9q?9bWvhQeWxA-JEk5pT!?oP>qXMx0f_drQUr0crfvCJpbIK8{FtDMq0^75Su0M ztahY3(zj&USeMq#maL#xo8K*e1^S;j|D*gBIgsbCaQ+MV4AAemtgWxFPhwKV7~>+e zRM$0fx^a{FO!cg0?1<iPpXQ77AGo-+W2TnRlNunRNooVhoF6fJ_7}$dYRi%8go^o( z4Yt?s+s@@wucx?PT<I_s>pGL5+2csJsk#GMzfK-*<X=s{Wuj!@%r-XbobqE^3d<WW zsK=``nz4MMNoR+?I~`^mS)1N)SJM=C#odLYq?PkTc4ZzvnnV*k{I(1avwg$@*8HNZ z*?xT7wsh%ylrh0isn=?nT;x$kDfLRG4L*C_SBjKX{RO$FYmdy3je47-F=I}<oh-YI z7a}tA^ltkyqquI}>T`!s$9E15KR(pEE9ZQCV}h}xqQCL`sreQ16eCJT*FURWN}AH^ zKQy^qOzLPI_V9a8bjEKye8<I^T4)y!rouM4bbfmLr@<EkyUQ~FxbNl%s<FH@#eJS@ zaqZ}xzuY{p%WOEGJKOr<pI7uh?TswUtAcjL!Nx|GjI_;9c<hiL8X|o&_k6F}bM6z@ z;<%pUF9xJNj{SApj25!1%%&<NHOAN)D!=ux0$b7+({U$nL7HYfKr1hK;QlmnUA4Ab zA%B{ldlZx1K`5&)T)KM?&yJS#z_(jbG}eBOq&U1Vd$qb_$S`CG<<HKUlc|{=1BpLR znDqI9HPDu$Q^x{tH_uOm0CV45cy@TE_wyw&S;O(Qj;38F0<X;U<*fVIxh@QoeRWlu z{DhCHv{iMg<_f;N>s@3NH|K2LK&#e!b$@|<ymLu#OYhV%)UCW10~g|zv{U(MjqbRr zPJVsSK<lOOGH2yzPxHt$!#GPTX9#*EbJI_YnossS%fEBS)zxRFr?j2Bch$)Rf2X*l zH*o&@iWdXREP2Slg_9c6Mg#h*zMG9_k`K&HLn}|(yO9#o^j`xj_;e0?1>gILn?N*- zj#W@HbVp#%&VOgSlOPEiS!YAd${qe&^@a+(WuxJlI&Sn?<lU&^M-K`zKFy%d^r<J? z9a@Xb2S3#uo=%yMf<52wTHG`P82xrwCUBVqmpiw<QAxYh!vffzIoL_(dxO5$F8A6l z9B)09Ng7_h*<jlcndR*A2f5t1=C938N08i-;I8akP5WUY$=s2{YEzA8S9LC{go=<I zDq^5Hv~po;`@X0R_VGk?Vw*$tY}y&m^eavCQ=6|@)O;B|r$_DF7CK++(bAABUKzHD z)mLLg6hXp?2K%1wAX4&Gd}!^``<O{uBJ9?x6K)Sa<~9VFyMX5U(b3p`mq)f>G5Xc@ zMfnMr{!y5pIO(P1%_nyF_cVN63GLdJI+bm)7@zd7na)Uxs~NaYL`U6FJNs$op@Hl} zgmB@>l|3^#z>3hUT*sdaw9JQs7*bLV8QnEBpVo8!Qa<Ela98CZ*qv42T<<AvHcgEG zbnjr%^0QFIZIE?XAz|f#jsii|?#^otEe9fDoD+i0-4|O23yzA0Z-2MDQy&K7^!knW zNcN93%^b^Id)Q3SCJh^QUT)N=a9i&sDmPr8{Ch&c5>La<-ZqWUqx+G+mgdR*mXOUk zq3ujMqE{Xw+&*L<59YHwSL@$US(lz;^&VaW9W2+JD!M&g`YqsGSDLrcK(-$bs*K;S zvMdwm8?;fXp9VQ#W|EIpukVOec70K)Z>w;xTkb!!eC|=T!;eD`+xVv)koit^U;%z< zUb9?uE#dT@O6Z7zJZfkyG`FiJy_%LvXI)oXM%;)xh`rd^hNO!g3|LRM7f#GZBDnz~ zJDLeu%G=n0`k~`}K07EB)}y{NW;jkwWV8vu$$6q5$}}6E#`ItO8QY>e4JJd<2U|h! zEm&W6;WFb^`LP1?v<}i0s$G5XgUKn(EZC{DdWTZQpNi|di!5CBINi0Fl-B8Zb_gED zoiV47brr4e6gTNH=8sx*XCK?4GYSa?lDoM+hZ&;SmPl%c#(uxHSpC(Gl4Ge%BQIhb z<xx`2yR|gG=gQO&=E_`ciu;duKVq6<=B`g#3Z5$>Odj1p;fBFrd$9?69b20BuGcjT zQD(5|2$s`VqZbd4|JR9E96XsrkELpEltyfUy*`+Jh5hEhvdYy?jhhURvCI8BW<C&S P{m~BD8b+xNrXTz#L^beV diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_turn_sharp_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_turn_sharp_small.png deleted file mode 100644 index b9d34a95e53e15a85d597f984092e462244f32d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1881 zcmbVNc~BE~6pjZ)5hSe$C=}MvDw1=P5J)5{CPd>H&QyXIZZ;dpK(aAeARuao;ZR`) zTL?!zN>Q+csI(pf3PVMXk-@6yP$IR878xi43dLHkZV<FHb^N0{v-|yy@7?ds9tjQJ z>|nRjjzAzdh_?vCag4XVi$21?xyr~}IIO^eWLN~M#F8K#LI_l#as&{op%^3_ffUL6 zZXy8$!h%GVREEhU+jualra@K?&7jue(gZ@l27?xY;}8sxBQYuspEPu>o&=~Ad{U&Z zgdx!ikXY506de+g5-f#N;$W_Vv|&9EVBp~j)CdLv26enf&ol5zGkSUW+ImbU0W%aV zj!$~yluQx|2v8jY_|iC37z9DUk4po6{aH+33czH5zH|nc4l<|=kOwk&Oa?IfkZ@}{ zg_0L86wTVgcYIPThG}_pdQwsnEr~@#buo01%jMD;OgfWE#Tit6vIc_;RE^$iPJ<B9 z!#b4~Q=uBbsu7Z-2^gP*d-^5>wN@f|t5~C-O%$Fox&hMCK^lXuR$JqmVe7GQ<eeMu zW$UHMT7({s=+OinjMqcyH7AVc?!$(xMBE!*h)#tU1&SA<aDp1qU}7Pkgx}B<Dg_T_ z!z=_sKq`mJW>b~^Yz~#nfH_nIV!?8R11jWl?wp?Y$qPAxO&}=r7cm2wAQ<G!1q1zq z0tF0_A19E>5Hjav#Tq>ZX<%f|whFgBE9>_`S)M?LKp3i%qG<eF7lg*57^;s&wSYh{ zQ+2>QQl(L#N&2<cGQEjfi0D*_h(e@8)xb=id8+sL;4f!!K;=xp3KrGZpDm}#IUGN# zQsL*vX8HN!;lrd^dBy+DA02m!Zf%x-HP74;-jUYj+fl$bZ-)ud;1i_7M};i<$r+!( zWU(+%YIrbkLLBQ9=qlRJu0BR2(TIF+xp1*OzvQq>;c-L4yfCMI{OZSP%@>aXjqU;8 z+rB6-*^JVNVU0GsminaGmD(N&`wDo%JQ&3Dw`b+`pW{6o@kmYI8xoRKH&tn>>~cEV zRBCI1oFrc|Ho5}#kQEvTIHb?RVbKB{h#%pw${q&+&LC#KBYub<-x%TTl-X_?^&ZOi zY<26YW!5X)&We9ey*On{o6PK!o+n3`;u9s7%2aJ~y!evZBVBSQx3~2Y#F;d^OKHVd z+DugeInaKJV#R777vs9ESx*OfR|eUR4IK-AJy`KFv@dK&5mtSc+8DEPqBZrqcy<%< z>5H80Kl?n&zt(E*9Jf$fJabFSBa2-k@;rRHUXhV)yY>*rHq_^9%D8D1*1Y};RYSKH zWk+|0uJ>`<l$h62IWU6U>9&Qg>vyUg?=&mtkCZh}bu_QaDXZwGM4a+IYh0cEJjsFe z$G}lUC&-9uG9NQn-pzSx3~?Thl4R6CCS6obMccXIq2u{CoyWPNjGBt7_6cdQ5zBj4 zdg#-~BjnSDn>TjIcdQxS!!4P3;ZmrsLA=g=<B}c}vr%RLLqH-urz*w$hDT#<eKYaf zK2z`I#u7@{74m_#9yd%?A@==YozXpM%+1{1>A~7Hj_Y7^3uvBrcKKfP?&$o6jC+Ih zonWTT<FKs{&#1;vOJ&1$<fZ^4XGwLJ`|h@SqosAH55@giUGB-&CkvH%Muua!V+7Pq zHc!ZZGo1)s{kg$T*`p};`%9K(m%WcueBa3La7#U&ZI>;B%C<$GO1^ta^h<-epw0W_ zXeiVT4#B%5p#|5?1p~d!T#u`h`!AodJddhP%&K}|e&yC~L*+bba@~HCGhKew(%m=u z8nzH%*>G{!@|GV1rpF-L-EwWP&yw)JHLNDjEXMu<@_6{f)OKVETr}xACW|V1sp1<8 zm!?}5j}KbvvWh-aw%-*N#<om;thKMhj*Kl=I?Hc+lWSXt;)<q4`S&CGFSI)J9IhSp zqI4dRnY5k-%T~tDfAz&DHa-;iKh64j)kx)^(swP5clMUA56!nHbSwZfWVhwZtUo(( MP_Xd)roCzZ0A3E%MF0Q* diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_uturn_right.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_uturn_right.png deleted file mode 100644 index 62fc53f569d3068f69ecb8c54dddca336887f8a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3913 zcmbtXc{rQt7LTIlqPlTgDkDRmj<yp?M36*ckWjV8Ql=CUL6AijLA9YRZBe>ROQ|l@ z*0GJ&Qj|<pO=)ygA{V7v%^+&2)?RwQbeVgfx%1pV?){$U`@Z*__nhDPz2}_w&6m^e zt_~a2_0&Ni&<4kS1P|anqqx6X4?OYS<L7~wE|=)b^<;)}`D8W~WD~*+ra~O)<S?oS zl^hZm{fKG>0x8GPynMO7F3uPVlWsy**qFr9S%5bPWMv)8B2yx%Tu3lAjK;tjPB*p~ zLTDj4Lm!k2+=XRF4X5pkXHz}nUA-vrkrZ@@p*0?26^j7?=u|El5=)O_a4@kr!;iQa zV60HX3?Uy)xRE%+Po#WZ+#z;MHWh+0F^5tR2n56eZGu2qB27`>K}_KY6bz1rA>dFr z0)v2KOyQ8vmmv_19TJN1AlQG71xPr<a4wgHfx-BEz6l>`!eocR5NI?S1~-M7nnD2! zC?}4=CC5S;9HTD?1S*HZrm?s*CIg~CBnLBjT$~}m^wSdPEEktQfEk?6i2_mvizTyQ z2opGrPFJk!qcw-?LH!qvzqICf#j&U`4=RVrV^e^7gc^Nu26Fe`11SsvHW)WH4JZmZ ziom4s=u`&Rk$^J<W=uk8AsC7o1xY1S5m0lqnHe<H(##x+hEvR;R5FqhOf^S@1P7zP z;QW=p1<DqMAedR&!;wS;f{3!QK_To3rglgq+RnxfZt=y}k-_1T85HW5*fb#aXJ3o| z>Wi^sQ^{N=+l$GJ`qBmN;Y==*6V7Bo?Cd^P9b)W5V}vmIoZX5teOfhv%BICoL+sg1 zI^<)XF|@znfI^3a28W=@Pz$&P0&0pfqd?KYW>nxoM#9Zd<|wLVsNrY-kpDG*Fn|<H z(JcSgJYQ5mM=FMYYz090V>3}1zz$*qTczSa|2_~%gXT!E@rvz#Js4T0Pt{eMSup0m zGR#UuC=rZxekPXtYrhZr=HaF-N~$B@1~(B~jPDSHn>2U1!(%meCYlopNZOlfhQ8mj zSxLjj<d}OZ<bn1&XjZ;<iT<^$%dK-)TCWb~^<D0J4vRbX=H2VA=Ee_in~>P)#}8h; z3R%}bz99vqvVBv~_lY)%N=oY$LxlhgKMDV{{uAhb;{2cb&*W6L{|V=>^<(Y3Qm!A` zwQE<-T3o+T#I=$o(%bx@uWOvd86-af-E*z+3~8dkoKSuy-cmkP;!WZc2f;kS(zG6( z&1Q42oh0GW<r`;0Nhb-=42)R>NqosJ;eBxdBXyZ0HYlh#6MrC4)i-gajwjwsYPUaP zDR)8P7d%NVnGHK5h+=_?Z=!0wg_`{ljC?EVWK1pm!%q2Ol0YX&WwB<~rmG;|^;Epz z_(|Dv3Df?N-dqz1Ii=L)#&#BulcuA(XP%K59Ie@#AY_J8z;@ozR_xToT@$$msV)X5 zY*q{HsFj($E4p;j;^M%y!1lThsbtW43{$10pOM}Gkwd}y)hMdPTC$e2G)j-h5bJ<9 zF!uyXWu$HP^g`vHi&{;G_cW)V!_!lyYrXWZ_?0X7gq|c0nufj*{hctlofqp9a2Aw# z&5gLaD`Ew4WOa#GY20p;NV`~AYRRE_uB^e*TRoJDpsr~ctj@PI_w?32S^b>_qU9+` zwMALWabKtWE=2t8F6ZX%X&82E+8*VE1Tj00Kd)I7eB&WosmM`j&0Wm&{F#x}C*wUd zINfkCk!G8?u)l5m#DH$iRouDMv@K-}r$q1rc~Qc{?!x=nuz`ysy*bEQmHOP-{1d7v zH((kaZz9{%A8R*oJja?qA54u<RaO}|XkyjI$5rc^?8JGc_3As1Kk|9>%pxN1NRXVJ zF{33iDOG)*Hz6Dx7siooo3{`>o2Lie8Bc0tWkKG3lG%$p-*yir2*W2#jo)@KvS6g# zZ6nO?vr_mEj3*n4e)G~DK0Rv}BRpj>J<k5H(q6iV=h+!#o@>o*X;}*qchl;nm#5l0 zW-~`_f;_zwt^YoEdo!bVq_jRk6i3R`dK1l0T@Ds!Jq`D917imk)#1lgEDhR!)sQ$u z&;6S4H)&eFt0PYTwXQI?peudZSx*$5n^4oKN=tF-#hhw`;4%3#LtA+)@#tPH=DhEc zm0H#lzdEaC2h<zUw&D35Z8^PGdH!Bg2EF&J8^Q^V8cr(N<jy*5=}NU_XMRRnJeyFt z^k{Y|OY*)+t#Ez7v3-dHlN_Tl+dxOu&|J{^3$hq7Ze=m52M^K;u6f+46)c-}H`qTn z82-Af<iZZione>A6?V-x`YXo0`9$ufw4?eYN~|C!)kx&R-G64~L0nU&S#s$1jGxBi zruMh#=;va*a~pE(4>=TDGt@=bJ;y|z(f0`wu%%%7a!bPxeaCLZ1@2)WmmlgCbuX!0 z2y?zME>(-j!3X~1{7mT5vB^=1*%|x;?Hn8Z1Ff7_s%pixQU0#5y2gk!)odFqOEQZ) zCasC`|9Wp-qs9o+puS*5nEOD`TO5(~Oy*5!B;ual|E6Q5c;f*pe4NC)d3wfvMfh0K z<h2^#7g%G~^aH+rp)>UwrE~TOJUO&WUhg}&(GPFWi~3-zRP<cSztHMPbG3}Z^+t=z zpAM~aww^Crd{gPPddRWBadtj1@C~QQC2_o+p<}&<0_zq>9$dqJ#d4VRe>3uY=v;Ke zJ=yee5MS&HOy2{hB~XEZN`1kt=KUi%8R<O*fcn5X=dIS3nf#C|y_t52d8Z|&TeoiY zZXq9P*c=O`$eh3X&olVxt`yLEWUGr*t+!J*0Pqh@TIy17ceuA#XIpvTj=AZQmCl1Y zbD1UB&TBQ@8Kf1$q~DrF;HIF=lDbRQht1_~q%gwZZ*L7Yj@s5uRUXOeO77y5eqA_( z3Ds)30ITIY>|rd;E|d)9GhBL}PjR&=7b_3kt$I)SG4kjh#-^c(<rg0cUz(iiJp8B# zq%mWxe8swCo96h>Q)vx_n(sui4{JVc11*QeYouw%wzl;PutxcHN_OL$U(Shgf%7s~ zf7r^~>bFKrd8bjXgGLp|0xev^H~Pi-6xZOZ@6usvn-YKTE6Wn>6sAALr3Bgkq?%pS z*s<wxIMHndJD)VEoXIj+1eY%E*=H12`2OoBnNbx_lW5fm?1${u89nQLZIAW>=isw3 ztt*pfQ!kjt%uh83(b34bn^{qEVfw-5(~DBg*0kBuA92t7z14b?90rqaC%CTBsiV4K zas5q!Vh-%}R};cJgyx>r(<$FT^VBP~%9QI$mED%?#4jkzy#e5wMcIdwZJO(z)q+MP zSb<a9p2Fza1o2_dpFtE?CG+GW$62UN`<uwZv_NoxXE?b24A^o2rK85F)xA*nuC(M{ z!PoI~8@WOK#)7j?^a`YnQ4KS4A%^9LWz`bJgQP~@`^f}|PGH_DzrjE*ydy~|xzIk$ zyNdCQ<pqK3Mc~*7?5qw}Yi!K#uBrUGStqX%0Q*i5@3v18m|Y>MbV;ODw-65X|011x zJ6p2>?}A7+PiBm1$M0`G$_|LBk8>EhALbD~EN_<5dy0PJe!q5IP;6H@I&klV50H|^ zr%AUbJ)&33YAbcSI#m|-_XM5@P%FB9b>E;bGT~t53rP}h*n~G+HW``nb~0!-Z-@E( zvIYiz=)Co!lV8)S)9+h`0{#Z4pNG}NQ#I;V_|y%8h7fhS`r!H9?|!T;*B$b8&701i zfaTcs5b1u%1d{bf$cmWZGAIDKdGvivx6$hRYAt6U+1%~UgH?Hf(-uvNvdXls&@ZQI z+_&I~SoncG0@<8%%f{=<Jyf^i&`MoA?d-=yO0hHITJvZTD}crg*JIti4*U+H0CDIN zOj_fz&UpYu7tLhmGs@`d!3tV00b00%Dd&Pf<dsV1#f|<r_>TvG11ozmOw8X=1s>Jf ztB7vp3bx!am-7Nedg~E=WB$c!=Luo@IZ~zWnjGHxlk$Xcq&Mj{sa&^f0o7sg?ct-@ z8*eEi8TK`yix0>r>wMNZOJAW{eI$zsJ~v+uH5XhyciA@AmLIN;E381ZJ|RwKrCuc2 zg{h0`Z$*k`mb{Y{wP?Sq9OhlA8<3T{vRv_#Ty;#Ce*2bG^BRe&=!Mv4Sk?ha&I@l@ z^EAhs(WLdbzB4k#t$aAz?G{EsxlFm`U3|*jP)h;zPJPA(X%e{}Nbn;)r<`{$RkEYu zWvJF|#V=Q6zdOU6Z@ApR;*+nMj^(^)a{s2%{GjK6_!n)x05d>A<)tXt@P?)Rc%48c z5l=L8ob=W+y6wzz%n&aqHo4tX00b_@HepzNY?aOS$No~yQ4KLT+ny!s45;2MOdm1G zH_AUc=#-L=-_DyfHh-$ESCl2yT&PZ2s3s*#we`TUF^36*dNq@p)&fiUAnk<1RbEhb z-zus7<~WQ{XD<I$EUY}EvOVBD?A~o-`FYbj=&I+L2eTuZ8jtNZOWzIt{9*W~uh|sD cyg+F^D5vW^Sl^%6q4;y_NOUDs*ajW@Cxt}7=Kufz diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_forward_uturn_right_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_forward_uturn_right_small.png deleted file mode 100644 index ace2fed237f5b46cf928e299a680028a75658008..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2197 zcmbVOdpJ~iAD@uaCgs_;RZ?S=P0W1;Gm*v&nGg+&(i3N9&M+}^W@ipFqr{d=(<Zep z$tCSFg_Y8kcP*98Wg?Ajw^xbSd3iUXCMqHC8PWUx(X)T-d7ktAUC#IO{eHf;=Q*mt z9ox*8tX_gbq0HGnEDo~98eTI~L}m&?+mU4z>=gzFK>}C~NI?{X4{<>>TLeUb91!3u zzitKHP$=VgVQ?56=I=-6K_VPr(7`E05(JGxxp^og051lF(OfV}D0at;{?vd$3;FJt zP^v${U%~{Vg+2*VFeqV1FfSp7N8@8WwxHb<bi{xNgaNcd6f2g|74Dc>yL4o4xW;49 zvnp_mJLUtaF#kX_6Ow{xD$W_pBNB;d7aER8btRLiPG}N=NW~Lqcp?EyAkv8hI*EXu zdoYMMDPKV6u)ODdAt!fCGz?4Vc)VOL$H~b!NE(GF(r7e1frKZKu!sg$rWC_~0xOo; z&0AoBGM-c@frXG5ZLkP%p*YwbgE0LNf=J@;|Ix5mHkT+QWq1W3!4q)=yhvn-YgStZ zbHM-6_@uThSSbPV98d<uNqI;;1a|XaBzJ%9$e@U@p$ABXNKt@T7Q~Aafnu1=a>pQF zaC{-3&ZF?iAOI4v&NK=ID{!SaV`&7QGZqBMJTB-=<a4>Sc{`uNyHGu;L>7hVO(1&_ ziC$C&gG%&fk(gvMjmcmVT;{QCu?z;pJaFE(5b-^S_54dLohbzY7?K7<Q0#mc1V%$J zB#VY5XeM*E>gbK3LNOnb%Nz`4`Vch>lnUcPzPA(-p=a|<7k+{RmBtrv`7{9QLU18s zNmL3COXE^NL;z$0h3ZTNT?LpqJpb?J508+-8=B?+nrHqB=}5!&<0v49kHZ9tkqMF_ zqjJ_^{1OUfa*fSm1S=jrFARt^XRK)+-1&(4we3mD_OkCnQbJPDx4ddq%lj~$_6ZK1 zuGv}k{Uc8|W<;0Zg8Kt7FY&JTkFv_kIGcQql(JJRDtbHKuO5HbQ(x4joP0feu%Y$M z{raM!uIajo_BJRgf*Tv_$CxN_s9A_IU0`Jr`S;}VWCQk7(ko=)#K8qB*6mS;O)Ukj zzv<LErH-q2(xa6}+_oNMj9_}#d)&~*XRQ<X>LxGNt}+VW+7r;@yEi)UJ+(IHKw9^@ z^_Ln_^<DX!?20#JzEFq1I8u1A?eo0X<4q=ED<)hg(l-RQ4!m;qb>FpcW%`MlyaV6V zVUh>jY)3I~1di*y6LV`)yH_oD+AuCjq~`rT6!YZ-Nh!EFE={!IG)y0{)ShVhbu32r zCoT3-fIeiGY2@xvqhrmL+b$p1TvOQG$e*(0g}v*F-0u_VAZ%7X>Eab8Q%{DbRr+_I zDY0s_PiO6|i_iLu`L8xWPtrT4{F1cq_2O?I24?7}I!jupYU;_x;)066M}rY7T45*5 z45^JXcJhWSs{O&~f7fhjOz>70)sG|wCxl^@6^z;;-6p+PZFyC%h*q^-bDDL9K1SF! zZQA>G8M9@(CeG@?#P6d&XWlL?;n-W#pXHn(=}Pt;6f|`-Yp8c$>i*bO_@#}txrXvK zMO`|@I4mvbuU{6fRvtLjXO%5p`n=OA$VMLNOUZ<;?MVvHeQZsOd_~PnimZLVIluW- zlTBFlz)R!Yp`;7Ssbe+g&%yY!TUS;)s~@MCaDsZM`5hU}-W=57%jHJhhYF83^q96R z=Gi2xSDr7}-Ey~eT`QEGwc}ZKD#=4XBO+>Y?jFi-FL&<Aa0|^{I@uD@@8&zEzgF+t z^He`^wsLUfTS$2Qn_q*5T83I<awc=r;<;C?Z+73=tZdZl67sD60d)3N$!+)D-QQ+O z{t?R((cVNTw)*&$b5HZL2j1#kGeQ{0((X5Q-*GA1VlrG7%I+9OIsIHU;7XA`3AImM zl)?&a-+6DS`igPA(_Z<@AM1*<zPR@vV5HwV-gVLV+STc)YtKDwY`O#8eqaK#_dL9= zn#pT1yIH3y-Y0jQPFLG!6=`&FXwM(&6&`)nsAodW)#z;&uW&tX2?4bI!&hwY`AgqR zIh<9t+C6Kk);dl?@%qQusok7_3X2t%?RUB|vv#?Ts^Ck@EvLr`A>WT(UgCS|MKG=7 zmUpL3^4bB91HU<Jwjd~(ffuYR`3v$UO!}^-zAD6cJXm63rfSj`Xa~*9>K68epEF)z zIgFM1li&G0P5vUxOcf92Ya!cS!qJUps(N*Sc4qxh?Zq=c*?Io()t`bfYdG@z^sZ6h z5B+!AhSI_a%zf(@C-OB%N#NKbuzLEI1tEpCUz4r%;2Jp|wI%wsvrlOoE)*7<Q2yDq z^D`9?V>wf4Jh=LNYj1B(mg94xJ5cJ$J)WfAoTFIt*skwlab2TDWlQQWHH)*Bp$?;# i8WB*3jkN0)n4+c~uLl=s@)Hd|3T&?(tSZmQL;nRj>w{AO diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_keep_right.png b/OsmAnd/res/drawable-xxhdpi/map_turn_keep_right.png deleted file mode 100644 index 503cf384690bf305452df5309d6ef8f662190fd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3713 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_keep_right_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_keep_right_small.png deleted file mode 100644 index c488b8170b5e852f07444090e6e04a632c5ba756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2174 zcmaJ@dsGuw8js=wf+#AmC_-n07D`Dnc|Rlz<blKz2oQuQc$~~kNQ69028jWsA}C6; zVhQNtqY)Mq7i)o|#VVrNMcp*YYENAdMa2_W*L78BwLaMig4;hlopWaHz2E(Q-}CpK zGu!2<%L0fCi39>6K$<Mhz}G_W>pKJg?o?-A!j}b@BnQhhsIg+mgc1@Fg9-(tIw&8_ zKp|wqy1%1w1cFb6R*{3{$Wr*QK}UhSIuwh}h@%OFxOj^Zf(uX#P@(x+y@2%iR1XQz zA_7u2O9sk}B2=SIwwlmPYpMda7Qj4&6#oYx&ceqH=uiv-EV@FynQsx0#_jU)y;n>n z0pluIfq?Wbs2rIb5E)D;z@o6pFpWk7I6MlC#bwZ0u>c*Uv8W)AN(0FtjZXvlbP$+$ zNVqo>qUL9alO}xOCjm)=VMaccT3lRADP~X%rhF=m$Kz2!I+ac*;~Hf120aE@$a-_+ zqy;f*hD}-{rZwmRuSG~@D8d9JJkob5=!`Pid&7G3M4|AKQ7w>>N~3^Ooz9!rxV9O~ zK>r`c2er+L4Mvojftn3PCK&IBI&u<>*Y39+c@^<!_-Q6B-V~@%Y=Db&s2-Dw1tk22 zf@l#w%!C;zgwn`t9+OE{bD3;14}{rd6k@<ClubiaD&C}>58>HKLLn$*iIO<<L>f)P z64JSeLS_<+E0OR-5=P=AR;o8+kRC=SeQR;w6IkJIV)-Hy3SkD5!eA(zWPw~`zzk-M z!3c;%<6Q@$v$cA}P;CCh+opF}i&2wyJ&Gim3_4)E&V20$VnEn1#NdE189`Ve8AkCU zKr9u5%;E50ri#wuAWV=nfk%E-zjr*vC3qgj$#D2wn60KmFicjnIVhP%Ls?`V7gdoV zE`!5_K^6jXI3y|_BGpTsUr}jNg!9w8eLooZ;r(c#dVHQt_~49%jd%!zX*E)DqQY|h zKl?vR4o(lf&_|Y)3~V7<f2eh>);umJ9j^JZ{A^Wu75lp#x#H^bWM@dazh6P7e6K@N z9RdYacIV~BbcW4MZ>e99J|HR?cutF|**moKU+%kZ_nWcXJ@Wi}LrZ(knEUqe%sYyT ziu?j2UfvE$2>l!+K!G!WSqY&Po83Vn)x9^CFKD)nG<5Vncv_wm8yy)=*}qR_ufDnI ztxPF8`E|)zhi#ffniJviLkq7y{wn=mI=>N!U49D+7F<-dWImI4L`ls~Vsw%HO!w>V zT6*@1uoyQO`v4&-Q)V|ejO96YYYt?%gkgh6TM9+BniJARGO2uP|Bbid=*J$P1~Fq% zW=-!GjfzI6ThYIAxh*wqe@D4#=0Bmge&098wWM4rJ!xJ3drwq@xUBziLI`79$4psc zd@y^<NW%Ib_dl_HnYLj&ar7U5Ieoyj?oN(RbXM2w(fUXBEJ}pI2W2#f4Gn+0V?Siy zMd`shPqPb_)!wJnMO;)_&UQ@=zNfDwH{F;wWSc&+u~TB_#<+P(=c~=Dmik-_RM(oI zn+u;Vj7Xq}YVWs6_a$o`vwnJ@E3FT&31M!xDqcia-_g#vaAono&&^-EBjB{&ui01D zxU!a;oHKvz`7rBJYINr(x2`O{e%FzxbR(`Qiap)LyMqzWk>a7nr4O5HE~g1%VvEcc zE}>&jp=+)p#|o7WHkBn@?pwx>|EnBo)k;U7C%KfaRM%oxRPWtUTVI~tJd)E|)#SXI z-EV>dB<rY0vvN8chet|mKiG4p3w5N_k>HopTq@T*NS5pg`*URUaeFwnsR3{gMQ?kg z{{G-McE_qYi+0tueiYZ{?{YZ3RQMe9^}$KeHs9%#%&e%aUhm6DJK#KF0Nk-#DzC56 z`&ax4Ju>|4QlPs2#g4%!T>LQT+p^I05OiiUPqCh4(&@*louiC1Pv&%W5663m9eaL> zS8C?H$^Rm##aS1fo4hqW^xLlvRlF3<+YPv9ovQp9JV|_Ah=o_Y=(D=gZEr4DRRy-J zCLLRC&O9vB!j?bA^$AJ`-|W7>#Ol9OlY6bEcVB9KC2{nG^OyF4mC7YYu;hWU0O>*J zX=stBp(VCurFhM2FgEyn_2DPh(H9NdJiA^f8+UJ8B8UF#>{I6%foh$d_;b`MAf;Ah zubcfWer}z=2V`!4eZNn4uqWnH0Aw2;OIDU^=G|Nu)pneRp-($HmOMZXO0k_b=g`8R z1W$8Utk_!xCeA;RZH}*3EGB{Zktt5geQoRcO|Jt>+S|Y>(A)MO6SIbXw?J59-M$m4 zYn4at6?*2(y|!8<uXtM4e&tBl;78EWrhZ2eYSVW|5}D6<$3FGH1zlD;+S86-OeiN6 zHVi*IR>4|071}D#Tl@G(>M|dv+wat;bi2d%;i0aLQ=RTces<GbeEF{8>Z_FC5W9bV z9p~H}7P54sESLN0LiVn6Yxd6`Z|E#1p<;^f7JTFh<9+@{6x-Hx?eN6;5Mko__RO;B Zp#;%T)CI?*tY+^YfmD(z{#v-E{C`kkVvYa+ diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_right.png b/OsmAnd/res/drawable-xxhdpi/map_turn_right.png deleted file mode 100644 index 2a7f0fff5371855888d0e1f2acd0d4c2eb0a3a95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3269 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_right2.png b/OsmAnd/res/drawable-xxhdpi/map_turn_right2.png deleted file mode 100644 index 87a839262d5c61977bfdb5528cd9f4a6806fc974..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3104 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_right2_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_right2_small.png deleted file mode 100644 index 6a1ed801bda8a95473467949692545d1b005fcdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1948 zcmcgtX;2eq7!Kk|k$NIk)DYAHnq$d9HV`Q!AVHxaKoS*OHk%D($Y$eaA%UW$7Oe-O z&>(_!v|a-gXiyv#Wa806r2<n#E{|FmL>Z6@^%m_0!S;vakN)U>v){Gv^WM+w4r%17 z=}z;VC=|+cNtjqht~&cWbuu~c(I^_o<s%|QNkn5B!UW+6B}k2_5UK=)5)c^zsZ%#z zK>{cg#}sXhl2Ash5x^MAfb231Gio5w6iPs#*#N;w2tidL30l37Hdt+=QMGCzO~H*| zMHoa#qBblIN21drW8kzT7*x{&S5gDa0#X5r5D?Xj>hwl|Sx6hzD<JpwYbK34DncX) zX>XiTMo6h53`eM329FK{06_Hv8332h_T{di`mz8nlLayX7M%qM0G7a)MIC!+q%~Zv z5y-@$W46eXkd{ag1_6_4GMN}AHUq;Gm;eZZOqMUx*OyL8(2c2j0y5L}M$d5#V#EmJ zS_7fQ^i;b>NQEU6LK^Amn-EY#M8sRgdgEB4$dob7kbwy>SWFbP$2BT#BxJ}xZoE_4 z7?Wy1m@>qOCF3wz4~^$In9SY#4cP@rZv>y>TCymRPK?3HD557MVj+$E!cc3~0+<7{ z5eNb3JdneoYxo=<9b~~gIs&m_6~Y75Dit`c=UsSiFi*@53g(3Jcpw0TaQPx%do@IU zAe#>a@mb?oiQY&+dKekEttD-bVcGA+3Pd;p5f~nWVY=}ykS1aTW=zBkRFP=3>Qpa< zR<FiPMsItW-b5`%aBT{r4#hE)I+|yJ_8mUJd^X!p1CkxXfqm()iUZLh4p&9zayfn) zz8Zi47DOAvtN&~Mn50uod$atjdB(5Ej<j#zQh_|YB@?128HAHmF?BU=AsKjHA`Xf% zclO`duzfn@UiT0z%~xigrlFRy(~KDveoi5&(~eu({As^c9X|F`-h!dr1?Qxt=mx2! zCtIcP*t(l`a@UbZg=Z@9my3qu?zMmkn#O{Tg9U@O%?ftH<AA1wrU0ffa@m0fK}@=j zqg(tOa%4o2!yz<e-N?Ny6J9qIWJzk8%m4Cf${PtkE_7Y@G;`9#=v(snxJ$D4ddm;c z$Ur(HWA2m}<<3`(;isC5h*gtn=@sTpJ_cRckaBI4TdS#0o6{XzzxH@+!Bpj7o8z8d zx_pth|D}G#g`I7i7Wc}1>MT6OC%z`y<aqwX#o)!#$tMljDf<#%6$kowPWY^LO*qec z;OeZS#epew*UG-U1N9pbWgoU<<^b=ek0=mR2rNsppg$Dr3(BL9#zi%H!!mH&+)mSQ z)b;vw|FuQY%Q{>ZmN+}zFS999d?Gg2S~*|umh(Dq?JT$}t7*whs+ad1pJ)AYO4oN3 zZX{Tm&Tbg=d{$U}r}4(^IbX$kRqJ}yFA}fnh%^st<;_`1dBgQtZk+pPPKGn`uL-u5 zNgKT`!!4x>yjap*x%m|Cp;4YlYd-73X8-tY`0M>OgNIUb4wh&~@E(<Og}%M|(kV{a z<r7{e_a{-S;`(--Tn{1%yNcKHKQ!E|^SGvJ$y{B}>)D;Z)!1BXt#yNHqUFn%8!MdT zTU;Bvf3<o&h;i}RWtsMRz_W3AcUOBrIarqE)Rnu$I(unwnKw()v3^<Uy!uPBm0=PG z_V01eXIf`BxXJo2s*-j{HBY*>cRzULpK%UW?9C47gWUb<0`oH-Nec!{8LI{DHI#)N zT@Q1@H+)j`dHu?d@8lbDo#p5h+y?J!OYW?qDA5$5+u5Phe$%c!pOpRjn>}B+KS|x6 zU)a-Kb+_>Dxz@NIiQDe7FiN}op<Ywxjqlrrs><0mHDF7;?{um{@-*}MvjE%Aw}Wfs zXioQH%k=CQXi>R!!GVd^D=V994~AdnOv>ios3`F+sa@uvD{UI~pU{7}w>1eVIJlQs z)zQ90_v$%%A>O~|@w(WQc}Ve4>qc9&`Iow5OaELkll3B(U-^M`#>FH3q6-v9XV(8U nSz}zsY2y&;FxhP`Ix;t&BJqzq6DOgw?EgziNTj$tIDX6DyHW8a diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_right_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_right_small.png deleted file mode 100644 index cfa7d819250c0042062853e12d6b26a434c99da5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1958 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 R!<oK6XS^aoUKYDF`(L*6{`>#{ diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_sharp_right.png b/OsmAnd/res/drawable-xxhdpi/map_turn_sharp_right.png deleted file mode 100644 index bf0582845e2fbed08254ea2313b61aaf12f5d13e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3075 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 TH1O=w{FXaAx;qrv1;qUe(QgZ( diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_sharp_right_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_sharp_right_small.png deleted file mode 100644 index 96bdcad4ea98ef03007693ea29fc7b044e752de0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1861 zcmah~3sBQ$9Ix|LWIj-bh&p506p=JZOWU-7Ug<-M78Ft7Jf~@r(xPoj6QJPK8!zc_ z!fs~~(M>ryZom-KQxp&GI2>bIP`5b*fq_#*-Bg@T<>68u>h8QP|4Y6vUw*&;`+u>o z3tv5bn)fsghcjIhs*GgU9j==@g?;Agqn+$BpHamy8z?=Kj9E#JoS<|hpfO=_WF(0Z zDG5zv5Qj4{!x$CA#Aw&baLUBTTo}I1WMSDHPS7fw1;e+K44@<9jOJk8!<srCU?hTh z(IPFZwJ1n~F*MamZb%J}!c({7Qi8W?B@kqju?kEig8??v4l^yY1@lJq%GkZ@7~%mV z5N3NYZ`7$6?K(g~SxG>|7lSy0Ab>>5M?|PlAo2$UFd~9rDTKfvjK~mJCV+vli^p2C z5_(yrQaxsieGBFp7{(%lpycFaezK5HS>qr?DwRU801^m576H;JW(Ko?X4+?5gOa3i ztI@(3DKp^Gi0P<ACYZ;1IvRq>qSd}uY^KK&#ik6hVHODC!;s13ifaT-Gm+#QH{OY+ zqf#s+6iL!lq7`TBq4yalv$^|kLoOiejV!`yWQ&6BP*QlJi8M1BWiXHZ!Y7P`3=hDC zBt{~jSQ-!j>d^o(D1~t`NMb@<M~V?br<0EBc^6--4hexnM5tOKkRymn6e2+7ApvR; zs!~Z6DxrLwt1;6IX2!{J+eX&*7+3P2T$#d3Vhm-CqNp9?U9iqTF%)f}EPz5WQgy&L z+Gr-IWO}))OrudNNvko5B-B>Q1dQZaW_*Vagc!$!5*P;wLIi_2$tD34>4cy}BE<uA z0+ECWfO%tl;;sCR_9=V9#$g$EM~32Jy#T{;P%oB{AcBx0P>PZ|5JQEM02~$(utdUx zSQjBz>%7%U<40_Ny0)(egME2DTBMnsCo4NRqUQ@F>^w$ml=3KB+k?Yfv!}0L*w}mW z563gP$BQ}8@a-<1eO|wR#$Z#{qr1jaxjFN~+^FHX3ugKjgU}}*LB|^$Nw-^Sk6w2_ zR{pBv{?7Bgj?-t4oD<T`Hw#+Mu5?~HBBfj6nhzIr1=kdZ70=GQ(}bSqV3Szk`mmz# zTJETf{5A^Ds`kxN-7pU*OAJH3bmwF54SkR7PQS-j4~H-6%<lM}@~p6aGqkaP%b{x@ z1jZK1k&hc17u)$YPyNb&pkty#W0#g)R3vP<?ANo<k?A2m>MWX)G{kSt{;FsDra-iB z*qK(jxb5^sv|;B}pNed2XC~S0X!WFD8GBCJwowHdGOgNgrG1%hx4weY5@A0uY56j= z?#Qc$t&pnh;jpu?(z~l6;cDm6@^d|Z`!;suRx%mCczI6su70|;jK1(|(PXUe30glW zE@{47S~U|ha|7$Pc;7-#6zvma6bII6=dDsK#Anvu6t)c}`Tbsd$DR;WKlmuB++)tg zeC|Nv%UO=hu+^TP>O-_`sf_mkSKp|wDqWFM&M2D#2ZWc}kDn;aKKb6}7p)r`;&=W0 zrA6Ui`Bc%R>hh@=sEp0$9t<0DLn8i4^?!NDJ#JZj(Z+i-KR?h@TSDJWxRIL@oADEL zJ;&K|?$#M+dSg<C$kG0+yF2fBUgLU4BWd2#Al;m>3fwI<&{eHjm9`iD=hN@?r`KKx zLOii0eR-|%z172W+hcX@nzL7~5C>*FsSgUgGdVS)d`;i|gYiv*f!fewpU)m>*E^ab zt1>t11V~v9gc^Dcc|Fr^7jX;y%#$BS8!|O}cP&=Nq$72kJLU=(ohfMZU6BT#64<`G zCC<<Jf}8WTwx_b>Ol~pqW5569a_*ng2Z!v}rd3VAy6H`8`#+u0aRJ@CC*ec4()+h| z>6Jt6&0P2VdGpb|OU(A}Q;M5zrFG#o`(xW}l2FXK`f9wrSpio4W<2ITnCq>M*`E$) zc(Af$AFvO2|LqQxd&#}(xvb1mvyug;vGNA`zu?&`I$vpo*uNFWHgBCUg|j9kFmdX{ RJ4;<ZHjOG=SrM`=?H>~~))fE% diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_slight_right.png b/OsmAnd/res/drawable-xxhdpi/map_turn_slight_right.png deleted file mode 100644 index 357ed538b87e8e3d144f08da28d9a695fd29d555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3245 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 Wgxg7_-#pa+f$((mc2#Vq?f*MJ2!7@O diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_slight_right_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_slight_right_small.png deleted file mode 100644 index 8debf40f17974b96081b2baec5def3300fe66571..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1931 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 P{vNI7Wv1iVt6%vaX$9}< diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_uturn.png b/OsmAnd/res/drawable-xxhdpi/map_turn_uturn.png deleted file mode 100644 index c645cb91587997fda7ffaba663835e166a4b887a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4142 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 K0asw{bMim*CLq)R diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_uturn_right.png b/OsmAnd/res/drawable-xxhdpi/map_turn_uturn_right.png deleted file mode 100644 index 018ce214e6142b18b46135367e9357c2421f859d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4159 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 Y@@{)Tuv3v=7Junooje?i?1K{i2Z>AUFaQ7m diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_uturn_right_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_uturn_right_small.png deleted file mode 100644 index 2ba8b92d761601b17bd76835affba948066c71cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2337 zcmai0c~leU7LQ>Oap8!F8)zC050%Nj%Tgc-ASALA7F#Bh2}DRHBmok3s7g`mf*MqC zDd4_E@M#gmpnV_|?Q^LJwF0#+2r5WLswsA&;OifrzBy;U@4MgJ-@U)Poiin&qJZi4 z^X)Mh%=Dl@UO2j^T3$O_bloD0xrT1@w0yBP0+DGmK{br=l_C-t7o-4_;BXj}>eE_b zPYlLttvph!6$?YS5TYQ079FBap+eCZjHi!I1wtvX7AJv|<Vr96i~37=oLuUKk6{SO zLX|(9EDy|5!x34cNGK}>;z;p6-Z)Pk7d4=OwIEKXNL6aMIxqZtyIk~axhCOp?^U!Z zUic5B#KKUVKca?l3?dVNC=?2g#UWA{Y#No}fuoWs3=)|`qL2YHg-aoGsbt*vgGaro zr7~_fPcZHamAvrDTCIvpB4uV~5;JK;M4d#Ua5x+inM$Hk0aOFf=#^Sf2Pid*CoJ$_ z4WyQ<v~om=vseTrNV?Vwk23ubf<h$}el)Dqj3)|B8A%7KNE9NOq)=Gmdatd~hQt4( z@kwn>q+SJ+!eI@Pu7=Qh$QDn4(cJyBBa0%+hPz5FM~ecc@(?Ip0V}mZJTE-@g(#Iv zxey(q!5~Zlm>fDCkg@4ZfJ26u01VO~3CyHOB@)hroloJJ0zW^pAA>GnQGF>CKEsd7 z_VuF+7;HYD<Iku0PGEzS8ZD@V;0fPy)b}`+_K#SuzZwR$h&mEMQYX3~G#Sw%nq)+U z^Y?#Wb)0*QTq#8|HA^jJ`Vch_R?9PBsX&b=aPRZXm4AYRlnH?}78wGhQU)1-U^EFJ zLqY>sEDl7MP#G*Kos1vHOaGR?4}FT>pmC@s=y2H(Q$__L2#_&ZFhHTe41mLiB>>2# zvFH$)Atkd|coIsHWNDqhwbH~D+Mkx=$H72_kD~=E(Ros%gX1H1>c?PgXhA&RNL|;! z-uSPhqFkCg!djgc441NFXKmYjp4UPTo;&xjk=6aOX<_Bop;E8NMm}y7@9l19JJSzm zD0L_jhs63<3HPv0v^Lw%Ce7XOH53PCn8%(U4Efh%-JPzKXBS8AcTeuVRZ;tz+s{gQ z_U_G#^rbt0fcbEMmDt8wFmo<HabhJL^KC>zm+j11on`GgXP=GFbe}0(*7x`H8l~1* zy~_s)qt^GPFDk0<`QbARS(vaRCyDD~l~ORLX=+bWZ=s>1Zc4txi-Pl)57%M`M&{&n z*=R-y->r_(cAj~-XMcZoHMaeTx7FkkY>vsQdd%bGsdc7y#*F(0+>w>}*p69ZMO?Mj zI(3_Y+7OcXXTR_0SD4SEvKD*pGL0P%8$3Vh@`VSdU#SXBzt>i-NEB!0STEepG@fk% zx0qZ9Z*N*MKX2{hzCzuy2S$2Cgn!T8c}0Xhwn*_JcL_0U;Uf)o*Y)jbT^G(O_eGbD zE;DbdiZ|QmPkON~fBlb7wkGsdR94rzHC-Fb(KS@PC9d@W{MM|g5VbW=!6;4Ty^n#X zfpM>#NB8f7xBfPC7tbq6qs=XSUEXtGUC2#<CW<}xo9o?;lx2_SoA(rdQ9pf*Ca8;h zIjucIWnN+4)DrM4b+icX<PO`P_^HOP8oywcoyo1a;7&zAV!cOw(;@4sN1QkN4n4fL zo0a&=5Z2khbXvM|{EmpcpCLW=+|5cy@8C3*`5<54eSMZO*ZIMTW~aiSs|eQ>T=hl4 zH)ltO%B=!@b5m~scmA+7@Q7)r_}A4C#&n-$ZfNhxB098wd28qva$%}4o+|T{kM2F> ziJ|4@-dq?M-FPA*<`7iZZk65ktIrCj-G+k{2a{ky-q_)S0#}+jCwF1NZh<HXi<QM0 zKs{z;YwzQ1D{RJ3!w4hV5vdR&q2XX_${)4#DaH0@gRAW}ncT5ecAN0z|F>SgaR56e zi*;NQTp~M?+~U%Sd)P1%JNw#**TKqf%2&lEe3_AxUAbjZ%nfx{K-Afp8wYHOvqYD| zZZMq%3wU$V@O`AVYt0_S+l6lsg7InTYV3Mj?125#ccAx`W5;O+YP9oM1=w@O-GgJ8 zecd&KdCaHp+~dXRuIoD{htBBK455OeG(Dk4W&DgFcFb)H|Fu8iVtDyjL3hZ|7-Hvf z9C0(QD(>4%4O&yYGB5M_v$Us|o=kls4b2WA7;i@fN0*5Te|%-rOgxhj6b(fcz0N*O z@;Gj5BGjJ0^7gC2->oYnIKu-nxa_L4%&l|rntA5aE!lR}=T?fDcw=C9)1s_~#wFzr zoW3)63HNtOZ)ERyI~;Yr@AInjm)!RP?V^`^9=bYo<ObK>%dYNuV9fsa^V2Sy>oV$2 z<!6+<D;v1##%cVnxFN{RfAey0y-(tR<AXkSLvvGl^zz|9o#$!AD>rAFeLFAhHhf=` znxU^U5VrvyjblY+Kd-kLycw66=JF`IK1%CpJjy)!B-z8q%enshW2LbowOj1TVIuMJ z_MJ`JHV!!cvT{bBzN2S&`OYiD6wZv={M3Qd-`;a&UbJcf^Onr)o;3TJFrW12$;y(W zUQE+n!iBPm-iB}6x;wf|lK=L`T+w2}^&7UiY$6LCY@Fi7?9!4I%a`q|eVLb10(jWE zwg%e%M_szVfvG3-y-6zDRdbi{D8X8g=u{YHZHUruaa?+CypuMVEM2w1RC6L8I}H;& WP2}Vn!2ZSZ(-OoN@lN?A7X1bGJ-VU* diff --git a/OsmAnd/res/drawable-xxhdpi/map_turn_uturn_small.png b/OsmAnd/res/drawable-xxhdpi/map_turn_uturn_small.png deleted file mode 100644 index 41e2bf50c9d60b23ee286e8003519381d7a88a74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1755 zcmbVNX;2eq7+zB<hhUkCP<5zF01MV+catnRN`R0A5|Cp;5FFd7OR_l($;M=nfI8xV z2So+xK#NkbMlE2~R?sRVu{y0sK@@~h5VQ&^q6M{B9jbN%g!YHykM4ZC-}OGvd(Uo3 zO^)~Rn(YMufR9`zQBbqY`Fc#HzUhyS##7TQQkqGo5gIZVv*3V8O=RJq+=yv$1&*on zmS4al0pOh#dSxb=nY2)#B8*JTDZ{iG%@i5{BBO0)Ol81HFbmh}O+xxmqk|6W)k1m( zngl1A#kfu{%eUZZ`N>LEzCp!T)1#xnNSlBnFybTz+KkyItH36tkMRnqweuLFgJUA3 zK}a7rDl;h+6cZL4M41r`6@nljm(N5{9-D<O09i1CLNFgfU<Ql`5Lm#1!HI`XX|t#` z0)-@QLKn3Y(sd+h7C=yLZZ0#I%_J;Z2;uYj5X^#DECwaPu;!Ua%*HTTgIx>~+^VwZ z&7__%flfv&i^w5`bjs3k7mVhlq)B3vbs|ty$RHbLh7cwU8I4ZA#-y#J0{_>HH%eQT zd1f3^;8r5XqN4Jl33h?0*u7nmQ;@PokYdqONx`xugeu2~n@G7tNT+U?YQ0*Z;qZAp zJS&TVauF7T#pZAsJe8Wmz#`aun8#wHFqh-vc@tj5=EZS%Vy;w-#v+Im6~)H!Vnq^8 z9FGIX@p)1gR&KJAm`R1Zbn7YI6WEBiVg+Igj*)~#Nf6ntDoE84Bw^JNW>731%Q_gA zp*N|CTx+;9P2*lmaEpEgu8y-1MsO_70{t6ofY}-t=c{1`0&6%7wuZxEU?|RKsJI-Q ztI<TDJWNfWz^ngn{2<CG$XP7^DIV7mRguo+WGhgc$!5Y$R0mn8R+;&J<0Sx~jmjk= zrLF7XE{DNS<abVcW*?GJoT1yZDF4OUwO4}*!#pb2h~(O!8hYoqg*7z2cTMaAdvTBs z3;IsCJZs%;sc`{%#jXDG3?}i@ao;mN51aq!ZtVGe^j5ce#m(kbCQWbi&d`%rbYYn* z2dB^g8aO#V0H*i?Q&M{mhV;t}k47&_+t4;Q{bur;tF8E`ov^3aE9?jCtqSAF#id_u z3hjHm{zk|tR{F{ZsAI_vpzp@v>9muV_EwiFem%Ff1PBafcoy($L!W)7i_ywDyl+Wr zErEq@WMzF-&@NebQ^^zHy!XqN>8H2U53qZl0J`fxsMg5p>`UyTHemZk<W=|l=sUL! zC&CKm1q#wWYAL-q{bl&mqdD%5vOIUC#iRcd`^TQ^TGQK1#Y2agqjnRmvS{FRt|Igo z|NUp8vU3*p&$>J(@$BnT=CoaY#oHa_`Mq~%riR|FsG1omjw-6D+YukrUOsgwP_Q{6 zGkP>T<7T}dc!4~(VPAG(%6-ML)~K@jeTEm+SmO0EZv{H&+1-Z5Xc_nr3s5$ES@m0R z^^Ec#tGt2ht3C`!bW2!0*WPf9-!^|vqVhn>?$WZUuDE)2CcLY=6FCquP_b;@{T5^0 z1(9QW9`Pxfc6@Jbp4E{2`~a_R7`AV{O(=GQ!@>toV`OO$PaJUs><L6S+7d>*IPD>? z;%izPO5#cuTm3hz63*+0og*p=$T%8Pk@g(s(gSQhUd-m#Awt=}ou*~`_34{~!@724 zKd$UE%;ojHevjXS3Akm$JzsllJMP)L?AjqL#3+8T`r485{jJjGux-Q4u71DNdsXD4 zu<DZ5thw?p78j1tp|(ve8%7~}8529z;WzCi$1&*pY)0XTum8aL{Je^u+9pQ#?2hm2 z?j`SBTrkuS-nf%@(4Di6zS2LSv;EH#?VopPu?kzg<R<7tOC1a!Sx?62ck2E&6v1aB o$12Si_!;mh7#~I1?lf;8dQnqi^4-UOIe#~DX|m){?9z4r0BC@jJ^%m! diff --git a/OsmAnd/res/drawable-xxhdpi/map_widget_compass_ruller_day.png b/OsmAnd/res/drawable-xxhdpi/map_widget_compass_ruller_day.png deleted file mode 100644 index 89c82b29ce76ce7d52c581a012c7ee19d1ec5f9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78920 zcmY&<by$?&^Y$jNv@}vnHz=L5h$syr-N+Ksl2WpOfTF?@(#VQ{AdRH7K}v{{OG!6K zO8=hyeBXawuZss=pFL;JIdf+2xo75uf!;j|((9xk5Qsuk<BlN+1S28*kPrc%U^3RO z1HTa78s@$r5E(7u2Mo&0W&%D0`x@T64JsdCT?76Bb5_+=1%av($j<HIAh6`L<{ed| zC*aL#vM0tPjjI>ew(C(CRPpWC1qL|FETQiPW!B?dRm1v}u10c4Ll-^M0eCW2(oGL# z^(9P`MbrIfPgCC~bQkzksyEgq1q&uV42%;sD5@@XnP5WlOf7QFJ~8b~kJnk&GD-5c zy_((s!S7oxJ=Pmmc5~(={@9qXn*aX~s@4PqLXJ_4S@O5A0gFUB*Akv%VQOBqM%Gy1 z<wXGrVBy^!G^_$9{v8pL!T9$e5K50L3fP9Jkq0B9;+3r*ySWHoO$3&T+WxHT1<hHg zb2@to0fFRW$$_U&vPwvMl1O9(AiyH)f8*)?0)|Ij3=YzhHy1f<1SlrFm3P_}{*5<* z1Mh3G5T38mluyhdfnkMnS|<&sJ6*ZbvJ_G*a56Bcn^WW_FynFP*KLg>)ZkIso@2-y znX<U=Kn700j0BL669vfPnK*|+Kk9It#`{-IK<Be^w}TyXDa-H~YVs=zgc*py1nKUz ze0g?kJ>y%1rW{|;E8CyE*byeJ@EiEB#R;t783+slHNLkwLaoxWiLaXMzHZGCZz{EH z5?eNigubT-HU~k_jcy7?G}Rr&$B#94t_^T{Pyte2``_oZoAGpf<h|^bM1gL{J(emX zC&>f4vj)HdHm)Io=NY_C+PxcUyGrjvNi0-N7%Mmk*sA>K{gpw+^l8dgT{^iBpU<}C zFVDE{#<R+=Z%%w_L0@gKxdqR>v9->BxVu^9xl?}Y=N4|W{?V`HDCf69%LOwnA-RwB z<Q-*9{khLB@p?;3ODDNdU|1AkcjpImjvVJbRRX-@joY`_j36Rb4c<5k%FybOj3Wod zF&nxKhc3VJMwf-2b2aG|%besDvpV+)MyG-7#(Up0F3l&VHQL+jjn9s_SJrU1Yk`e? ztd0Scf@$qVsbbGDF=z@;BQfFiv3~Yx)51>p)!Eade*@?1`bRGQ<<_MMJL!R~hdI{q zRy9R+D@{Jlj(w@x{Q7Ut1L{4e2R?oicz$??)`)}@Y1CA|hWY{qB!2jX29Tb7<zqO9 zarp3#-X-nw?w_wgv6O7C{)^p-N-eWmb?fWv-66HDWg|b|-{U^}<2_Ec+vg!IEp4Ow zE^s!izIIwAU~}AA<$PD|#OAlU$6zh~sao4$krUJDd{cPHmHWo8>e<$?vkU9benHwt zO#xe{iIfc4frDFP6|?e9wnj#NqZ0{Jmuvdr3VT)e64*KXcV;d^2j42I44<tSKWvP6 z2E9xWc?<&KC;`<%4R}j{(8HU0=N>4eCm7Qba$HwO8y3dfR+}@2?`hFl+*)j{tE-#g zQPEorImuK0cNKHoy4rTQF{~^7m4h-z;pTe%PTRs%jhfdzV^+;dP8F4_W(tMz1R69p zK_PuN5yt3lXWxziuNZ|kMnt)W=nz3b$TVs|tI%x82x>ambNOiH>xzGYMTJ;q9JK8Z zD3%=>Uz$k#NfT8~zF2Os@=C<CU!7%~dy-YG()(^jAnRMt6WXqh+ItoV`mJabr%C;1 z{-yXWelV=Zs<Pvmws?yajmGM1+f}0+oQ8xQxIhrXT08gPkW;y{{$3cC?yBu#%d6~g z)CrikY-{mqF#OV&1(^PLCZx<5GEuTxElz7A8{LM(&2dklXA3v7@PmEmarVCaCnFz? zFP<Kj*jjsfg{;qi96a<ad04JYz1TKTBzd*a@<j!|Ao!rrh@4&N-*an-y=L9BX{y+- ziD4(qy?kc@h&z#=_}3G27qFaa1HE0^VvUR0?lgD){cyhJYvQ$H(eSN<;`*H<1S<$6 zK~Io+@})BpB>}qJja8|6^TNZ?(b19xgzX7e;{PbYTss)JQC9!9hBh=%v{h%@k>Y9d z*q^KVtE1W0k8Kt4)w3yeF|Qxv+1D#B7ONfmo-$TMM%P__vGi&gnPja`LcWI4EC%v) zWX8pjig#bznSF!i(lF>GqAqXV>y@N=!Yt!%=G&&iB1ck^044Ub0j{Pr1O~#?<VAsH zKy#kDq_A-vkU0@j6_jChxg;L`h$Vp>l%di4Y%lk6EqCB^^3#mXzI<E0v+BF8rWH21 z*!?9d<(>=iH$20myWbgYSq093zjP^6Qo3ucM8;$*<pz4Xj(qph!mG)*{)u5Z;>p{x zmr`K*i(p|I>Uh>|e5xFBRFi0zfELr}jHKY}4oWJcPMAHJ>xdfs7e%b#?On*M%GRW# zT35-12Z69oB-9{~VJ8e4XJjpdxnT0W(e4E8ezUA{v8L}~nTfD_aISLPIG9tFtST5E z_?_M~`^}5+2cw@hUd-}uwO-!3y0-Auz3JBdEybhRzz&DY!K)J$<+iJfo$&qN#SaoE zp@UW<7nyEk_(Rjj2lEjR6#3g8A5c|Sgqv_&%wC;^Gp44bWc%p}l8gtEp-#PCHp-zT z!wVDJXnS<9r7*S|NtoLuva_L|%Fz5Z2RrJiVpahYj?NZLawNk13m6<2gfu3sAnA(; zt$?9FGkEXjvK<BubH~?}ZLxSY|Ew#B0Lem8ag#kG;Rp~ptK6=;(y#Ngqb)q%re)N$ zkxHQ>+Q(S-njaMOVg9$PSL94g-vGheoJ@DOE*L>V9TzT_yx5h)ez0Dec$FBD$+Pjf zgE|<}$a^Am_6~Q7>Nop#yss`Vh>f$y+r(K=SUuXLuu9*R0h#_2mX{CakfpZ<WaLmo zz+RJk&;b_Ki7!NbeF1~|(Fb!kK?MZ`H7$!#RJ!%j(!nZeLyq51iyJ#d3fo3qd@k6C z*#9?;$lN?M;*&#eH#M&qyg|Oy4o+wYUbwW)`dYDGX6Pkq;c5rrIa*<UcNHJE*;=NH z<e8ogD#~s%31c;=^bmOy_ZP6Ud|KMt`hAxTj}IM$Xq2#y<kinqBZ+BnNjO!t4rrtG zI&XtC?KA6-yC=Xs*LnQ7icUibk9r-&^+|m-H`@9wwG2K&4*muN+9epKn)GBgyZZD= zgw_qa{pJ3xd_7ElsO(`}84C$kGtH>*YM!y}Nnv!^R<lgN`a(}Q+O4!Z`%*qdV85mB zj`vu(wTGiEU;V(H%66sjW?gTp&dY6%rH^8koXoB7>cdToIor~_)%erf266oqe6XZB zRZYzv=84EiVwq3sk>;;2DEelj+_Pjn_97WP>r@5k6sA!_?G&FUcKXVkQK?`M?mIyz zGJjZ2)M~@gZU;hTI)yUs<3lzQ(9G-P-e=R=>-9CAzf42*%d8srid+>G|JJ*;PPZP3 zmPza=&(!hI-HT^^+&1V`Yv=w9O-XK4EIH)<SIle`o;h{&BKP$7hbe^L`!>n_kk`RB zC{TwJyHt9Fog|g}QG~IHiAm+-h0Y_x!P}PsOEN4Xd%mA2QpKz%%{@P<Mu~@?^l@kv zszO!8vvMA|w^E(pDFMqt1VBp^En#b=dJ!b#hBxy)&fJL3FOS>27&j!q$8jIuvgR<$ z`z$_ElphAi1jtT#N97L-BP67DrDUv?OV>@~EA+fA>W-&qepH?rTF=V!7jDM!oyKUj zAcC_#)YA$*ZO(mjCYj=YF(5B`874!Ay3yx2g^9p>N@8JE==loS!~NW==1C%IKWbbV zOyN3N5?u5?7L-9Z*nBkUrmw9F4LA6Lt$2)`m~uok(SxBN6ggp&#fGvmDBo%*50inR zp^pV$Xp+tJ_#Wn+T5PasJQPB?w7wAOS-dX0qiZs)S!&cDIG}llsKfnD4j|8t^QzXW zLMW{PY1Y^2?XW_!SPF(`n_Ju8Y~pAq!<>u12(C=k)wOmAS2Pdbn!JiXZ|PeW)5l)1 zHA$%wliwmQs<`iE4k3u*KoG?}u9jfN$hC>4Cc)yZ{~pGgRYR}$l0P@Lx3@<ZM{L<4 zZDaRYn||3*)G?-GkDk{#MDD}|azSAIPEU`IT%QO<39B}fL(Ho=X&*K!h^zDG_!=G^ zX13KsPn`v9)igYl5p6BDPmf>Ie?J(Jm2=AFPSt^44Z{Q@1rFu>+ULFsT-mCEqbg73 z>`)X?Q1{~+c^HNjJzVI4Lfz`5qaLD7J*pC8#P<A6Ydt9VWvH}UVtcXvC<9hJ-XINe z2iM)~)p>aD_4Scy8+Gd%m-~k`kACT8c9o6LW^28<eYzr~(uZe}*FBvQe<0{oedl(s zV6b!dV5qtRjPzhkPSyI~;fbjB;T!Mc<JQoVJ<5fygdMRnnxXN}{u`XW7G@)kjSc3+ z>OyyEr2cJrh2uTD;@LcST&T+mBl<3>WT<cKmY5tuiPq>uARrzvGYo{~{_$*RI?vS= z)o%MjS?jYeH48aO3DIfGMuqiu0*qv;<Zo;31%=6b{UkF!qZdW0Lp-M|g6dnHcN#69 z#viZx8nS!ef0XL+6T{WStqtF7Jy(%i8Be*aJVSlb>6ng-ycN+eRoQjvsC=0kcl*){ z@PE_yW#r>I?U3PF-`5xNV(s@2W6a|L>>dFicyw_g8qtva+ANiP9Mit~^S!=ihm^T9 zn**wyg6LTmc6d{_*)b?`It}uCKwdESNeS85SJRS&C}f@YL#<y8{YjCAA?{>ay{#3y z*2Oy14?^k9A#{6z8+E)jT_y@vOGl9pwr3ZgU*o>zH-I=-*ph%B%kaAx<lmxX{mp&l zW!TqV=8RNVD!8!<Y^VZERC|}0d^73UO^43xIGW$WhKFg~8cwQaBNsbK)*z7ib6z44 zR{h7fFJ-*cZ*=&cp5bTf!VgDG@o?)fzY{3rzEIKGh+AXfdO1#}1ee|OG#z=C<f<I{ zZ};{@nsDCP@s5g%UNR*-p@>eBcJ~2dJ9WtYbR+pkL^u7z9=e~&<8Nh<JSu~tmUXN? z<szo5I}TA=YJ4CQEak@X;h2PW1}OVdMX+Y=s-o@klvv@36PcS#h~Tqdn(s8iSfyN~ zn)0eJ5xF8Su%mHf)`8P&OqX3>dtu~7fb0`dgzc7-45};Z&$Cfa6aJo{a{1&#n(b40 z8fq7p>Y*PPOh4sw_rJ|wT=+C35D$!vjmv@$*AEdPv%t-#lrz1x@?qnflJ#otl5+2P z&MHb<Kis>!-t(4dq}W>NyEfghS(WSu3#awW+Nlw_EH|F>3J8Rg$xi$IDrQ<|9KX8I zO63BfoVZaS5OblRHZl5krBi<<WfJd@*?mb(**euIHpPHY>aR&)OVo{O-r$GZdhY-8 z>4))S#*<d>!sAt{&rY2WdjwX_zsj%NBfZ}^A-Z=J@RdULASLW1eAslW<i{ffRgK)V zK-}*x)hHs(x~OxGrInRjFL(3AP?a$&-~P2KhpxA-Ja#T=T;rP%NB{_{TBHg{)DDC5 zh+07)_kX?Q)wcT{N6(huFxUB-1uvVzi(Ff@y*eG!@5#Kxd$nEsE=aSP#J?4H8;0_M zH7Q77*g*~iwN=>R2uHa^?Z@Ozui4g?GFs&7`%v{c3~ZloemHYz`*>qayts@>w=>>d z;%0pXv$~L0J1UY{#-#`fTj8O-w~kf1I^W;24cV$ay2M0e3uo0BrEEste}6Yj;5+3~ z?N>&fnhN8(p?54II8QJrUmk#@*uqfNh&-2-9t9s|^X(zC$;u{oTxscMii)EdF-&hl z^B9N<eh(n1yXT&IT(?3T@G%1CePVu5d-q6KSlBVi!IG^|jUT$m;ANh0V)+Vt^magA z)AqgBrR~<@RO{QR@*i$5M5HTMwA%Y^4~FWD$%CyEQF)>Pa$%<j-PI|IJI(udQVK`{ zPLj9ckkR}I1`sNf3pn6MJfk>NDV&H`z#H#TpOaEE*Qr1ex+H8X?*WBXH1BDJT>MFI zEYZ)*M}#Do5`@fprtwmCg%twRklFDXxUf9`!q_@TMDj)G`(pUGh}v`Pi?->stFWt+ zy0ZCfdEa=v82`^|vPJ3cR?3M2lE7*IF$DjoE+IpXKy?z~NH_=^KsZ*x(G(o!H?2!4 zg*~lMBK{~O5fN``rwbti6iaaxM#rvsh@7Ew%;GvrlD_FZ*FIA%Zo2`*s8@a2eACcn z;XCRSk^g)Ynfx|Jw`c=0;wxl2=Z#EHWjnyd3y)QAeg|+lt6%wf-`Ip5uI$|=Bu&KO zbU3Zm?=<)7Bv)T*&w|bbMg~HP0w@4O=S@nXWrq`(43ZJ3^jYeS|GAE6&?YX_%L&d) zoR186UF}Z%!}xnUgU7~Lg~}rNy6md2uu)uNvSpye@&+2aXLnbD8%3?+In>Kx=NoDA z=&$5&+mhx{jhB7tae|riFOLodT?6S5qaHKOjnn&sDzo;#3U%+370Pg%Rc1kALD*1$ zox$+<5KZ52qWX574$EaPG46?8!;n`l#o6%)P&>{y<3n||45K_Ss8%9pWUg58+1}wj zK4FPJl`6TfS!C;)7UC6eNv#~**AyTn7I2<#4m%6*(%}Uwu4Jb;QOXfbu$|1-o$aaY zWG{r36|y{cmpQ{}z+qCn`zSB|54u?a!`5*)fZMQb<JssL6?Ne;15B|^j2#r-L=Qp= z0v;a~nSsOfGq~J0Xdk70Zoh^?+m-30VqDW@1+gosLQB=+hZNbqM8yZxCVc6SCmhpq zsybc)T!!V$pgRVK0{8rZ4@~8S@71qmCyR9m?YQ}0)h~tHgo$`_c|u<9Wg4#e-K*5j zYrc}TefRbK-shv2w&!{8+dNfiBjJgjB&WW;D^z_eA6^TBco={{R0AaWT<pF-bgCUu zA}ZB@?n%;nOhP&i4sBqDx@6F$^bQQYQyc7ENvXKUH|wK5gy#3dqV8QMA84_Q!S~n! z-gx_rIhxb~9X@u6r+c_`QPvn9m1gDh!m>wYi5cc3cxTaHBNaB@o{1&rS^4elFi1bd z1{m|HV%&^dPP5a*SeaQAd^lJd*Zxkaf<*+oq}ODw1q1!PM*#snPc~a8?S6LFLCmo^ zY;YXG2ZMiEUnp@Ey)Lj(al!6LbR0Mn<ctRlVJ(?Ubo!nG>~td~x1z@NrH<c!k@W=u z({~>G2X7QT=Dd*1#{HOG`H>;n1aM9_W?RDNzrE=4ANttIszucMFdB90EO<!VjEp!B z_W~j@4<J4oln+ntGh{RSW%~gpti4r5$9%rPaW&4zN?C7HX&13&GCV(9YaVA81y}z$ z@RC8qTeH$`{daL!lts0|myg?r6^3BYd?etPY788-NzlW){}vJgU5n-eX`>)MOXU)8 z;mrrf$mH0hyL!o+&m4uKr?fU-r|U<2vO9HV8s@lt^kg_+)7tUT%T4{aN+%7H_H=F; zq3SCPq3$RJzZ>be>*<v&dzsZH-*<fPmRZil@tPrX%>Cx}zHI>-Bc#<rpEc4>0|U8m z0=9IBe1HamAcqy!^tB)ViRIW9QH{Xy!aUz~7{TCH+i!w6>bvdbMrhgo1Xz2Ir@kis zVWNpark~*72+zJAaYfR;2kV6la~U5Wo6&h&Skz2QX_LnpeKkEY<@v~DSK1M|)Rz`W zBILdL`Eb-yUuG{;umZXim-+%UBm&TpID}3eN@D~L7wcxg{+?cW8&a;O<_~|^aGmdq zP=_iwEo1YC&#ih2QdW)n7j>5w9!Ry;PL013d=Om+K6hH91K?Pc(*F8-Tz4)D=lGNp zw_<$q<Z<=e#rG861Ny^my6-z6J)bSA9;(NF$bI_xK~1T!<<#!w*-nLr9pZL=C6_rI zM6F2J1`>WtRGpJ3C)Q?x<_5MjqG_k~tf2-*CMQ~&#6-6%X%4e5Z(gCiP)yUzJh#Sc zJ{)(aKWAGc+CLrTr%zt(jD#mBADML#vp+$$*|t4h3D};RD1@t;R+EB|cY&26N%<{t z0;`vu7PMM7P@{gffbITZ8@yH!P{))_?gY?`!QJw;RyR4J*ss};Seu*Q|9p)-u2CHe z+Fu^g==jp;yAtriqypLLXo;o=p`d`xz<f0~6~V)6;nz2ABcZ=J)nc++07}bk8te*y zm=c?o;IJ?3914D`7~cZnCF21wazw`<AaYYXEhz#@d{lS5HSuW$*ObyeDr{EkYWxAW zlEh2$$$7Ax4T#Rx1hlEUg+LfWq5&m6^8!~D8I?qTBluwT!GjNa%Gb)uF;}kR1ecW6 zG;g8I3X({C%EtbF-6o2=kE~EXm%TXg8rFX)5%p!cKMUVu_{_zc`nsUIiy|_GRsaM7 zw%o@`t&ik-i72&$+im91yAaCb+3@fc!aCoC&0<Ukf}R1W)8|dkOcFz3;#eQBJi6`4 z+LE$Oaf_Ow$znWL^1t@^OhX<MVjo5IjYw)W69BNn-5+fskj~eTAgu3oVTExsj|iq} zI6BYPUdFuehN@?ZBhdu_M;&v0FHR3*v)dsT%iu+k2R9x_kcgSt%-JRttVhBE1jpeW z5Ip>k%H@KJ0v;LFH!9?UgF^bKK#L*-$zvX=IuXBNgb|^2HwK>`eH!Th!GOh~%tq*0 z$j@$7Skb>Ee|U(iIV;r7;>r!_e8pT##vmf+q?a7ADgg({YqaU<8So{Sl$Ms-9j=eC z^<N^`N|jypN=7S^6aKODCsb8zFuI78v<IM`51ZfBm`hzE{$F;$yrRkxX6WbLlf;{o znITGT^16oacdiQhRydC$z@T}q3ZBvU$pMEHF8^V`IRlKba!_EJa!B|OP>#|LMc}^% zPCf35T`s3Mm9EZ<SOJKpirV|1Nb^R7uuH_J{+A7YTF;Y=krn&&bSZG`7NBO`7JQD< zm2Gu8zjH(Pdh}RiJ>5Czm>MomH}u1fn`V_~P<0q9<4LwYyPqPD(j60;{5OtX2=tLJ z3K=&-Fs$=p;@(k35|3uv!mm_Ue&2i8m^5o<5)m42dp^&|_TC?b&5L<0s$!?fgmE9y z0;3obdm5~&#<Fy}9ox+pXT+guYkWwkfu_BG6x2uEcKFh<rG%1|6+uGzY)Q~)8tJcA zYMP{Df(a}aF$Va8jduB34KQk3uu74pq4vzwHtaBVK>p?!6g%ehi}`LUcXwBCLh@LE zc^$Hhw&49M7}wO<Qj4l9vO6T&@4>Ee3!48`Vu1tA_>BxQ5LUVyP$c^6LP{=a*ObmS zKe0s_YCAG_)B}X_!b0ckm#H(e^S=!*4tvIoh0ZP=iT=Y^40Bx3^r-S1wf2SM4zgd@ z565h;?8YnYo%^jtg%&4)#ls+PpPsJisY<)JA4d_ewNbmFB;wXHdVf+78UbjSL}p_! z?Jyom&wGQqtQAGxN5YjuGJl^DhY)QxbHXtE40lUDh<*7`DXj4_1izppldseAipgUv z!S(~jX*k?BX^lRkrjG}Jt80nEd;Qin)L&PUSJIBj5R*3EhqDaQ<Q7knw!i+1-6=#= za5zrPt9uv_>aJ_iuASN;d@=4~u_rlUFjIQt2~?f9kM=SBY}v4~@A3~ZGDfi<X<<Ef z{|m(@1uq&`gmD=MvlFzZU*Ft(+j{S+<+U%na7VPJP{78)LU=yL$)~AVL#wSNQoQ&I z7(w1suS80lX#S${{b+Hb$xDD=+}fLTtEi>wRdUPM14lqW%r8M;%&TEDySdi0?Y@Lm zE+P7l@BO%441abkOW2;lCMrIDbR8)%t<WDoI}d9$cfu^YKE$BTn=V5_MwL=Q;H1tl z-4sM)=~?};W*EqMujTet&Xx&c9-XId{gk@wECNP)c>;jdJ1II+3LKzrIl#)HpDhy+ zEv}yfHq<ifl_RX`#&=roKJuinTJpvY3hL0EklChHLgom5#W-dY;;|Ljy3dwXYgkf$ zb?>Tw<TE&u;9}-ZR&vE%7OP++L+(FQ8UIy({CGG!&MkzvZuxY`AO~`i2?P%Vv;#gj zP0e@(Bq>1iWv?L^sZj$vyOX^oHo%zV`g`8BLzb@d{V8^Nz?&;+SQT=x`t!r)SgYss zXG%Sc9rm|~hRG0QVxxA<W~15zUl)3{1u%$0ge#dqaa~H|<F~$xz*UbIA$mXpp^M;D zorm@nz!03dj&-W)(ZBzhwXh5q#SbyYN$I@cL|m2mQ))v!9E$I%8eXfJGUhYE^9x0K z{S*RM56;5nN|qWP&p<&p-}Q51YIq{RpPX##xQ=f%#{H`Inw=rAGuuSO`K=fc-b&Nl zyc)rjg9}GNR$S1d>STWXTY|QqHv5j>@%zZQSbEKof3x)P@YwJQKf{ORWNi;!dF2|R z_MSvLItE3EP738)Vtj3)wZK6Mzzys(vbGy@!1GW7`IT2~>Ukn+SRIm}1X7nov;1s^ z7o?zJY5=W1;<d0tDbV~#zsYTDVb?R)XH6!Q>>g&j^<Ua$OJX8bSZUx_ukpL@d^e~~ z1ktyyz!TykBIg=ZQu?~ta)1Aw9&S*{Z#BcB?(zKgdb*z#$!PPW!-=uGi$f3@)I26v zERBo$Yz%BB|6=V_aTiw~8D$Y&(wO_FMeRtq%}>>gb8Q2)8DAa^q-_($zqq>)c+wjb z4urA*f<mOI6a!Pk!LW9S%E6GD^;9`b=0+tDDn}7q!V!>0IZ+GA{mtY3)`rMo%}95$ zj|*F3pq(mGjOY$neUE{i*<NjgH=09DKNix<!ZN>$h!@p&w&mw9zG`Ogb!+tX)v6}G zJ{Q(+__BQ)Fm@vxy<<Si@JJ{~-{%u42_2|g3efF*BP9s*$n_V1a`hVo&ss$yY2Mt* zqX_0LGl?YbbMb$U#-73wZk-lcI%7a!8ol+B^n(lf-n7=8<jMhfKXtX@-pst1SC*`o z4Nnng2KC<C8X!Ze_L4#Lqvu_mU1V_+6eOqy7!a**k~i!$doMler<dtt_8hOJq?eco zI>%AP<Yb}4qh{ED9+%;UrIXgeuXe7&?gKc*4bGEMBPO+WMnnB3!G2}CQt*1Zk6vKZ z^H`3j<HAJ(+GN=QudexssFNP=%!XIKh=}AeHvQopd6Esn`T<MhF@`{(_Dfa~!z&Yd zpi2=5f->KdLA7yaIct(c)2)`IVJ7_QB7o}FKRYjY{_`FIY#yf1XxbtikzV*~52AT> zOe*9#S<^!%gWm+J&AeQPOIuJ2U>%7afX&m80gQ3dZ6f)?l|vZ)(3`ovKJlHASMBW* zlDL!(G}=eh)HDBOgz{Psf9~d@5?@X=$zrd$yec?9sz5vK>BHmg=`DKf!z5`tNa0#d zb9)KZ4d($?amoHPWu)z~#V5bp)tvL!1h9kJfVLPCP>X>C=a{9&&dmGJHzyuVUtFva z*U8AojY1`Rj>=`GLv~tf1HuWIVJR*_UZ-9Jf)v%je+59(@G|x8&F@g|WZxk1#ACV; zThtNi*)Oj9t|HH-SGWy8$Z5jp)UEBP?iT&w%UCLonNI}~V1U87Q{Jh450s@o=S0h7 z6nA%k1;_)IUDXlH#)n@=)TkWnbP$ktw7_e&G}r%grLr<`|A~$h{nb<*J$(jjRXW#B z*;*0>G4c!u_o)Me=eSJQJnY(8zKyrHQ^-yY{VD@Ze`!ZOQ+YWD#24k}ZBH-Wm08xa z?@`R7i@ze_i<NHWjfFA-8gp(TB#Tn}Hh-+E(&j$ttS_}JeE@QI_g8-R#*hm2hL}1; zL=w<23{DzD&TP24(apV6%xTOhfSjX1ZUac=Im-i#0R&ngqzNo+hcy1+cWOuW&ShoL zfS(1PH2)iSf>QNtcvg*a=;_)AO?x6EYa$G3`tQDwmz0$`{+>dnH+SKr>u|c|9~r(@ zlia-_c`O3swQi=CK|3M<Z{(fYhrnO|%MO8q=3f8~iecZMZ<mizB0W)6mj(j8woIyL zpug3-e2X7j<~Owct-kfJEb0>P+@Cp;P#240b2b#0hC^m;GbiJJDy_i3lk?(rXJ~m1 zkZ|hhE{&}y0x0)H8lc?nfF7#?cj=S*hK`*j10|b6&5-CS4|?bmaIZgN+A-uw^EY4A zL*>kU49e^8={T-cLJSfvRYFx%RN8E)0w>uaj1trI=-WF~bSWiHK5@)8)B<LWK1)9d zyv-{H0qn7vEe@w~zndDx3Y^&xS`Yk1u-EiJpGY*#Cisz8c;9Wo)f)eeQ6c7of3A>j zoWSsPA@<}a`>cto*^ju#^Mw^rVuB(fO0tjVzg_Lkig{3#l$7*vfkHzgA|3xeNq7W! zk{O44ub6&*iijuXgoFA~z<QF?YvXB{NCa(jz{Q_g>6j|NLkh$&`$mbv=X^H|is!q@ z>+}RcuTPJ|ua3j5{C=t*uKR1?)xrv@4ZtL52;83j-fKANVoMEzjq3Jqe$WsraQ(l1 zE0#oRlQtiy*Mr{Ss||>54l3>cxP~DA7YF}be6>W1>J>Gw=Gko1jf9b+hBI&{4~>s) z*5IV>jL|M-*OpouB5ucsD1xYIft!9Eol2`=8j0vNb+#jf*zf6)Qvh*F3_!ho+wbD0 z93L)yqd7EaWoMo^*x}Vc#hg2de9v2TPU5)ly1f?I`A$J6k$($}NhjQdH|!cIt5nCU zW#49;$f&h)A^?jJ5HOf4_jvxVKn^0`m@Wd0d=0NvhG8uz=<Xd@a1+r>q@2R`Y_>ua z%sp>(G}l8>NI)tvJ3y)&a1U#dsq=pZh~CH<6(;~JE1yrR?+ZO08En|HrY;s_ILIg< zXXlk*(ru8+)*a%H3WM|@1*H2Z<LE&D0FmZydXRaU`u8DD$ML+zH;V=^{wq0wZ%I~l zs1s77K{SJw7Sz9i8-IEu0#dB+t;+ee0w6CxT&&<vVfRznbnGU;AQeC$E}h<YXbSS` z`iUi2b>Yu4$+_dN9G8_P*&9<vs&=4mrj3K6*3CP>bw;+N-;P;2GUL0VQrbm5t=V^+ zh-gmh3;Dcrk?BYbTIWQ878_jp5Ins1*U2^F9y$zi_E9Vk=I)GgV~@1h=rB4+W|&G9 zvBF&7&@3QX@J-VTwWBA5@F!B@{CrW_I+awWaueeYL3RQ5%_pTou>(#R?x(G@-NtB{ z@!rkVlebUiUkvD-=D~<>lcMh47#W_$hV^ifxB}vpJxh5cFS66}GxB733AIj3sN;Cm z(l4gSB!Sl8oTdc*BaCXGHjOy%L!iAmmDBva=dhHN*^NM;4YhoydE-yk?0KOgPT*(m zhXe>#Fm;>_xPEJWIx{b~{sPf)o|vfFC#Qb<Vtqm$T_{LA5YI)3Vm-KlQ=!LXCw~Af zl1mmby|3pw4p`Ik2GSSw|9;UP;@$;}mYR2k<sg0+-GBetYqCbr8__|)DQ{9!Cq<$v z>4c0xNq4VuRo<ysO+1Sg`FZt0`-j8M2uJJBXI<sL5-t)USgFEv?|hq~y`?_IR~#y> zAwxmKBPa#dhI+v5)>>5BseXtiV;m(D(wMV5+MK8bXj8?tkj%=N(cu>)-E1%t4C^~$ zI!@!Xn{&FGytM}9r)Ol;y%Lch-Uff19Lqp8Ca@^@xx8zFbtFmMZ8ZEdb%!5{d||<a z{Fi@OY2|ft^A>=_v3Hg~UNVJ<c#yvzVaFE0DOwU{{eJ0A^S*3vxfr$dQVzPhI36QX zDxVTjhhUe?9)i&FA4u#q<U7F1pjDCNP+7U5TDP%;O&`eY94c6>VhArNk3Hkle;cZ_ zy5D1`_7>mxh#XE9@dL*Xx*FnmYYZAT?%vjT*WuCu?g9DDbS<r4kuJHtWUARjeP-(( zN2Rj;QxR7ukC;Lcfw2WY@|E(l6`;3MX$b&-W4+Dw24K_{fKs=LLs5P#24f{%bYoC( zkT;rw`%&EY@86?Uqi7LQoA~-2+`g4n5KvnM*WtstCz4~Xao;^452i{*02JXFm4a-U zw8yorvj(MmE$;u(H|7Az!hf~zK2g17fRc%Lg;)%`NP%Geff%zIi>6qmN|H9HAo-K8 znf!Ui`zwX=^c+S6f&C07fWg0T;(!g0Dhf)HPaLTiU%q@vK({;`T1hJ)2DHnk;#LY) z9Rxz{!|3^5r7F*bc$L?6fbD0x7&rQxbRi(a5>zTr!vt*a-0+)0CuJ*Fj6_}f?Q3dC zMW9F$ofuP1bgoXaBy<J9!-O@}nDAmuKC=9^iEKNJgKym7(Tmjzd%G4Oy5JyZk=ZPj zFC7|eR0V@De2Jq`y)cr+xHg@sr~$GfC{M&C^#0oiq-<Iyb}f$3VD}+)3&tk@nCk)$ z1tMa6;+P<WbR3rV$2V&t>KT@nJLeyCGKO_W={~RA6}&A_9O>iuF0ZOawLY>M#=#@Z zxvF%cWH{K~_#!eIC?|;MVQ=VSm;J5TZJJ(b*tSw`{8}YkL%x>cPK_h+{WvBqZ`@SB z5eVBzP$IdW>qA*q;B;K}9H!>hX9E6i>WCnUqmD72HjXhHqtoI;Eh;^FBv6(Tsh9Kv zf<Vg2Mgui1E^+uRpg!^y11t9U;cQ4qV_Zb>wS(sp+9c7|0n|p{3|u+7$Nng(=SNqg z<qf`3cZZ^>LChioZb*xbFJ^JnGJkzzQ!;k7JH7x)a7^kNA^?3!Nbt>t&d{IkZvpkK zIMu2;X>tL9@zVMB<^AXsFDq3UFjf)J0tthf(g@sWw1mrZ!)FFF%^Z*PyxXx|>Z7b$ z9ba5Ls2q{+p|qa(uZE-y5D;}Tb{g3KpQN<$EV2Xr>_wiQD@e&I+d@bjQ<5%dkw}6B zLrxo88bS0D5X$Xux%<!&z#0B~anJHA!_!N$YQ$p8Q{dWL0|g!HM3+5$plT9k7%JxZ zgHcp|%l&3jc&6+{<)$`62T(?{-!9a7f0EtD5jb_wva$p^A!}%K7uC$SxEz$vo0s-T zVCPVx4tw)1Z8f5s6(&I#iRk(0ySYvlug%2G(g*=tJS=3&0I$YupmAT#x4|-8Ss2*u zBL303m@(V%i((+n!v5GZnCF@(v2OdrNLO>24v9%l$XWuRFUvZks23qwegf$V{;sm& z2@e}1cXZmzeCX9SzA!v}J%hSSOgy=cRJ9)ps!@i4aQ3IlwF#FuzOz#?OXUAoqZ2jY zp+{J@2j|j;2G4Zd_UDaqi0oI@PM)NR8y=H2$*mvkUT|WU0nN!5d@;JAOGIMhjjAT% z)6M+tfBx_9G;kNu6dE5uw%&6XSKy>mcPH7`k?qVU!T-}9&;MzU_lTPtlc?Mr@HF44 zp!oq@9Y;v_`1|VW>fW%OG`o(2wO?chV`fNZ>VXH(4#t<+Q<))aFUcWDiZxk11nIMb zW!=K}>Z|V^DR>lb&qmh8qOSoOBW6{Xwpte>`ZL8nQo!L2h3INN45<oe%<yx;J94T! zz15K#-tA5lQ-Ikx{KzPqDve93u)%-LkaT7zQ_yUUr5847Fo%T!J5D_ll82^}GD^R} z?m=P6Wg!y*6XR*>nBkj^dS#!l`+i4I>rpI8J_iJb%DiDpf!0(_Y|$Ov2hyiYEmIKG zu*7bL^ILhE-|tXu=Gwq!Xn{Yy>aaYMa~{ZEh$5!CMeFA&#~MJaWF$ib!o?rIT@9%? z=%x>voxJpU!)54a;FZu|8wC?HDYpvp`<bUc;`t#emOZ%WCHl_4R920PJVY?Llm=LX z4Ddd5Zbf15=+1mA*fqTEfYMFkuGcIpqjZ&TB4mL&0&V!0qksG=Cz`rLL4eoHQP}{4 zKys!FVLNZ$!pRsKcFLL-Mn)@nBdZZS&p9VxhPd$=K8NdT-E)0>*s8%TrydA~jvEEa z$NrM(7QQ2p=>LdbE^vFQ{Bqw>_i7<QWu_-^KTgW>>keFqXT*RCGIjYwD;}B(*jbSB zpL)fgGiqUs2*an3+a*NF3&N_756gfocodyLDj93_1fDkw)u}*t12#;hP8van5W2(k zyVYR$prUa(^H)GdM01BHkS*^u4`CYh>g_YS{<q#K1>8<3)eI&ug^*PB{Qfy25XPu) z@z~(Oy<&}{r44q1w`KdKv6atg8(O7CzD3R3ZlDKNLrMd&k0zfsDL|IsY|g%ze{x!C zswH~XoS{_)UL!TIvf31t#rm}nf-WCD-4d<#<&bRLbum<WKm-L)F)8|BR_(%?Vv3TS zhGd+;(oW>c`#Pl&uz|3dOP6Bnhm-<ZmZYJN%ou|8zH{3DU}m$Rtt#yn|Fxqm&(Fn8 z_!YS#UM!tRN+#^cY?z!;#B45rRKq;ti^~r?RZ{B4waC4@wuyOqWI!SCGo4^6=|0GI zRhOXyD)rj<!hgwR36A%5Y6rERbaexUwGb>FaQr+73qxcy$steM%clIf(~Sz1!_7~F zCTGJWE&J1xu>Z2fuxpF`zK<2|PU^-IJr<gd1X>>QKj}Q7dNT>`g-I-aiKXMJIfh#e z85}7o7p_&ijtEuMC5gOGk?9#m^aKW5IBG#AUIA;e<1;oGrDee5(V878f)75I*|dCq z-%=JKt1f7^SbLS2cgt}1-VyI)t3y{jRkj_(?Gy|`4L4|$p+mX1GFZ%Lm`(H)ov-;- zEfOG2<CDMh?^|E;ipYbK06GPWQq?9!7q^SnPYo+~)_krVeut~dQ)%@N=^HLB0kpRJ zHeZu{r1D#-M~0@B`hs@u+@j2;a%|b_qV=pdAKuYVWd#-A%ThzC{zw91lOSk{zzF~f zgB!ds5*=wGpjj5&ogPL-+KbxW8j7TSfVewa>i69oue#I-E(QwWHIV#j!`u!u%vs&7 ze*E5@G7|3+&~lkQ7ZS#@qc5=g`On|Ida>ytVUkopDiPpwEBaM&Vfsx53=A0sdj849 znlv(%PU+uVlyp_y(a%BQK620cuK$u<1m-$L{6egBy_)iQDHMcx7MDs<354hYt$$y? z(iMWThpUG1G0&a@<;<Jcza~LbjUfmi5`50Re^)U1Nrm)%gUKmEH7}tA<X)&b)bNRm zx>|BbxEDItM**m=$DsG?<qnE}FC^DeD5dfeqpsV(08{fjvCYse!H9W8_15A4(&(B` z*Gn#C<$9Q&FHw|RjkGX--pq1nBrIG)k|^j7JmJ2K)ZVyjOOHd#W{-<DC0d8Ra?vib zry5303^?z{a|zjfNs)wGgTJku7r_f>i5%X({?7_1ZH+|jIa%nb+k!w?S8$&Qqilin z`=`x*p-JvNL}{!rIu{1CA>=WzBp2}hT>)*<xJ{2FhQMFCvi`FK-XO#>rKaI-8lBW` zklLwQx+fe2@G$8wp2p%bwQefa@oH1%OCJyc$J^gU1I1<hU`ZDd6sWHE7_WSnli$|Z z5druOTCg?gLu*574X#BPF@W(Dl74hA!-#)4K+{-_fC|l%G**qF|G4Aq*gnH3gwrb` z95dh=GC2j{o<Qp9gi86qfbqDQz?=a1Zl%HZL2?@42tbQ@I5A>L=Yh>??>}EckDEEp z=ZL!wJZcAYU)5ur0OnHazClZb;&#J(J0LQc$x6#_x!6l<Q!)gKBRhix-UI-en~8Mk zQB_x0$6I<f7Bn?2BDI9?tkZyW?*NB<za|)ZDg9VM!27iL!`qKXqJmhGBceD2a4=G@ znWHq9ovK>O5YoB%VjUKpb|`nCaOE4aXa-XnMCNMW;J;yV#gYsodg1`Q??S|^)?=nM zQX3MFtr{K3Q7m!#k^V<iw6csEx=y3>P7F-V0>GWS>2;Aw^3=66s1$~n>J&TC?=V2d zd9{ST)1uFhGi3j?U0t3jikns9UgAk_;>03e^)2T0d%}@IfVYF{JkB-@5ji9(1R$vg zfnwY8xW7&z)fCMMY*wD+1c-)b)xnF*;z%$fhY%hV0J8$AV-($K|2+tl_ejpAEbBMR zlRwdnlxH(fgbr8+iGcIQJbU3-$^g9UAdMt-r3T$HB)R8Bo3bCnJ>tVFwAK1&JQ&(K z*G@F!4a`C__^Pq_v1!d`m_!V|&cl*r<sENu={;)*5(I{{Uo(1TFj`B&ajV(p<`=?o ziU15iXHby{uUYAAkr3fblfJxaVJP`rW%ex+P8Q!|*3aI@wEeN9e4W=pVdY)5l08Hf zg1eQ<1iCBooupV6_y+cA<T{N8(JH|>O}BK@7ChlpF8~8}9`{iEE>lg6?g)L;JHi&A z;@~5^yNu$^gv6gRkP90D_uc7%sSj|YFxekwHEy4(b+Z%GH(U!j+LT`<qujj<930ju zvNHfmOu4!BmUih26&odXzep96?HG40{{8@qhQZC-8{17g+v`m)q}>2v);>gqP~V8z zk7Lx@ZEuuEcgCOwxPal&qs6*ImQ^ht0Ak3w3sjYU)l~%uIYs+pS&zxz_5fA0&7$+- zg#lnPkQC`v8TH>#>zX}G1MGc!kS1}5R-llNLCm&wib8<y*B?+LVDWw8X<2vU#=Em( z<HZ6?ii=;I>-%j@9=<=^7~`-2sIvR@#sk9z+KOjFb6WY0W`G(Y3l7rVu|5)Njz5+e zvQlqO166Vf?$e)ZwNjb7JtU4;RGx+gGLtFjtH(kYMO>+oA66NIgF4bk>u1PX(eUnX zv+TrWnt;^8-ee3~ySSQ~gBtl1jf3ju=4L3N6;5-d=3_h>+FgDB(F2d2v>#vu(Eo*- zkG`+KT59(y*6KC}B>&ZFEv>gMQ8pf@2PdGd{qy}nj=%J!1R}kxyya+;y-p?q&E!tN z7V`QtsMMe9)PU%X*_%V%aOBmZt=J{t7Z#wlW0CD&euLR47jI*0RHw=?tnD<=McA)S zgSde^k<h&u?|$jA1HUM!q1W7qsja^x@gfDM#Gn6?CJ<szh0Nx^8rY6(mbDh)XeyxR z>_5fhD<X=7CNZyP?cQ6b?oRhw8OSlNp9$X3JPS3fKy^OX`+Ga+5?`zsZKa9<nGZJO z(k30wI{(~#=?I`~7VjA)E@rUP{>+`HCw;c;iJM^gRN1#c-$PaGe(`BTE@1mW2u8z! z;h%&I4O~VJ=^!&(eV=(&)Wm;5QGCM}Xw@0<>=$I_zPsj4ZHP(*^s=<jw%hRwdv#ac z>vv5v?la9n(uAzbveFMRMmf7w^3uw{6rg7#Xt#sdEqldnWy9UzM;5`z&cpphuvHn# zZ{>ZLZvwNJ3mJI0l8QXg!=gGPJ+bX|s#E`6&%d0Kb+BrnVhYWxDJvP~-Xcr!$bO;j zW=hdsp8Cs=Kvj|NRFI3A*UM=ONU*IZ-Y$Vq4VE-OXxl7yNKJ^@tb!4rvyp{5H2X*v zzP#bk;uyS7O09*R15kExny7-$V)xrtndigH!Q_2fiDd$Y&r26d)%PcvdSOqury6J8 zJT*_?>x1)fw+FctJpE*bZ{OGYHclotGy%+jJkc@zC<w4`yTc!c*!2mSt|VS<*X&pg zZ(MW4N{MV|@~dC}S#Fhu-;CbR(VVL*$^{q^K-0{>+kQ9s$K9*yL2k_L#X7LBKg1D- z&izmD9{S%^cB@10q76|N@dey(=-B<(t1T10n|#}C=3GMaNWG)ra!^Lor!pbkzR|E^ zWnW|F+GETjp)t)JQsWctf-Y*#1m`aIVzjEAh#0NI=ODSlDdA+v(&w91W!I>jT9x;T zc}q^eJKeA|b>J(PgT5pYyc)s`>n2t00AJC75R@7$YPMM{2uh=md>TfJg!b2;Yd6QY zPQM~Ul+fMSFHf9(G8GJ~7m+>@UAZ@fAgMR7nwU~mBCy2UPn4n(_9~(Oyx*$G;S%(_ z^QReE%|?IEVRi#$u(Ekw9O36h%BiS`3ef@Ng)}A5fC_S9kWAg{d?4|-p3(W)tM8%A zdBT~J_OcFN9eaD2-rQU)1Jr!@EjRolq2k@TGkcjYOLOQRm^q#tf|lC9t)!YEP|<8) z>)S7_oP2Fbdc?QIMD{<=OUURZO^#-t5)|UOSdm`4uI%*hFhagJRJ4Rwt>$(u${^t5 zt3w7ct5wmP&y#Yr5?#?!5Lma_CEblPzCS?L_514`3hr`2yGvOign^tFP2P7e17NhG zg*Mdtb-pFfmJbcq=`VOSs0;obPA;R1A!`68l}JKRzN+d{ed7d;gwpg|U)wpfA0{&m z7dV>MfiVNB1J)rb{>{D1Nc<{fnxB>jJGdmufz-gb-^GBKyEx=2Nhw8uGMwPann(OO zvC+oX-pK71*POV|N3Wx9O9Rs*=)C=HJFQ>R%8e!?ff#ZND7xBFBE(lma#~o7jv*Q- zdhHgdIw+zbp)^`&TuHZ>s+rrU_A*R_#JqUo3pkJVE`TSJkYD1`{USc_@6%n5kj<+2 zUmx_3tC{j(h$8jqSAe22f8}5;Dk^db=@YH@tM33m^7;f6nQ|8t6nw~uHC|<0q7Xvx zXrM*`kx)LGIHWnFb7bfH_jg~f+barbVD0)drDJ0$SOP|am{cKXazG}M*DXxi-gW@z zAFHjUH6TZ|@SV^}{g}S5!4K#ViY1{z($*THGGFo<Y7?9`sK>4|9pJb-aS{w~ZWgol zF%kMdmFqq5qn$x!-LD=+)Z8Tk4_k<IfJcJ~j%4C`$!m2!u*5ZHn1<yg<Fxuq2LCut zxylGepk5uslgaEGTw9LT5psAC&KE%^>BoMT4?KJwcv)MugHV^&l%-raD+0Va9Kl|% z<s5bMNUl@N5>0~?y@o_ha>@b!gVDK-1x)}YhQnHtk<j5`Cuj#SGbo=1SR)iDHfHH3 zrxf`m{*jmf8n6$8mGJk%({c5bJ~}|3Obl1F2H9&kvDn5;d0*;_F{)ir;UXCp!kd)q zul2d3$qt#0sy(+pkK=(tFB{aK+xf!4n2o><cPnpMWr<b{KdxO!2t5-XP~*O4aq*9m z;NCPiCHZo2>zzf{y4WuRG&(EYZZn2OA;A)0FeKkdq>uFNS=!&0kUFn7;$0u=TbZ~t zfG=VEXhh|_3+KOgHyC$T4^B(A)_X(<04Kn9KMEwcKt*X}WK_c@?P^4|#w^_B*$+O3 zo7Ave9_|espKk^Z{L*BD6yNjKBCK6=*vuO>URBb@rwVj!sZ0WZ_?`XNm>mDNNtrMW zW(g83&1rPao$pMn*aflK3-cg+Qbh<DEP)`b+f^4q+5I%1FM@qxQU}6(26R1Fuhe<q zC*|~6Bpe)(Yb4ajH65~a!;mR6@Am&E`cJ^7&^uspzh7lU<a41g`FqE)uQ}zA+C<GV zF{-MO$!;7hi=lD1w)Y9RC2+OMsdeU7agthRwvG4P@BNo5EMJqxyM4x)qF@fdk|%&U z9_iScdF_e0ReClqrEUWq=^~Prc39k2I{=2_GwSg2wv)Z?29E?@cmYHsNd8_V^z<uj zHSeP-UI)F30{hsk!gJ%!!fK8(o79OsB1C6A8(yumdtgDUpXs^=X&fDw;14o9tVMnJ z>H=;7Buqw^mzIn(yKJ#v{C&0-q7>pY)~P5p-hFX><8&~lVldKTFZ$DV_7mZJA1}a& zi88Zh#_(w6?bBE-<V6sf(KJ(S`wYX4yJe<2_}u#}UmO0V1f7H7JWOB+Pxe)`WKr-2 z0HdhV04MyIeHl)iz0!!(nCpHvhiQI1vhHD(H(Lq}?W2zJZr3u$wqF~6RFcu>$@pQx zjBz5Gmq?@N37q&@kiB(b_7c(ELKtz%$v<ua=w@(3$|1!JHO)NjI&pm|pQhTMPsZS1 z`HxLHFq8GAn{{^jh&VVhODgtJa547&7{9K;1ZXf*xc3~PhuhN|1%naGz~IEC7^Es6 z@JskGED)$#1W8#Mc+Z{9US0BgwVo_<t<)I75qU(!*<Ib~V<kDf4)bq>P1&ouB%E5; z3bQ`<F-=a<F<a8|ptyjWd0Vaz+&tGVJ!bVlT&~jPXP&FAH_ocfz(ne33cwYk0giXP z?Fa<}9AO7P-wp^S3s?ZX_d`lQBcUoMJ^Er6pPY0D>4*`VOov9~35iu+jml!8qROHU z=#XZ&vGO{J7)lbFp-~ouDh1@5wLuvM=%MhRt$CDud|SqAra2RUGOU5@d>s)!Z{U%U zP@rAQlz4P>v~C8_<8q)_I?P2cOf7scnE>Y=jv9EkD|-Q0G4^f9c4MXQ14CCDso2Z6 z|Dk-9qj3ke5Bj;=j-*q;8)f{aWfn^|bZ$~=U>8c@9+4FEA}Dn-rHV^fSkrGh-1R7j z6aQC(L4*9qakUU`HJ|;oAV?CJ21Wjmg7UdQ2JBJL<IY#neOrGCZDPIY6YLcL0pnn9 zp3zi;>YOYfeJ%-sJr};n6BRf5eq`2Gxg>7=x#p9vRg+yuq{D!k50{+X-~@okE)&Af z7iI>&ZcBUl0pq)%9z;S@VF;kw?or^w7V82*Nxq|0JTL(V54NgyANx@9h-f~Bm*_c5 zxNAx?Mww8dlkE`hjWcYcE;ly69ezb6xN^oJ<uZhAyF9F5yI3K#)$EH(W05^n1ltLb z=9jYz1MuUU=;-J=>p9usmg$;Hn}UmXfgQTlkEh8zRsMBQ#fw@sRE`E|j9PiCttYBt z8g_|^w}D`Ez|))1xAII}j(Q*!V3;XaJ!)ny0$YN_M}eBE3Q`3XyJA%hl}jyxPLtK} z$lY)sue9Ko+ihiG#s0NaV0bO#uvn>VQ;pVq{To@?CDEB$Rku$KbRr2LDM_et-w()! zkpNSYDsDSt55Pt1t-k=>QsCHke}&V~$T7MXGEg1KQT$ojLwhsq>a^l2c-PJL%)%}f zo=SjJQsulI;G4k*E`cIP_f~?I<_8jtXg;$@CBJ&(Vd=#SCw0{ENN_9_b?{s{H@pa= z6UIdYld2z(CDLgyJ0u7T2~FzdDAZ;txBi=dIoJZwG_l#S-7gQ~+>094E97xKEd6XB z%m0t4?+&Eu|Np<Z_PRzS>)K=$NeK6fvXVE-%F0!gkej{ky^=(^Mz|p(l2X}wHgt`U zkWGbK_6iYxuXFYJ{_Y?Bp?lAHo%0&c^>{p<dS36#x^)Cor0CJ{PSrl&3_vVXx$v~U z?L6dq-E;TwLH&$X`+ePsM5$<@Nl50qciyeFom+C5R!F(&@2ZQsA=1?=>~rCRwPFj^ zlZ=laz-S(yZ-N=Mq>lXNi*Z~WtE>7AMYj#lo=L9;NVVW0n%V5<ryqmXh=$%aUnEXG zrH3;X#dh+E$=%d6T)xzUC0j&7c@J{UFAnO9crSCx=d%HSrif1H7Bl6UdT0yHlGURp zXaafAmW0HMSck7efmp)vN}-Ol5U^{sF>GEU;;ySBpAHMV^U=cH`PSa5qP-LNkwGp; zKuWJ0l#i8HY26~}=or|Ft-H%WI5Wm_+d0orhaofK#{>0&@HzVl&BM1RpkRmA$;|;8 z2QGszei8?jrW+=4<Bho)lg*5xp_7hb7dDY-$(>8B11hbRXj*}gj>DtO-1@CQ;mkdk z0T2<hO)tZp35eG|Tg%_-sTo^#4r;jTw6~giE@KiUX>im&lCHOXxrXv&P9t!6G9pp^ zP4-7co8rl^m@AB9>HtY9ey}E#LExnzclKw~uHeMhU9F8|%5H)-@%ZIiw^k<8y&G%D zVMiZ{fkE8pNV9+F#-`+YOCTvdTE8^(Q<|_lH+U5szp7?mdDj9;4U7N6aQ}da?%vjq zb5vK0;@zX{$!K*qmQN@Ul!Zrzuv4E*&fQjCyT${iM9L)PPUI8olp~!P8ehV`xE2Dl zPS*Iu&QTAldlA}ToeJ)U0ng4il3^TM>sqaLV_?0Lh{VU`s}H&g+|Y$mn7~c@Zu!jg z*UV}C*4ca(cfgo+=l;^w^OC6P+8X!weELa0pNBV~LIWQ%xv}WcQLWQ?N0>NleA6*J zf7f*PvAQy<*)91DO<Nz7gPWG$vM%-#mgK?I2z^eR#D#l~LyWnHi(y&2^VcrSE)eEF zWgoxHK+lXZU7%+MaBzQL5QI7ssjzPu5cc*58I}mt(H#fDY8q+pg;)si5`Vp$75b_K zvQ&=wHoJP4UaMqaIMUQ#`E68!x^LM7Z8PcJto^@~=+oOjpK34MEbVjd$wtc%y1pv^ zT(qG3lc50l-?neS-esl*F>g)m{@%+sjkT>2_GkD5Rb&m#b4=A4jza|-6^5#hCaFpb z3a+;)Vq&Uy8Lt43`uJyM1%q}Y%f!Z)UOvtc878a+f8Udt<9V%m(KRcFTj|=qA!ke& zF0V4IEAOu=8&uxQIlTw~aG^58HI4ZUNu3lBLX(XZ**VB7Z-96PE6eHwVXcklp#JC6 zTsxI$@>hWI*AYqCucGyA4g!%AkO^5RiTe!v`{U|QbNk|^@n@&yvboU0tamwt?c7HM zjCBVxwE`|_aB5^bRr9@M<IjJT181(^hH-nO+`}q#%XnYiUyIo5-fUXSToT$|iH{iF znb=#H*rv|}#EM$&QlXY`o!znw$eAcLJx!p?1qSnj#h13tQSZTB;I~ffE(Yx9=q~O2 zx0o^_Gk1JQ*XqdUi68LY9K(&5FJ9O=0D7Xfr^7Kh=W396JM-=?dztN<Qh4C4lf3Nb zu7DGr!QjR<cd&!57;KklawhO+9y<EYfSKc7@CUjq06z&>TU+ZcJUr-0c=@{adiKLr z5%w3A@}VZ|ult-jgn|2njD0VE3aOUyw}mDk?ojk3YRdBEiB3s#Ki5U_ou=aAWeI_# zk&S4TOQKr-o}2}{Iel#DsB3g5?!st}SiZ^3firq)oe82z)G0F4dS}R*Vj6GC;3w}h z#{{@r&AXcu`>(GP08)6`gzH`S?sg^zixOFIFp^Ve5TGY4jx>sat@Qp8uV9?NlQ}qU zN0grHLR1g3O?iF`9zZ9X7vhNiXj<)=lp>s4I~*)$CD*mqVbP=6G;k)wqi~w~?93bh zPWaU{3um07zix1nfpO}A!Rx;}b=)=+dmB}p1|1CUWNf$g*Ds<gm6E}Y09|G_Q|vea zWJYkN1s~&7{1e@hLqHYczf|VB{ZRnkSebqKX1h$g|7+t$h3g6vM<|pQN?VL#{WNH= z!YuCa9^={QJ8i67r=Gp*k|6Md4i6k;qDRd4i>H5AsZ!IFM*9~h-kBA$@hP5ip0M$> zrmY#<9|Z7~qe98-NN@Mgc7i9*GD<4l;;_9AtqfxYG~q6R&iC6{71gnkslUK<WW}EI zLD|V%H4KQfY!`@5O-Xs;AIoRFbH?dfB)6s@@(3-w8W-MjI4{HhF2rBCR^^H(I^&n3 zT3_EdY9a8vWD+O!vGg=*fLv46k)E;_ba`1?g2K<wpVia7`K;chP`W4nm*fYw%ygTB zA)G-IWLs$7Y)t~Jk1|>0C%~CRudr|oj`V66I=7BnCfjl=VB(a}G@GXdIy%zEYht<> znDqJS`hF-I+x++6XMb?SM}6)}H6>ij3ahLIqCk|)boDfmR{|}fLPYm+49ki2R`IFx za}bB&3DxcMPNKcDXIP2htKZ!i@iuOtB`qsE)^G7V(5~9C*$u7B=tf(E2!-fJxX;&~ zX4-n8%R|?~kG}+S!$Mu|Wnl}=*TE83PVLQ6tPAB?vcLK<TiCcSO`#gHgBdL6uXBL3 zO_RyqgHU0bJbv-KjBJ5x3pLw3u57@(IX{FoC(v%3Y?G}1yV?<=amd1;&^DL2L8v`M z7W@p-Rc{|StZ=qV2TmoN+t}$&(xd~4lQ^rX-LDb5Un9AhQ`HY2q6?ZA-CJhdG}tp< zQv)N#JjgbsjqpKbm6>S>=dVW<h4#Z0!DhVOE_uukUO$P8`vBEpp8!9<bza54Dw7=! z#s?w*p9lXPzpXG>ed|Ypfa=vigFjP38ejP(nSSx7k9_$<Ux2@KcNQQTigv$b?Uk!O zH-DJL%bVOuW1DgeP~CYZcE&fA0)HfI)A!y5#lrJux!nL#?fw*fFKchTU}-dnlIdj? z5EG6aeM&ut%!$qS;Ed~o=LvM<zCAXoDh4KzbeCR4!c{5<M&Q$ZEJ<-r0<k7&y^xXj zF+A}dX=DB;i_x^2g4xHxrgM3{#aa3hpnuxEvt983&DBx@)dU7zH3FdATw}%g)lkdM z(x`H7D{S+xBM7noZUjlh<cH%F<PQS@5oeF+EdbhEcJBF;Bz^v<Z+!j^ey^rMK#@tT z1-}$Z(Yn}mo?FN!7aFM*ir9RW;~r7l8{|J6u7q`gsH+G>KAmZHv+TS>BYcW>eI5X( zragMAF79)xg6;PQU)<P~U4ue|^2^YMH1}aNR#P9I*=Q(NTMS};_2!T3J2_%#HTj-H zG0E4Y*`tC9MTLbPYEXKp@q1LlV}@<)`hOncc4)ob@0vZLk_g`qO*t|3QXMpT!nxrs z3k7rvczV{|5A0FwdOy2=TuhgOvL3#VcqF&*JVJ=^RRR>=9CyH72i~L7Hr!#$$e-98 zmoFphbo?zfg%Z~?T@8$Y=qsnDJ!0JF-T2g!`jA`7*=1;QCo}PftVP<73_}b?uK6E& zZv3Sd(u7&kzB$OSM&ql=jl_KVMPIm>$9b=*Uc;c3x2?5@4F78eD3-;9d|Gt;S8wFP z>$=6-?pBLtbDiyOR#{D(Zip)OWcx;^1T@&?<Ekrr71{$y->%f0`qJb2olA%~{9mc) z&A+K}Z=*_hC2ptEX>mTf6;QD=Xp|)F=cf$US?g3i2jb;xbFu%GBj8NFq$XFq>AD*U z_dpL~NOXeA*jUW<sPL9SXAwaQvjP0+4FFHP3MzC_n{VafBliAK;<p^1xBtc_zvR7F z@yNv$O}o;t6t<KL!1mR)T;D-Lq`wgqcuEGikkmK&L?A>*awl=+Prh=PhtC<xNBL9E z_6jF&C&(tC3E9W1`Vc;I>`)FpoLcv)y&vT2W!ckHS6%S2T6-bQp_HT2d%|%#?yJ-( zB${B!q7fs-P;=f<VfK(zc?(U9Ui;Lz#wHF}jx|D=UcbQ+i5uzbvA@Nt0(0tp@=aFW zW?#DdIe5zWgyyg>U564Yv90mCc%e12f+bWvl`+E@%D-hltg1&TeLqpYt~%aABevsf zUz#GAcIA!*>NLi?%(iat${iJk00N!LNvF9wq|6TEe9N1N-8qRxZkHgl`+RT3QN*Wz z4Vb0Qw<&QE4Re(ZjKpK)|90m%1^Ul%#(vu60^Y;KH&iJ%<`-eD$BI|^Z}gCO9_$;S zIPg{UJ1d}RgPsyiaW=JFTc0wus<Pm68R?QwCv`6J-{ONRwlE#(AL7b%mb5UC^9kgY z?ECS3-xqB3QUcs8<&8BDs<l_;nb-5fIWGj0l)t!=jW_?8o@{2pHpNBiCgw(|%%r*o zb%Ai?op7pU`LSp&BpJOe>L~pa_=@z#qiUw$JUl&P&sQuyY$u7`QJH4tCI?IJ<VqwM z72ZJP2fA3OFcXGn^g~=rjxcf8ztMR@K3B^{PLIk<Ej-+Yoy%G?=sKUYE`4LP^<{1H z2?97jL3PlzCeTlQt14orDx7BM2^Tv(Gsq!aMw)PCq+^QsEzVEE8S7~$RPLsf+?M#j zBy|QwpkpLF`5HIWz#48*4&q_abpk6OCCwtt%Zm-gDCUvKk6Uvb@6D5sJ$p;Ink#C- z&a2G!+@siDca!CjJ|JlG>)2jD)-yg}qm7qUW6sNco#z|&PTTrETUVCuey+{V>f=TF z4fYxK-L*8xjYG%|+nDLJmOaYZ0`hl9_PPQZc>-z3PD!ZN*x<xnYwZ=CUl{{Mapt?) zX6DZxxqzVZ<&8HDmC+8D5c!95Fl?Up^1X0PlQ~W9IdBmmDYY<|oExQa4~BmDS(#;1 zwm{ZJf@h1RY7rIJEowm%WhMDtpx9H)h2A{lF&+2Ky{9kiL!@|?hfgsuPtiN&4)9!b zxN}Nx{Mgm*Ct(SBj|&-k+Ck+l`xl|r_w#!@EUHv1vR3>(w<Pi72jJ*+MydZ&x#Zoc zM50@fg^j<@jXJ4{2e&7{&>SmGhu0TIs;byI;QA8zvfr-sv+a@dh;L=gR(R`lj*5LY zj6myUsarV|qog+y2SnqMEpI+yKV+OoQFp_iE6m&{@{u_rFDn!B^FJ|j3u*Y~`PG9w zNYkMjICChThE(jm{8iBX?OF$R69A!_+_!+IRU5^b9{L$UiUlvgT_MvQ0#BFnwFy-Q z(!SBns-HBZ@5|P^6Z`a4{Pn`K1iJ8wy|u@Jl0<cyB<&ULX$+5{m|mgUGNdX{)$m{v zOc1I=jaSm$tctc!t3LyYzcAYBclETk)Z}YJZG1{x!EVPxC_gZ}ax<sFsa9f(1=(6Y zf0z_69;MM-4-0I;?<_Snm4P%zEuEPUs>uCUf7lwK!c^k}>jU;S7LNJxhPqvHg2c}L z)<@k%;e5dsdi0&Ed`cO4x|@<o<5C6;Srq|>Rd+yCvg#1FXBNaG4xMKRQFIjRtC@0@ zWLA`~n4uEWpYHwCh(D>h?oq75w}iivj+gDXhedv1N?#sTIqP&I-c1SVz%^gec?i=r zd0G-f%SZObATTxAYNoy7A1<NU?{S<A61HT^atf~IxW9?r(dnjd!9zh0-Pn3~kVKF2 zUqI3WTtUDAjqn6vn&{b(#uN;9+8avJ%v_D3!8z)jMLo82Ix2f=@_vdDqDKn7v0$U@ z@<X$rHMRV(lVEo+U^V>!ND$hQF@<aqwBC(-V%i8K*>^k3QJRt<^1_0V$_khs5C(qO zN5-!0T;pBNrb|+|@=JZ)4fawfg%&(g6Xm0KVL5&*bnR0=L|=Hdzn8+m-1$|yf?1mW zbOv?CGERUhksF(JysjYvAw(>qZ*$zbKdxlFUai#P>fzmpbl|xk8_Q~W+zAzoL=ivu ziir=7PNImA)p#hPUAqmEN5jW=?s63%@w(}_gKJ71HH1*@!fY%YX;K^lZ%X2R0GQkF zsTUVtj=H_;lOSJ#GnFP6YWc)#r>N;eWYFvJ{EBu~+Bb(!*xyu>2+4S?j(3tPNNK)k z?V#oZU=by}vYteThduyibMcKsU1fGoN>m9PJd0qPB-LsW53g`=8@6~9%1w_ZUu>c2 zm{9vx@=;_C$hX{nGg#dxlLpSrTUc3aG~ZV=Di|1mC_*j{z!cVB{Jds)(PFpZ;ecp3 zCjO=_sFxwi^^4G;8U>TQR38a{Sj5I*vrUoiU~3(8t(qfYL_uoxPfxMSyROG|h3AO* zObAR)>nz7S5Twk;2DfgiNkMfCm^Cc{ZYwNQyxx62MW#b#+EAMSokkyDJJb!g-$H2< z;<C<7>XmDBsytgnm1sXvaWhs2i=RA^qG&(5_o{zr`NFHFXuo!5grR|5p{aZa{77)d zL!3y+`sZ`+z+3<NB64`>#3N7~DRl4p)JwZUO&R7fU&kMQmFbs!a^Q6a6UX7{7q1`X zme1||1SC~maV(QYibhnYVg}ZvbCk~Z4h+qA{6@6ihRrO;VD6po;0!Oib)Wm}07s$1 z=L}>ENE6p4r>0V%2Y&VV@#A(7!YzDGnBL5{$+`Xv_?`=!uPl?;2<lWI%26|r9m7r; z`k+Wsbn;eXm(gvb=o!RDILV$Y^e)Jd+=(Vi*<2wStm_u=O0gB`95D|-1wX&^Lg5R@ z<pY?V_WCHcJ8Eo1lGPbd_5WC87w6`R>!wVzKyr=~f53TfIX(J*70e8dH};)xWQO1u zwM+5MU)j&AaHRYfkJJKNgnK*dR9?nB9wJ0`&D7Gd$5<1ar9NYJ^#)h0o3<~ufY{`T zcgS};s-5n&1{2+;^GLy}?W~{IUP9ZYPjY*~a0v77AATGp#Z=!kZqJI%a$x{E))uwD z#?dPZpl}cLxAGR7C60DTi5pG^12<^(cMZL!Pmddr{18O|X-}A;_XB#sSMR%~`4qrd zM1d;U8QW5(w=4n=VCcK5H^QZ5%gT{=pXB#G%(I)u=`%9t9xUT$x%A8cC_9ui*&Nk* z`OI*ENiovmhbJ|Wy9?2r5`a42P(FRRPA4s#NhM>X*E}~^;%wYc56g)5_I9(M{B=*e zehIGYdPcR2-C_a8zbgO5;)5yU>H3_lgOOp;Xxc*EY55bGYha(;J}O)B5vq+gdVG0i z*o;KlYZOIzb?~b2(Gb{X_OA)+ga&rszki?n-g=h9(BupytHNTx?Da(r*@xgV&O4mD zp^0}-T6tSPuf??(+@A!`j%sCM;XcL0u~p44wfmdN*x1<2d#twqX8sc_zf>9XO%By$ zqs<ipo$A$2GAQ4!P^J4`X=Tp_Kc2~(DMwv~svgw5VvP|2b^)v>0z7!9Vtnz-$o^CB zeFmtmiR<L*qy3CLg)n77oK2DA=i>{P#IlD(ccR_H(zMA)viV-hT?mDAbLmS9VHlu; zg|KE3lHeImNRE@>ApHUp_>^jd^2w&zzIHKh_Ij2<b=2n%P~h4^-P!MeYF>?v*blIz zQ0F~8$eKt->XA@wN}M#-u9UZSC+^t-{0@2}kW3Vd0z$pl<#$v#hoIvaOpd3*aq=-~ z2N_Jfn+Kkq!!UseIiPzlatv1EO&?##oKaFIR^IJ8Upk7+17jhsU}|Vu@ORrT>j9(~ zkI*TARTu|lqaP1)+{{#N3@8M2UcOSwK?DGBGV&RJVYxtz>4rMcgj|FaAUu{*Vfb|^ zc3E>-aX+T@Sf_lwBo*fH?Jrr4AUPIV&<@xXcfei9%)z4yXc{?-!Itq$AaSsfV(<0K zOWCS+;Ehwn^YZdO1`hD{T);gP#HRa%tLI+V)fd4EMUJ-645da`6&fLj=(}8}M~_?J z``|}>?TSdCW(JKu7SoljE_Yw4gQfmYB(J0pSTi}`C}Vx(?=&Nu=-|vT=cX&M3*1=5 zc9!Mv{p7(PAPStS^J9DxJX<&m#jw@;8C1}sN0@92oKiRy^z0{P?y2u(5Uo(%Q?kKT z4;)4*WQ~(#NglmI-48caHi;T!$g<!wql^2HWhL*CbZOf(Jjrb$f%7FFHO;bg#yUi7 z{-;IQ-uU;&!^6jO3j{wW!QKJ|>l+Ii9Kp#iCZ`#I!o@r_vVhgJIw2ek2buwxu68ia zO-!KEH=$SQhGS!BQ1r@=j{#Miy8jEwQu)A5&wvF2D^)=CJN#)v!ptvS^1m|O{^;Cp zJn0{xx;CLM7!P+<RAZjqiiGPNyfB`>3v9dmG6pF7-%M4%b1=LRxd`dNuEI(~IB_k7 z58yO3k><rfl<r}vsCk^ZxbOHjQaugfqqLu`^B>{gYqvCAz>`-AFJ8R3L_M+04z`k< zo=tqnYax@AmVsCHoEilRUtH&k^@ej9&_~v)P9*=#1hLm2%5CYtiIruh-Yy|cqt>>z zwrUUuiiVOR-}mE<Q8p6?m{+9wqnEWBkw+ok{0z5B0oB)NoJ0X|(=KIL3v%Y#R^gOT zmS+VTDonjLXG~b9L~jG8o?6$h_@8Z_6+xE`)h;XcY4P)`kl_4W(7}j$y{fFnG}*7Z zmNn;ey%?gctB_Rbz+?9h_R_|TYs>|;|JJpwSz7tcBB-f!iXZ$2_BZ!(U^43i`SpzN zxTVo%H)h{Xi^$Fv?#L6o9lf+Nr_6;<d`o4cY0%D{RhD`#4Y_?VB;VCVguho}9R9=J zBu>M+lvcc|tPhFhLK<EWa|23dy#%1#(>!+;X~G&h7oMWFu0NAy*QL=jSOfihvg{J6 z<_?_Zh{wh1fkkqL!Hm*|&9G$qXsggb9rFG<bn`F0fZTT4n{oRg<SZCU2H4V?u&Zzi zz&+mQ4c(c)g-zkpKLdGtFjOu{!?-V>p(9l}fVylxA&`d3VuuRyL75M1Ao2fFkC=kG z*$7Yox+$$?!rsdU-iQkePs+ho8L<+wwL2EE_t%cH?mNs&z1_KI_greU2l#d3+cM5> z+_-+-?mS5)KOGw!<B@dl1PX@?GcDHI%cqCreQqxHLcf6-()<cU)I9&?bRCJ!WEVVH zj_p#s2r(~uadJ~!wsy#0CqZ=sf*@0wff<da5RL+ML{+UPS4j;z5Lhzu8Nxa<nB>ml zkRLjG2}JEDYBw%5<kN#Zk=9IxW6QyfNX@rppBH~D?aPKTE^UpSL72rK8ID(G&Kd#< zszOS|iR8C;pgM#nI3QbaG<030Gt6wspsWIpDWU0h+w04dk(>jATHt32YD6yvS6+*w zVBT)uDYDVnhl6FaaI=gNNb9#hl8@Icc+<~S4Y@zyRDaJamf;)^k=-rrMB4Wttoi(C zO<B7}X3zze1T;|`yb@q}mQ(ncCVC0Rdq&W&Fydu>&FS5zfA?AT`xmxAE*ez6&dmH` z^80dOq@FRDu1umz6f+nsNKk4HY27Zy9n4*68$*N9H$5qACZOH~^Xmg9M32FYJ|tZ( z7M1KAgJwya$A`?{0$U7!^M-5`Go)$IqmjuAp=)3Q7rG;jlfU%(Kt?1Hjoguvk}5b* zh6*FKoknqk5g*~1?{baT9{9|__#W~NBkmugLVI9CsP3D2Ptk)S`%^NyD=d7*=V=R^ zb7U_XYSO}uuI64%$fxh!T*EVpEZc<`y69c=z}vipZi);c3(0_~0eIAPD9t#cMI}d( zBuMXct}fn@1m3a!RS*2;xjirk{w2^;<KG-}sd-p@@nC|uuRgSNiT_Ri#kJBor}F{C z-sMwZBWds^0*}%+D%mn^IVW0V_R3P4c8EXdZLlp`aGAQ0HWFaysVnX-F5k{=zb&ll zbN===>Q5sfN<qy~{64RAOw(q8Jy9Zilfoj59DGF`E9)Q1xp&c=OLBfpm@Gn6;TZ<> zYFvqyMOqJd9YFgp;=RV3#7XF@IM1unf5+=70D8WfVr`O*nlbJAh2fH9rXfhWKR@;@ zPC#`upWdSA>A$gzWSh3=k$Boh$>S>!nOUBmH7Op3Ca7IX^MRPSnP22g0UQH{lu4_( zP(uZVGLt0Q!q1;S{}M-t66WQ;4?};CvZ9M(268R8#)U4WH)cZvA@Xzz{lv|ifU8Rk z?a;FD-KBn&mNbvQ5^@@-L3n%Md8IQ>-W)cftg}PD2+a3F%~*m)BClNe$BDl)>SHIP zrJhxbaf8=+<$ST01;!Pi(;aizom}+(d$B(l3jsD@Q%sij&T%0l?>KemE3}gdQ9#DQ zoiZwH0U=wMuSoAWmUk$c%AN(Bd@P8eZf2xUjUL~=1?cJV&|v_STSzdV^fIf-8(0DG zIm=^9;Z-j~7J-`T#YtWTh3{{#e+SDxgE&S4h>k`@Q}?zN5Rdgk8dlA=))JED#|-vA z#~(L=oPQWno-B0EyXs}F=bU&*U1tmg+1{nfQ`yojx?&dfTi#BQE$?aVemr6!jY3BJ zOjMlYL~QL&GU}eH1Z;$1TwPun8lrH(aBObU>rz+Oq&E`<keTBt3bwsQn*919p;QnT zP@h2;khRtT9WD~t)p>EBsGaim4#2M6xvdULC*IzL7bolFF)6~tvrt|O`6I2SllP+f zg;kIa+^m5L4sDm8=S<>=J3ysjT4_W{?1$za8F^3D_DHrVg|<!P@F^c>?|%K>Z>al+ zISwD2%ve(L*e`jz&I+9`xN<j5jyuU^$tc52{LW&X@<dZIk`E##S=rfLuM@JGt@&&h zRV@~YeE9b!`&fz)q#y&5<yK)UANaFw%m+dB?@P3-G{2ei0>5bkNdxd9zQ$<aYkV}( zfB|i5hQwxMYto@Hw)oDR(aLCU8y_>dXA3T&324N*XDrte=1pol0jIFR=<gHl5Dw$B zIMc0EAkcja+Dav-3*fwq)ju94fg4E1W+(bVfPYvo+GLK+hWl{Z>7dmWz<Lo*eN4C4 z>FLCWw&{*Zk$X>1LpXJO?t1-Rrp1Nk0TJRn9s)J_b*JjCLgH)?i@Ct&i4!f=mSjTf zcEW*MmPjl7h`M+!nlHDd{xNSby#_{qlf|{LLt4^)lF9&4uA)+$!gADl+fXxSAz9#` zqYb9r(QjE4Te%~*n1_VhM2h!es~@#Mkm<UYG|lNqV4wy%HbBr|&FCzle2>XJR@Q{W z>l)A^05gE;#S(R-lk84<>sb7&erdaDpg|SA@SQY?#=go+o7X({y!LW4-ABnXK#ckW zI))5=s0oSFyNp2Iqf638{JBPKtK0kWJB1S%-QU$~j7ru!UmwSF0RX6$)aN%gb3C5I z<%MT}GDD=5Lm0t=YFU^uvuxziGqpUR{Nbj7zr66Z1^?D&j_oJw3pK5P#UkGn_IsAW zBiWs!g~i3kO6Qx$|Gek9a66^jjRWvMEpmH6*29imRK`5yYHR)DD(3++r`Ca`*wp)X z3Y^?aMX4lCGaY3BGFOYIuDrkZgytrfi7A{DnnP|k!i$$`lQj^Z1riZ#Sg^pgnnD0? z5bAPl&zR=wdB^{(NeW%B<ppSowL1;Zk5;fjM|1cSA}KwG9td3PZO0$WGsQJKojy}a zoAH>2ab0xl%7m-b94gl<a&%-mXc35Sy-rljzJlDB1gc-BgFgxfg#H}83@C@t7*=Mw z@OSzIw#GLbzh0~@`LG&TsJguTj`Qo!_-mm7QPaQHPtV|%*3O$to47#IR;}@(6Al|v zJI=sdUo>kyiOuE{kIbg;gipji{zXo$Do05#G!h8%f8)PK)b|G`jm#-(5p|a#VsMP# z5FVotC#e4VBXn+eG35<HBQS)&si^Bj=XHS$7Y%7-P!lj|aGg<kJ(DUCKFzXKTBZ6U zmD<S)v;iE?W=jj(#NBCBnCzO@H{$+cPxJ<#8RmNZ;M*U)nLo3K1e0lnG%W_?Qof6T z4lbI=SE$Z!-(~lmq1*Iep4qp+hc>(MxhqwQw-*yN=}P0W^}6lN)K-JMt)<uORQM!i zU6$59HIS*dc-)5J3`|f}_m%R4hti*HzsS}px~ek$@&YK*5nM|KWCkm5rVG|c1VgBA zq!^$`ygIAwJgiBlQUG}Vo|*X7RsvlsL!AUxG2H+(OIXrTk45SSRLw}BdP2qOB)Amh zj=0B%-DH;v$+r7IR?s4PMxI-raoDZ8$we)w+Tp+f2~-FK9TK4jfPI=eKLZ{s_~fvW z3O-eS=Ri?_;q41Ajh4HI>FBtwnqBmY&%cWwOZ8$_k-?gA%AEkg$JOO)oQ7zQI%VrW z;AR~cRnt&-UbXsc9eg>A`Nf4}05M~?iJkixO|?MpV{G3Fkp@lX(4@%f%?_byh$t-X z#}I1UpOCWjtP5qMb|Gqa)Z$(9r{WDaF5dKfguD24#ED4z5Y#Xm6rP#504bQ5=efV$ z@Lq4DfIcd(-hdL?mpwQ3q6TQUBfQZLY>tp-=2)$tmagAyAJ3;(sy%((ifRZ5DI)uU zWqQy$7OBv}6eTT&>d}`DnG^{bg(S)<1GDvuF#@<66LC!JkCh9PJEMTApsarjZDIhu zp?myQzn$s)U)EMe9apY-_-)NNQ;igFF#E~~y$Oi0XG<9|wvia6Qw7QrFKaz)uJqh? zoqu?_0c0$U@>lvrWaF>-picc}#;l4iWSQn-JE&$*@?MRm6W8=&@r(3~H}|gjG>1B- zCm?d@;4*n8K!#J1mh@DkAe#5_9X5irk9{zcdI)M@+|bPon`$~G`XBSv#wR*2l!B%A z1M7YWCqtvextpe7Ma$YQPoY#^56^YW+rks_$G!OQm#fF9@`_faOpkGFglFI+jo4@g z?%V}U%A=Q(MBUpB7t;oikEj7BOfsp>cl_pz<RPPsxYQA0^;p!5JBI6oC=KE8FQ!LD zJIbXWfm{pDS_(T_eM=^EjP59Pf{|jK8S<r}=vp~bNOrd2!pwExSyv9N8r(i{Pnd=< z7&ZS8bk+iaL;Jz^KMxEGNAR`${j;W}MTz1C;36c0bV&0Jx1Zp^d!jwEuw%3VJr+z7 zZ`*|&p|^!!IK85O4Lrj`7}`_M|6`UmM9$Cq3cC7$kA5;V*6e4`o*lA<pFfAo=E6`9 zLy*CZMK&@aPAFjlj<ks!xV5mhOI`tBI||Uk+1>RvP-)|jp=%IBF<kFCX$W@@jR;>q z`1SD7Dy@U3mo>!{l0}lVp)bOI#V8QAkSK%$d69VV7mqiii$sH-({Lu*e}5t6mnhIu zz)Q~sUsRyp{kb{xW8CfkyaN8(!d0rUU957KaWH)RLrJ5r1o4njpvzV9&>RwifE<V( zb3VLQl_iD?E{^iaA&#wF<BSv1SS`moQoSEoUb=7HkE>kd(Z!)_SvQw5_${7C!|?CG z`SOZ=jOhzNDwwfBZiz<nJpLf&F_dR_<AR`J4jGoQok9o(8p1Ysm7he2_r8DyF*ZyG z8gzh<p;mD31Ulk*<wq|*h{9P%jR3*U4`f0d-kZlmVund$$^c<Jjp4j^C2UVSn3d}m z)g|joYQ}YbUSHI1Cyo3mV}cH-D!vvZk2y{pHOVq093yLlX%lGz%{CS~+S^$+7RN@0 zHJX}F16@2wR1JJkt8JG%nc2wayx&GZm_&fKm}**WmtS~_;Ud>av2X>koD6X$yhvY{ zXJ#mJY|!kbJp&qP<THH#KgpPF6&8g;6Z0pjsn*ok0LJWEi{O=)v2RX{tpnz2z8(@A z@BMD>1)P@u3#2l_je%hd8kKwWgN%G`nP=*Q+9P@bVt{Ot)F!*osp0_CSv*m<GsHa= zI&okzPbrsGHXmmL#Ah4ZVUWtYKq^y&u*U$m3<0SscEHq0pv+}30YEkE$E$On(KsH+ z0k8v!rV9PEQN}?O{_hHaUcGv-^as##!3Xz#=+*4&zvq53N7$3n$EZ>-)8F-Gd?C*f zlHGc@SP$Xp=BJ)KL*bhBpU{>u0x2<X15JL@^pgvDd0Ax9eo#<yQeM#C+u{(_ncowV zx4i;g8W!W4LT5Gj12i71XP~8v26asdJRYdVRSk?cQCqn@Z5HxBhJBZDmI0kSPxHsM zG(tZ`Xihg*0-|lo4$=Fj7rCxvTE9NH+9i(wjM>#PI?U@CPBwU^Oa~|MAtr`uv?z3N z4Trp*J{HjF0pcD)b)lP|S!^#MNpv$-ZA{hKCU}fcJ<xo9m8q-wf18q7MtC}zG&pkP z)_*MRAy~~qZBSCiI9=}o1<xhtcoFTc^tF^<8V)wo&o6T#Mqlf)CGLI{2`Tykd|Zi$ zV~K}~Blh<qy9(pe;>EDx<vOJJ;(F>x6W;;iNwd-!;`y0i%XwjHN<f*TJMH*W{}uxM z$4&<q?E?E}zE)jI$B(^YXB_$grF-lhkAbJQqx2b`rztb?Z@zM|Dy~_SiHQfwO~G(e z$E|nXHKt1)Gk-m+G-)ijZ5gaJ`9vL<oge-Yz@zahc`L4MJ^$3#O6e<-iR!z4mS_|4 zN#VO^yor`JM@C?Pk}eIMAg`=7^@13Ab<vlPl#d~%Ppbv3P9;_5H+0fxrbLThyTLVu z!8L<j-Lww&-Eiz-2S~|Lv*40?`JVoSwFfP|yl+q@)xXZWPl|2JP_T1u*1mA^qK(Z~ z0ta`XEqrq<z^M^?z2u3izqy92%nd}^#vzMNaSQU5$!2`RLRfE3v)uKPO9UA8BE*%^ znrz+|OZ_ju%FKuL{%Mv&DFcC?N3OnpF=+B)^(*##;k!IS|FUPWp?94t;sOkb20pvL zzlIDkT+sQGXCIrbKb@Vyib%WnU!FZ4!wI%2&`el@*b%oVeJs>NhJ14T@>1Qz?rU{M zU`kwfK<qxEu*31}jGkHB2R7O_8_l2$Snmh6r&Ixzg{9$L1syRkj35vuRAIyz;XCQw zn!u6Y|Idn8J!~t4;pNP1F!6w>cWWs%0+KNEF?*HgCPw|CsO9?}d$T>LD@=ztfL_Xs z!qES{cH^3|V*pQfqIbBM8u7zQAEh4G@fxkRtenolP{n;0GS?Uig%VY1Xp^)jcYVhO z?gFK2zZ;x)+NkyiH$Po@n%Ar2-8s>)@>uM3vx?K5`D_I727~Ytiwsbm%FS$eT2$1z zkYq%mJ_9*?+W#6j6~+^>BzdpF;+8IcHxAn(UwtKdCO!Y?fxFOni6f?bXy=Z10IXbX zO9x7!F>(suDo!SE9NK8~4x6+0TA;BLgf53#WbzEEhR!szj(0jW7DdObRha7Ubwl#n zM&Fo+QorBn9eAq||L?L|^)P(X^f#)GiH35XFKU31$@G?<G73aOoPiyz0H@$EmtlN^ z>dKSFo=xWj<OBlV;kZg9IDu+9*zWu0*tjTR5WGXeawlBu1&sw`f!;&rcc^v%MqRH! zXiJjGDp%wT`@mul)9zb?0DB-4)Z2Saxa5G<=zn@Her=|BnD;sK1K1RzYC4BkzJ8%{ zq+ZjHQ}?gWHHsB2oYd)*;X@_chk<po8Lw54Ld`0H%y5c8oUqnF$B9%0+5#JwXiw!! zX$u1I-@pv)wnQ>!2>=kAEv3Gg`l_dn+WLwB&A-?~04*}{Nt~%rA*BLX`TIQMVVh%K z8?X<|&~c88CS8egbkMA_`35y&8rP_}aFSoXa|X;}-I-f@&^S>N^==I8yz<GDsDS}- z@(c_t8uJVU^j|&1yY~;hwk>P@bmVYesnsP0rqS<rpu_K^*XYmuJO93gFmNt;3nFI! z+xHJ`v<+N|8hVVL>=%I))<fhJ#CCvo%ZkQ*9_p}j@7WbCuY43;n#xFhWD6fUf?N)_ zy`Z~WzG;#Hl4Y;390%iuiC7jL^Nb(65(Qux*i-@DYpx}4i&zmqof1Kl&+z|3HWzOy z(o4;UNt}CldLhI3;8Ac+QDZCo@>HfWHnmfuOeq#AsLE77O%GI<SL_5+9zDuDe9XC7 z18aEjgJ$~9%f}NnkRMp0*#y2TTJ8gNT3h8<lpCpt1(Bf};mE?nH}nIVC&!Iu!0d6q z31!4!_o7k_e3lwEgH8G&taDeFhQUx}CvpTVPhQSnmVd@WmMT)h<jex8@ngn09P}d? z;sHOBcqIyG;eeN2^9<`4(=I;52VQ^%bh=n)ECW!AKOmr|6{Dz@7*Q0j(!ur~lBFKm zg|uNmiIZQrF$5hoNz+N@!8C!w$3?&z(s5ZD0ZDFj!5&TuPaDIs@GPDB^Qn_%mr+WZ z9eGXT25xOfs)1U1aC;+$2dcFk7@oRRH<Jf-p6$qGarKv%US0RzoK7u>*D^duH}Pkc zRk?pedz;gRa9j778XNTiG*ATEVEF`%9G#5(D&i_VBe297n<Eo@mAg=$nOvfv8u)kR zqn1Vi=Dd0&xNh}1lG7C6mxT;(+=ULjv0bQ<47Djkd(6g`5m0M9dXVRY*?z=iM_Y|q z5LiL;6mt{-2IhUvnUZ8N(lt<%R5K0La!6k;{QC1F^bvijI4V1$hP$K&MAw$i2gm)Q z@@GG&S!8k-1C+-&H0|LwgtqZMw4EAu@H$mem|4i9|CM&r)p3$7XbX=c(KKzmK1-m0 z?@;GoQSlK9gNZjg*h<}E@Tt9G9nABM`hL)<AuqbiY10tw_YtaqErBH45-1Ts;PQ%< zOz|P6)o4|NQXbP`W)teBL7qvIf{Qhr|IbftF0T~@h%0b<NL8x>q-L^+nsg9GY?70M zoUsbIk&9i5l<ur7zYi>`I+4x1i9k-??X9;e1C%rafROT}Qe_f7P$Bl(6y0AD%^Z6k zZ&Jz*wUW8a$Yw^*t5*K@h0;r$6m?k=@0zC6fG%o;#Z)OcB>$TVRGo9e%KzlR>CVQB zgc)~pT^KaQ|IfW(o!?zlp#xPTN=$(jL&sehUjKS4IUEu<0d*Mu_HdM&Q9PV=rYmz~ z8en>Eh?f6Fov?W09J%+wS{7OmsNsYnnv2%1%{*4t%@<}8dV80F%9xgeon0_my7qSG z98kblPIoB=ZsVD*pc}tWmsq$Jd)i!?%=bP0XDUe;w4jtSP}G+lqLH_LeYzHMbXHjv z0kKmof@x7>l~E!g2juuRpi(0Lgyp{o<k!n_dIwuQpI`Z@8w33J>$W55RQNN1#ON)O zpa`JEH1R3e_$bJpLb9;3>L%7a(+&sU9Hq2xxiJU`Baf-k+@D{GRc`$GN-BZ&PFJDe zdZlT<pX~G0Rk5Z(W<IhgLBWXWh4pfm)>5@CgNyK?7ysfGjK%J|#hYk9dJKmwi9(gD zW?~^@$wI!Q@%DuW6Waq-X2ZKOPXgb*I%AGWX}(qz=XhmONtyVT+rnILBR>U)VLVl! zb4BL&4F6SmYd(7IH%*QZ9OGZby-ro<CLDUJrJ1~szls{WO?2@`&a%LnUe-1@d)Zqy zJMEaU964)ymH4^i^T_kg871YPm`w<u!I_Djby!hva{l9HttkMO<Cl+5Buo(N{uV4k z#>LIn#l&f<YeL+^jPv)}Gm@GC9-+dRk*P~xL%m2x383q8&^70~MW^?~H5!4rGE;J> zJ&~wQ?b>CALn)oT=7~ePrXJo(<%hZ&ZVrT3%Za{Nj29=uIV1&9-m$;GUBP-aOoL<; z%I%qTKJ*y4%acx5Axzay$L~thEP4ANi8bw|D=VOg+OP&eJU(m4JWUnA__6~_B=JkU zQV_48y!=X-`Q_oCx_9V;lcwq7pUeJc;T@ubUJB9Zuk~6(Ep70k`UGfxbM)l+hifG4 zu-;~AA8IDAD@ee;=vWdR{Jf(hLjDh3f-`>nkuyG&ZSH(2I}>$RqV66`ibyv?kbaO@ z-?{Yb@5RAwuR3qKk?`1A<f9xF6%-<Vn!bdn3oC=WkY3mmpu57zNNG!F5^1F3c3a>j zWmR$?WH))BFJ>Ra@l*9hj#r6=G=w{f%G6&V4J*O-s$uBT6l(1jhCto`k9mawoiJuJ z0D*VFC$7lhDlvwJR{3J&!PMX|?K5C~9zq_IJ2K8m`u9g(rps5CLF->2w68+~_T`HT z)BSlfus`kV>QNS&Hh@V2K8A_SZVW2t{89w^>Y6i|RTNQR)h)B2emdP7A^e+q+?^F= zRUb;8a>II}eRQ^=8!?U@0jWrhbA|yCc`uyvffI@>dF%htVRf%v{!Mv67f9oC0q?>o zZ`R^OALwRnzXWw7Y48TX_r+COAd3q=IQ_L00XAXHb?`{$ARlcuQ#A9M<Em0Rmx^3u z^9?Ql(Z8x3LKQRn=N~=(_jLNI*lzOQGQjkC3N>=6*aT{FM<wb6Fc!FM^5W^;^)HSg z?*Mf#=HK_NmP?tyDYo$G{MT3Z=WxjXAjjuige-9vLI5O|x-1E5_)2!LLZgBeA}Y0j z5dQ{{Wy$yrF`Q?Ln>#(eI6i~iyUdF(F9p$yLdYD>gH*ya{XvQV#hs?%E{R2@2#|&P z$E&V<xF6RcPELm5H{U5JD{s=my;!1s#i>OFm}E><=VS-q6Gr>*2Q=+Cv{q=D?!a39 ztWn%N&<Wb()wiDVBM)o%PDOVWDjX~h$#ix822gCQXCr{zL$v_hAlPdJonK>0M#`3I zZ8MI(h8UY_z+d`6xeG}&XedL-Uogk7>Dm=kWr34<b40j(^x{l$SCB_jClW|Fk8|Dv ziVlwNry=j5jPWh#Nn1e8IKYfBGr5fOD^y{6`P-D@qjV_(7%PSrK#iL<Z~{VEKN#Q# zc`jJtH$~OMTK+}q)_#=Y`)q_1jflO_ggrz|^*lr-g$lyMJD{dDU8&AS^;TgP?^qH4 zrX7j3DHwBMRQ-6~{?`+<IVJ!Ar{@hE^ZfLw;q4g@Z<~XBg&~cq%!5vo{IPGKO+kHd z5Y(4YhSDegs8vN8wG8;AAve_By{V?mP}LEniLQnHnNC%GHs&(S!1Q;49Uw01MPIyW z5c>_mZonkZ&@%zl7x4SFQZIUpFCNQOW!fIhygMuiNc>UMj2x_Rx<X3`a`{Mg?cvg3 ziYQ<*&x8P*P%rxIO~W@D>d}b0Px6m;46BDwO3;l9E_&2=W<M}?GVrH7vUc?F-V9q{ z-vJKco(NE1C*FQ|jGmS1WVJb`w03-0(3yE!6`EaLy%jg6jvaQLId)T(Y1QgTuP)}# zH?sul0&NKXy?v))33L%-%-~=^b3EUsiL|7KrZ_&8-*oporFnJ<?v#@%sbP}B%3cL? z+;ngDngM~b-ipok-7WAUHje@+B`UH9V)*(cf8?86@Nf8Jys47}y$#%Y0VRbSk(NI@ z^H}OAl1hC&O?ug$Q2`8V0|TeXyc?J2X!Y@hIYb_~_)>I*|AL*e!PCmhlNVS{Q)5|A z-}JxDRKZ3Fj;IEx*Qzu_^nG&B<zeMkgAtK%H~>Ws_=6QE><9vOe+c+BH=dQ1we;yi zmFH0J-b1a$VzuA**DvMtn$|La^QsFlH?J+-NM@rQ`P7`~g!81*FFyhd!gB}EI?Q3@ z77lbh0v}vTV$C$zJ@48(t@n38w}gf8-8rX#&F=r627&6~^!I=V8VVL3vI{APp#~mB zG`4z^XPrUUDccIj!2ke^mvVA)8p7*aATY&txj+(D5dPWm?l$mFM}VII+`L`GnHRp_ z>}Fm+di3a`Z~7=;B?DJIjt+Z0`u1gxtcPk$_1kp7-P#y%AH<<NJbwLx2s;x{6IQuZ zr0#kQkBmsw4K0v+4{i;5J$5jETgx+PpwOA%=|_rf&#;<#1~tWz#a?W?o?3GQD)yhb z%cgNdv<w_499`Jo|9MCYrydUc&Dh@2(XeqBM2(Hkg}6RJqG+wBuYv$0AV@E(Fs-hx zzWsN3A{#9!-Je)<jm=?096JQT5kD+J1kMGBU)wt>g`FsWafUb`0Ec>aH?R?)Q125P z)7%0f1pz2uB?lQJP(N+Wtm;G>`=DlCI6ecLCTyYN>#!Cj-+=-B#8~1gdn<e>)e{G) z@~4E^mfZru@xHHFrZ<bep*?d@oWA2!^jsxrFuU8R?gf!LWu5tyoZj!neE_M*z>Od_ zw|HrDz8avAEeN(7cK{DH?CpU3AQYTXzHgM?ZV$asCB=aM%{Zzi*#65DsT;VP)9bk! zoA{Bxuoj2@H(^dLpieX{nkN*Cwx?xC(0JYHv7kannwy2;9j^AA%l|y8HkNYuy+s64 zXrX0071@-*(qP0pgQJ>O<ipN-EQu6ySMXGSU3caeV_{lK2Kwj&&|?KTuuXL(fL><t zSX;6t+=B;s>^GyhqG;Y8Zv9?zSfQ?S9q-|Ph9H=AM40rYee}|X+iQ8OBi5QxmEVl@ zS2DUM?|+w(kN8Lz;5FA3bn%EASDqzgwN4c5LGK0h#gz687_FhUv!`T;Ka%cMK`m2s z_lM?Qqjst55_OklL^!}}2bgz%pDsBI4{=3W_%m&nDMqV{7yGY+TEF9o57rU5t^+G; z%2lZadb4WJ4TwSD$R{->vk2bjCx}V{@bSm7fW#ei<2bNqv-FH$-MlzB`UIN$#O`&v zvI0NYcMbuz{%7Es=Jld#;gA~<6jZZ$rgpxxV|1GSpsD~<IX}2qjU5GQ0o4l}u~tV6 z>j1WSBJ>N$8iHypa5Mic$WHD`tsHZ5M`8e_5nw<dZ9tO+8f6r)|KHpYaYxkdAG{)* zDPN@)paC?fe;lj9UK1?fK;ub*1y-6E1fV+r3kd#&5*xoDX##BEQDtSIeGI)l<kK{} z-~_&Ci|9%4espAZ)YQ~ofrBUIk}dof0<x9f^(%Kb-{l;<ZKTPag)Si4wxF0FKxqae z(oYx*0tY782^~N%p$Kbsu(XII;N4`-Ee@7EeSkF+eRRd6;{7COM-$7h4cc={(z8%+ zKGfWCe}C4xX|`W15bTdpGlm*r<f(|g`oA#osKZcde;YJRx}mrO9VhNUyVi?=#^fMC zCbg%3NdeTb1dTWI9YTY0R)gs71Xe4Se9g$_SmNJroDs{Vj8G>J<x|Ae)BvhV4~&TK z%%~g|sl$##jW@AoiWYLoCus=n?Z(~<^#8_W3oR#&B>;cwy-Gq4!<ig|rVlMet6X`{ zG)t}Nz)E8RR_dy&2U!vIe`eA>zO*6xX@IX<hNYM(M`i;HK*_)!B;#S2+Tt<rym{8o zdoo#X)YyWsQ#KA#l(M(9<oRRwm!4&9b@jk&25q@WBWGvl*daGb(MlHUA~)=9HaFSz zC`s`Va9{i>puu9LE?Wft?Lk@!sTCN-0+bCvvg}j3dR-I?Rs}VgZw65GA-Zu;|8%ci zn$iR7JtXcKpj0!(?d=if=9X_Cjg+B-kE<{6xov@tuqa0AUPYZ;ovDVF8qzRTFUq6j zJ&raCS|B)~$xpYaiUj;0zvP>{7}LUeWvM%5>hW!5tF#wvw94Xocs=O5D2^4DL$%mR zkZ`ZFg=-vwmJc}n$2q^1b|^jlw}R4xunqwn^`OPiMwbTo&T``rgt~V;eivxmR|~WK z+fqXxSP{JZ{2??1&~US$0&C{Qzy$Jb4olIfe>Y2E9m!0PI2WAB281S>^6L9to*0)x z8)O$B^8Zsd-$pk%DSgE+Sh=mz<Do4J+JHbGl{-%;{^ou>;X@dm%Xt|v6u`pixUg<Q zJq=M*Z>mn@Gj=lX>Oj?hZInZ@w_}e{8#pZ0i%-w(KaVJ0eOCf{n9qOtMZFx6!*r8I z{jjs{Sw9GWQ$|BgS|}<iR@l<74i<4D0uvGeHRj#<9CHXf1rXK6s%G!szd?lw-I7ZX zTvtZvRFfE78ZyOwsMj-uCkZSu(A>9@z{8qAW}9M!$_81D@xRtHWHVg0Q8zzlArq88 ztzwGQH}wK3rzfS#4aoelNUPgyQF;ZsYozXsetcvZ`{{xQJ#3}wKb_JP&JDhzqrY)* zWGUuRNB~5oaWmRRR059!gl+Fv)M7SBxV-9&%pY$Cl^uQ(rwIdII{@@tmAmPe)+@yT zq=}xTqRs8?=lahOouS&E)({YRA08T4>OcTmdB7q7+5aVd|Ngz~0h~kgx%A&&>hs(~ z_XW*Bfz3YHn(lR=N7X=Y$<k)iewdaZ)4kSA);cWa5n!ktz0bQxUab3Y7~&ZG-Cc_C zmO#_=!@Vk7q(F;TGu`e&8ajqSCet8C$A4AK?5Oq7lX<#iK2XeqM6%(udw(gqRS76u z=0vOBOlhJv5^KAAI&=Oe;H&Q{WA7_uX1z(2Eu^8fEOxm+Unk5KsteDLgx{P9-&q&{ z%k}0|wBjp70Dw=OOzAG6W>g+OIJC`JYfnA2dh~+L?2B~c5_X~PqlbYq=cbK_3?A1V zwurqZDcJb@`Ol1U_1j9GU+V%JuXR6(><Tklz!2wwITmJ<q-)kL%me+kJfXHPUS;$` zrjyyP@*E-H=mT9n2?LJIcX^jWsrw64Q9Sksbd&wL^xj(eT?24=I}cf3zU2>+aMuK7 z--~|pS0UDv@*oYb%S2)rnP{~RlR4j%Ft&5{wXvP@@UFts1?jY%^odx$twNoG_pz5h zsnf4$ktO$_LZ_T94QR;oOGDdfx3~m_I-w#{X}h+aTiy9Z_e6kHMH0Fl#9)kcg~F2= zmao-q`J6`thB@f*QAp3pW@Ztaf5tns?a(fH)F0?$mN<^3u5p|abxTqT6{}eT&8&1^ zX36_rIjSX)=NW^y&s+ha?rl{jjx_oG(xBgTx0BD(!cW?mXCGk}a{m`ctw>?}-FX5? z(Y0tC`5C2}zw^Rxp|9zpCJcnJ3vM!z$!-Y4U09u{$rx;nj$PjADo!r+Cj;Aj`2QRl zf4RC&hj;C5Z0=XkXm6u>`|jqie8;s?52wY1-no6OnEr6yy)!1W3~)EWwC=BH>VzVk z9+lF&(VvKFdV=qK;Pylzy>D1`ZHgn&gIHw7aD3A}j?Vk-IEpc{`p_ZIU&;qjuP*6E z>#fFL+VQtlig!S_xrtE)LY|_k;Z+>6I1;aKl!0|Op@vuFLoRhc{5QYw_m649jqI-y zJ3&-*zDAfWPwEbq<0iFq0IPZ1f%K`{xp?W))i7{@58wD3m+AjS{g<ac;bZULheEGw zmux{6|2m=`-~q?gM*u1V+ojRRPMzH;7G;#rheOtZzyDB=!@PbMV-+R<0-O#j%lgxK zZ4^c$aNyuv{?`8uOKB~<?w1C_?UC<Lb;%L0SMcGRoaTXr^Nk|WottR^s#BshnQXug z&(SmI_2(E9Fm4D?-g)uz<=T9BuALCo4<w4!E6`STOl&NSjGUrKx{=VOv~av4hwksf z3pF&f|4dL#Yn{zvrRHhhse4*Z-7nY(&3w^bf{X?X2VTf#pa8tk%P(!6jlf_hbm<`Q z^^H~M_qP`Ysm2rC8Zufp5Y>ttbpcD^;~LTboR_cgN=-mIR8Jb8J@!ig?p1de&;>!; z5$Hp9bJT8RuoLz-HzF=mlLZalc~BxBplYYE+jc_6A&mcCamM$qsQmt%1q>2PfvSjZ z48n<@XO9U8z(FknD2%8p(|+Fwu==0fQ&Ki0f-ua%Fo4o?l-U;E#)Jr*cn=C#3t?CQ z9>UIX_I#&i!iX>HV`s8<Mk)3ATYx;0B8W5$6ei?dMS#LU_s-1d-oyX7Z==%=Cj#t+ zXJhAYW?)O@Bb#sDvN1PbPQY@27KGpfN>(%Py>QK$XI@H{YnonX!0&tt`^M@7RMe@T zYi6SjApuKQwn3xyHE;!hm2g80axmyceDPxcU;gOw^rx6N)!*-z`R{*HpYWW^NIFDA zyOcgygDt2E&jpT)7eCN%gsz8!z6#3MzuXYj{6iN{UPAyNNHZ&<I!u&0Uu3DpjKNI# zCJ@v89u|6{8=;dE#lmw0+2d4i9pSt*-Y~B256ocQ5MBAH17AT?*>JLpG*(k?>?0GY ze+?1nR6o*G0-70n;U@pZ6IDU{-5|)FRa8CYJ7w6*a!6Vc1w^G>masKcMM@ZK>r~_< z@Fdo1_ij!!YI}fN3Iq3H3l!voz~nof`?s24jtppE&Ff!BoO>vAi?Sfl@E#ibt{^K5 z%P1S|b?V%}d^1zgU`P`|6yYicv_A$>Jz@3Ve_V<j)F<3ZQ&;z=bS{4If23%@0;*C? zRV6!+)CTjxua}Q2*EMEmH``yC?8?7LP-Pl^4)}s_uRaiCiY#(R9tWj{R3zTBpz~_H zLB$9UH}$oeKBY9M)TC;Z?mw*){pM&D0V?ZBmG6<C!92u9fHGIT_pB<|tr`;=?BPk< zj5Ril%(7Px&XH3<V(UT?1z_;L)IE2!w@(i<VY?2v7^^k^b2eW{AEE@%!5eFC>(RlP zJCMh?67MyHYz7Y<gyRuqVVHf$$^ZJssmbspK2+i8QBC<B3!)1ow7TF5e50SYsjG=> zs8Z06#Vl<>#8%k_*8H>xKR-Wt+eBrcQgPV1Y{_lW6Vw6<M2<P5FpCP<1%1VL7pA!B zzzGE8L7D;dqjf>u34|zPN_aXM6zU*>i~Q0ydQ#;=_#~cjb<AxGJ=#elY--r95~;6z z{9X?i*JgT*zTOediK~YW|1V0)RIj?}X*S=q5AuqOquMS}EJ=yzWgsLIl8}&?nD_;- zsZNXUBucLUgH};Vx%2LuVXy%jjo*2PL>)ZI?L;)f)=M}1?^Y7j8`Xof)6N~@aYHtf zHE#pwVC*w;v&zpN>YX$cK<PV*7l6mGfwfs)^s0CVYAK&8jGU<6oe=~I*3k7(&(@T} z{~uNF9Zz-t#*Z7v-r4)K%*q}S&LK0&C@ZrfGn7!)aU_*QH!38@ObL;_M<J4#y^6{V zWzX;RK74-P@9+Mr$L+k=Yh15uJg?`o9f<Dzt_u6k_O^*zj(>e~>HaCH#cC(fQoFUl z0n+?~Eg3zXAX{?#_t!r!EghUFLx440OlB}pfi^X6_T=14iOW>K)7-A@uO;ab(n|_8 zMMI(=E-4FAO`kj_+}cIHh4D4WkuIbR;rtd|PUf=*tT4+KzhBM(qxXUTA2D6#k+Ewy z&~X~p+CrMKi0C=`;Z^#P3SVCt>Sm;^3gNF%(0-O0=CcRdvK9VbYWCbH-MoGKNJ4h! zHf{QckdX_f4EXfx%*zX7WAm1vTSdI^Hk>zwX9~B7uaB!e=bx36vy#gHN8!zsA@K*e zpKVV^er_E6eL_naD4o6s#z0OKMO?2WhAY3D;RG3YiuK&xzOz7=`}XZ$Rc(m2_Yn^y zXeE!_xvwcq05Ni4nL6#O4jW!96gDbw3VhrW`up$S2qWdey|UU9#Vc-2L0En~fC7`M z8p7G;Swkbe{~#x&wI3CF9nzuqw9#-hRe7X>qkJ&5%t?Lou-b!cIBUVM3s*8?jUN%4 znn-XjP`&8pNqRDmhjn1OM+W}{&zK}D&Av3*&!FO3A^u=vD<vg6cns#p@iU=lK1P3T zR1cas1O)7;)j*QQb!*CyM1hopFm9Z)^yBzcXIlK&C*qGt(rfNXNcjPfr1Cf=xXb@H zI3%d%5o(mfeSY`0#NTQ%5tE@lxJ9(kU>2Y6?)JvQEED-kv9^cD)O;Qc?B4#!Pez}m zpsw@|M>0^Ozt@*vtIeO1$}*ikZ0li`Fwa<qrD7O06QrV_oDkrb&ALQ<i(}6&r+3U= zF|@W$T0BL0IvLCSNz;*TfY-YNeMqEZ$aZD*J|owh5%ISlpL3$&1H$`00UYu^308U@ z_z(iyU#YYMmSWbec7(i5-jdO~7NgovPyS4Zc#Sj<DOnRp(y5j?wk5m@rDRZADg%dj z5{j9Zw?0V(Eg`k(3uo^<2zJJw(0ET8s<Vj8pg}Ih=|^XgggpP_2`R8M6$_c#S+akw zya&*MK>@=01RQigh?X5ksC&S2^az%m|LnTtc*+fxQ0fn|SQnmtTpjOz>dwxlsv1<W z{BLg~sEm6hr}h1CwbsI&U;zJpJ<a{?7t-CoQLuwJ)F+!ZHa33eme0H$M6wniZv%&b zJ{7Zpe1YuYV^q5tG)i`c`ye$Psb^fWCWxdk(kw$!umk;14~K=$v2L!;`&&K}vhw=G zE({rxMyFP~;S3rLVr+#ul@(;1@ipJd_J{!v{ba5SMZ?oS1b;^SFarg{cH)rT9Lc*h z^R9a+>LTM&%=lDq&d_Q0>)3OwVABsu1<v<KLM9OIJ70jAEz|&YPSP$gQushy%v>QH z*FMs9W?o0mu@Y+#1Z>xRo8#u>?tg9>r;?#;9_>K<_WS$;DtfMQ>y-A^)@)PfET{mz z>|tE&V*-I~*VjnQH}Bm+n1C`xLLNEQ{8%uE*%F77*%uT5c7@~YASv}P1z~cukJGxA z>-K1<FHxi7mTR27HNEu1cV18JaP#uaFHWM1$gfrW`>K5W{Ss4I4tQBbZSv+NH>}qn zb94Kc2JwTV9~yI@J6N6yzWJy~D52%Q{qS~DO(Ab(^XVr%$2@h*TLEoUvHd%E_xkIa z?Vl3-G(;1IS?#_xz__XLaP-laXL1Enp@gW>#wlA%onR}D2IKn+v+mv+!T~@E<Bp`u zjif1TKuu~JQei5|cEra{a;UV&_UzJ#VMTY}JZn2gf22lnhtBF<DC%{>UyOn>BIRhE zemmt6`LrDZL3`~mzh9_G6UsUPNX&Ff>gBULF=8R*KJ%NMP~!2qi8P-6659BrJEMK) zMARNa3Fr?^F`S>ol@Yo`<C5`yaNxsO5yVVpl-fn)J#dfHBvd)Yg%uHGdw|N?+(i?U zZas&G?^@8&wqFoA2u?P(fI<Ys|La$(xuAqQLn3rG&*6}?-TLrvRo}nA5<POOXWnKT z=xC#eujrKjKTak8?UIFo53fhAt8ERm4i5<c%kLsW!ln_K)OYr{&vis_)Zx#Y0)5j{ zQV4EMNkJIX!RAv|3z^alR)pi>iEel(mw?d7q16}j3?GPxK$opx1wwfKM2xQU*ZX+T z{we2d4uZ<#G?Bc{o(5a};dW=@iLwJDlWq>MrF6!STYi}157;DP=MlnB(I!r7@6KtY z?pO+-U02>_F)k<hq0{zRM8{V4)7IOdip^`(;xQ?zfLokEB;d^~gtEy{#_5JZMqmGu z8L`YxXrvg<!|onJu&x$0Q^1B-ljK&j(dI!5OpLp2+2;^Vi5?r@k=so-Dwnhhh{J=H z35%nFs^o|A^76P7as(ZFnIxzy35u1yg|wU4RTYaz=Kbm%5|xYUyMn;=@&s(b&0XNR zQvUqWR_-b2f!l?;A@s;cN;Jja5r;&__2$yR>^1brzn6@6X=0{s;Bwt^v4%M%4sYWp zU24jH1RFj9lFk}EN9=1z?oOVY5BcTDExYDLTmn6vtScs)scX_z%GlHMj30F6DXHrn zv!iY8t_siI3Q7<D+`957?k?S%@=X#>{U0!w?XRBA13uziamlBnt;FRV&Aq&B^eZ%K z>U8?GLm<zrDi)D`0)u9~6$gx&^64{V<Yrky9A#6$5i(se7F1yklE?<F`6oo9&lA6( z;F(2>z`vWTnO*;S1mCa`+U%`8?f!pTsDJ|8T(#T(9j63`)W#oAye#^z@obw4@`pgn zl+TCQ(b0tw%?XbI-m(7jmA<x67XlMgv8%=1D#$x}ghEK=XbzD^=l||$-?6}w5oB<y zp|NP5XeiP1^n8ko-tz4D=Vb*W&rcVQJTEJ{WvTwF>l(A-4IsfzMQBzp(tunqXJ8ib z^BFdwC1|bMKj8E6=Y=BT1cZZdyWPUdD!{l-1BVU)x1rto_P0y>%s5EC#CRcD<iz&g zPzC4W+ZN@q35g>QM3~W*GZ~S_qA6(^Iai!qd56AVnSFf5^l8^ss^8QigQhu#Vg@-U zMaW%}iXWs#{hW%una}sKlgG}o+ayjW|3VKp!EcCP!XXwzji;vly)$3A@VD*C{I&4m z)t_5;UhQ1Vsp>OO*IBh$2;Py%SRnS_Vm{oc*;%bA_H33BQg+etDCB7Uaf?Ha3^jkY z4hOEcO7i+g;n9tr*Q!O=q3Z9!#IF?VMjU#l;NW>U9eSQIDgjSO_<VS<LNhHXzTq0@ z-n3mUC*)?WufMwUOBt-qaLiAWZ)YaBeZ^lWfzSewR8vJ1ocR-ZBFevlJ^8~_-*o_i z5~@k%NfuW@-tMzX&IxuyNxO5NLw0Fa>4nG@7_thR79XkP`QP0M@2u6X3s3!20L1r` z#UTi@RG9fb^m*eLldpLG{Vc3)LTs3EdKBV+=65F7y$mwY_5PC!$AE{K_$K8#rZ#zg zo_niRhX_U`A;_hYU;_gK6>3JnB@3;Sy2FlcJ_l!fd$v4Rbjx4QjKb~DvXtaqA*7s1 zMB{*70Nkf+j41On+Vm|d=Kah++ka1Jna@r$+9!Q{!mnIT(X=dG)=EV-MI2=k5n6r$ zw1}uE4LM31)ikMx!^D$BarG(G%06jDD<dCB(!s8`-3aIY@Q6q7<Wa#p5{j7`n;Yzb z4?`Fzhi?#nB63rki}(-2WhF5TbB1!ja++Wy&t8V{n?H3@`$bfed#Ob?OYbxG^=5|Z z(I3QMB>aNtslL21Y>l<8ZF0o<{W?c8d#B~;;`@I*`E9OrK-R|TQ5|fAe-2*`6CYxI z*it;)b*i91T5taoF-@~sBy~15M#jeK4~c7lWZ+=}+b$wr{WNH+$K*oW5ItT51I2b+ z)<;50O2~dbgyeLVi3~MVi!U`E<Yp|cFyR+}_-ju?2BbEGTzPvxe#eA7AVb-61VI}Y z6J^un^_coa!F<=gQ<?i;9c@u)%GlSDAF<$no@y$Z1c|0oowS^tMOF4)?q-84lt?dq zYQ%z1Tap?nnegU)sKoM8&;TQ!fF=eA19hT_-$v5y9a#xh+o?(*_l>ggYZUe7@-(Za z5-h3aBg9{f8+P*Cfdq5srxnlh?n+sEIPbfZ*!3vc1K)o!)j1fzG{&+NlFzUmhksIZ ziIU<WE34W01nLYiSmI4E&+6rhK6jH~V^<fSMg>f&)a*b4(wFIpsMP-7Q{`^@c~yOo zrhX!8ojnOv>QMa&rWCWqPLEmB5fCr5+>h^G6}XPkZrPVQTaC|}3I;55_NS55L5=s2 zwUvaZ=;tkX0Cur6Drh;dCP^=&o*u8~>-rVFe{E2A*y6js5@^tPytx+U>JqbXp0?rc z!_Cdj-k|fFL??~puXVQGTtm^V>nrG~W_tWo;vWF+#WJ#JVQoO%>ra9U0zwjS-dh@p zwI&GSQ;z}%=iodzh{UgG_BF!U!T1Fh%9~DOEG!1LfN$1CNyBb&ylx@cXV7_i9`T%v zRs%~j<u?S-i+ko4Kqs;Q{+JB|0|U1V4b;Kcs7T3pxQYAgueJBm)<fY}Qx@Qh$aII~ zXWl#C+aq-09DS<Cpq6I6H+8p_C;GeBK?JmM%5n%maM>e?%97QN5d7DYcGD;w4@F?1 zooZT7nfIbpmOiqM_3eVwx?Sxe7HgC87jM3aI!HVQaOSvsK&8UEI;3XDFP({NY63uc zK{|`IxlbD+{_w-}ws{i}$5V1s9V*)W9(~`wxfiiShYI=Mn*XQ#?kn-FaZj%FHMR)6 zh@W3V0HTf(g-o=s_RMPB`x@0``O}Y{qd#WZ6E4RlkEuPjKQsAGmmIgD)}9)%kspNO zzx%xsesp#$;I7vgC=G<d&`c}Km7x_Kvz2p41L;e;1>NtZHyDc$2YpJ%=X}KqtQg+} zCNhfSe|lR-^zexYP9ja3Jnk1&@>`9*Mt**DheGl$)!TMlUWOk)Udp4mq<*OQ>KE<U zyUP>r!zSYUU3r3RjFP!!E?jpoH!m;h)Z1)ZTTk<FM`myDhuGz)y=HCIALL{$XuJJ- zC5hmJ7G}hs6$wRKol88!#0)RZwX!(E!=Jgoo*r2j$}{$TNm%CO>rOdNne+_Hyqh*N zJKK<V4o7^d;auw6re_<UxK#5jvUm~mllAWhn4boru-N_W{>WOkcM&Rv=VGy*GjCpl zWI@<d>>@B9Ds5`3fO?_|{_25wt95pAdeA$wdd2^{oG2f(ugAjkt}^V;FUeVM6o4dM zVzH8NPQ9nX+RKWbnJ?^44UQG`or>Pys3Ja{pZ>x7<YrXdo-O|7O<-hT?)R`E#f#{8 zf?uk&_a1<>hc~GN&-g{7Ns&(=h=jTR@XSFvEy?Tb`4d#o{7G1}Q9PK4q5P}b{aMlb z#*bjG>G}gI8ltq!pd|gSn}<#BH6^uy+RpM$kUzwbvSP$cB-)%6iccz*uQ|Obv5GZb zV0pgx31NtXC1To{P+DBPs#CKAdtBDdus>yoD&2$}^<C}M%UP#`@cfZkp%5~Az0>)? zx_OQH?A`+tgVV=Na5$rI<Tkh~>=e|mfDbi`Zx2j0gFiFdSxT7Q_j{!xm_^&Y6<d2I zJa!+5^MlP=b_@#kJsrWYhr<%Fi}_K3CpMer2a6&^i9aDhakhbm@ruZhs+C5fdNUd# z#l*YJ>7gi)A)*T4Y`lN}{!zs0Qqa_wMG-%PE!6WQVsnocn)Vj=eg%-r1D>6sqTBGU zI?GI_VT-0wH-qP<BS_p&7^w&{6ci;N2yxwWz1~eTK;C6Rik}j^wK@HIVQpwt@WTJ| zJJ@kiy;BgA-h90(82uGa;xxvsm08XVopfVSEq>w+A6XP~<mTi=N>g7s%19>`iiQ~x zR6Wyzeh{g23`2ZH5qTr|z*4Oz6x1{4g{PKDu)4asu$I31%KmRnUg(KhsM*`9Nu$TN z2mF%R3cX7EfvV2pdJ_B2(Li6VaQgjs&wqI8nFm0v;1N(b$9U>vSI`f3rCulbSjGya zY&@yUYOtYV61eu?!CESn^SsN?_e3!kip`b3OJEV2Dnjnq=ITYqjxSjn1^egQrz0%_ z)P0RVfBsCeu|X%rVbPsxGpxz$sI>j;@TXHPslfnyNF%|TJywkUO3w^y-(I1yKTG2v zfqsQ0C#2%;#}sc}93kE)d>OqzGZC-?KxkHLV8vSMhhh0K3~`&e6f^VQHh0_~8Ac<) z>i1ZC<i4k-iR<Cr=VPJcFMK|u4TW`tju3w}cv(45j#ZlvSf-B9GkaSy;g6mdo(AN8 z)ed$>us0hBS1_Pz%p{_oIz%T?*)bBS)>B`7w#jkp&h1L)?Uc<ZhZ_|wqb~dY#{BhC z>+mOXk(_n2BTdUbu8k~%?JN{j^(^6*;s|V$5d7|g7N6d03TnQc#V$2eq|&k)4nQS* z(`2Ydl^`8lt)?^OryI1WYmY`d7KusCj?tE3?V3~kGlHI+pVDw4W5p5M=_hbml^EA6 zH7Zd3Uc+BiI;n_G0>i0xs>&0#Y4@7PV4>(p@c7T?w!Ldhxyp{wJ1LtO^%vZRS1b=I zK7^_jm+$$~th0HXbbQcYxnu>NZ+w<Qa&JqWiE<7$#ak1Ho_{R!)z1T(=%(kvAw9LN zDmHRb962gXFI~FbgCMr7tp(?QFRRt|Qtq2kC*Allq>}p?af)|b#ImYM?VU0DT#8u_ z)VK`RX5X@ecMX7z%J~s%V(@UcGhdhTAse+HQsVFcJymT;5HYD}pXaMLi27SkCo!iq z9JIfAuN_+8eGg!?wA=sI-UQ?HP_YyUo%ar$+cR4yQH)*na$aWVC8NJGGN*4h5?6QH z)foE1=7nk~-MxBqQ7nm_XfjlOG+jG1d)?5{qlkECT=BU%-tlQNAE;(s7^&ZCg@YaF zNIx%#57kmKj&Aigsjj|a;5%DInGkPhSbCiD`!Vv9KN@r?_1f0k_qN-QvQs~}P9dwE ztiiyv_se7Vm&(q2gbd?-3c17n16B_?Fe8YEoq-S66|&BtP3~8`-t{lfvG|awyN3s4 zTp%sqWIZZ$xlbnP3ng`~<ezXQm{;SmtPU!=1pizzQbea>O_Z5%h{EA8YJf~ven@c2 zc>hG^9axz|vFe|E0P>jAONgtMmy@GnJg|ryAig!f+KyS#iQBygT$|Ebbf)02yOPoM z=Uh5Jj)kfQZt@kX#V(W5q5^)fCimz4qJKMtBtdsZ0qQ#H`sT(_$GrW`zB6~b<fAU7 zPe_ez37`q(%f_e}Awlfl_<^Cm$kWU~GCG%*IXx_f-avI@at&HUsyE$u6pwW<opQii z#K;O0&x=Cgimz4~QMnc=$@+x(L#(laA1OjYr__simLQ6$Zi3ulU*Fnr#Cb`bc!OSc zQoPf50iWx`z-Gb%$j*`HpKg^<3YPfzoF|Sdp_F2_<Dy>;9iND~p`$7_-?7!k?l7;M z5O*B9JWpJhOXs;G^F0O%)=ajk(pYC6dV(8qzemSdjblpMc2#+04KwS|-Ll<;FKPm- zB2z6il>e<1;#Pkc?{(AdbaiztqsZK|chx5tLN&|=u4d2WG>#hYcjl99Xt`RHWPTeg zZW+BaFKFUHR+D4&09&>*nk$mHuuKxd>cEo4oib)q;p46-UhswZU_<j%8wwYzsS>$A zl8Tw<^rkD$V3_6Yp&G!@q(;9FEMR+<B^;8;vp#<z=x>bmU@)fq493vHf?H0gr!;&V zD1wkX;nZ1kZa2s+zE)j%BZ-NYwkEWaqpm02HeJ@}IMF=*;-J7{FZz%7I}i8|b@mUj zuh#^lPth=!etj~X844zSa0`h+3G?P@^)@%o5^qa#N5X2tWj<T(eQ}YH0I1){{*>TK z>wi-&7K%xI&<qTVse&H?;9Y;>e^pR*mK-mH*jMW(#rK4MZ=*XQ-VQkQPX)wN$oeu4 z9dl}8iXeS~yfne^tn2XL;Na8`zfvK2>mGvP%_E_9&{W>ZG=VrwYvV7Z_ZPH11XRI5 zdY>9Gfds)7byC({!5HM%5X^TT3k6QoS9MYcJ_y?*>6%Xc(E8ZvBi0;fg3)2(v&`?g zUiP=I)XtR?iOv0jj{c|>29#zDAE;aQt@Or8TINci6*6)T%$0?oASOerKQ^VfxLDhh z{(nBU*)IiH<7p8;pwM8@A53U1pi0jsM|G-ILwq@-fndMGN%0479TagYDBN}QLg0+a zX{kEQO`%XbNW&Z9&~CkUaeQa|-tRZ6qnXO&+}Y67eU*@Ca5TSSSV@Y9t@(xuTW(|z z$lVau3umN8%8c50fZtJ&l12p4--5Qx?2nXTmgL#aHU3T>X7cdLU(wN1REtm<IQ6#5 z9BRErb)Yst{O!iuFCN>gB{h+oOvtuwj{i#ry|{JU*I%+^n4Ur8A1JZ$#5qB$#cf1_ z{)GID+G3bQfW57!ev5a$6*Xc&udDux7r6`F&lm1<qYmuYHk-qzJtV8_Ep^6<oR<vc zELxNDi++D4A&^N3T!$*k!te6K_kJY4Otki#rD<J=_rwl(QT+M9S1J-}2g*zKl%&Tg zp~7zxqb?_|uOP-J?`D3{5g|`}RhRO=#~pHDdS~%L$a2E;;zd~+#?m6M=PhCMWV#!X z-51nU^zxCuJ<)>!`XF6nWNpn)L0w;z_c>&a^m7>r7U0cnns<Or-yhW!OHAUB`~}aP zIoGQl3L?ItSB-_JCarM$6J-Z5B5le*YCVX!`wtR?R8|sIA{awJ7y?3+TSn;hCX<c< ziW-2`nF6TkyL2mu6^T)rkA_AA3(x`xN9=!eRO&beI!@X6L?k4})F8DGdc!x*nw1s( z0Ny<>;HS9Jt@|+l2U`Oz2-D!{&O56XEq(e301BbL78PV3b>^>*xv8Ne@s`a@4naq) zhJuzNZ0TF+jD@r(jd5tbH(a2p7^8}+lM0>E*#F(_8}mGI;C&8xwz=L+-@{Gn;}Eo) z=)@-TO9*Qh!UL)6Eg3X8_7}if+y+CAb5ZfP;@)!0f92t;<wc$b%^CD$503~VXp7XR zOv}VAMKT#LUBi;=+)$MJIR!?yh@{T3hNbt~wW08F2<RMEP3=8m=G>!+w<Yj9=S=s$ zWIy>%xpiAhW`{~Xk?&^u=aUv|hmqopje^O|Ea!K#9Zi1d!>?0`X$4%R8OJc2WR^mt z>xGl6CO$cq$x%C0$6k}6-d4R=(^)w@^>d3E5sMiK6vP8x>!#qOBIg@X=U?5Tc7|7p zpYEiladqqXpJ&x$6!bGYp&N+N$oYsVnARW&Zi89|q&R%(eB%A~f9&B9G!e#WGxciG z@8Rc$UGo1TNbzo)%;}<Ng435+QIkzZh<v;u91q3s5rjnfiB}bdZH{itg8>pi!0|S& zMmf4g@{!hs2CdKG4z4QH$F2&J?Ysw6z}N&*GcZDkQZ9`AHj%3YgxgvI<X~@<Wb22< z?hn&^>R&tp*qmNj22A|jDIdrZ3#9EJ4#Dr_;N4N8w|+^;gPcZX=hn?Km`p1ip-dHZ z{iRo<*WlOXVPKI0A}*<|(29eovhcZd%~QRMLw%XF)awKcR5}Y)zxkX3<8O6BDmr#- zy~V7$prnj^MdKCFiv2;FD*r&M$en*kEY<KppF42hhPbmQ>q`Q;SIO+mOtH(!w{p&0 z^q`_O46Fxt*Zo>13B=oZz2OCr-&Vle`_d?cBh4MUvK9un#*!rM>qh}x$mjO`R$M&a zyLsZ^O~z?R_Y?_S;tokJef`Q04D$R2un<)Lj=7+EC-#r4lar31GIaVc{_r)(HL8f` zyLMD&X45aS7$jPKK6*9ruN~fdaYXhcibB@lh)Qsm>{o)DJUMYBac-q2@Y3CWSpR6} z%y(5`MROxQIeJWZw|>EkRSO!1(A$YQFA%`c1jQkLz@5)0jeGLH#^HiW6IZPEPaWl3 zoCJl6#F|oT@Flon*RS@yvtX4I?n#gbM(E#HJTW(ms6x()aw2Detat(Or1)aG6`JJg z0iMDAapETuJ~%PBcoeM`_l*9Lt-FSYmMzVl#d^7%&);?Z%lObb8<7%$)8~vP>W~_! zeRtiV1ZHCJb@S}Sn~M<PYI38#C-hEwMpafeqYWFV<V1Rk%Q0`4LjALJIdzH8D92a% zS^p{l?$EpIG?bRDn?m;u44!f7fWDBGyLQV$wqt{bgl+YiFFaf>#0#b@8+IB!09Yrq zLxsO;TxP|S+{%sm?=P<{V3tz_XO2dlQO6N~8GWv0TdUNuY8+2j|M{+HOv7Ixj3n@A zINhv6RMcU)RS0&P|4`B<zH`U)aDr^rsc(K7YGD@;>cC^6wUh5(GBSJ5_MUX$Y2xCE zREGYuvAlUCu11bC0~z$bf$X>h4^kX8bnWjpP@WGgsp!k`x@DSsomr>n-6Eh~1K93Z zl-)dja1K~8uLx2%@!oeek7?+ps|+BXPq25nzTG%+xp;1B`~~*0GSP+cmM`Hr`ETpH zUxO!u>&?na%wGtZ`FyjaL*Kp?+Y7xud>Hvof_UskBu67}rv8)G4H9g?aLNv;Hp>g7 zH$^2><KRH?E_OP}^F)EZFIT9kiTCbCG!`vdvjp{bsYkU4CSFlY(Xn)Y8{b0Accp!) zkKCOO@Yv$dc!JL*y=DJjv7Gb|;Pu;z4t|%Ldt(-|yo}`|pUOtri4Z13uKJ=GB%%xi z9?_<)rYo-BD&{S3XMgs(^AtPIu`}&WAF2E<E9=1#DTF77pU-mtD460ix>Gk;<eK)E zEXN{r91{rq#K&y)=#S}rR)iE&n&lJ8u!e(UW9p0%Zv1<=;FI1=1flwB{6*|%);rv2 zBtm0D6BU#onp?{_bQ~i46Z;8XZ*<A3exBMT+8O{LKxW*fC+qzlCI_x#MSD6>PS@5t zzfM}MmXPTvZCIJ@Tcc(?elV+@sdJ>fd=Faakld(i+l<fJFO%fT04U3fM2x?@_4Q7l z#~y$N6qOV+_g&(S{8W-UpcYA;3uzDD{dY&9s<yR+1l!^fFn!MUQP32eq4t9K0?1>o z?)%5yBxW{-zt+t1YyxA)s=<Q;%Z;K|iViBBmJWqu;g2$$$KB4nVlwZs_*Zpa2dBQ0 zUi?^x<waLxch^WI=n7fGPZ$eDO<p1%jkJtsCk|KtjmtaRMr)R9#qG#IFGt)C-jAnJ zmqC<mY{(<{&#h#C1x3dXmm7XX2DHKlX-+_N`Z%b+_1Q_+u5jFe7w8}HoD(6WHIm<Q zcy7IF;OS%&#|dJQ)Tt~iVls$I7^%C-!8D>Af;3z^5VxtK_>v7l&c)NJWiq}J;B{<~ zv12tLz?VwRaIgg!pPj#hZOOHsJ^$)+6FphV!SKDYG_o;t{cBiFNqyib7G@<$@IBv% zR2P?su7q@kX?#e~(>eFjs`CXU@s!ACMSJ9Wx|V;RXFeg)51wHkJ=yeoY4R;T6_1xA zm5rmz`CmraPVC<eS83PhS?)B~O4j9iCTE55y1UubPm2HAN%1}>WjwJVde22AKdVRx zSY=5fcg6*<w2SreTyRx!U|YAVL&qe6Pxb&VC?UnKipY2#N72&iOGm<WtaP;RK+vh# z?s+3I&lgQKJb1F)ZX1TwJBr`<hkzMPJ$o)HB|ZLvMF;XkZdBKdbm;p$+{mS3Oa{#n zYymi(H-I1Gv?GXkleepG%}wAR-xI2_BfiK>cIy+l5DrU$#{2{j)|lQ!q%D$|PXLXV z1XeNK7AqCYsiP3nG#qT+bLKsungop>h7=>p<>lzMv_V-%UMH_S+y68QNZ8oS%e|fR zK)~~T$<9xjb8KIL+QL@?MAhr&#f}vABhMqb`K&_3Dsvu~7M{N|&p%Qb?ItEBwrUL& zc>Zv(uNvIHkP^{RE|Q~JLq>h|_HSS#z8g5fJ2sW)9>-Y;rF;*{_A+2}ICV%u=7rMj z87OapLd%iu_B>hcO<ECUyOvndzze5;#!ln`(B?lsPfQg9l9^6s-CrKj4Oh&z*MKLa zic?L?RV|0~c8Ue*J#z`=hnwtNoP5#9F*I9;_?`Zt6aUJ=EGmU!VmIx1Ot4)MJ4lg{ zP+asr_-CBiDAILWw|>ie7&$P~5XG>e>wF(Y6THETUZ?`<ueD<VPh7SHZQY3<e!3}_ z^_yLgo1g71i-}j#WU5eS|C0!^9l3~M-&vmkq>%CzFo#VWw<p1A-{}SHQNW^ooVBp= zm5#XKZvl}<^|ifv6l(XbOMsN-=<A57=k@>qsS><1`P3#ph#N5_;v$kT)g!tg6v7T3 za;s`V`=E+RK7~<3EWRMU>078B<fy9Vc$T=-BGCr34FJQryOw2?wz^>#vdJkjiy5K; zIu+|@{-Z5hBq2_+VP0+I*T1~*nghC`EvKQrSXs`)#+e~P=&aB7ZnBzA+0O4&-h5u$ z^F+Q<gd?}7mWu9>Fk4p0cO)<$1?rPYqj)@pu4^lj()p4g*ZRDyZ?NcxSj=zQ;}}Cn zo>}!SQ9&S584lmR`e+kjCe`+<#FK3@Rl{`qDzLH{qA}Bl6X%1yTZjYs_nEcA+fG8e zm<~Nh7U_4O2M*`~Ni+W@L6b%d7pA|!p*0c9UEihNEG_YXB&2`O?YxX)`WN)}1-Fzu zoQMd)EyM*+JeCb#Skd5bJiIy=v&rtH!hIv}a!Kx2ejAUzDBlD!&va3~^1(c(Xd~v@ zy(ZDih;FEV!IXHkfGu_(KhGxbTNM0(f$d^q<751Hp(!&$QQGFf^sg=UFNq2Z=6j_r z4EPJrr72RQrKwx=4IP<%o&^AJ|I8sh8rdLqEX5`f^n`ipnrj<^M<H(V=mJuEVmO77 zI2B93d{jTgbMNqUd<^8=rv=D&^O0lMK2)88d|A-%wHEs!KH_-v7p3SyvZSo`%0%yT z5L0-k8sxvdzGVOTZs6g#*POtI`q0tfEosVFHRK4M&^$3p#^(^t8}1s|b6_Y`S-I%l zxd9Moe__SkMz&~mI;bw3785nxBX!U2A%H*d<;cF-A~_b3!0A#D;t`N1w4VQWr83!y zSqy-5;+#4gJ8w*0YgwQGx^*jg-0&d%qQ8G=-QAc+8dVl3o6;{nv!m5XfsTrcj-H?_ zqP2GifzukNi4EV7=<6Y7ad8hWi)Xgd^}O`_^oU)1s|hGtc6>aYazrJ=xX^}=w9A+5 zG&Mg3jlDB;pxi(1wGU#nQ!N4z;JaUZn_Kjgc=8U74CP!_AVZaXjpIJMX9S@_kZi{I zQ*D81cJL97YE<nfIfQs_b5T$u3iMeQce>6=jIi=q8dgzNszX9#O3f8yPZri4!=On~ zCDbvDmXUs+AV5~^AFt0&e}e+JzBlXd(SXIEJ>`#~g^svihMC&j&z?OKC`HaDDK_9g zq5nX6ACaIYA>p~S842oV6I?YaK6Cw5P$^NI@|hh;_%O}}5PO&rC`Q?{O<NSZ4Rm5Z z)JrF@6IW~fuX{uj0eDF5jiyr-a|OP5jqLLwVv{7;NUt_pxz`2pj$zkWh|fqpv<zXC zU`A0|F$7j0*NQUfpPY*)yY!xvtnZy?_Lv$t=c!M_^Buz)oK1;=%qQ{Dmq-iior^ZW z-={D~%a~K-+IH83KzlkA^L7X51Y}k_-VrA#n()OV>-2Xd5L@2?P4=(>a*BbM9pY0Y zA+CH+Pstd5P`7nN%Zd{nO~tsNqizO@fQ42eCev<|*d?;w4SR(}%LPpgy5^0{mmItS z;q-T^M`D-`^$+#5#7IL#UULj?yAHQCeerjTID3C3d*6AAv=Jc=1iz1otfMzuPX=!L zNXZE=KRQf&)1EgbW1l<T8Sa<*aX(mA(z*v1fnIPS*FA?j;?3z4Gd36oog*rL4cllX z$|nEIdIAW`jn7hbDf@{bg5O!!T9E5f6T^Z!?cC@U7lSEw=t(=vk_=v`q?n93Xt?AN zEbJxr=LYlrgR5E`M|vV_HH3a6X79|s3WMEN=LS5e!c7y87`c(+z3tF$rXnB)1*tVL zV)G24Bdm=kEy&waoN|Et{M|wJ@>Iw=I))i>)Rh1^qSNGe$h@#pQghuQ&JV>GIpGuk zwqU_O?!C9~p?0)=>VWadq$eAgQxGzES=y%{-oq7v2t{gBG%*leGo1RRX$6G;J}vN; zdZawU%C21J^)2%O+a+AB+_V30-y*?v6aypw*JfgNMC8m;=Y51?sORM(bWjcR^CgI7 z&XI~1)04ef<%Q<{{uuko6g;`UEVA5i^{ft$hi=<3<xuSGt}jijQ8uxEa%wQ_q@cFq zz;3EpA7zrOu2*Y3xVK-Y<pS^sJm|&AE4~+&9|Ww&)2t=l=hi+J7j6HO{Oh?NEwG`q zc;)k6kfR13pZOw&u?zm}<U$+@>vVS40=*h3qODVwA2c-1q-KY7s_Ngx%)}dmKTG8P zN;V&9R{U#to_;>3Ycw~%f|V<hcxh65&Zk15ip;VTp1xKO$AY2qoH|OL-+902Q!fl< zFQjwGP%TF~6zSYuC*g3V^QUUMbpOKN5Ymb}k^b+FO)Dbbi+R1MLQyEs`<sj+?uI2+ zgjPUuP|~84lG^R8Q#MVP7R&{g=3^k$IU!@nQAfB}iwU5=!fip^4;^=arrXAbuq8G> zPrFr0MtK}Yx@7p~x&Q6ER~2REAE?q_$WW&bdfYq8#I8%LCD4NMPjtQ#LMm6(aZ>RK z0Hoo+jyqyI_j^6_SK@nbSf))MSvVGa{fxgISfcMv4Ll|vA1PtRwFG9K3EWYH$aG{k z9}yk8;OP|8!?yDyQc$fLT)x9i!T%D+=mmLSMK=<yjMMd{cR0W)ovG65wmiup677_< z3Ni^=$A2P8u2Ft)daxyz7kVFPX7|fbADhu+c4X=4=~;dZE%M~#fCl698@=<JVR=IG z(37M4!H$wm##l$fm+KTxIhmL`U|HJ~&Y3Q}|8MKDyxZF;a+JJ!Itf-O0}LP3E+V_m z1#n=wxTu5U&rV1}%RA$J-#4})#PHGkf!`{w_uBXMyFl`OULxmv;WHD9kUtdw?Ms^r z0he-tMvJ$%qR8H8*3r)DA9kdxj%4T1M$_^+4kp_5Eja-rR^~&hKgEKG5-5bLrIbrC zKi0Af$3X%2j1S@#O+>{#f4(qQ=xoANQv=Py3ZW#Vu8JCzA+NRAroWJ$TyJRZ28W5~ zTW;32-QUU26)O>ikdrRI2TJKF9RDJS2vGi}7248n)bWW_ial^fd|cWx=|dK!A`91s zmgY!V^-IMa0cjXtK+VR6=+^E+JKgm$piB3qVmNVzf`iR2>*OylB1ocx-Kq?mp*uzO zTZZ-()Y;MkqR8%m3sFy3ZP}V5jmC_ZRg>}rKm8*}P-3^WlmtzCYv9T7S6*ck<jTsg z(f8lCG_9yW8gEx=Yl9eufV4XfkHwFk@mn`IwJM+bvDPbMyDi9ehhlpbLB4;1v~+{r zqb~F1a~IDOT{@ETR~#ERB74)9F%~FbZdYwtK=|41r%B_-Ny$*>FKtD>=L~VV1T<p) z`kq!a`%~3y;ShASGgY%Ha1Y7TFYQ1&yNZ?1%$@l#hS~FJTI|?fZ%K90kVjJib&FM> zK5<tu=DQYUeZ&lq*KB^vd$JmZ5Xn~HH9iYGIE?Yka;cF54WFt<lFrJ9BM4o{6(l#$ zXN(~y{)MrZ!0P{u1^vKlLfSY;?Xl!jP2vyAT5~(^ClIjT5q;(+cp8=QH6}iw5GZh| zNuiF>;&(|rL0tFE&g?-Gpl_>`Fc;E$7!!?tr3v|*i+72~DTeWuD`d^bfOWZL9As*x zv-fS_L2h`mP_G8NTKgR?!@kf&QfRn?o1VYMRLDezYJ=bJAIzAqZ<l#bUSsOvxpo#u z;6C`DH(WJWF;&(RENCYnH-2_$i(wxUfd2jXAMdh&6Vwk*9^`{=##o0klnCl=s}7L6 z1NKz;TTtl1!?@#uLgzw?k7A-J4lXZ=R_WLU{l2_G50MBAi>SNsHI~Q3Dgf?@>9hhc zdETOj+W^_pxup|$$s_EoM?}1yo<K$pLq+|8iU<!wPMlMNjl_|=1_C0p7q=KR(-S@) z$&yXN{G><H*>S7#J)`?DLhnNrl+ziX$}h)U^uF@>HcSuD2744x4QeZdn&#Im#yn2U ze<Q?YW_|n8U8CH_u)NB@Er~=Ih%u-5>06g>(qTdC3>wEkN|(959AYY?1IxxG8R`1p zqkG}A^X_k~pS#KN*E%qzpR0&d@%&Tvn{k;G<g7S)0Al9AbV9zFhZ~h+Hm|T8VP<5M ze_;rECE5Q(WsZnw)Q$@Ex9JL<RvfSSvk%hZzy6;tBjbZpsW$d~$0r7rTTfH#rvv#- z_63;%@@#s`FcPeISQYgo94jteFoGvavTcWHyBVzp4KhY5>qqZzZhc$Bv?)45faC@# znD%i|hd;!$xs%zA9I567*ORGo52fE-4WH55lbf%U@8l7mQ9)|+Q?8A7nR*6`E>~f* z4X=1|Sv}f2R-<-vvN;6Y%xQ|vPn@>fUm>j7k@#WbU(vmL<&RvrZWYB`c)k$V*kPcj zn|9cv-r97Ew*r`sM>|ku?HSD#+4|-pmJ;W4txu$nt3)+kHSlio(2a_D^Su|jKU`A; zD*ltOJbI}l!=BKp^<uJS6%Olj0XRZsWxyWfElViE#{fFALe0!4l+pU4@qxM06(6EG zk5U1sghwO-FDvmkucDS-;qK@w2PTTGb=+AiYwM9-0#p46|D`p=aU-nX<2-kpA{aSd zg!x}nY(b1xIZ@bc;IFnC-79>K>H3mDZru;tE$H;i<^=~!wIq9vw1tk5{5WMetko&b z&b1@ah-CK;enRZBiSI-UO{|pUXH*?&9IHO4K;@CK#N){e0FNn9ccWqz1J5KOS;%;9 zGxKUXAClH99b`6U8==x}M$V8?p1&~uB(m{y_8M-i*!JoL;H+~AZBWOJOO`z_D;i_+ zXK^AGoTZU0&S>Xc<~A%h=&8VjkY>!kyxAh!GzR@FO@+&MfL>|4nmDviSmG`u1N>v5 z$ost>iL3+0HKAX_a_)kQW-xwAF{h}0lpF|gf|M1XjFP)!a0GXk$6Mq^AN8J!@8McV z@Dumt6_|QdGAZxH36;*|*>1~xRh&@#w(O*bcMjP}8)8pi?5Vi_2>GCnQ&u#$?lOS# z%3X|W^s`rK)y|gPFTJ~To0@pI#l$h(eSM{!VGn-{kUzH#x)XbcAZPxbvTN;<yJtT& zb76?9s`<nkd)W*zlO`U4iA04qh)=Ya)J%mA>!^>U+TPq67H|p3x`}^JV=we}!KkgR z^3K16vtNlZQDKb}L%LiuLg~TpV$k0eQ&?OET_Ac82Xw2M`Vfku^%#Y&i73AqS75WF z?$gPi3*muX4xL*=nii->R_BwHZkGgOOeilN8TV<0BfaA~#)8~o*Kh24EhUv+;;hWL zD3|>nnx`j6#`M;Q6;Ga{h#kh98@4?9b4?hW*);@Be+!zBRt8YCAXwBbt`SUj-qW=! zxz>T>>``_P2-ieRlwV=p@wF6;z<@7*(*pG^XpE9#b^QdHW-%N{ysHcy66Kq8vePnX zBm*Wiq)ILg{T?GktAn6i`Tcc**&>Liq&IT~qovywx|@;m0Z=WSt?!!swZ4nWFCbsq zp;^xF8haxb(=K3$uFri~Z}jM!JGVrX*5lJ|!rxCA@*Y$4fzG+<=4W^c%Vw%Hszk%& z5Kt4#%_|Q`IN@YjkEB8<x4eSqQesv4uQDJD$(zGB!*-xkqhTwK+jHfc*&3wl<de1O zf-3G0Zma-N*+_cR$_AVMB3LzX5%hNf)4d{PhQY@qSY?{uA&+=G*KKVwsy}X$rw7*| zJt@zwndqT6L(3Mbw`Q(ppi(a;T#`M8c$^)V@Yy@(?^25>V;o2amQ7=j_K75*y}Fk{ z?kuLg7(-VmZ>+1a_`X+T+0K;;MLqb`Rna`t-GMUeGa=XwvbG*G&#eL}Z&a=HUIiW7 z9_7T(s1}T&Z73*${dwYWc%Aa0TsrYQZl<{5mV&1^Pe##FU{i2ScfpOE0<yL{LnfK} zx)($`K3!Tlu^9CUj*{GA(s>+w%A@NnPKQF;nGKz5Vf&W<hALOkm>U^+>R=LxRLCET z6&6u4)wF}pfNpdz2dX$BuJa<6Q)7M;kxi#;t1EqB$l}QqhCLf{0o<Jy0RG`6Xsybo zW2}hzOfer0k1%OEKe5aF1IUQGBzDd#j1-EeyhJ<jBzmM17y6_mr^t(IS742?S$Wn` z?0lGS;P@LqaHFI*H`0{5kT;X7u*PMgQNSf6*`4Zw(LMcX=|>Mf;mNDpYp)Qs8%h3# z<jz(63bFjCZMIQV+n2TK)^y~q<>gOzSugSyic3=~;j$|_+uVkV=N~{@m0+Kh1!*8L z0mD}AnZ!o>y4E2TgVz$Fgo!pa+rQ#I$I3Ldg|oBs-KFH|T4=9d7y(d;{Q1)lD5&Iz zhDJ6sgo%L&daR71N}4u7pRdDGCxg7r!S=#SMX4_WS;C4PQh?e--}n-~$&&to`aYAO z4Uf-UI<X57cg3OaT<BaljZkkgB0kZi$!XoAW~D6E`~Dv@dJ5APsS*G%%rPFRD<A#q zzPB7Qv?DYUr+~$i(^ULCvxt-ZyOaf293$o-w(0FEZws4YFK%oP6l}XCeCEXVhvm`3 zR#X=4LiauLnw)}Av?4l!K?!947$;j$shWG_OlO#H|9J<Q=Q~KknV-+b8F>O>{qYK~ z<<YPSCLl3^tk26vo?c#WK=bhD4VLDIyS$Y`eB9lT%Qwn0+QC;1jBi4)+onW!S>(_S zhS*aQ9fLZq$M#<I8rWY|Z!m9Q1YM2LG8!-q!C<`nWqS>WTq>n}{|sNnH;B&*>JWP! zaAd!GRpWy85RQ^w1>uWV)gwcg81oMM6Tm5(Lgkj!n!3BrrR;q2Sd4NWeVyQ0I$|TF zLxg<c$V{Di`Y_Xt_n=E}D1SGE_eQC`nIvWPt04EJP*KXHk6KL#_&O*U$-jRK#|*jH zlp;aH_~NI>r;#0Mm^HWQl;zBK>ji`ZfMxUlf6n6%sx!x~F?%0cqpKQNDCv0b`En<8 z+JQJ!k`8YA>mX0GK>Z~9xMIg0YG&_KkqbI*=Ig*<Q{&O`-mpkf_5|?(o^zi%^d@*% z-xlH;@0Ep;V1;j<mwUTY&BO6_<9;zO56_bqK*F0mzDUc%ftX>DV@r+qz&_4sT&*9* z;s`OHcsWL)m#R}@8@RFj^}*G-P?CKp)Qh-|X|)R*jaF+Pv5Th~yYjI5s3frYg#6;+ z5R#qD`oV;F1eod%vxM(L)Xc==YimDPLlRtH#}}193rq#TCzAGEJ8HR{ZEuf2NS!XX zokrYKeNVsR3`8o%$q#<cbs(CM)<u>Rwx1I8J6RW!3vV}jF_B=8=-;KPJpi>;{%mjF zlI-zXb7B%{BfAR~NrTv}AvL5zJ0dIeg&~&9`!KI&cRJo_N$~3~R1W*0*#u_9(=izN z{AT5)E<94ASRW;K(O-uwRTVd1bxW?l3qv`I8)e<R!U2gB$l;~cd1MQR{0gBAk4o!7 zCIzGF<@!ReCQr_w{{_N>&Lr_DlbX>RxZkWj;=D2t8R!uOIDwqrH31FLPBl_ev=BJ& z;)7g_X1bU_C>#gb+J{;duJf$19L-{(r!;Ydh_YY2Mh)s)RR4;*+zLlJIy^r@ytsu5 zH!GzfrZu9wt*+M7)~G>7Bugr#_YCBjM%ejm&R?z11?QfsU+tdDmVI{dxpU{3hLLF$ zZ2aFewvT)25s$ygP~D)THkQQPAJ6}y{IgS6WJSNQoRYEok632gJPGCUkpYv=A_Q-i zGtQKipoT_Xy{skILo8DKsp-Hnpr^cEwhKVrbo&*A(DU?+H8FD`!x&2J6Hiv!RO3+a z)#tj-7`o3giJH0?I`55B5&=ieQn`hMF7TLHpK*Ye&er_+A`hM%S*$nS$Vc8%>&`&3 zy^m8}bTcT4%kF0Tv6>XQ$Gy@)wiy)ItLiy{Zy9b<9;ZAlWaA=<c+xy~vfTGS&Rc#3 z^I`T$m4(1%=K_h7=AX<PhSlMP9zN$e1M&eY?kD98JL*PrJ>RGzUlYw<a{onan{1Kk zGmf4^e9bB->YFA-FnxM8h*;oqcu#^cx#s4a`#a|^I$YO8&LJ0dD8=YcSYG+BmC<Rs zUsjLqFDtyt+qet}WQ^GTt9Ks=_g_BaiYp*yflku4Qjl2=OFU8FNG~KvMq{JXtlnUk zwY$~dU^QR-y;>qZ7cTxK1w`Mz2oc+#FiVe~)1kcg<m}~1GbqB4Q86*a^kz`D@Vqb4 z_3?jKW71h6YLdBpUa^>npTlvLn7)`?D|*(EpzazmE@|!ea#H$vBHuY@>~88ubW;&1 zWYX+-A&nl#AB{SgJi|R3*kf|I5il~UdeuW?uI>6wH?NZ561BeT$T=DP+DcHy;dmm# zIKBlfw#prOq5{F&OXYTT5(zgt#Dm_gik@s%yT&|Ox_&VfTE>FMI`!XRuOW>?&`Vl5 z6=fm_I(|Hk3>OVuI+Rv_XVli#3=FY#bD^n&S7|w3dU&k$Pwcjhenpb&m{<9~^BW@R z7@MJb?|<L*5p?qM<rQfy#yUkp+V2F6E*~j=+t3{b4S@n8f>uU~84D*Y3XW~2UF<Qi zpxigcsuXN<g4Y`gox4XL298RHzU${~Nt_E`NXW#7=o`E*5ghz2V!mjPSc=Igp^Ror zjT2B?v!M$LPVVIqPV(+rvh-iyBIZwtS>3VMg=jUSE78I~GAJjSq9m4rakL~5!iswg z)?ybB<1^IJ!Auc^6gA(}*`Hw02_|G)`H)%K!AH^uj4Y^uj!_^Hn`Q+jCm-qJH-aPW zP7Q=$?F!XPk>zmO*Qj_;b@+z9uCe#%8%kc`AiiEm`a>sL$^b~$oml$$HTCv`&Gdny z&o+8=v>-2h=1?ygzy{|Z0JHn^O*Qo$ulpgSM!mHF3iN4Gjcj3;o$<`WM$ENuFU*A} zZtnu2@d(oxAccglDec~4HRxBcufOLGt-D*cp%uRIjcC#;8f4Zvt<uzU)b59`4dH6@ zf#%NRzf0K>|Jf%OnkSRpP5#M3hPv}{=c(2N-M4#&fs{X*rlbCXH0q%Jp5YpmuQ-~} zJmMJo?oBez`2@G5+U`<R)LtD^kmpVLc3xn-dqt#yZN<t%`OD<<F?imTU-g&nSN=QS z2<NRX;PqHrg%-KVm+0c6R94MLfLeU5%-Z49Slg%1+gK+2nIF6FO*aB}zMp?}rcC!f zZdEP^&B3P=->9aKC(p67rT_LolAo_1f*K>Rd28VXfw?NxYtNxs?eN`K73Yk4hlbgZ z&FIa{$yeGWD<739c#*fP3-@W2Bj<Q5|02=s+eYXos|K1u(D(^O^%o@M&afuCc($G_ zspOZZzXQ!fcN-f8ZWOn73OZI{KNR|vl(dZJwy#GPx%Rys!(8a5RZ`_RX88WQ5X>Qt zkp)F%;HiK|&0}0?{4cxkNSx6Mf(c#zJ3ww3164zbmzIWYJjeDxbz39%{`Kr)xo?=C zs9j=A`$F15Z)|)q<*|%gd__T?Ld+1JB}`*`VsF)B&-B0PGNhk=1}O_Ed<#bJzQCjQ z7Mb=IJI8bNp2x#i;(XZX82wN*gAaGOX97yUEV%ZhEQAZqC^Pfr;?#?<qmaF-VXHg$ zdN%7NhJj{>oF_1A7gd)(VYNqgj2cg_ieA*<Jocc4)a_cKf7dNRzwr>@k`=nWx3gB` zVv9~TBcOx602klZHo)Q;{5ACvh>VlM(s(UMnBSfRo`mfUUMvJ@bs@Szwyu$$@5=S) zu9$Rl@J=32VEZMt75?@i<<*_t=BG!g?vH4Ei$IGgWEB}zUZM<tuhulAe{~{GF;Yao z=5xTjtF8FuvYQSu_oI0{oXDxdAG>nPx%7<htw-%S{pUrPBcou(S9~qn6Rbci*WfWx zMbEFNf79pxwxrry3|DglF_#rOv!tQ(8D93Y1IbH@6Peui7-);~Xec3ep!-1ecCNj& z5iJ4Y#7)D3HZ2Q7*#j#xN8Y;c)FG6`Oq_2TtTCjdTQZ&Bw&AQ-h#mhfqT&t!ZT}zb zBSo%eYiMcyjc<8DagWAc8;63p4m5SGYp$(0Tft%N`9hk43Ly&=%*pH=6pA6Z5Az)1 zxvhvC-Gvy=<3*G-jCscuqsOS3C)MJ3()UE-dOv`IY|?HB(wCk9hykg({J2vp)IxVP zHp<8L{=i<g=cN{5N}$zJg(^->%<}11L7UT~OIvu6+pNKx-N{cFeJ)VrS=X46J?513 z3s1hwg-5wh^fJc5R79|go1Rr01Gn|?iIW`(>4WGz(6Ya^)EUkyY%t9Ggg0KnV>Dln z{AR_BhGa+(>ZwfRtPFur3nhCm_4>(>!n~lB?23!V%zG%c&CV#sJGXRcC7VCAtMXE^ z_GERe9Wh)W$0HlfqD4q?TuxS&&%(@%(=l*W3Y#Y?>-wLwl}7qGy29c`CZ{$jki=L# zV##ho_ZP(b$f9L8--BVSDVFm&E2oY)OFKf8@soGAuCO^U0hU1Aa_Tzmp?=P~y@$bM za%eEA)-fmWh{}*~JZfii#b2U7@`5y42Ob_B){CO*p_)M~Uov8f!n-qrAaPd0CEL3D z^4si*7S-N_BYe)KPMxXu$2}uuhuxyrfb8;#3+rRmfc5X;zV~*hL28xz)EV(P!EH~I zkHhL`c&?TLno}r)Qx}T|vZE~zp}<_%+_Fqv%(ym;g>6g$gDOxt2t5-;Q6GYrkWJ&q zli#csUpY&8BZqlKqMPgXm@meaUW<q06dC9q#POU>W4c5q3v3-FI}<#Ceh?dlNxZxo zQ7MRx6(|CC>XnNkml_6(hX&s%kF!-2rz#ig%h$bHj!=`+K=oz#1K`3>E}@Y!3uC+` zp_;0k!j}b^cAXA`I#Lf>EdJV!Napi;-8|~9G~lOdb-?qZK2cJDM?vZ(rv_0H<XS2q zMet+lZBZ53=<^`d09cl4Q^=-vPQKlPMEYN?uKZQaTbNQorbAP=K8+Cq#>hvA-*>I| zYaMA68e5<%G^I?CyBBN+NCf}FM(QUynF|>E!x%%mVe_Y!H6BNU7~ZmU6}#L&RXUE} zT|VmMQi~&fXhMb9FO33<Wi1)No@q#vy5Yt(mbL<-YgK<EDGR<s=7uz(V?x9UeWwyi zt~9oZw2VrYMxe2TjB0Z55b3uVCA;2}u%JcsFEvK0UR1+}3)~f%(S8pl2!Z9JI#kBH zE^6tVn_~R$J%kn-qw+&y|LC??L5nfdv?k$D80^>O=uee+6wri^as|h9CC2D+)o<<3 z-?z~^(j<?--^yd6M|C_!wqy+3Lq1lMr&g1%)(>J!vWv9huyyd6xF0*zh!4;mg*NJ` z@`0LM_%*t1*!60v)4I?{u=*-}YYz-%m|FKoW7JXxg>Dog!YBKpJ8@TFe((1wI4%sY zDIHN9UrVGr)E{N*Yg^$|T7=0Mi(2DHWXCmN-Z(1csAwUiCUe-clj|f5E?n=7vNL8` zJ({)3E3cl=A0X+Ysg{$Q`=>em!ZT<be~cR&8cI!{*!?cJ`#nu4bRlrT-$Nt~&{@sz zKkn89^o>4?Mv$|QG+jYW8gkm3K)5!lw)amhnYltT4PEDc_mT6LA15B6LoSo+OAoB^ zXQeJ+z8}FD)>_VJ6B1Ghg4mcF8S`z`i}Z43zgZ?)=$G%`9B_EfZ>+?8VXH4OMkV*l zwYuGHcJ%rszp<#`?THC?KOH5TNP2`7C_IGLL2>H*%<TP}$k$tmA^smEtNLYZUU6>% zp42O#D=bOBjx^be+3Lkpg)dZQohvV2(j4+$Ec5PxWlX-w$Od4KusmHgvTuwVL8!N) z<v$*YZ&EZd`W9)=Yq9A1C))7{3tdd$`(eD6MzIa9!DvUK=C)$hn|>e~mMEV}Er1lw z-ucYt6$B9A`6C2a;u=NY7LG%s)~;dKt(DuXJlv)U<B^?2TdG<A>h(0=$(F`1vRX=P zHSfEPJ<-p+2>;%%=bvUd=J~rr>G_Q{nrnY<Y40@mWPe%X???!#CjSI!sgQ`ZqlWW_ z{ZV!Z$Ym&OTB^>ZCyMZ;kld_Q_VZ}K#}5Tn<jn3rbN{~P{PhSu+je9+Qk!Mg7I<FB zzde@h{>>xfsNXMc7qL^ao3yj;yZZ!cqJfGglm1Y3d!z5{)nZBQLjyJkmpcBnn^9b+ z<Jov^D3hxBp;!TL=jhrbWwUbYBoo_Co2rJn-_FvVZiuH|UrlZ))8R{42NG^F-5qM7 z3$OUTv5Y{rEfA3Uf~VA*idMp!s>T7En8v1Yb>wQ<<XzTSp2FqEn6p1g>v$tauU!<7 z98lZ+ki6qI-V!HHC8T1O!GItVSb16A9>ZGD=_CIAC(Lh!Rr#}=mcySol1wgbHGN<> z#0O0Fk#tBZlhL#$G?(#E>8)RWG@hGeR+rmfkCg4AYHWcpV4`^FMufC&kttyT<2B=G zC_8M`z04l4h4=l4upg1~_-6%v;}i`Od2r}Pkp!7<V#9c&(2T35sG*C`p@18j0t;U= zIJvh}l0DS6I~Mjf+JpaWWB}59qU~Gx9U2e$N8YYWxuc}hU3et*t?{4g^H*D&vw3QQ zHMZ?WG7ax->!9~;tr2Lkcl*XAtLzONS|FR-?7M0;C$k!wNj;^m6Tyjvp4dKrfcR@9 zwEm%Y;N|P^Ca+NgpI!y&)++wUqjTZ*M1k_f=!d*3l+?yMRc{;SsqEDD*c+{zyYH0$ zAEw?rp6d7iA3w&iSIC~3*?WeAvSpTJ&#a=%%wvm`jLJSXkzH1HS%qU|JEXE5B4qxq zr`P-Yx&8j>k8aL6&v9Lk>oM-*nBoXDIY_O8wmwwLnkAkoq|(s>-MM((53ScTIp$wN zFy#fX&8tU7#oTR^NcrpI%N>{=M2M6E#<}1`!fg=){c6!bw|fjl)oX+5p4T8ik(Kvw zU2iK*P~8Y~uVfFLu&`+qS4lQBw-&DPoWY3A)0v^FT+$I*FgHrd{~Q#%!ke#aB~3il zmr2K8Si&d#Y+b#U&6$EyA8w5(!(H?C&Q{NT+{4(rmZcz<`?@A}Z24>UvL+)Dy``7x zg_s;FA*OTbFFs*BNSUuCkH55?u60s8U4}4JC3@+jvH?1`J}Ti^N~*yL1kOT~naYIV zt*fhF_++H*BKkQihqnAcV)Y7I?$=L#?|j0A$6wnBZM`xLKdodxTh*+Z>6Ibylxa>@ znOJ!AC%2$!Gy*hf4yu-zCkkFF&-8{S+CjwNm<@4O`Z?bUVkS<|*ZD~rv|UOnpsVL# z%aO0AldZm1915E;2n_wG8bQWIl}SzkDdsH<O%+ByP~Z$QSs6d?nzwF8PRjdk=4Y1n zPEL7<erobQSv|E5Aq>{2fm$hlRlir&hR`$9UezIsPhw7?79RS4Xvu<GD_}0UUZS5# z=l8RH_OE!~{=ZXumH3;05&ZWP0EQi(T)A#<gY*MR>e#KtvNif_%kl^D!}Ej5loX~J zJ^PInx}@V#UZ4*ax!rzoPWfT~7PSs_s0))WIq%HuRw@vmK?d6nH~6$k@q98!Plomm zE!8TkiuG9z)FCqq68|-S<S?De%$@31EKSdX{=yRUm^Vw}FZRH4!+9)xPR(ZR!pPb4 z)Y6Kv100=m@?gSVZD*UXGEwQ-c{S7~abP0h8<sDtT=YY(XPv4MIN1s<6^x58>;M)2 zjF-v9LR0~;Q{LB^^<%s#9|U(k7L@{^LQ(r&`b;uWdlEUJ!3k$R5#P;??eE4+={h8# zs~<1sF|L@t0SPBcenHh&9!_}BL{BKwns8}vZkz7#ZyWRGSPF;{KkET{m-IA2q}jzw zcSU`G7U0y)pmT!V7&lN(HNp~<GrQ+_wT}JC)_|Ae)V}j$7J$4iK9aLUt%M9_*UA3N z8c>tl`zEP-wo>OFt^_6-vy3;2W<qn^BJ<UesJLnRc<lrA^p6wuK=E~{$nI>!8?fE( zqRDQN9`hFHCudxFcaxLlWitBI&`saLBrS_Q<wq^?P<?}FMo&gq?j4lubCvWS*@Opk zH5b3xC%XWpV3<95UmnPn|DN0=4YvAdj+ax+I<;&=zO9onshb4dm5^*Yhd}T6wR!7% z3i6rGk;JX|K5aBseXjaR9A=StIbXRA%fi{|L$xGTwTY-#PXq6q4ut9I6FaP&Wp3@g zVWQ>1#lIz#(?$D|8*u$L>qP7AqGZ->nT8RDp5ag?jyK-hfibhTZnH_Ga_9_?c&^dI zwR8}DuwTgE7)WmkTwOe^fmW5%wBP*IR!#s1uVZ$Q_Oecq)l|Q{Ko0+<TS|nZE5hrd zs8<owH)PelP})yR9BH_ZX4}tZkD)S4i)AgFv@_iBG|OUTV_lmH%-Q5mKug~+cP&dX z%aIqt0j&;Cr>(UBt+<D~ZFtY6gsi2m3)ydzoZHh#37cL=hTSk3Q#-t7vWDHyzSF&k z98Jvu8gT)?5qH7~2=|@oTgA&lMNH!7z_#{FT_CccVM)5oR~&(s_r+QJg}?k5=vyM# z(Ep5&Pj9wn_;hk-@;SX#LlK*@%O=umygSRDmJ<2)W)a!wz2Xv&9C|Mc7*h`+(9T(i z0-<N|Q@f&P(mZ6t)4tp6%(rfPq56P^vyFh*5Vn^&4>TZK?4U$AC1*C?IZ8Lv-RJFa z*C=l5Gyn))B+8Se=TEy0?4i{ui+&t#xC3X0M>{}*e#HkH7xi25GK^-~4!@BqTV!j` zy*_KqljgUZIb_=k+}B<-Bupz4cZSnBrD#(Pd|5>BmtoCLv#g460ZMd^ZU2h<wS?j* z0sT^Gem8ugr0<qvYEPkQOnmzkw=@@IK+J4ULq(#X-=Da$tB)($HZ84bw0kRot|&R< zs&m}iOh{F(cUCq^y@!(;%KV%9awN;J$YaXFUIZi>E|S2$CwlQmG_2;(lN1Xur51;J z=BdK{GFnL+oj9UpPxFR)x2|1G?but5eo<m}SrZ4%RO9w4GW?+PX(|>q6ScxC90=}( z`W;fhi-Or;Xgy`#jz33R|5`8thzpgY)azq!<&*XXi6}Kcy}0dqelW<hF%qW}(gIj0 zm~m#~;*}ZM0n@26GjqKEdK7>g^FWCGvP^rDsN^}b*pMPp>NxOLFMlr&D%CV6Cnx=Z z6w=d+in^gdJ|HDgPs`m0Uah~}AgQZP+;<KHQp<R(>nPz_1iqO~h%W||$~RL;C8W5X zGl3b081=%;D6X_%Fi-(D9w0+|Z-qWRP1Nm$Ovo%wLyIfI<=|`{FgugY#AFU|oUc;b zJq@SZgro$%F84w#mCSJ!j<FT=o(C*1w-xa>uh5$_TlOsXVlV7GnU=o~TulS?BA?pb z&=Lchw5>qkaF{uHXvIOF7%MVP8t4LMBH$RTH#EmNf81J4#whXgNK6i`C)uS&NwG?D z{@}E2;rV4P_d2KKOG^)n+Y<IG0bmvVT`H7SfK%=7zHeAicminMkzqTL?DcZES|Mam z?{>w(^92cs&^2fr*sPVx^AAWl@xHb{z+zNto+AnhAif7Di2(ns#8^{Ot)OoW=+!O1 z<dGKnwz7!imKLpe|9-w0g={xi*;MeSj3iKKFnD_p;ROSoJ(sS(Byq;iO(jqY#f1(N zQ;yIP9=Xqr`B&dVE7vgf-6eZ9@z-Sgx$nCsj_{0am)%G7#}~_36Y>R+`B6UQ8q0i* zOB86r0!+rA7C&mq3A}paPal`X_e!f1<BHo@vx9@falr3HiqPs?)Fw<7q)@yCCD-m! z8zos5P_j|a5Pbjq1Pm2TidTBDl#%%V*jRSv<PYt~8qu-`EIY_E*=@9Z;OMSG$;&i6 zGw~YO<5UKYS3Qg~ln!U1pLE|z5Yn;`<rt?*npm;p7Ja+*YPTw6%iU=yA0x|o3LIc& zetx;1j&uK%Pnx&hGba-i_wuXfC)f)^T}&h{<$=DmGJ%n2pzQ3$OQ;2ops!ug73ep0 zb?zaE&i6*8+*VkdhrlL}wzO7{R%*-!a}5H8^49FE2?*6HpXLoj6$oL(9eVaD>q2RG z>CmZE&-yqJ*XUn8m%!PNcmiZRG{=Zvi`pz$a8X2->`Qbe7}r#*@JZw8edFG_vJQ$w zKZhH@<`TxOf8z+!AB@2z6owN9e@7~9PefIOds0F8fB9<)1`6Pe!}JFvDTx|?L|B04 z&fe!*qWqlO(R3_c8Cj9;_NojlhSRD-a)#<&u=FHVq_ec_G{S)#@&gghdr`J(oR%y> zoWcBcY^FHou_Fkp$l#?w*|W^YDY>Q!=#1L%q>L-)RTqET*KaHR9S=FUrfpwVe7dTs z68Jawd@XmurzK&o_j)HM{0d9lOXY9&_MLZ6ux+z2M(|s&OW9RTCktKSfq5fszu&LJ zwM1`jPwkVYX2uwrf}gcdIOJu-hs0iE-*)c+RnyaKGIPAZWiEH<v}BoVS-a9+rSZ+K zyW{my#kYoq!1B9^Iqkqae&V{KiFszTOY%NTBI0=nrGnX?@Q8e33Sh!O#o{vRPNt=X zgbfZzO#?vT%p@rqPH%}01GIZ(=3AnMG<sKbNT?ZPRXgx;a3>ac(&*}MdOimg|BE+* z{7#SZ7xv#8gWrELMZG)}J0ABBs#P`8bY%|l*%=H|9!Ou+8~6s4hksviD>VRTjU-ZO z5iPHf@YJhuLrn!5-xc@{L7$+U@42MVfSye~(9^HycdhLNdzeXI#<0H=NJNf^2I!<G zy1bCQ#ZSjw`mv#1HgU~oZ4@t!?pwCvVbtB=0UrUt`rnZ0X$A_gfOX&jHB{xlWpmAM zA714)<m!Zk;jd?JOxbp}G?TL`_`IyeO%<O;qYX2!i!Dx<|JLN0zi0?MX|NkSd%bv4 zDg*DxaW79l;%HZK8c1zxBfCc@V%aDu6BB&36UQ-<4ZrWcZVGuNQ2cG!3Jtj0;?h#^ z?)z=CeJjt1u*1V%J{BoWBkvQ*Gj}<<5hKP<%6VpCuqhU*S2R{;DOIGlxXW_GbtKY! z8RvW-aXQ_f$+aswGh90aT4xI@plDN+nR;m;R4Nc7{?mos5x8b<M;FatH=-Y0p2%(1 zZ!gEaJE=PKru+(>nP|#EJ40@(GXI)Ir1Hwvfwut<6ypB8Qi?Sa#RUKbuGy6ez}N8~ zJv-?7s+p3(dOK4__(oV@VP7QP1U?~}37-fpAi{<Ej)fR#oGf9Wh?PBP1*n`C6gd*# z+mgs-zih<v+Tq(5N2W=80Y8WKVuBkwt)y(m-;o2vq0o%|&s!0nsmuYfJFm<1bhB4J z*-=LjKtOrI(1W^M;r7-1gn?ibf{P4t7WVixkXE$2d?#lI7_}?jm~8H)CGx**wRZSM z$b3|gjDq{QWQ9`}=luj~y!wnxW3m3m=90qQ*#ENUPK>vKwyZ+EsG)`a6&<GVx2A5W z3LM|RiEx78DjZzU4nd)&y?GNkpKDwZklV?|2A2rUu9UAWfi7!{_^SDiU=W3G%XQen zgMz(n?St1jbaz3m>;NiIJgGZ+CqPo_1TwN#=wZx%4}ws6Q$NAr3zd4aenR|Z$}t?c zY<$rwx4tZqByp;=EgqgIk0ZJ1>@0=`iZIcYN)dRVX^K5(!6)=t_|QiS^QU<K48FFA z9IAm@Cg;j>C~vRq1j!+)t#C42mX96}swAw7jEs3ZFIzki*sA%SzqJ$joSqH<YVZ?0 zB&Xmf-5UX&w(E2({Bb$@S)K)TuT+uUbk9{xHNr<o$J8m6>eYD&z`lL+yXFz5ZJscH zRMg9nIygyt$KYb$z_TX;Z-DM72!fiR?q&OaH^=gGp^BEf7W6y+rHa&B+QfkkXc7zl z@!ptIB%&y+3nr#O2@_F)$&yXDKszuBsIl=jJ8L_p4nE(@rF7pKyKY?hQguX|gj!B{ zG$e@AcLt!jU7jf&8eK=2Qa}S`B?0=r@hS80@XJyY==T2Et9fQ{9_*IT@4anl?gSr+ zmd-XgSwyaaw0NO&?Cw?fVbOYa9Wu1YoLqNJsLe8k^hgKReY6t*JG)(+2ilOrGPeZo zK0;N5-@*qoZ6J#FhN%yXN}3^Ms@8{MsFDLnAIYB<p%u`~%XwODsG&NW`-S@??;G|d zgy09wqmjbu|1s;_{dZE`Bn(H`z+KLNUa1{=E51Ah92Yg~T=@)gK3O<ii7av19}qAp zv`kvWKamXR0k5|s*TDKgM2@~Nf8#TQg9l<mp>aJ?2D!?u2698_ZESp^B)1&WPaO%{ z8fZgZPe65Hdn55LL0x_-pNy>?Y|!tZDa+!N_dt6cJ8$N<a9k_fvX2d#B-cqLLpy~N z7GW!+E@ogiZvQYE4$v`GOG1|Nflp8@Ns0^-hDWH(&f1XHNYxcB!loNn$)G>9G)dDw zkm<wFQ&L0Y*ic{<fyFoAg1WxQd|FD1&nHh4fk6v)eWKhS-@r&xEm3mL9qD%y31jVo z6IY5=?yZA|_yRH-6GNDgpNc;urfwXr(u)?*fS~^z^o=7?0!>zFTR)W8SgKe0T7dx6 zdT1y#gS`M~bt73whh$qM`(y!N;8}srse)dxpSy9=;{O1v9&#&pNzXIrls(_(q3HX* z;6t-gbejE2o4M7}O9Na;U+TZ4ISfn)+b)3GZ0l803a{-13hyW!g}9)l`yNa-eR|O7 z8W_I^#9FVOiUa2d?F*0zvoqd!SP_!PlC$Q`n<`pp6E{yP0e$`25BeUx<)(FR|Lu%5 zd4-jS)GQ2uhy!b{^8Ve+9`@<QB20k>2iK>RLo4Y;P7Wl@Nw2`p?c(AhXAkm5JO|Z? z$6!oRxIjRm3V~dFo&nav8*$)};@kT#gq;Q5RC5sGg#hLeR1tWqwBS7~)e=)%0)<e# zOB{ITSOz|Eas*xwd)vu!=k9;^Tz2^%)(klXY}DLwgoHj6!9X_ouO}}E39CgQ3^RhY zXfj1#@5B1KpNcyGNS(Lj25mQitHDiUCetCI_;i-yd8e(;@jNOfj44dj>&AZ<7hky8 zF?%q#pUu;tKNYgl(8j>R1Sj@+<ZchPG~R~gy%XY29P`bgqHuukf@Sx#R^Ry-(z>Ix zk5*TNWbzRw#HzUL4CwdTUbbO_o};48SkI@<M~Z^<6y$Bsu`Hy}6X4GF*60lPzdJAO z)2<{tanR=5UZzJv-Dq+D2DpCvZ06nwymBH6lq9HkN@_*DJ{)xa7dgTJ32)Ydh?<*# zuyCcX%9K51DJ?Tnv_|^$6nrm&a76w=eSk{fT>YSuK--_7_FPV_BoS#X5{lKVdn-Ll zEB-4(h!Rc&^7e}LYQA2CPz1iKc4xRl<-cicq<SqAABbwO`ZUEAOOFVS&YH>disonz z)sLOw09v;SEW^<}o21r>XNFsc79`Y{X&|D~^<fgn*G0q!MKb~gD_K0BJO~yyLkTc# z5Ub(%U3q1^ThnObecqSK?|qiB7vC|Om;8<<ZWEKO9o)%}e?-rFn-1SU?Ia|0giyC* z#ri>fN2Vkcrp%}WDh|XO_v>0-8W%Ysp=Z%FL+k<LS3-y&v3w4CX?pI`pu>*Jsypqw zecp<PTYp|&VL^yoLm;z~^ph6zu))iXV~?6I`WIa<MZuCJlOym&=T2Ydwyg5C2ZIRl z2S<r0iDr(}{sU%`wAfni?A%-NU`yd}L0a@P6aDMAw)IeqL4V1}$}J9}nDV|Cf!9Y5 zl86$=i4-87wL$&6d-NBi?rqhR(@W97-jhLAKo-3Sd%}u?`;+Bz_}IrMA_r=F8Wuzw zbYVB4UI*+SauG&C41POB;x9M4;@;K<+)VUSO%DF@CaF&}1k+UrS3La205*qUC(chA z38JL2AL;l|7ZV~x0uf|R*13Ts?T!Qy=x<F=Z%AL4gQS_Zu3o)*5?S&%Cq7Gq0O!g5 z8z~6U>cG6j2h^8r{zcccZ8)SI?c%RZUjtSc708r7p^bUNt)qZhiG}Q?@<Pe(HE`QV zzqG-p*TJs?C}|SCgcCKO$eaYKvH?A#H_p^kRTE#q_n=Isy{oCmv^OV58M<}aZGgw9 zr1iOu7wq427|tIJ<0QlxVHZc|G^i@Fc-im`Op<J~)@-*E*GNtt<A#H9fP7KnEfSRJ zD9h)o0j2{c8ss(fLif-oz`ll=0h@RW`X*|;pRAL@eiax4CLT#()D#0o4qFsCuWK8M z4&Z@Rt`9^wyrNtG$rc9&S$MSHZ3WK{(c+C0uKhc5uj+mA?rC|!&|lsui}ZGb&Tv4Z zYR<(Bqve2avx+o99~bC#ys1r>4FVyeT`BDR)T(oAzo(|Ym3|vQoY-S}wk!Q@+{-V& zvu4FQQqRGQBj<y;`*7>sbibdtR}?0he_}KLkM97soLu!lsOSfRK1om&iZ;>Dt&$@| z`|O&+SEDUN7dyvBJ$bj%BYp?6km(2Xy<sthAf)xA{*Q{j4f=T5f<j>lKD@Lw9VXCc z+{bV!PsL73!5<k8Rx2G?Rl<i|K@G0KoVN*y-Q3+9)}m+FQ>eJL+R+V~Ngb`KcaB3s zvO)7JO(2s~&O?Zc9$fg$P_~Kmb;&bm3@GMTX*SJ9??SD^aH*lx6Nv{YAl;CwehYqp zk%yo!NMum2%w~;#2a*HZP4o;dzyMXG{Q9~}{5D|s#umXJ3gCFz?2)v$Lru^F_k+og zwG055*VI5j#^5Cu5a0IQ8H5t#-MSU)fvK#;!{uK^kXEz59zY3is(AS`5AX4&qoVA< zl$J;EZiSq}6b8Z?#4H966B6=^-m>OGAS05l4*(X#A=~m{NUH3Cn)SpCzvrp@8u|J+ z$zh?ttR8=TWk6?5IAFl}MEW&Eac21#fZ=m`^axP-V?Tli8DtCQ60;HI|6(VkX8txA zzg9EtLJ7eyd~bG!Um^r^G$P$-$#lpJspd%k*pD6IW`BgH@M~iwn))PvyFz;yAF$A; z!d9chEZucrmh`jQyhIfIfvhhYo<f6pe1nn0vC6?G;HTqLhsyE=_Z3!1daX9Hgye?z zoQlj}=K2*8yG3M&z7Vw|0yE<VkkP1tZAqd7QdF>wUjT!KP}9uUd1D@TCEXOco<J3_ z<Fw<G9tjPT151y`bh!<q_^n0BypGr9F14P(&aRA&PzPTT9~6Ffxr@KKg8mPbg&l>o zqBr1S0D7QFU~or0vt}@4`{*-nnpo78UjU@G{T$Bv`cDj43+T|frZgSd0^W&(_|VkW zGVeOU%Eo+~ozz;Pq1{wzP&h%dMW4adzIhHO^r?I*yAsF`)X5FKHc5S(wV$`%YK4RL z&<Be_cb_zylfX`P0D(bB)05@gx5IE$YGrsON!4&{dZOZ<REXccst*Yq&EzWfzWZ|m zVNmI<$&4jCryL{W3;PKKR3HeUcVoLJi2JR*;E8mAlYG0>TPs_az+giDx4r)mF)b~4 zKWNL(a)IiGH;?iYMAq3gqN<>35g0+W3kKXz@ex0fAJB6Uu$Tdr@r$P29_EwdvnZds ziUBAxdma67!r3L5@T;*=0U!_mh?3P)kzYAMTIO!2ECx<xl;G%o0rb4iI#)_-atj7v z@OT&wiM5Qh6JrFva>&Eve!~@KjMxE?O|KLQVDp3)TK4BO!kdgRsN3u!O7wU9W9503 zRm;ampX07zn__*fON>pOk~Fw#Z!r>H!U03ug_X*Y!5T=|ElzNlb;9ZQDT9bCgLl7R zg#fU%f@{y!!H92GtU76@=hZe4C<4G##0n9w9{K1wlu$B&PL?a_ihHY`SdXC+sp;!Q zl@caaH#IdOIn<vKCOld>Tzr0}1M-{X1O+3~fq4IVWZOnO0iVo>J%Y@WXib(fQOjd# zFh=Afbn%;Fyvz(?mZuRTfQ5A^WZ78FDR-AXl$NDb8gT`s%^4pPVu$fy%A_x*--TqC z?^ap2sw?52iU&r<4Wji=fa8ZX^=s}@HepcSWL~?JgIEoY6`$r9AR~{&OW`wEc$nJ& zyf2SP5%`3LQXms6ZLDlaNF=3>V<L-DjW}YsIZ+sGPOzTL?0&Z{ei2+0V$yZc5lBG2 z%NY<O5<OqF^aA5#^3Ia|PMl)nyi!AZWd2X%k?}0&q;>-?N~p36Rc6)Kc*)i(OGY79 z1HOU7{{v{bD3x@D;<-5nY`kxf`CQD(&tIKNis07(>v#M|wr2`2O8^O7DK}?h!ZT20 z!Q^?Be+PnM^{ksz**Zo%Mu4w0e@!YL7zNU{dh~D%0AJ(<N62y#@u+UakA&j+-xGxf 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_widget_compass_ruller_location_day.png b/OsmAnd/res/drawable-xxhdpi/map_widget_compass_ruller_location_day.png deleted file mode 100644 index 1b86292f0cc555adbc1e469c2a5276b02c4330fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14683 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 TjP(CL0swdQP486Qc8dLf{=KCD diff --git a/OsmAnd/res/drawable-xxxhdpi/map_widget_compass_ruller_day.png b/OsmAnd/res/drawable-xxxhdpi/map_widget_compass_ruller_day.png deleted file mode 100644 index 4b2714ce5835a5c0b1fec9c572733e75350766f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112642 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 diff --git a/OsmAnd/res/drawable-xxxhdpi/map_widget_compass_ruller_location_day.png b/OsmAnd/res/drawable-xxxhdpi/map_widget_compass_ruller_location_day.png deleted file mode 100644 index 1e461a55e8f690175790f3d0b389e01d898b0ce7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22887 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 diff --git a/OsmAnd/res/layout-land/map_hud_top.xml b/OsmAnd/res/layout-land/map_hud_top.xml index bf63d6862c..d9d17ad27d 100644 --- a/OsmAnd/res/layout-land/map_hud_top.xml +++ b/OsmAnd/res/layout-land/map_hud_top.xml @@ -367,8 +367,7 @@ android:id="@+id/map_turn_icon" android:layout_width="@dimen/map_widget_height" android:layout_height="@dimen/map_widget_height" - android:scaleType="fitCenter" - tools:src="@drawable/map_turn_right_small" /> + android:scaleType="fitCenter"/> <androidx.appcompat.widget.AppCompatImageView android:id="@+id/map_shield_icon" diff --git a/OsmAnd/res/layout/map_hud_top.xml b/OsmAnd/res/layout/map_hud_top.xml index c691190ed3..bef39b9539 100644 --- a/OsmAnd/res/layout/map_hud_top.xml +++ b/OsmAnd/res/layout/map_hud_top.xml @@ -152,8 +152,7 @@ android:layout_width="@dimen/map_widget_height" android:layout_height="@dimen/map_widget_height" android:scaleType="fitCenter" - android:visibility="gone" - tools:src="@drawable/map_turn_right_small" /> + android:visibility="gone"/> <androidx.appcompat.widget.AppCompatImageView android:id="@+id/map_shield_icon" From 66413f856ecb1f81d584f98eb397cf9079e1e930 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Wed, 10 Jun 2020 16:36:30 +0300 Subject: [PATCH 005/300] hide speed cameras from ui --- .../plus/activities/MapActivityActions.java | 4 ++ .../plus/dialogs/SpeedCamerasBottomSheet.java | 35 ++++++++++++-- .../plus/settings/backend/OsmandSettings.java | 3 ++ .../fragments/GlobalSettingsFragment.java | 29 ++++++++--- .../fragments/ScreenAlertsFragment.java | 32 ++++++++++--- .../fragments/VoiceAnnouncesFragment.java | 48 +++++++------------ 6 files changed, 104 insertions(+), 47 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index 2fddc98cc6..6e80c3a83d 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -37,6 +37,7 @@ import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; import net.osmand.data.RotatedTileBox; import net.osmand.map.ITileSource; +import net.osmand.plus.dialogs.SpeedCamerasBottomSheet; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuAdapter.ItemClickListener; @@ -569,6 +570,9 @@ public class MapActivityActions implements DialogProvider { if (targets.hasTooLongDistanceToNavigate()) { app.showToastMessage(R.string.route_is_too_long_v2); } + if (!settings.SPEED_CAMERAS_ALERT_SHOWED.get()) { + SpeedCamerasBottomSheet.showInstance(mapActivity.getSupportFragmentManager(), null); + } } public void recalculateRoute(boolean showDialog) { diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java index ceb267385d..997bc98d8b 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java @@ -7,6 +7,9 @@ import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import net.osmand.plus.OsmandApplication; @@ -20,9 +23,10 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { public static final String TAG = SpeedCamerasBottomSheet.class.getName(); private OsmandApplication app; - public static void showInstance(@NonNull FragmentManager fm) { + public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment) { if (!fm.isStateSaved()) { SpeedCamerasBottomSheet bottomSheet = new SpeedCamerasBottomSheet(); + bottomSheet.setTargetFragment(targetFragment, 0); bottomSheet.show(fm, TAG); } } @@ -36,19 +40,34 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { @Override public void createMenuItems(Bundle savedInstanceState) { View root = UiUtilities.getInflater(app, nightMode).inflate(R.layout.bottom_sheet_speed_cameras, null); - ((ImageView) root.findViewById(R.id.icon)).setImageResource(R.drawable.img_speed_camera_warning); + ((ImageView) root.findViewById(R.id.icon)).setImageDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.img_speed_camera_warning)); ((TextView) root.findViewById(R.id.description)).setText(getDescriptionText()); items.add(new BaseBottomSheetItem.Builder().setCustomView(root).create()); } + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + UiUtilities.setupDialogButton(nightMode, rightButton, getDismissButtonType(), R.string.keep_active); + } + @Override protected void onRightBottomButtonClick() { - super.onRightBottomButtonClick(); + setDialogShowed(); + dismiss(); } @Override protected void onDismissButtonClickAction() { - super.onDismissButtonClickAction(); + app.getSettings().SPEED_CAMERAS_UNINSTALLED.set(true); + app.getSettings().SPEAK_SPEED_CAMERA.set(false); + app.getSettings().SHOW_CAMERAS.set(false); + Fragment targetFragment = getTargetFragment(); + if (targetFragment instanceof OnSpeedCamerasUninstallListener) { + ((OnSpeedCamerasUninstallListener) targetFragment).onSpeedCamerasUninstalled(); + } + setDialogShowed(); + dismiss(); } @Override @@ -67,4 +86,12 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { String text = getString(R.string.speed_cameras_legal_descr, keepActive, uninstall); return UiUtilities.setWordsMediumFont(app, text, keepActive, uninstall); } + + private void setDialogShowed() { + app.getSettings().SPEED_CAMERAS_ALERT_SHOWED.set(true); + } + + public interface OnSpeedCamerasUninstallListener { + void onSpeedCamerasUninstalled(); + } } diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java index 10037b6d0f..55d211417a 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java @@ -2108,6 +2108,9 @@ public class OsmandSettings { public final OsmandPreference<Boolean> SPEAK_SPEED_CAMERA = new BooleanPreference("speak_cameras", false).makeProfile().cache(); public final OsmandPreference<Boolean> SPEAK_TUNNELS = new BooleanPreference("speak_tunnels", false).makeProfile().cache(); + public final OsmandPreference<Boolean> SPEED_CAMERAS_UNINSTALLED = new BooleanPreference("speed_cameras_uninstalled", false).makeGlobal().cache(); + public final OsmandPreference<Boolean> SPEED_CAMERAS_ALERT_SHOWED = new BooleanPreference("speed_cameras_alert_showed", false).makeGlobal().cache(); + public final OsmandPreference<Boolean> ANNOUNCE_WPT = new BooleanPreference("announce_wpt", true) { @Override protected boolean setValue(Object prefs, Boolean val) { diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java index 0763b302a4..8896c159b9 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java @@ -7,6 +7,7 @@ import android.widget.ImageView; import androidx.fragment.app.FragmentManager; import androidx.preference.Preference; +import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceViewHolder; import androidx.preference.SwitchPreferenceCompat; @@ -14,20 +15,28 @@ import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.SettingsGeneralActivity; import net.osmand.plus.dialogs.SendAnalyticsBottomSheetDialogFragment; +import net.osmand.plus.dialogs.SendAnalyticsBottomSheetDialogFragment.OnSendAnalyticsPrefsUpdate; import net.osmand.plus.dialogs.SpeedCamerasBottomSheet; +import net.osmand.plus.dialogs.SpeedCamerasBottomSheet.OnSpeedCamerasUninstallListener; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.preferences.ListPreferenceEx; import net.osmand.plus.settings.preferences.SwitchPreferenceEx; -public class GlobalSettingsFragment extends BaseSettingsFragment implements SendAnalyticsBottomSheetDialogFragment.OnSendAnalyticsPrefsUpdate, OnPreferenceChanged { +public class GlobalSettingsFragment extends BaseSettingsFragment + implements OnSendAnalyticsPrefsUpdate, OnPreferenceChanged, + OnSpeedCamerasUninstallListener { public static final String TAG = GlobalSettingsFragment.class.getSimpleName(); private static final String SEND_ANONYMOUS_DATA_PREF_ID = "send_anonymous_data"; private static final String DIALOGS_AND_NOTIFICATIONS_PREF_ID = "dialogs_and_notifications"; private static final String UNINSTALL_SPEED_CAMERAS_PREF_ID = "uninstall_speed_cameras"; + private static final String LEGAL_CATEGORY_ID = "legal"; + + private Preference uninstallSpeedCameras; + private PreferenceCategory legalCategory; @Override protected void setupPreferences() { @@ -38,7 +47,12 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send setupSendAnonymousDataPref(); setupDialogsAndNotificationsPref(); setupEnableProxyPref(); - setupUninstallSpeedCamerasPref(); + legalCategory = (PreferenceCategory) findPreference(LEGAL_CATEGORY_ID); + uninstallSpeedCameras = (Preference) findPreference(UNINSTALL_SPEED_CAMERAS_PREF_ID); + uninstallSpeedCameras.setIcon(getPersistentPrefIcon(R.drawable.ic_speed_camera_disabled)); + if (settings.SPEED_CAMERAS_UNINSTALLED.get()) { + onSpeedCamerasUninstalled(); + } } @Override @@ -117,7 +131,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send if (UNINSTALL_SPEED_CAMERAS_PREF_ID.equals(prefId)) { FragmentManager fm = getFragmentManager(); if (fm != null) { - SpeedCamerasBottomSheet.showInstance(fm); + SpeedCamerasBottomSheet.showInstance(fm, this); } } return super.onPreferenceClick(preference); @@ -207,8 +221,11 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send enableProxy.setIcon(getPersistentPrefIcon(R.drawable.ic_action_proxy)); } - private void setupUninstallSpeedCamerasPref() { - Preference uninstallSpeedCameras = (Preference) findPreference(UNINSTALL_SPEED_CAMERAS_PREF_ID); - uninstallSpeedCameras.setIcon(getPersistentPrefIcon(R.drawable.ic_speed_camera_disabled)); + @Override + public void onSpeedCamerasUninstalled() { + if (uninstallSpeedCameras != null && legalCategory != null) { + uninstallSpeedCameras.setVisible(false); + legalCategory.setVisible(false); + } } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java index 683aa15a49..4752a11590 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java @@ -9,8 +9,11 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.widget.SwitchCompat; import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; @@ -19,6 +22,7 @@ import androidx.preference.SwitchPreferenceCompat; import net.osmand.AndroidUtils; import net.osmand.plus.OsmandApplication; import net.osmand.plus.dialogs.SpeedCamerasBottomSheet; +import net.osmand.plus.dialogs.SpeedCamerasBottomSheet.OnSpeedCamerasUninstallListener; import net.osmand.plus.helpers.FontCache; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.R; @@ -28,30 +32,34 @@ import java.lang.ref.WeakReference; import static net.osmand.plus.UiUtilities.CompoundButtonType.TOOLBAR; -public class ScreenAlertsFragment extends BaseSettingsFragment { +public class ScreenAlertsFragment extends BaseSettingsFragment implements OnSpeedCamerasUninstallListener { public static final String TAG = ScreenAlertsFragment.class.getSimpleName(); private static final String SHOW_ROUTING_ALARMS_INFO = "show_routing_alarms_info"; private static final String SCREEN_ALERTS_IMAGE = "screen_alerts_image"; private static final String SHOW_CAMERAS = "show_cameras"; + private SwitchPreferenceCompat showCameras; @Override protected void setupPreferences() { Preference showRoutingAlarmsInfo = findPreference(SHOW_ROUTING_ALARMS_INFO); SwitchPreferenceCompat showTrafficWarnings = (SwitchPreferenceCompat) findPreference(settings.SHOW_TRAFFIC_WARNINGS.getId()); SwitchPreferenceCompat showPedestrian = (SwitchPreferenceCompat) findPreference(settings.SHOW_PEDESTRIAN.getId()); - SwitchPreferenceCompat showCameras = (SwitchPreferenceCompat) findPreference(settings.SHOW_CAMERAS.getId()); SwitchPreferenceCompat showTunnels = (SwitchPreferenceCompat) findPreference(settings.SHOW_TUNNELS.getId()); + showCameras = (SwitchPreferenceCompat) findPreference(settings.SHOW_CAMERAS.getId()); showRoutingAlarmsInfo.setIcon(getContentIcon(R.drawable.ic_action_info_dark)); showTrafficWarnings.setIcon(getIcon(R.drawable.list_warnings_traffic_calming)); showPedestrian.setIcon(getIcon(R.drawable.list_warnings_pedestrian)); - showCameras.setIcon(getIcon(R.drawable.list_warnings_speed_camera)); showTunnels.setIcon(getIcon(R.drawable.list_warnings_tunnel)); + showCameras.setIcon(getIcon(R.drawable.list_warnings_speed_camera)); setupScreenAlertsImage(); enableDisablePreferences(settings.SHOW_ROUTING_ALARMS.getModeValue(getSelectedAppMode())); + if (settings.SPEED_CAMERAS_UNINSTALLED.get()) { + onSpeedCamerasUninstalled(); + } } @Override @@ -112,7 +120,7 @@ public class ScreenAlertsFragment extends BaseSettingsFragment { deviceImage.setImageDrawable(getDeviceImage()); warningIcon.setImageDrawable(getWarningIcon()); } else if (SHOW_CAMERAS.equals(key)) { - setupSpeedCamerasAlert(app, requireMyActivity(), holder, isNightMode()); + setupSpeedCamerasAlert(app, requireMyActivity(), holder, this, isNightMode()); } } } @@ -155,7 +163,11 @@ public class ScreenAlertsFragment extends BaseSettingsFragment { return null; } - public static void setupSpeedCamerasAlert(OsmandApplication app, FragmentActivity activity, PreferenceViewHolder holder, boolean nightMode) { + public static void setupSpeedCamerasAlert(@NonNull OsmandApplication app, + @NonNull FragmentActivity activity, + @NonNull PreferenceViewHolder holder, + @Nullable Fragment targetFragment, + boolean nightMode) { ImageView alertIcon = (ImageView) holder.itemView.findViewById(R.id.alert_icon); TextView alertTitle = (TextView) holder.itemView.findViewById(R.id.alert_title); TextView alertSubTitle = (TextView) holder.itemView.findViewById(R.id.alert_subtitle); @@ -176,14 +188,22 @@ public class ScreenAlertsFragment extends BaseSettingsFragment { ? app.getResources().getColor(R.color.active_color_primary_dark) : app.getResources().getColor(R.color.active_color_primary_light)); final WeakReference<FragmentActivity> weakActivity = new WeakReference<>(activity); + final WeakReference<Fragment> weakFragment = new WeakReference<>(targetFragment); alertSubTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { FragmentActivity a = weakActivity.get(); if (a != null) { - SpeedCamerasBottomSheet.showInstance(a.getSupportFragmentManager()); + SpeedCamerasBottomSheet.showInstance(a.getSupportFragmentManager(), weakFragment.get()); } } }); } + + @Override + public void onSpeedCamerasUninstalled() { + if (showCameras != null) { + showCameras.setVisible(false); + } + } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java index 084a55ce64..11c1f6b72b 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java @@ -1,8 +1,6 @@ package net.osmand.plus.settings.fragments; import android.app.Activity; -import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; @@ -12,14 +10,13 @@ import android.view.View; import android.widget.ImageView; import android.widget.TextView; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.SwitchCompat; import androidx.core.content.ContextCompat; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; -import androidx.preference.SwitchPreferenceCompat; import net.osmand.AndroidUtils; +import net.osmand.plus.dialogs.SpeedCamerasBottomSheet.OnSpeedCamerasUninstallListener; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; @@ -37,9 +34,10 @@ import static net.osmand.plus.settings.backend.OsmandSettings.VOICE_PROVIDER_NOT import static net.osmand.plus.UiUtilities.CompoundButtonType.TOOLBAR; import static net.osmand.plus.activities.SettingsNavigationActivity.MORE_VALUE; -public class VoiceAnnouncesFragment extends BaseSettingsFragment { +public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnSpeedCamerasUninstallListener { public static final String TAG = VoiceAnnouncesFragment.class.getSimpleName(); + private Preference speakCamera; @Override protected void createToolbar(LayoutInflater inflater, View view) { @@ -100,6 +98,10 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment { setupInterruptMusicPref(); } enableDisablePreferences(!settings.VOICE_MUTE.getModeValue(getSelectedAppMode())); + speakCamera = findPreference(settings.SPEAK_SPEED_CAMERA.getId()); + if (settings.SPEED_CAMERAS_UNINSTALLED.get()) { + onSpeedCamerasUninstalled(); + } } private void setupSpeedLimitExceedPref() { @@ -209,29 +211,6 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment { getPreferenceScreen().addPreference(interruptMusicPref); } - public void confirmSpeedCamerasDlg() { - Context ctx = getContext(); - if (ctx == null) { - return; - } - AlertDialog.Builder bld = new AlertDialog.Builder(UiUtilities.getThemedContext(ctx, isNightMode())); - bld.setMessage(R.string.confirm_usage_speed_cameras); - bld.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - onConfirmPreferenceChange( - settings.SPEAK_SPEED_CAMERA.getId(), true, ApplyQueryType.SNACK_BAR); - SwitchPreferenceCompat speakSpeedCamera = (SwitchPreferenceCompat) findPreference(settings.SPEAK_SPEED_CAMERA.getId()); - if (speakSpeedCamera != null) { - speakSpeedCamera.setChecked(true); - } - } - }); - bld.setNegativeButton(R.string.shared_string_cancel, null); - bld.show(); - } - private void updateMenu() { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { @@ -253,7 +232,7 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment { imageView.setEnabled(preference.isEnabled() && !OsmandSettings.VOICE_PROVIDER_NOT_USE.equals(currentValue)); } } else if (settings.SPEAK_SPEED_CAMERA.getId().equals(preference.getKey())) { - ScreenAlertsFragment.setupSpeedCamerasAlert(app, requireMyActivity(), holder, isNightMode()); + ScreenAlertsFragment.setupSpeedCamerasAlert(app, requireMyActivity(), holder, this, isNightMode()); } } @@ -277,8 +256,8 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment { } if (prefId.equals(settings.SPEAK_SPEED_CAMERA.getId())) { if (!settings.SPEAK_SPEED_CAMERA.getModeValue(selectedMode)) { - confirmSpeedCamerasDlg(); - return false; + return onConfirmPreferenceChange( + settings.SPEAK_SPEED_CAMERA.getId(), true, ApplyQueryType.SNACK_BAR); } else { return onConfirmPreferenceChange( settings.SPEAK_SPEED_CAMERA.getId(), false, ApplyQueryType.SNACK_BAR); @@ -315,4 +294,11 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment { super.onApplyPreferenceChange(prefId, applyToAllProfiles, newValue); } } + + @Override + public void onSpeedCamerasUninstalled() { + if (speakCamera != null) { + speakCamera.setVisible(false); + } + } } \ No newline at end of file From f2b1836e539ee12be28689634eb1ffc3f3fb732d Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Wed, 10 Jun 2020 17:08:44 +0300 Subject: [PATCH 006/300] hide speed cameras from search --- .../java/net/osmand/search/SearchUICore.java | 20 +++++++++++++++++++ .../plus/dialogs/SpeedCamerasBottomSheet.java | 2 ++ .../osmand/plus/search/QuickSearchHelper.java | 1 + 3 files changed, 23 insertions(+) diff --git a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java index 46b0ee4e82..8aab2a9103 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java @@ -11,6 +11,7 @@ import net.osmand.data.MapObject; import net.osmand.data.Street; import net.osmand.osm.AbstractPoiType; import net.osmand.osm.MapPoiTypes; +import net.osmand.osm.PoiType; import net.osmand.search.core.CustomSearchPoiFilter; import net.osmand.search.core.ObjectType; import net.osmand.search.core.SearchCoreAPI; @@ -656,6 +657,8 @@ public class SearchUICore { private List<MapObject> exportedObjects; private List<City> exportedCities; + private static boolean speedCamerasUninstalled = false; + public SearchResultMatcher(ResultMatcher<SearchResult> matcher, SearchPhrase phrase, int request, AtomicInteger requestNumber, int totalLimit) { this.matcher = matcher; @@ -733,6 +736,9 @@ public class SearchUICore { @Override public boolean publish(SearchResult object) { + if (speedCamerasUninstalled && isSpeedCameraObject(object.object)) { + return false; + } if (phrase != null && object.otherNames != null && !phrase.getFirstUnknownNameStringMatcher().matches(object.localeName)) { for (String s : object.otherNames) { if (phrase.getFirstUnknownNameStringMatcher().matches(s)) { @@ -886,6 +892,20 @@ public class SearchUICore { } return json; } + + private boolean isSpeedCameraObject(Object object) { + String key = ""; + if (object instanceof PoiType) { + key = ((PoiType) object).getKeyName(); + } else if (object instanceof Amenity) { + key = ((Amenity) object).getSubType(); + } + return "speed_camera".equals(key); + } + + public static void setSpeedCamerasUninstalled(boolean speedCamerasUninstalled) { + SearchResultMatcher.speedCamerasUninstalled = speedCamerasUninstalled; + } } private enum ResultCompareStep { diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java index 997bc98d8b..a6ea85e238 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java @@ -17,6 +17,7 @@ import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.base.MenuBottomSheetDialogFragment; import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; +import net.osmand.search.SearchUICore.SearchResultMatcher; public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { @@ -62,6 +63,7 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { app.getSettings().SPEED_CAMERAS_UNINSTALLED.set(true); app.getSettings().SPEAK_SPEED_CAMERA.set(false); app.getSettings().SHOW_CAMERAS.set(false); + SearchResultMatcher.setSpeedCamerasUninstalled(true); Fragment targetFragment = getTargetFragment(); if (targetFragment instanceof OnSpeedCamerasUninstallListener) { ((OnSpeedCamerasUninstallListener) targetFragment).onSpeedCamerasUninstalled(); diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java index f504c9c22f..ad87af9077 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java @@ -68,6 +68,7 @@ public class QuickSearchHelper implements ResourceListener { core = new SearchUICore(app.getPoiTypes(), app.getSettings().MAP_PREFERRED_LOCALE.get(), app.getSettings().MAP_TRANSLITERATE_NAMES.get()); app.getResourceManager().addResourceListener(this); + SearchResultMatcher.setSpeedCamerasUninstalled(app.getSettings().SPEED_CAMERAS_UNINSTALLED.get()); } public SearchUICore getCore() { From e2a0501366979fcbf3b31aa9c1a04551ca3b4d4f Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Wed, 10 Jun 2020 17:34:51 +0300 Subject: [PATCH 007/300] Fix vehicle parameters numeric dialog --- ...ttom_sheet_item_edit_with_recyclerview.xml | 14 ++++++-------- .../point_editor_icon_category_item.xml | 1 + .../other/HorizontalSelectionAdapter.java | 3 ++- .../VehicleParametersBottomSheet.java | 15 ++++++++++----- .../fragments/VehicleParametersFragment.java | 19 +++++++++++++++++-- .../settings/preferences/SizePreference.java | 4 ++-- 6 files changed, 38 insertions(+), 18 deletions(-) diff --git a/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml b/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml index 53ada3c475..2d8a07b9af 100644 --- a/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml +++ b/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml @@ -43,7 +43,7 @@ android:paddingBottom="@dimen/content_padding" android:textColor="?android:textColorSecondary" android:textSize="@dimen/default_list_text_size" - android:lineSpacingMultiplier="@dimen/bottom_sheet_info_spacing_multiplier" + android:lineSpacingMultiplier="@dimen/bottom_sheet_text_spacing_multiplier" osmand:typeface="@string/font_roboto_regular" tools:text="@string/weight_limit_description" android:paddingEnd="@dimen/content_padding" @@ -52,15 +52,14 @@ <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginTop="@dimen/content_padding_half" android:layout_marginLeft="@dimen/content_padding" android:layout_marginRight="@dimen/content_padding"> <LinearLayout android:id="@+id/text" - android:paddingTop="@dimen/content_padding_half" android:layout_width="match_parent" android:layout_height="wrap_content" - android:gravity="center_vertical" android:orientation="horizontal" android:baselineAligned="false"> @@ -70,20 +69,19 @@ android:layout_width="0dp" android:layout_height="wrap_content" osmand:hintEnabled="false" - android:gravity="start" android:layout_weight="1" osmand:boxBackgroundColor="@color/material_text_input_layout_bg"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/text_edit" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="end" + android:layout_height="@dimen/favorites_list_item_height" + android:gravity="end|center_vertical" android:inputType="numberDecimal" android:maxLines="1" android:maxLength="5" - android:minHeight="@dimen/favorites_list_item_height" - android:paddingBottom="@dimen/card_content_padding_large" + android:paddingTop="0dp" + android:paddingBottom="0dp" android:paddingStart="@dimen/content_padding_small" android:paddingLeft="@dimen/content_padding_small" android:paddingRight="@dimen/content_padding_small" diff --git a/OsmAnd/res/layout/point_editor_icon_category_item.xml b/OsmAnd/res/layout/point_editor_icon_category_item.xml index 7da1696e71..6aecacef89 100644 --- a/OsmAnd/res/layout/point_editor_icon_category_item.xml +++ b/OsmAnd/res/layout/point_editor_icon_category_item.xml @@ -2,6 +2,7 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/buttons_container" android:layout_width="wrap_content" + android:minWidth="@dimen/favorites_icon_outline_size" android:layout_height="wrap_content" android:layout_gravity="bottom" android:gravity="center" diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java index d7cf149eea..928340ff94 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java @@ -57,7 +57,8 @@ public class HorizontalSelectionAdapter extends RecyclerView.Adapter<HorizontalS ContextCompat.getColor(app, activeColorResId))); textView.setTextColor(ContextCompat.getColor(app, R.color.color_white)); } else { - textView.setTextColor(ContextCompat.getColor(app, R.color.preference_category_title)); + textView.setTextColor(ContextCompat.getColor(app, + nightMode ? R.color.active_color_primary_dark : R.color.preference_category_title)); GradientDrawable buttonBackground = (GradientDrawable) AppCompatResources.getDrawable(app, R.drawable.bg_select_icon_group_button).mutate(); buttonBackground.setStroke(AndroidUtils.dpToPx(app, 1), ContextCompat.getColor(app, diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java index 2e50c74ae0..501369c157 100644 --- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java @@ -4,12 +4,12 @@ import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.View; +import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.recyclerview.widget.RecyclerView; @@ -48,7 +48,7 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { private BaseBottomSheetItem createBottomSheetItem(OsmandApplication app) { final SizePreference preference = (SizePreference) getPreference(); - View mainView = UiUtilities.getMaterialInflater(app, nightMode) + View mainView = UiUtilities.getMaterialInflater(getContext(), nightMode) .inflate(R.layout.bottom_sheet_item_edit_with_recyclerview, null); String key = preference.getKey(); TextView title = mainView.findViewById(R.id.title); @@ -65,7 +65,8 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { final HorizontalSelectionAdapter adapter = new HorizontalSelectionAdapter(app, nightMode); final TextView metric = mainView.findViewById(R.id.metric); metric.setText(app.getString(preference.getAssets().getMetricRes())); - final TextView text = mainView.findViewById(R.id.text_edit); + final RecyclerView recyclerView = mainView.findViewById(R.id.recycler_view); + final EditText text = mainView.findViewById(R.id.text_edit); try { currentValue = Float.parseFloat(preference.getValue()); } catch (NumberFormatException e) { @@ -97,6 +98,10 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { } selectedItem = preference.getEntryFromValue(String.valueOf(currentValue)); adapter.setSelectedItem(selectedItem); + int itemPosition = adapter.getItemPosition(selectedItem); + if (itemPosition >= 0) { + recyclerView.smoothScrollToPosition(itemPosition); + } } }); @@ -108,11 +113,11 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { currentValue = preference.getValueFromEntries(selectedItem); String currentValueStr = currentValue == 0.0f ? "" : String.valueOf(currentValue + 0.01f); text.setText(currentValueStr); + text.requestFocus(); + text.setSelection(text.getText().length()); adapter.notifyDataSetChanged(); } }); - - RecyclerView recyclerView = mainView.findViewById(R.id.recycler_view); recyclerView.setAdapter(adapter); adapter.setSelectedItem(selectedItem); return new BaseBottomSheetItem.Builder() diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java index daaa3fd244..8665518695 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java @@ -20,6 +20,7 @@ import net.osmand.plus.settings.bottomsheets.VehicleSizeAssets; import net.osmand.plus.settings.preferences.ListPreferenceEx; import net.osmand.plus.settings.preferences.SizePreference; import net.osmand.router.GeneralRouter; +import net.osmand.util.Algorithms; import java.util.Map; @@ -79,8 +80,9 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O String parameterId = parameter.getId(); String title = SettingsBaseActivity.getRoutingStringPropertyName(app, parameterId, parameter.getName()); String description = SettingsBaseActivity.getRoutingStringPropertyDescription(app, parameterId, parameter.getDescription()); - - String defValue = parameter.getType() == GeneralRouter.RoutingParameterType.NUMERIC ? ROUTING_PARAMETER_NUMERIC_DEFAULT : ROUTING_PARAMETER_SYMBOLIC_DEFAULT; + String defValue = parameter.getType() == GeneralRouter.RoutingParameterType.NUMERIC + ? ROUTING_PARAMETER_NUMERIC_DEFAULT + : ROUTING_PARAMETER_SYMBOLIC_DEFAULT; OsmandSettings.StringPreference pref = (OsmandSettings.StringPreference) app.getSettings().getCustomRoutingProperty(parameterId, defValue); Object[] values = parameter.getPossibleValues(); String[] valuesStr = new String[values.length]; @@ -89,6 +91,11 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O } String[] entriesStr = parameter.getPossibleValueDescriptions().clone(); entriesStr[0] = app.getString(R.string.shared_string_none); + for (int i = 1; i < entriesStr.length; i++) { + int firstCharIndex = Algorithms.findFirstNumberEndIndex(entriesStr[i]); + entriesStr[i] = String.format(app.getString(R.string.ltr_or_rtl_combine_via_space), + entriesStr[i].substring(0, firstCharIndex), entriesStr[i].substring(firstCharIndex)); + } Context ctx = getContext(); if (ctx == null) { @@ -132,6 +139,14 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O && !ROUTING_PARAMETER_SYMBOLIC_DEFAULT.equals(currentValue); imageView.setEnabled(enabled); } + } else if (preference instanceof SizePreference) { + ImageView imageView = (ImageView) holder.findViewById(android.R.id.icon); + if (imageView != null) { + Object currentValue = ((SizePreference) preference).getValue(); + boolean enabled = preference.isEnabled() && !ROUTING_PARAMETER_NUMERIC_DEFAULT.equals(currentValue) + && !ROUTING_PARAMETER_SYMBOLIC_DEFAULT.equals(currentValue); + imageView.setEnabled(enabled); + } } } diff --git a/OsmAnd/src/net/osmand/plus/settings/preferences/SizePreference.java b/OsmAnd/src/net/osmand/plus/settings/preferences/SizePreference.java index 340271ad0e..553e6a46db 100644 --- a/OsmAnd/src/net/osmand/plus/settings/preferences/SizePreference.java +++ b/OsmAnd/src/net/osmand/plus/settings/preferences/SizePreference.java @@ -81,7 +81,7 @@ public class SizePreference extends DialogPreference { @Override public CharSequence getSummary() { - String summary = "-"; + String summary = entries[0]; String persistedString = getValue(); if (!persistedString.equals(defaultValue)) { try { @@ -89,7 +89,7 @@ public class SizePreference extends DialogPreference { summary = String.format(getContext().getString(R.string.ltr_or_rtl_combine_via_space), persistedString, getContext().getString(assets.getMetricShortRes())); } catch (NumberFormatException e) { - summary = "-"; + summary = entries[0]; } } return summary; From 6cb52d9130df9829e7c5752d653ec4a38f91c99e Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Wed, 10 Jun 2020 18:25:34 +0300 Subject: [PATCH 008/300] hide speed cameras poiTypes --- .../src/main/java/net/osmand/osm/MapPoiTypes.java | 13 +++++++++++++ .../src/net/osmand/plus/activities/MapActivity.java | 3 +++ .../plus/dialogs/SpeedCamerasBottomSheet.java | 1 + 3 files changed, 17 insertions(+) diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java index 60d835dbec..7b719ab158 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java @@ -945,4 +945,17 @@ public class MapPoiTypes { return pat.isText(); } } + + public void excludeSpeedCameraPoiType() { + Iterator<PoiCategory> categoryIter = categories.iterator(); + while (categoryIter.hasNext()) { + Iterator<PoiType> poiIter = categoryIter.next().getPoiTypes().iterator(); + while (poiIter.hasNext()) { + PoiType poiType = poiIter.next(); + if ("speed_camera".equals(poiType.getKeyName())) { + poiIter.remove(); + } + } + } + } } diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 9bc9d3e24b..476768dc6e 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -389,6 +389,9 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven lockHelper.setLockUIAdapter(this); mIsDestroyed = false; + if (settings.SPEED_CAMERAS_UNINSTALLED.get()) { + app.getPoiTypes().excludeSpeedCameraPoiType(); + } } public void exitFromFullScreen(View view) { diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java index a6ea85e238..27b59e97a2 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java @@ -63,6 +63,7 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { app.getSettings().SPEED_CAMERAS_UNINSTALLED.set(true); app.getSettings().SPEAK_SPEED_CAMERA.set(false); app.getSettings().SHOW_CAMERAS.set(false); + app.getPoiTypes().excludeSpeedCameraPoiType(); SearchResultMatcher.setSpeedCamerasUninstalled(true); Fragment targetFragment = getTargetFragment(); if (targetFragment instanceof OnSpeedCamerasUninstallListener) { From 6dc5f77ab3f9d2e8ecfd058afd769deb6f5a6b8a Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Wed, 10 Jun 2020 18:47:38 +0300 Subject: [PATCH 009/300] Fix recycler view item width --- .../plus/mapcontextmenu/other/HorizontalSelectionAdapter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java index 928340ff94..462142ae13 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java @@ -68,6 +68,7 @@ public class HorizontalSelectionAdapter extends RecyclerView.Adapter<HorizontalS AndroidUtils.setBackground(holder.button, buttonBackground); } textView.setText(capitalizeFirstLetter(item)); + textView.requestLayout(); holder.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { From 6e78494e37474d73cb47fed13c54fdd7a5fe6c80 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Thu, 11 Jun 2020 13:19:48 +0300 Subject: [PATCH 010/300] Fix buttons above keyboard --- ...ttom_sheet_item_edit_with_recyclerview.xml | 34 +++++++++++++- OsmAnd/res/values/styles.xml | 4 ++ .../VehicleParametersBottomSheet.java | 45 ++++++++++++++++++- 3 files changed, 79 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml b/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml index 2d8a07b9af..d8844d7eeb 100644 --- a/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml +++ b/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" + android:focusableInTouchMode="true" android:orientation="vertical"> <net.osmand.plus.widgets.TextViewEx @@ -18,8 +19,7 @@ android:paddingRight="@dimen/content_padding" android:paddingTop="@dimen/content_padding_small" android:paddingBottom="@dimen/content_padding_small" - android:textAppearance="@style/TextAppearance.ListItemTitle" - osmand:typeface="@string/font_roboto_medium" + android:textAppearance="@style/TextAppearance.ListItemCategoryTitle" tools:text="Some Title" android:paddingStart="@dimen/content_padding" android:paddingEnd="@dimen/content_padding" /> @@ -101,6 +101,7 @@ android:paddingRight="@dimen/content_padding_small" android:paddingEnd="@dimen/content_padding_small" android:paddingLeft="@dimen/content_padding_small" + android:textColor="?android:textColorSecondary" android:text="@string/shared_string_meters" /> </FrameLayout> @@ -120,4 +121,33 @@ tools:itemCount="3" tools:listitem="@layout/point_editor_icon_category_item" /> + <LinearLayout + android:id="@+id/buttons_container_scroll" + android:layout_width="match_parent" + android:layout_height="@dimen/dialog_button_ex_height" + android:gravity="center" + android:layout_gravity="bottom" + android:orientation="horizontal" + android:paddingLeft="@dimen/content_padding" + android:paddingRight="@dimen/content_padding" + android:paddingEnd="@dimen/content_padding" + android:paddingStart="@dimen/content_padding"> + + <include + android:id="@+id/dismiss_button" + layout="@layout/bottom_sheet_dialog_button" /> + + <View + android:id="@+id/buttons_divider" + android:layout_width="@dimen/content_padding" + android:layout_height="match_parent" + tools:visibility="visible" /> + + <include + android:id="@+id/right_bottom_button" + layout="@layout/bottom_sheet_dialog_button" + tools:visibility="visible" /> + + </LinearLayout> + </LinearLayout> diff --git a/OsmAnd/res/values/styles.xml b/OsmAnd/res/values/styles.xml index a45b9f25ad..32de2527a1 100644 --- a/OsmAnd/res/values/styles.xml +++ b/OsmAnd/res/values/styles.xml @@ -106,12 +106,16 @@ <item name="colorPrimary">@color/active_color_primary_light</item> <item name="dashboard_divider">@color/divider_color_light</item> <item name="divider_color">@color/divider_color</item> + <item name="android:textColorPrimary">@color/text_color_primary_light</item> + <item name="android:textColorSecondary">@color/text_color_secondary_light</item> </style> <style name="OsmandMaterialDarkTheme" parent="Theme.MaterialComponents"> <item name="colorPrimary">@color/active_color_primary_dark</item> <item name="dashboard_divider">@color/divider_color_dark</item> <item name="divider_color">@color/divider_color_dark</item> + <item name="android:textColorPrimary">@color/text_color_primary_dark</item> + <item name="android:textColorSecondary">@color/text_color_secondary_dark</item> </style> <!-- MaterialComponents Widgets override --> diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java index 501369c157..5884fc2ff2 100644 --- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java @@ -1,11 +1,14 @@ package net.osmand.plus.settings.bottomsheets; +import android.annotation.SuppressLint; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; +import android.view.MotionEvent; import android.view.View; import android.widget.EditText; import android.widget.ImageView; +import android.widget.ScrollView; import android.widget.TextView; import androidx.annotation.NonNull; @@ -113,18 +116,56 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { currentValue = preference.getValueFromEntries(selectedItem); String currentValueStr = currentValue == 0.0f ? "" : String.valueOf(currentValue + 0.01f); text.setText(currentValueStr); - text.requestFocus(); - text.setSelection(text.getText().length()); adapter.notifyDataSetChanged(); } }); recyclerView.setAdapter(adapter); adapter.setSelectedItem(selectedItem); + + rightButton = mainView.findViewById(R.id.right_bottom_button); + UiUtilities.setupDialogButton(nightMode, rightButton, getRightBottomButtonType(), getRightBottomButtonTextId()); + rightButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + onRightBottomButtonClick(); + } + }); + return new BaseBottomSheetItem.Builder() .setCustomView(mainView) .create(); } + @SuppressLint("ClickableViewAccessibility") + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + final ScrollView scrollView = view.findViewById(R.id.scroll_view); + final EditText text = view.findViewById(R.id.text_edit); + text.clearFocus(); + text.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + text.onTouchEvent(event); + text.setSelection(text.getText().length()); + scrollView.postDelayed(new Runnable() { + public void run() { + View lastChild = scrollView.getChildAt(scrollView.getChildCount() - 1); + int bottom = lastChild.getBottom() + scrollView.getPaddingBottom(); + int delta = bottom - (scrollView.getScrollY() + scrollView.getHeight()); + scrollView.scrollBy(0, delta); + } + }, 100); + return true; + } + }); + } + + @Override + protected boolean hideButtonsContainer() { + return true; + } + @Override protected int getRightBottomButtonTextId() { return R.string.shared_string_apply; From b6c8ab7362755ab60e90c49c7510a4dc781e056b Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Thu, 11 Jun 2020 18:06:48 +0300 Subject: [PATCH 011/300] add online source from url --- .../net/osmand/plus/helpers/IntentHelper.java | 5 ++-- .../EditMapSourceDialogFragment.java | 25 ++++++++++++++++--- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java b/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java index b2e398c08c..9e589cbb13 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java @@ -11,6 +11,7 @@ import net.osmand.PlatformUtil; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.map.TileSourceManager; +import net.osmand.plus.mapsource.EditMapSourceDialogFragment; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.OsmandApplication; @@ -109,8 +110,8 @@ public class IntentHelper { if (!attrs.isEmpty()) { try { TileSourceManager.TileSourceTemplate r = TileSourceManager.createTileSourceTemplate(attrs); - if (r != null && settings.installTileSource(r)) { - app.showShortToastMessage(app.getString(R.string.edit_tilesource_successfully, r.getName())); + if (r != null) { + EditMapSourceDialogFragment.showInstance(mapActivity.getSupportFragmentManager(), r); } } catch (Exception e) { LOG.error("parseAddTileSourceIntent error", e); diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 252fbe3d3f..4db2992002 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -77,6 +77,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment private static final String EXPIRE_TIME_KEY = "expire_time_key"; private static final String ELLIPTIC_KEY = "elliptic_key"; private static final String SQLITE_DB_KEY = "sqlite_db_key"; + private static final String FROM_TEMPLATE_KEY = "from_template_key"; private OsmandApplication app; private TextInputEditText nameEditText; private TextInputEditText urlEditText; @@ -93,6 +94,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment private boolean elliptic = false; private boolean sqliteDB = false; private boolean nightMode; + private boolean fromTemplate = false; public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment, @@ -103,6 +105,14 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment fragment.show(fm, TAG); } + public static void showInstance(@NonNull FragmentManager fm, + @NonNull TileSourceTemplate template) { + EditMapSourceDialogFragment fragment = new EditMapSourceDialogFragment(); + fragment.setTemplate(template); + fragment.fromTemplate = true; + fragment.show(fm, TAG); + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -119,6 +129,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment expireTimeMinutes = savedInstanceState.getInt(EXPIRE_TIME_KEY); elliptic = savedInstanceState.getBoolean(ELLIPTIC_KEY); sqliteDB = savedInstanceState.getBoolean(SQLITE_DB_KEY); + fromTemplate = savedInstanceState.getBoolean(FROM_TEMPLATE_KEY); } View root = UiUtilities.getMaterialInflater(requireContext(), nightMode).inflate(R.layout.fragment_edit_map_source, container, false); Toolbar toolbar = root.findViewById(R.id.toolbar); @@ -172,8 +183,10 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment dismiss(); } }); - template = new TileSourceTemplate("", "", PNG_EXT, MAX_ZOOM, MIN_ZOOM, TILE_SIZE, BIT_DENSITY, AVG_SIZE); - if (editedLayerName != null) { + if (template == null) { + template = new TileSourceTemplate("", "", PNG_EXT, MAX_ZOOM, MIN_ZOOM, TILE_SIZE, BIT_DENSITY, AVG_SIZE); + } + if (editedLayerName != null && !fromTemplate) { if (!editedLayerName.endsWith(IndexConstants.SQLITE_EXT)) { File f = app.getAppPath(IndexConstants.TILES_INDEX_DIR + editedLayerName); template = TileSourceManager.createTileSourceTemplate(f); @@ -194,6 +207,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } } if (savedInstanceState == null) { + editedLayerName = template.getName(); urlToLoad = template.getUrlTemplate(); expireTimeMinutes = template.getExpirationTimeMinutes(); minZoom = template.getMinimumZoomSupported(); @@ -212,6 +226,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment outState.putInt(EXPIRE_TIME_KEY, expireTimeMinutes); outState.putBoolean(ELLIPTIC_KEY, elliptic); outState.putBoolean(SQLITE_DB_KEY, sqliteDB); + outState.putBoolean(FROM_TEMPLATE_KEY, fromTemplate); super.onSaveInstanceState(outState); } @@ -408,7 +423,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment InputZoomLevelsBottomSheet.showInstance( fm, EditMapSourceDialogFragment.this, R.string.map_source_zoom_levels, R.string.map_source_zoom_levels_descr, - minZoom, maxZoom, editedLayerName == null + minZoom, maxZoom, editedLayerName == null && !fromTemplate ); break; case EXPIRE_TIME: @@ -464,6 +479,10 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment this.editedLayerName = editedLayerName; } + public void setTemplate(TileSourceTemplate template) { + this.template = template; + } + public interface OnMapSourceUpdateListener { void onMapSourceUpdated(); } From 8d83048dd2245c43d06a72752df2f8cf4844c276 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Thu, 11 Jun 2020 18:32:02 +0300 Subject: [PATCH 012/300] open link in inner browser --- .../osmand/plus/mapsource/EditMapSourceDialogFragment.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 4db2992002..8bc44ae3da 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -48,6 +48,7 @@ import net.osmand.plus.mapsource.InputZoomLevelsBottomSheet.OnZoomSetListener; import net.osmand.plus.mapsource.ExpireTimeBottomSheet.OnExpireValueSetListener; import net.osmand.plus.mapsource.MercatorProjectionBottomSheet.OnMercatorSelectedListener; import net.osmand.plus.mapsource.TileStorageFormatBottomSheet.OnTileStorageFormatSelectedListener; +import net.osmand.plus.wikipedia.WikipediaDialogFragment; import net.osmand.util.Algorithms; @@ -371,11 +372,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } private void onHelpClick() { - Intent i = new Intent(Intent.ACTION_VIEW); - i.setData(Uri.parse(MAPS_PLUGINS_URL)); - if (AndroidUtils.isIntentSafe(app, i)) { - startActivity(i); - } + WikipediaDialogFragment.showFullArticle(requireContext(), Uri.parse(MAPS_PLUGINS_URL), nightMode); } private void showExitDialog() { From 328e05a51551fbd4b46ead0cee252c41e988218e Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Thu, 11 Jun 2020 18:42:39 +0300 Subject: [PATCH 013/300] shadow under app bar --- .../res/layout/fragment_edit_map_source.xml | 99 +++++++++++-------- 1 file changed, 57 insertions(+), 42 deletions(-) diff --git a/OsmAnd/res/layout/fragment_edit_map_source.xml b/OsmAnd/res/layout/fragment_edit_map_source.xml index 43a6ced2d7..bf44833a1b 100644 --- a/OsmAnd/res/layout/fragment_edit_map_source.xml +++ b/OsmAnd/res/layout/fragment_edit_map_source.xml @@ -29,59 +29,74 @@ </androidx.appcompat.widget.Toolbar> - <ScrollView + <FrameLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> - <LinearLayout + <ScrollView + android:id="@+id/scroll_view" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/name_input_layout" - style="@style/InputLayoutStyle.FilledBox" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="@dimen/content_padding" - android:hint="@string/shared_string_name" - app:helperText="@string/online_map_name_helper_text"> - - <com.google.android.material.textfield.TextInputEditText - android:id="@+id/name_edit_text" - android:layout_width="match_parent" - android:layout_height="match_parent" /> - </com.google.android.material.textfield.TextInputLayout> - - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/url_input_layout" - style="@style/InputLayoutStyle.FilledBox" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/content_padding" - android:layout_marginEnd="@dimen/content_padding" - android:layout_marginBottom="@dimen/content_padding" - android:hint="@string/edit_tilesource_url_to_load" - app:helperText="@string/online_map_url_helper_text"> - - <com.google.android.material.textfield.TextInputEditText - android:id="@+id/url_edit_text" - android:layout_width="match_parent" - android:layout_height="match_parent" /> - </com.google.android.material.textfield.TextInputLayout> - - <include layout="@layout/divider" /> + android:layout_height="match_parent"> <LinearLayout - android:id="@+id/content_container" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical" /> + android:orientation="vertical"> - </LinearLayout> + <com.google.android.material.textfield.TextInputLayout + android:id="@+id/name_input_layout" + style="@style/InputLayoutStyle.FilledBox" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="@dimen/content_padding" + android:hint="@string/shared_string_name" + app:helperText="@string/online_map_name_helper_text"> - </ScrollView> + <com.google.android.material.textfield.TextInputEditText + android:id="@+id/name_edit_text" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + </com.google.android.material.textfield.TextInputLayout> + + <com.google.android.material.textfield.TextInputLayout + android:id="@+id/url_input_layout" + style="@style/InputLayoutStyle.FilledBox" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/content_padding" + android:layout_marginEnd="@dimen/content_padding" + android:layout_marginBottom="@dimen/content_padding" + android:hint="@string/edit_tilesource_url_to_load" + app:helperText="@string/online_map_url_helper_text"> + + <com.google.android.material.textfield.TextInputEditText + android:id="@+id/url_edit_text" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + </com.google.android.material.textfield.TextInputLayout> + + <include layout="@layout/divider" /> + + <LinearLayout + android:id="@+id/content_container" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" /> + + </LinearLayout> + + </ScrollView> + + <androidx.appcompat.widget.AppCompatImageView + android:id="@+id/topBarShadow" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="top" + android:rotation="180" + android:scaleType="fitXY" + app:srcCompat="@drawable/bg_shadow_onmap" /> + </FrameLayout> <include layout="@layout/divider" /> From d5d95186e3522d7b15ce61776bdc68e045f3f6b8 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Thu, 11 Jun 2020 19:00:17 +0300 Subject: [PATCH 014/300] fix vertical position --- OsmAnd/res/layout/edit_text_with_descr.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/layout/edit_text_with_descr.xml b/OsmAnd/res/layout/edit_text_with_descr.xml index a1fe467b94..14ee36f195 100644 --- a/OsmAnd/res/layout/edit_text_with_descr.xml +++ b/OsmAnd/res/layout/edit_text_with_descr.xml @@ -23,6 +23,10 @@ android:id="@+id/value_edit_text" android:layout_width="match_parent" android:layout_height="match_parent" + android:layout_gravity="center_vertical" + android:minHeight="@dimen/favorites_list_item_height" + android:paddingTop="0dp" + android:paddingBottom="0dp" android:hint="@string/shared_string_never" android:inputType="number" /> </com.google.android.material.textfield.TextInputLayout> From 928b77d29e429ad82660dcc3660f3354175230ea Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Fri, 12 Jun 2020 10:31:58 +0300 Subject: [PATCH 015/300] Fix review --- OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java | 1 - .../plus/parkingpoint/ParkingPositionMenuController.java | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java index a767d42a64..a1356fb738 100644 --- a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java @@ -119,7 +119,6 @@ public class FavoriteImageDrawable extends Drawable { @Override protected void onBoundsChange(Rect bounds) { super.onBoundsChange(bounds); - Rect bs = new Rect(bounds); if (!withShadow && !synced) { uiBackgroundIcon.setBounds(0, 0, uiBackgroundIcon.getIntrinsicWidth(), uiBackgroundIcon.getIntrinsicHeight()); diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java index 9cdcfc8a51..1298739605 100644 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java +++ b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java @@ -110,8 +110,7 @@ public class ParkingPositionMenuController extends MenuController { return FavoriteImageDrawable.getOrCreate(mapActivity.getMyApplication(), ContextCompat.getColor(mapActivity, R.color.parking_icon_background), false, fav); } else { - return getIcon(plugin == null || plugin.getParkingTime() <= 0 ? - R.drawable.mx_parking : R.drawable.mx_special_parking_time_limited, R.color.map_widget_blue); + return null; } } From f05effa1576b6e405ee52b08d906519359f83f19 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 11:35:45 +0300 Subject: [PATCH 016/300] fix exit dialog --- .../EditMapSourceDialogFragment.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 8bc44ae3da..4ee8c6925c 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -96,6 +96,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment private boolean sqliteDB = false; private boolean nightMode; private boolean fromTemplate = false; + private boolean wasChanged = false; public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment, @@ -154,7 +155,11 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - showExitDialog(); + if (wasChanged || fromTemplate) { + showExitDialog(); + } else { + dismiss(); + } } }); int boxStrokeColor = nightMode @@ -167,8 +172,6 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment TextInputLayout urlInputLayout = root.findViewById(R.id.url_input_layout); urlInputLayout.setBoxStrokeColor(boxStrokeColor); urlEditText = root.findViewById(R.id.url_edit_text); - nameEditText.addTextChangedListener(getTextWatcher()); - urlEditText.addTextChangedListener(getTextWatcher()); contentContainer = root.findViewById(R.id.content_container); saveBtn = root.findViewById(R.id.save_button); saveBtn.setBackgroundResource(nightMode ? R.drawable.dlg_btn_primary_dark : R.drawable.dlg_btn_primary_light); @@ -242,10 +245,12 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment if (keyCode == android.view.KeyEvent.KEYCODE_BACK) { if (event.getAction() == KeyEvent.ACTION_DOWN) { return true; - } else { + } else if (wasChanged || fromTemplate) { showExitDialog(); - return true; + } else { + dismiss(); } + return true; } return false; } @@ -259,6 +264,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment minZoom = min; maxZoom = max; updateDescription(ConfigurationItem.ZOOM_LEVELS); + wasChanged = true; } } @@ -267,6 +273,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment if (isAdded()) { expireTimeMinutes = expireValue; updateDescription(ConfigurationItem.EXPIRE_TIME); + wasChanged = true; } } @@ -275,6 +282,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment if (isAdded()) { this.elliptic = elliptic; updateDescription(ConfigurationItem.MERCATOR_PROJECTION); + wasChanged = true; } } @@ -283,6 +291,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment if (isAdded()) { this.sqliteDB = sqliteDb; updateDescription(ConfigurationItem.STORAGE_FORMAT); + wasChanged = true; } } @@ -310,6 +319,9 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment saveBtn.setEnabled(true); saveBtnTitle.setEnabled(true); } + if (Algorithms.objectEquals(editedLayerName, name) || Algorithms.objectEquals(urlToLoad, url)) { + wasChanged = true; + } } } }; @@ -368,6 +380,8 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment private void updateUi() { nameEditText.setText(editedLayerName != null ? editedLayerName.replace(IndexConstants.SQLITE_EXT, "") : ""); urlEditText.setText(urlToLoad); + nameEditText.addTextChangedListener(getTextWatcher()); + urlEditText.addTextChangedListener(getTextWatcher()); addConfigurationItems(ConfigurationItem.values()); } From 404079888bbbb97372a6e83daf3464eb52ffb00b Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 12:13:37 +0300 Subject: [PATCH 017/300] show sqlite extension --- .../EditMapSourceDialogFragment.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 4ee8c6925c..7487d7e716 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -194,7 +194,6 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment if (!editedLayerName.endsWith(IndexConstants.SQLITE_EXT)) { File f = app.getAppPath(IndexConstants.TILES_INDEX_DIR + editedLayerName); template = TileSourceManager.createTileSourceTemplate(f); - sqliteDB = false; } else { List<TileSourceTemplate> knownTemplates = TileSourceManager.getKnownSourceTemplates(); File tPath = app.getAppPath(IndexConstants.TILES_INDEX_DIR); @@ -207,11 +206,9 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment sqLiteTileSource.getBitDensity(), AVG_SIZE); template.setExpirationTimeMinutes(sqLiteTileSource.getExpirationTimeMinutes()); template.setEllipticYTile(sqLiteTileSource.isEllipticYTile()); - sqliteDB = true; } } if (savedInstanceState == null) { - editedLayerName = template.getName(); urlToLoad = template.getUrlTemplate(); expireTimeMinutes = template.getExpirationTimeMinutes(); minZoom = template.getMinimumZoomSupported(); @@ -234,6 +231,13 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment super.onSaveInstanceState(outState); } + @Override + public void onViewStateRestored(@Nullable Bundle savedInstanceState) { + super.onViewStateRestored(savedInstanceState); + sqliteDB = nameEditText.getText().toString().contains(IndexConstants.SQLITE_EXT); + updateDescription(ConfigurationItem.STORAGE_FORMAT); + } + @Override public void onResume() { super.onResume(); @@ -290,6 +294,13 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment public void onStorageFormatSelected(boolean sqliteDb) { if (isAdded()) { this.sqliteDB = sqliteDb; + String name = nameEditText.getText().toString(); + if (sqliteDb && !name.contains(IndexConstants.SQLITE_EXT)) { + name += IndexConstants.SQLITE_EXT; + nameEditText.setText(name); + } else if (!sqliteDb) { + nameEditText.setText(name.replace(IndexConstants.SQLITE_EXT, "")); + } updateDescription(ConfigurationItem.STORAGE_FORMAT); wasChanged = true; } @@ -329,7 +340,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment private void saveTemplate() { try { - String newName = nameEditText.getText().toString(); + String newName = nameEditText.getText().toString().replace(IndexConstants.SQLITE_EXT, ""); String urlToLoad = urlEditText.getText().toString(); template.setName(newName); template.setUrlToLoad(urlToLoad.isEmpty() ? null : urlToLoad.replace("{$x}", "{1}").replace("{$y}", "{2}").replace("{$z}", "{0}")); @@ -378,7 +389,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } private void updateUi() { - nameEditText.setText(editedLayerName != null ? editedLayerName.replace(IndexConstants.SQLITE_EXT, "") : ""); + nameEditText.setText(editedLayerName); urlEditText.setText(urlToLoad); nameEditText.addTextChangedListener(getTextWatcher()); urlEditText.addTextChangedListener(getTextWatcher()); From 9cc21370587a2facb1ff25a8b3b3b5704ecb13cf Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 13:12:08 +0300 Subject: [PATCH 018/300] remove duplicates on map storage change --- .../osmand/plus/mapsource/EditMapSourceDialogFragment.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 7487d7e716..859bb6dd42 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -3,7 +3,6 @@ package net.osmand.plus.mapsource; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; -import android.content.Intent; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; @@ -376,8 +375,14 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment sqLiteTileSource.couldBeDownloadedFromInternet(); sqLiteTileSource.updateFromTileSourceTemplate(template); } + if (f.exists() && f.isDirectory()) { + Algorithms.removeAllFiles(f); + } } else { getSettings().installTileSource(template); + if (f.exists() && !f.isDirectory()) { + f.delete(); + } } Fragment fragment = getTargetFragment(); if (fragment instanceof OnMapSourceUpdateListener) { From 4f6846d67a0677c33b67faf9967b43feeb7e22de Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 13:16:36 +0300 Subject: [PATCH 019/300] fix small text in appbar --- OsmAnd/res/layout/fragment_edit_map_source.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/OsmAnd/res/layout/fragment_edit_map_source.xml b/OsmAnd/res/layout/fragment_edit_map_source.xml index bf44833a1b..3ca2ea8f8d 100644 --- a/OsmAnd/res/layout/fragment_edit_map_source.xml +++ b/OsmAnd/res/layout/fragment_edit_map_source.xml @@ -11,7 +11,6 @@ android:layout_width="match_parent" android:layout_height="@dimen/toolbar_height" app:title="@string/edit_online_source" - android:theme="?attr/toolbar_theme" tools:background="?attr/actionModeBackground"> <ImageButton From a726955291a38a6b89c07d52cc94b2be29049457 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 13:32:11 +0300 Subject: [PATCH 020/300] hide keyboard on scroll --- .../mapsource/EditMapSourceDialogFragment.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 859bb6dd42..5e0f525642 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -13,10 +13,12 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; +import android.view.ViewTreeObserver; import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.ScrollView; import android.widget.TextView; import androidx.annotation.DrawableRes; @@ -186,6 +188,20 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment dismiss(); } }); + final ScrollView scrollView = root.findViewById(R.id.scroll_view); + scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { + int pastY = 0; + + @Override + public void onScrollChanged() { + int y = scrollView.getScrollY(); + if (pastY != y) { + pastY = y; + View view = getDialog().getCurrentFocus(); + AndroidUtils.hideSoftKeyboard(requireActivity(), view); + } + } + }); if (template == null) { template = new TileSourceTemplate("", "", PNG_EXT, MAX_ZOOM, MIN_ZOOM, TILE_SIZE, BIT_DENSITY, AVG_SIZE); } From e27dc91a3b5499db12b34cc714351d3e505b3d25 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 13:36:27 +0300 Subject: [PATCH 021/300] save btn font --- .../net/osmand/plus/mapsource/EditMapSourceDialogFragment.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 5e0f525642..2edc76ea20 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -45,6 +45,7 @@ import net.osmand.plus.R; import net.osmand.plus.SQLiteTileSource; import net.osmand.plus.UiUtilities; import net.osmand.plus.base.BaseOsmAndDialogFragment; +import net.osmand.plus.helpers.FontCache; import net.osmand.plus.mapsource.InputZoomLevelsBottomSheet.OnZoomSetListener; import net.osmand.plus.mapsource.ExpireTimeBottomSheet.OnExpireValueSetListener; import net.osmand.plus.mapsource.MercatorProjectionBottomSheet.OnMercatorSelectedListener; @@ -179,6 +180,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment FrameLayout saveBtnBg = root.findViewById(R.id.save_button_bg); saveBtnBg.setBackgroundColor(ContextCompat.getColor(app, btnBgColorRes)); saveBtnTitle = root.findViewById(R.id.save_button_title); + saveBtnTitle.setTypeface(FontCache.getRobotoMedium(requireContext())); saveBtnTitle.setTextColor(ContextCompat.getColorStateList(app, nightMode ? R.color.dlg_btn_primary_text_dark : R.color.dlg_btn_primary_text_light)); saveBtn.setOnClickListener(new View.OnClickListener() { From cdaa450de5f5316a8a96f8c06164e3014d2e7c87 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 13:41:43 +0300 Subject: [PATCH 022/300] fix text fields stroke color --- .../osmand/plus/mapsource/EditMapSourceDialogFragment.java | 4 ++-- .../src/net/osmand/plus/mapsource/ExpireTimeBottomSheet.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 2edc76ea20..091dbefe26 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -165,8 +165,8 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } }); int boxStrokeColor = nightMode - ? ContextCompat.getColor(app, R.color.app_bar_color_light) - : ContextCompat.getColor(app, R.color.active_buttons_and_links_bg_pressed_dark); + ? ContextCompat.getColor(app, R.color.icon_color_osmand_dark) + : ContextCompat.getColor(app, R.color.icon_color_osmand_light); int btnBgColorRes = nightMode ? R.color.list_background_color_dark : R.color.list_background_color_light; TextInputLayout nameInputLayout = root.findViewById(R.id.name_input_layout); nameInputLayout.setBoxStrokeColor(boxStrokeColor); diff --git a/OsmAnd/src/net/osmand/plus/mapsource/ExpireTimeBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/ExpireTimeBottomSheet.java index e9016980ba..d0f1e10654 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/ExpireTimeBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/ExpireTimeBottomSheet.java @@ -60,8 +60,8 @@ public class ExpireTimeBottomSheet extends MenuBottomSheetDialogFragment { editText.setText(String.valueOf(expireValue)); } int boxStrokeColor = nightMode - ? ContextCompat.getColor(app, R.color.app_bar_color_light) - : ContextCompat.getColor(app, R.color.active_buttons_and_links_bg_pressed_dark); + ? ContextCompat.getColor(app, R.color.icon_color_osmand_dark) + : ContextCompat.getColor(app, R.color.icon_color_osmand_light); TextInputLayout textInputLayout = inputValueLayout.findViewById(R.id.value_input_layout); textInputLayout.setBoxStrokeColor(boxStrokeColor); final SimpleBottomSheetItem editTextItem = (SimpleBottomSheetItem) new SimpleBottomSheetItem.Builder() From a0c58cb624dc603d0e226ab0650ebe14d5f8e5e2 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 14:50:16 +0300 Subject: [PATCH 023/300] show errors on empty text fields --- .../EditMapSourceDialogFragment.java | 80 +++++++++++-------- 1 file changed, 47 insertions(+), 33 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 091dbefe26..a5c7aa9c58 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -82,6 +82,8 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment private static final String SQLITE_DB_KEY = "sqlite_db_key"; private static final String FROM_TEMPLATE_KEY = "from_template_key"; private OsmandApplication app; + private TextInputLayout nameInputLayout; + private TextInputLayout urlInputLayout; private TextInputEditText nameEditText; private TextInputEditText urlEditText; private LinearLayout contentContainer; @@ -168,10 +170,10 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment ? ContextCompat.getColor(app, R.color.icon_color_osmand_dark) : ContextCompat.getColor(app, R.color.icon_color_osmand_light); int btnBgColorRes = nightMode ? R.color.list_background_color_dark : R.color.list_background_color_light; - TextInputLayout nameInputLayout = root.findViewById(R.id.name_input_layout); + nameInputLayout = root.findViewById(R.id.name_input_layout); nameInputLayout.setBoxStrokeColor(boxStrokeColor); nameEditText = root.findViewById(R.id.name_edit_text); - TextInputLayout urlInputLayout = root.findViewById(R.id.url_input_layout); + urlInputLayout = root.findViewById(R.id.url_input_layout); urlInputLayout.setBoxStrokeColor(boxStrokeColor); urlEditText = root.findViewById(R.id.url_edit_text); contentContainer = root.findViewById(R.id.content_container); @@ -323,36 +325,18 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } } - private TextWatcher getTextWatcher() { - return new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + private void setSaveBtnEnabled() { + boolean enabled = !nameEditText.getText().toString().isEmpty() + && !urlEditText.getText().toString().isEmpty(); + saveBtn.setEnabled(enabled); + saveBtnTitle.setEnabled(enabled); + } - } - - @Override - public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { - - } - - @Override - public void afterTextChanged(Editable editable) { - if (nameEditText.getText() != null && urlEditText.getText() != null) { - String name = nameEditText.getText().toString().trim(); - String url = urlEditText.getText().toString().trim(); - if (Algorithms.isEmpty(name) || Algorithms.isEmpty(url)) { - saveBtn.setEnabled(false); - saveBtnTitle.setEnabled(false); - } else { - saveBtn.setEnabled(true); - saveBtnTitle.setEnabled(true); - } - if (Algorithms.objectEquals(editedLayerName, name) || Algorithms.objectEquals(urlToLoad, url)) { - wasChanged = true; - } - } - } - }; + private void checkWasChanged() { + if (!Algorithms.objectEquals(editedLayerName, nameEditText.getText().toString()) + || !Algorithms.objectEquals(urlToLoad, urlEditText.getText().toString())) { + wasChanged = true; + } } private void saveTemplate() { @@ -414,8 +398,9 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment private void updateUi() { nameEditText.setText(editedLayerName); urlEditText.setText(urlToLoad); - nameEditText.addTextChangedListener(getTextWatcher()); - urlEditText.addTextChangedListener(getTextWatcher()); + nameEditText.addTextChangedListener(new MapSourceTextWatcher(nameInputLayout)); + urlEditText.addTextChangedListener(new MapSourceTextWatcher(urlInputLayout)); + setSaveBtnEnabled(); addConfigurationItems(ConfigurationItem.values()); } @@ -528,6 +513,35 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment this.template = template; } + class MapSourceTextWatcher implements TextWatcher { + private TextInputLayout relatedInputLayout; + + public MapSourceTextWatcher(TextInputLayout textInputLayout) { + this.relatedInputLayout = textInputLayout; + } + + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + + } + + @Override + public void afterTextChanged(Editable editable) { + if (editable.toString().isEmpty()) { + relatedInputLayout.setError(relatedInputLayout.getHelperText()); + } else { + relatedInputLayout.setError(null); + } + setSaveBtnEnabled(); + checkWasChanged(); + } + } + public interface OnMapSourceUpdateListener { void onMapSourceUpdated(); } From ab1050d43d0e39da59a008a4747f610e5c7e7c7c Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 15:20:46 +0300 Subject: [PATCH 024/300] fix text multiline in text fields --- OsmAnd/res/layout/fragment_edit_map_source.xml | 6 ++++-- .../osmand/plus/mapsource/EditMapSourceDialogFragment.java | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/layout/fragment_edit_map_source.xml b/OsmAnd/res/layout/fragment_edit_map_source.xml index 3ca2ea8f8d..6c16662b17 100644 --- a/OsmAnd/res/layout/fragment_edit_map_source.xml +++ b/OsmAnd/res/layout/fragment_edit_map_source.xml @@ -55,7 +55,8 @@ <com.google.android.material.textfield.TextInputEditText android:id="@+id/name_edit_text" android:layout_width="match_parent" - android:layout_height="match_parent" /> + android:layout_height="wrap_content" + android:minHeight="@dimen/favorites_list_item_height" /> </com.google.android.material.textfield.TextInputLayout> <com.google.android.material.textfield.TextInputLayout @@ -72,7 +73,8 @@ <com.google.android.material.textfield.TextInputEditText android:id="@+id/url_edit_text" android:layout_width="match_parent" - android:layout_height="match_parent" /> + android:layout_height="wrap_content" + android:minHeight="@dimen/favorites_list_item_height" /> </com.google.android.material.textfield.TextInputLayout> <include layout="@layout/divider" /> diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index a5c7aa9c58..0cbcb62a26 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -7,6 +7,7 @@ import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.text.Editable; +import android.text.InputType; import android.text.TextWatcher; import android.view.KeyEvent; import android.view.LayoutInflater; @@ -14,6 +15,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.view.ViewTreeObserver; +import android.view.inputmethod.EditorInfo; import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.ImageView; @@ -173,9 +175,13 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment nameInputLayout = root.findViewById(R.id.name_input_layout); nameInputLayout.setBoxStrokeColor(boxStrokeColor); nameEditText = root.findViewById(R.id.name_edit_text); + nameEditText.setImeOptions(EditorInfo.IME_ACTION_DONE); + nameEditText.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); urlInputLayout = root.findViewById(R.id.url_input_layout); urlInputLayout.setBoxStrokeColor(boxStrokeColor); urlEditText = root.findViewById(R.id.url_edit_text); + urlEditText.setImeOptions(EditorInfo.IME_ACTION_DONE); + urlEditText.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); contentContainer = root.findViewById(R.id.content_container); saveBtn = root.findViewById(R.id.save_button); saveBtn.setBackgroundResource(nightMode ? R.drawable.dlg_btn_primary_dark : R.drawable.dlg_btn_primary_light); From 1e2f5e65816a8cb187d80cd172d290cdb078b112 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 15:23:38 +0300 Subject: [PATCH 025/300] set cursor at the end --- .../mapsource/EditMapSourceDialogFragment.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 0cbcb62a26..497bf09228 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -177,11 +177,27 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment nameEditText = root.findViewById(R.id.name_edit_text); nameEditText.setImeOptions(EditorInfo.IME_ACTION_DONE); nameEditText.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); + nameEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if(hasFocus){ + nameEditText.setSelection(nameEditText.getText().length()); + } + } + }); urlInputLayout = root.findViewById(R.id.url_input_layout); urlInputLayout.setBoxStrokeColor(boxStrokeColor); urlEditText = root.findViewById(R.id.url_edit_text); urlEditText.setImeOptions(EditorInfo.IME_ACTION_DONE); urlEditText.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); + urlEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if(hasFocus){ + urlEditText.setSelection(urlEditText.getText().length()); + } + } + }); contentContainer = root.findViewById(R.id.content_container); saveBtn = root.findViewById(R.id.save_button); saveBtn.setBackgroundResource(nightMode ? R.drawable.dlg_btn_primary_dark : R.drawable.dlg_btn_primary_light); From 73d7c93f679e24a8f5a766e6f96aab4ce970252a Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 17:01:03 +0300 Subject: [PATCH 026/300] showClearTilesWarningDialog for storage change --- .../EditMapSourceDialogFragment.java | 2 +- .../mapsource/InputZoomLevelsBottomSheet.java | 23 ++++++----- .../TileStorageFormatBottomSheet.java | 41 +++++++++++++------ 3 files changed, 42 insertions(+), 24 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 497bf09228..4f930724d7 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -485,7 +485,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment MercatorProjectionBottomSheet.showInstance(fm, EditMapSourceDialogFragment.this, elliptic); break; case STORAGE_FORMAT: - TileStorageFormatBottomSheet.showInstance(fm, EditMapSourceDialogFragment.this, sqliteDB); + TileStorageFormatBottomSheet.showInstance(fm, EditMapSourceDialogFragment.this, sqliteDB, editedLayerName == null && !fromTemplate); break; } } diff --git a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java index 1110fb13f4..6827355429 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java @@ -1,5 +1,6 @@ package net.osmand.plus.mapsource; +import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; @@ -147,7 +148,12 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { @Override protected void onRightBottomButtonClick() { if (!newMapSource) { - showClearTilesWarningDialog(); + showClearTilesWarningDialog(requireActivity(), nightMode, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + applySelectedZooms(); + } + }); } else { applySelectedZooms(); } @@ -163,18 +169,13 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { return R.string.shared_string_apply; } - private void showClearTilesWarningDialog() { - Context themedContext = UiUtilities.getThemedContext(getActivity(), nightMode); + public static void showClearTilesWarningDialog(Activity activity, boolean nightMode, DialogInterface.OnClickListener onPositiveListener) { + Context themedContext = UiUtilities.getThemedContext(activity, nightMode); AlertDialog.Builder dismissDialog = new AlertDialog.Builder(themedContext); - dismissDialog.setTitle(getString(R.string.osmand_parking_warning)); - dismissDialog.setMessage(getString(R.string.clear_tiles_warning)); + dismissDialog.setTitle(activity.getString(R.string.osmand_parking_warning)); + dismissDialog.setMessage(activity.getString(R.string.clear_tiles_warning)); dismissDialog.setNegativeButton(R.string.shared_string_cancel, null); - dismissDialog.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - applySelectedZooms(); - } - }); + dismissDialog.setPositiveButton(R.string.shared_string_ok, onPositiveListener); dismissDialog.show(); } diff --git a/OsmAnd/src/net/osmand/plus/mapsource/TileStorageFormatBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/TileStorageFormatBottomSheet.java index da59775ff0..63d1d3496d 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/TileStorageFormatBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/TileStorageFormatBottomSheet.java @@ -26,15 +26,19 @@ public class TileStorageFormatBottomSheet extends MenuBottomSheetDialogFragment public static final String TAG = TileStorageFormatBottomSheet.class.getName(); private static final String SQLITE_DB_KEY = "sqlite_db_key"; + private static final String NEW_MAP_SOURCE_KEY = "new_map_source_key"; private LinearLayout valuesContainer; private TileStorageFormat tileStorageFormat; + private boolean newMapSource; public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment, - boolean sqliteDb) { + boolean sqliteDb, + boolean newMapSource) { TileStorageFormatBottomSheet bottomSheet = new TileStorageFormatBottomSheet(); bottomSheet.setTargetFragment(targetFragment, 0); bottomSheet.setTileStorageFormat(sqliteDb); + bottomSheet.setNewMapSource(newMapSource); bottomSheet.show(fm, TAG); } @@ -42,6 +46,7 @@ public class TileStorageFormatBottomSheet extends MenuBottomSheetDialogFragment public void createMenuItems(Bundle savedInstanceState) { if (savedInstanceState != null) { setTileStorageFormat(savedInstanceState.getBoolean(SQLITE_DB_KEY)); + newMapSource = savedInstanceState.getBoolean(NEW_MAP_SOURCE_KEY); } Context context = requireContext(); TitleItem titleItem = new TitleItem(getString(R.string.mercator_projection)); @@ -63,18 +68,10 @@ public class TileStorageFormatBottomSheet extends MenuBottomSheetDialogFragment @Override public void onSaveInstanceState(Bundle outState) { outState.putBoolean(SQLITE_DB_KEY, tileStorageFormat == TileStorageFormat.SQLITE_DB); + outState.putBoolean(NEW_MAP_SOURCE_KEY, newMapSource); super.onSaveInstanceState(outState); } - @Override - public void onDismiss(@NonNull DialogInterface dialog) { - Fragment fragment = getTargetFragment(); - if (fragment instanceof OnTileStorageFormatSelectedListener) { - ((OnTileStorageFormatSelectedListener) fragment).onStorageFormatSelected(tileStorageFormat == TileStorageFormat.SQLITE_DB); - } - super.onDismiss(dialog); - } - @Override protected int getDismissButtonTextId() { return R.string.shared_string_close; @@ -91,18 +88,38 @@ public class TileStorageFormatBottomSheet extends MenuBottomSheetDialogFragment @Override public void onClick(View view) { if (tileStorageFormat != m) { - tileStorageFormat = m; - dismiss(); + if (newMapSource) { + applyTileStorageFormat(m); + } else { + InputZoomLevelsBottomSheet.showClearTilesWarningDialog(requireActivity(), nightMode, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + applyTileStorageFormat(m); + } + }); + } } } }); } } + private void applyTileStorageFormat(TileStorageFormat tileStorageFormat) { + Fragment fragment = getTargetFragment(); + if (fragment instanceof OnTileStorageFormatSelectedListener) { + ((OnTileStorageFormatSelectedListener) fragment).onStorageFormatSelected(tileStorageFormat == TileStorageFormat.SQLITE_DB); + } + dismiss(); + } + private void setTileStorageFormat(boolean sqliteDb) { tileStorageFormat = sqliteDb ? TileStorageFormat.SQLITE_DB : TileStorageFormat.ONE_IMAGE_PER_TILE; } + public void setNewMapSource(boolean newMapSource) { + this.newMapSource = newMapSource; + } + public enum TileStorageFormat { ONE_IMAGE_PER_TILE(R.string.one_image_per_tile), SQLITE_DB(R.string.sqlite_db_file); From 30674159e151a75a473b2746d47357afa84a8aba Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 17:15:46 +0300 Subject: [PATCH 027/300] Revert "show sqlite extension" This reverts commit 40407988 --- .../EditMapSourceDialogFragment.java | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 4f930724d7..10e9cae820 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -235,6 +235,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment if (!editedLayerName.endsWith(IndexConstants.SQLITE_EXT)) { File f = app.getAppPath(IndexConstants.TILES_INDEX_DIR + editedLayerName); template = TileSourceManager.createTileSourceTemplate(f); + sqliteDB = false; } else { List<TileSourceTemplate> knownTemplates = TileSourceManager.getKnownSourceTemplates(); File tPath = app.getAppPath(IndexConstants.TILES_INDEX_DIR); @@ -247,9 +248,11 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment sqLiteTileSource.getBitDensity(), AVG_SIZE); template.setExpirationTimeMinutes(sqLiteTileSource.getExpirationTimeMinutes()); template.setEllipticYTile(sqLiteTileSource.isEllipticYTile()); + sqliteDB = true; } } if (savedInstanceState == null) { + editedLayerName = template.getName(); urlToLoad = template.getUrlTemplate(); expireTimeMinutes = template.getExpirationTimeMinutes(); minZoom = template.getMinimumZoomSupported(); @@ -272,13 +275,6 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment super.onSaveInstanceState(outState); } - @Override - public void onViewStateRestored(@Nullable Bundle savedInstanceState) { - super.onViewStateRestored(savedInstanceState); - sqliteDB = nameEditText.getText().toString().contains(IndexConstants.SQLITE_EXT); - updateDescription(ConfigurationItem.STORAGE_FORMAT); - } - @Override public void onResume() { super.onResume(); @@ -335,13 +331,6 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment public void onStorageFormatSelected(boolean sqliteDb) { if (isAdded()) { this.sqliteDB = sqliteDb; - String name = nameEditText.getText().toString(); - if (sqliteDb && !name.contains(IndexConstants.SQLITE_EXT)) { - name += IndexConstants.SQLITE_EXT; - nameEditText.setText(name); - } else if (!sqliteDb) { - nameEditText.setText(name.replace(IndexConstants.SQLITE_EXT, "")); - } updateDescription(ConfigurationItem.STORAGE_FORMAT); wasChanged = true; } @@ -363,7 +352,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment private void saveTemplate() { try { - String newName = nameEditText.getText().toString().replace(IndexConstants.SQLITE_EXT, ""); + String newName = nameEditText.getText().toString(); String urlToLoad = urlEditText.getText().toString(); template.setName(newName); template.setUrlToLoad(urlToLoad.isEmpty() ? null : urlToLoad.replace("{$x}", "{1}").replace("{$y}", "{2}").replace("{$z}", "{0}")); @@ -418,7 +407,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } private void updateUi() { - nameEditText.setText(editedLayerName); + nameEditText.setText(editedLayerName != null ? editedLayerName.replace(IndexConstants.SQLITE_EXT, "") : ""); urlEditText.setText(urlToLoad); nameEditText.addTextChangedListener(new MapSourceTextWatcher(nameInputLayout)); urlEditText.addTextChangedListener(new MapSourceTextWatcher(urlInputLayout)); From 5739510fd465f1ffd63e628c932f40879f448381 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 17:53:04 +0300 Subject: [PATCH 028/300] hide keyboard on expire time set --- OsmAnd/src/net/osmand/plus/mapsource/ExpireTimeBottomSheet.java | 2 ++ .../net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/ExpireTimeBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/ExpireTimeBottomSheet.java index d0f1e10654..a0eebe806e 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/ExpireTimeBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/ExpireTimeBottomSheet.java @@ -14,6 +14,7 @@ import androidx.fragment.app.FragmentManager; import com.google.android.material.textfield.TextInputEditText; import com.google.android.material.textfield.TextInputLayout; +import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; @@ -78,6 +79,7 @@ public class ExpireTimeBottomSheet extends MenuBottomSheetDialogFragment { @Override protected void onRightBottomButtonClick() { + AndroidUtils.hideSoftKeyboard(requireActivity(), editText); Fragment fragment = getTargetFragment(); if (fragment instanceof OnExpireValueSetListener) { ((OnExpireValueSetListener) fragment).onExpireValueSet(getExpireValue()); diff --git a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java index 6827355429..134161c67e 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java @@ -175,7 +175,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { dismissDialog.setTitle(activity.getString(R.string.osmand_parking_warning)); dismissDialog.setMessage(activity.getString(R.string.clear_tiles_warning)); dismissDialog.setNegativeButton(R.string.shared_string_cancel, null); - dismissDialog.setPositiveButton(R.string.shared_string_ok, onPositiveListener); + dismissDialog.setPositiveButton(R.string.shared_string_continue, onPositiveListener); dismissDialog.show(); } From d761ea406ef6c3f4ac3c4e802b226df3f1622d54 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 12 Jun 2020 18:08:08 +0300 Subject: [PATCH 029/300] not show extension in Map source item --- OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java | 3 ++- OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java index d953c35014..4c43d58a75 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java @@ -18,6 +18,7 @@ import androidx.core.content.ContextCompat; import net.osmand.CallbackWithObject; import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.WptPt; +import net.osmand.IndexConstants; import net.osmand.ResultMatcher; import net.osmand.StateChangedListener; import net.osmand.map.ITileSource; @@ -537,7 +538,7 @@ public class MapActivityLayers { default: settings.MAP_TILE_SOURCES.set(layerKey); settings.MAP_ONLINE_DATA.set(true); - updateItem(it, adapter, layerKey); + updateItem(it, adapter, layerKey.replace(IndexConstants.SQLITE_EXT, "")); updateMapSource(mapView, settings.MAP_TILE_SOURCES); break; } diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index f584bf6afa..c0874af31e 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -27,6 +27,7 @@ import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.CallbackWithObject; import net.osmand.GPXUtilities; +import net.osmand.IndexConstants; import net.osmand.PlatformUtil; import net.osmand.core.android.MapRendererContext; import net.osmand.plus.ContextMenuAdapter; @@ -460,7 +461,7 @@ public class ConfigureMapMenu { .setId(MAP_SOURCE_ID) .setTitleId(R.string.layer_map, activity) .setIcon(R.drawable.ic_world_globe_dark) - .setDescription(settings.MAP_ONLINE_DATA.get() ? settings.MAP_TILE_SOURCES.get() : null) + .setDescription(settings.MAP_ONLINE_DATA.get() ? settings.MAP_TILE_SOURCES.get().replace(IndexConstants.SQLITE_EXT, "") : null) .setItemDeleteAction(makeDeleteAction(settings.MAP_ONLINE_DATA, settings.MAP_TILE_SOURCES)) .setListener(l).createItem()); From 30049f3cb3762045e4d6423eec305017fd56724d Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Mon, 15 Jun 2020 14:13:27 +0300 Subject: [PATCH 030/300] refactor --- .../EditMapSourceDialogFragment.java | 78 +++++++++++++------ 1 file changed, 56 insertions(+), 22 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 10e9cae820..32b53d627a 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.DialogInterface; import android.graphics.drawable.Drawable; import android.net.Uri; +import android.os.AsyncTask; import android.os.Bundle; import android.text.Editable; import android.text.InputType; @@ -107,10 +108,12 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment, @Nullable String editedLayerName) { - EditMapSourceDialogFragment fragment = new EditMapSourceDialogFragment(); - fragment.setTargetFragment(targetFragment, 0); - fragment.setEditedLayerName(editedLayerName); - fragment.show(fm, TAG); + if (!fm.isStateSaved()) { + EditMapSourceDialogFragment fragment = new EditMapSourceDialogFragment(); + fragment.setTargetFragment(targetFragment, 0); + fragment.setEditedLayerName(editedLayerName); + fragment.show(fm, TAG); + } } public static void showInstance(@NonNull FragmentManager fm, @@ -118,7 +121,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment EditMapSourceDialogFragment fragment = new EditMapSourceDialogFragment(); fragment.setTemplate(template); fragment.fromTemplate = true; - fragment.show(fm, TAG); + fm.beginTransaction().add(fragment, TAG).commitAllowingStateLoss(); } @Override @@ -252,7 +255,9 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } } if (savedInstanceState == null) { - editedLayerName = template.getName(); + if (fromTemplate) { + editedLayerName = template.getName(); + } urlToLoad = template.getUrlTemplate(); expireTimeMinutes = template.getExpirationTimeMinutes(); minZoom = template.getMinimumZoomSupported(); @@ -361,12 +366,14 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment template.setEllipticYTile(elliptic); template.setExpirationTimeMinutes(expireTimeMinutes); File f = app.getAppPath(IndexConstants.TILES_INDEX_DIR + editedLayerName); + String oldExt = null; + boolean storageChanged = false; if (f.exists()) { int extIndex = f.getName().lastIndexOf('.'); - String ext = extIndex == -1 ? "" : f.getName().substring(extIndex); + oldExt = extIndex == -1 ? "" : f.getName().substring(extIndex); String originalName = extIndex == -1 ? f.getName() : f.getName().substring(0, extIndex); if (!Algorithms.objectEquals(newName, originalName)) { - if (IndexConstants.SQLITE_EXT.equals(ext) && sqliteDB) { + if (IndexConstants.SQLITE_EXT.equals(oldExt) && sqliteDB) { FileUtils.renameSQLiteFile(app, f, newName, null); } else if (!sqliteDB) { f.renameTo(app.getAppPath(IndexConstants.TILES_INDEX_DIR + newName)); @@ -374,7 +381,12 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } } if (sqliteDB) { - if (!f.exists() || f.isDirectory()) { + if (IndexConstants.SQLITE_EXT.equals(oldExt)) { + List<TileSourceTemplate> knownTemplates = TileSourceManager.getKnownSourceTemplates(); + SQLiteTileSource sqLiteTileSource = new SQLiteTileSource(app, f, knownTemplates); + sqLiteTileSource.couldBeDownloadedFromInternet(); + sqLiteTileSource.updateFromTileSourceTemplate(template); + } else { SQLiteTileSource sqLiteTileSource = new SQLiteTileSource(app, newName, minZoom, maxZoom, urlToLoad, "", @@ -382,20 +394,14 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment expireTimeMinutes * 60 * 1000L, false, "" ); sqLiteTileSource.createDataBase(); - } else { - List<TileSourceTemplate> knownTemplates = TileSourceManager.getKnownSourceTemplates(); - SQLiteTileSource sqLiteTileSource = new SQLiteTileSource(app, f, knownTemplates); - sqLiteTileSource.couldBeDownloadedFromInternet(); - sqLiteTileSource.updateFromTileSourceTemplate(template); - } - if (f.exists() && f.isDirectory()) { - Algorithms.removeAllFiles(f); + storageChanged = f.exists(); } } else { getSettings().installTileSource(template); - if (f.exists() && !f.isDirectory()) { - f.delete(); - } + storageChanged = f.exists() && IndexConstants.SQLITE_EXT.equals(oldExt); + } + if (storageChanged) { + new DeleteTilesTask(app).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, f); } Fragment fragment = getTargetFragment(); if (fragment instanceof OnMapSourceUpdateListener) { @@ -458,13 +464,14 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment @Override public void onClick(View view) { FragmentManager fm = getFragmentManager(); + boolean newMapSource = Algorithms.isEmpty(editedLayerName) || fromTemplate; if (fm != null && !fm.isStateSaved()) { switch (item) { case ZOOM_LEVELS: InputZoomLevelsBottomSheet.showInstance( fm, EditMapSourceDialogFragment.this, R.string.map_source_zoom_levels, R.string.map_source_zoom_levels_descr, - minZoom, maxZoom, editedLayerName == null && !fromTemplate + minZoom, maxZoom, newMapSource ); break; case EXPIRE_TIME: @@ -474,7 +481,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment MercatorProjectionBottomSheet.showInstance(fm, EditMapSourceDialogFragment.this, elliptic); break; case STORAGE_FORMAT: - TileStorageFormatBottomSheet.showInstance(fm, EditMapSourceDialogFragment.this, sqliteDB, editedLayerName == null && !fromTemplate); + TileStorageFormatBottomSheet.showInstance(fm, EditMapSourceDialogFragment.this, sqliteDB, newMapSource); break; } } @@ -556,4 +563,31 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment public interface OnMapSourceUpdateListener { void onMapSourceUpdated(); } + + public static class DeleteTilesTask extends AsyncTask<File, Void, Void> { + + private OsmandApplication app; + + public DeleteTilesTask(OsmandApplication app) { + this.app = app; + } + + @Override + protected Void doInBackground(File... files) { + for (File file : files) { + if (Algorithms.removeAllFiles(file)) { + app.getResourceManager().closeFile(file.getName()); + File tShm = new File(file.getParentFile(), file.getName() + "-shm"); + File tWal = new File(file.getParentFile(), file.getName() + "-wal"); + if (tShm.exists()) { + Algorithms.removeAllFiles(tShm); + } + if (tWal.exists()) { + Algorithms.removeAllFiles(tWal); + } + } + } + return null; + } + } } From 377fe41cc6a97f7e7fcc386ebebf84b856f8566d Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Mon, 15 Jun 2020 14:39:59 +0300 Subject: [PATCH 031/300] refactor saving template --- .../mapsource/EditMapSourceDialogFragment.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 32b53d627a..94dc944cb1 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -366,22 +366,23 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment template.setEllipticYTile(elliptic); template.setExpirationTimeMinutes(expireTimeMinutes); File f = app.getAppPath(IndexConstants.TILES_INDEX_DIR + editedLayerName); - String oldExt = null; + String ext = null; boolean storageChanged = false; if (f.exists()) { int extIndex = f.getName().lastIndexOf('.'); - oldExt = extIndex == -1 ? "" : f.getName().substring(extIndex); + ext = extIndex == -1 ? "" : f.getName().substring(extIndex); String originalName = extIndex == -1 ? f.getName() : f.getName().substring(0, extIndex); if (!Algorithms.objectEquals(newName, originalName)) { - if (IndexConstants.SQLITE_EXT.equals(oldExt) && sqliteDB) { - FileUtils.renameSQLiteFile(app, f, newName, null); - } else if (!sqliteDB) { + if (IndexConstants.SQLITE_EXT.equals(ext)) { + f = FileUtils.renameSQLiteFile(app, f, newName + ext, null); + } else { f.renameTo(app.getAppPath(IndexConstants.TILES_INDEX_DIR + newName)); + f = app.getAppPath(IndexConstants.TILES_INDEX_DIR + newName); } } } if (sqliteDB) { - if (IndexConstants.SQLITE_EXT.equals(oldExt)) { + if (IndexConstants.SQLITE_EXT.equals(ext)) { List<TileSourceTemplate> knownTemplates = TileSourceManager.getKnownSourceTemplates(); SQLiteTileSource sqLiteTileSource = new SQLiteTileSource(app, f, knownTemplates); sqLiteTileSource.couldBeDownloadedFromInternet(); @@ -398,7 +399,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } } else { getSettings().installTileSource(template); - storageChanged = f.exists() && IndexConstants.SQLITE_EXT.equals(oldExt); + storageChanged = f != null && f.exists() && IndexConstants.SQLITE_EXT.equals(ext); } if (storageChanged) { new DeleteTilesTask(app).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, f); From c1760b7508e6093086ea02c9b736838c628c8eda Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Mon, 15 Jun 2020 15:07:35 +0300 Subject: [PATCH 032/300] fix margins on android 4 --- OsmAnd/res/layout/edit_text_with_descr.xml | 4 ++++ OsmAnd/res/layout/fragment_edit_map_source.xml | 4 ++++ OsmAnd/res/layout/zoom_levels_with_descr.xml | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/OsmAnd/res/layout/edit_text_with_descr.xml b/OsmAnd/res/layout/edit_text_with_descr.xml index 14ee36f195..baa740ad9e 100644 --- a/OsmAnd/res/layout/edit_text_with_descr.xml +++ b/OsmAnd/res/layout/edit_text_with_descr.xml @@ -11,6 +11,8 @@ style="@style/InputLayoutStyle.FilledBox" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginRight="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" android:layout_marginStart="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding" android:layout_marginBottom="@dimen/content_padding" @@ -35,6 +37,8 @@ android:id="@+id/dialog_descr" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginRight="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" android:layout_marginStart="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding" android:layout_marginBottom="@dimen/content_padding" diff --git a/OsmAnd/res/layout/fragment_edit_map_source.xml b/OsmAnd/res/layout/fragment_edit_map_source.xml index 6c16662b17..91d2af07e7 100644 --- a/OsmAnd/res/layout/fragment_edit_map_source.xml +++ b/OsmAnd/res/layout/fragment_edit_map_source.xml @@ -65,6 +65,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" + android:layout_marginRight="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding" android:layout_marginBottom="@dimen/content_padding" android:hint="@string/edit_tilesource_url_to_load" @@ -108,6 +110,8 @@ android:minHeight="@dimen/dialog_button_ex_height" android:paddingStart="@dimen/content_padding" android:paddingTop="@dimen/content_padding_small" + android:paddingLeft="@dimen/content_padding_small" + android:paddingRight="@dimen/content_padding_small" android:paddingEnd="@dimen/content_padding" android:paddingBottom="@dimen/content_padding_small" tools:background="?attr/list_background_color"> diff --git a/OsmAnd/res/layout/zoom_levels_with_descr.xml b/OsmAnd/res/layout/zoom_levels_with_descr.xml index d3fcba0da2..7bc08b0cab 100644 --- a/OsmAnd/res/layout/zoom_levels_with_descr.xml +++ b/OsmAnd/res/layout/zoom_levels_with_descr.xml @@ -10,6 +10,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" + android:layout_marginRight="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding" android:layout_marginBottom="@dimen/content_padding" android:lineSpacingExtra="@dimen/line_spacing_extra_description" @@ -21,6 +23,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" + android:paddingLeft="@dimen/content_padding" + android:paddingRight="@dimen/content_padding" android:paddingStart="@dimen/content_padding" android:paddingTop="@dimen/content_padding" android:paddingEnd="@dimen/content_padding"> @@ -52,6 +56,8 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" + android:paddingLeft="@dimen/content_padding" + android:paddingRight="@dimen/content_padding" android:paddingStart="@dimen/content_padding" android:paddingEnd="@dimen/content_padding"> @@ -91,6 +97,8 @@ android:id="@+id/dialog_descr" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginRight="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" android:layout_marginStart="@dimen/content_padding" android:layout_marginEnd="@dimen/content_padding" android:layout_marginBottom="@dimen/content_padding" From ba9fa6250a8798f98fc51df33803dda27e2cbb0e Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Tue, 16 Jun 2020 13:49:07 +0300 Subject: [PATCH 033/300] Fix review --- ...ttom_sheet_item_edit_with_recyclerview.xml | 31 ------ .../VehicleParametersBottomSheet.java | 96 +++++++++++-------- 2 files changed, 57 insertions(+), 70 deletions(-) diff --git a/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml b/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml index d8844d7eeb..c851367c7c 100644 --- a/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml +++ b/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml @@ -101,7 +101,6 @@ android:paddingRight="@dimen/content_padding_small" android:paddingEnd="@dimen/content_padding_small" android:paddingLeft="@dimen/content_padding_small" - android:textColor="?android:textColorSecondary" android:text="@string/shared_string_meters" /> </FrameLayout> @@ -120,34 +119,4 @@ osmand:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" tools:itemCount="3" tools:listitem="@layout/point_editor_icon_category_item" /> - - <LinearLayout - android:id="@+id/buttons_container_scroll" - android:layout_width="match_parent" - android:layout_height="@dimen/dialog_button_ex_height" - android:gravity="center" - android:layout_gravity="bottom" - android:orientation="horizontal" - android:paddingLeft="@dimen/content_padding" - android:paddingRight="@dimen/content_padding" - android:paddingEnd="@dimen/content_padding" - android:paddingStart="@dimen/content_padding"> - - <include - android:id="@+id/dismiss_button" - layout="@layout/bottom_sheet_dialog_button" /> - - <View - android:id="@+id/buttons_divider" - android:layout_width="@dimen/content_padding" - android:layout_height="match_parent" - tools:visibility="visible" /> - - <include - android:id="@+id/right_bottom_button" - layout="@layout/bottom_sheet_dialog_button" - tools:visibility="visible" /> - - </LinearLayout> - </LinearLayout> diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java index 5884fc2ff2..b0024483af 100644 --- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java @@ -1,11 +1,16 @@ package net.osmand.plus.settings.bottomsheets; import android.annotation.SuppressLint; +import android.graphics.Rect; +import android.os.Build; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; +import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; import android.widget.EditText; import android.widget.ImageView; import android.widget.ScrollView; @@ -17,6 +22,7 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.recyclerview.widget.RecyclerView; +import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; @@ -39,6 +45,8 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { public static final String TAG = VehicleParametersBottomSheet.class.getSimpleName(); private String selectedItem; private float currentValue; + private int contentHeightPrevious = 0; + private EditText text; @Override public void createMenuItems(Bundle savedInstanceState) { @@ -49,15 +57,14 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { items.add(createBottomSheetItem(app)); } + @SuppressLint("ClickableViewAccessibility") private BaseBottomSheetItem createBottomSheetItem(OsmandApplication app) { final SizePreference preference = (SizePreference) getPreference(); View mainView = UiUtilities.getMaterialInflater(getContext(), nightMode) .inflate(R.layout.bottom_sheet_item_edit_with_recyclerview, null); - String key = preference.getKey(); TextView title = mainView.findViewById(R.id.title); title.setText(preference.getTitle().toString()); - String parameterName = key.substring(key.lastIndexOf("_") + 1); - VehicleSizeAssets vehicleSizeAssets = VehicleSizeAssets.getAssets(parameterName); + VehicleSizeAssets vehicleSizeAssets = preference.getAssets(); if (vehicleSizeAssets != null) { ImageView imageView = mainView.findViewById(R.id.image_view); imageView.setImageDrawable(app.getUIUtilities() @@ -69,7 +76,7 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { final TextView metric = mainView.findViewById(R.id.metric); metric.setText(app.getString(preference.getAssets().getMetricRes())); final RecyclerView recyclerView = mainView.findViewById(R.id.recycler_view); - final EditText text = mainView.findViewById(R.id.text_edit); + text = mainView.findViewById(R.id.text_edit); try { currentValue = Float.parseFloat(preference.getValue()); } catch (NumberFormatException e) { @@ -79,6 +86,15 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { String currentValueStr = currentValue == 0.0f ? "" : String.valueOf(currentValue + 0.01f); text.setText(currentValueStr); + text.clearFocus(); + text.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + text.onTouchEvent(event); + text.setSelection(text.getText().length()); + return true; + } + }); text.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { @@ -116,54 +132,56 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { currentValue = preference.getValueFromEntries(selectedItem); String currentValueStr = currentValue == 0.0f ? "" : String.valueOf(currentValue + 0.01f); text.setText(currentValueStr); + if (text.hasFocus()) { + text.setSelection(text.getText().length()); + } adapter.notifyDataSetChanged(); } }); recyclerView.setAdapter(adapter); adapter.setSelectedItem(selectedItem); - - rightButton = mainView.findViewById(R.id.right_bottom_button); - UiUtilities.setupDialogButton(nightMode, rightButton, getRightBottomButtonType(), getRightBottomButtonTextId()); - rightButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - onRightBottomButtonClick(); - } - }); - return new BaseBottomSheetItem.Builder() .setCustomView(mainView) .create(); } - @SuppressLint("ClickableViewAccessibility") + @Nullable @Override - public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - final ScrollView scrollView = view.findViewById(R.id.scroll_view); - final EditText text = view.findViewById(R.id.text_edit); - text.clearFocus(); - text.setOnTouchListener(new View.OnTouchListener() { - @Override - public boolean onTouch(View v, MotionEvent event) { - text.onTouchEvent(event); - text.setSelection(text.getText().length()); - scrollView.postDelayed(new Runnable() { - public void run() { - View lastChild = scrollView.getChildAt(scrollView.getChildCount() - 1); - int bottom = lastChild.getBottom() + scrollView.getPaddingBottom(); - int delta = bottom - (scrollView.getScrollY() + scrollView.getHeight()); - scrollView.scrollBy(0, delta); - } - }, 100); - return true; - } - }); + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { + final View view = super.onCreateView(inflater, parent, savedInstanceState); + view.getViewTreeObserver().addOnGlobalLayoutListener(getOnGlobalLayoutListener()); + return view; } - @Override - protected boolean hideButtonsContainer() { - return true; + private ViewTreeObserver.OnGlobalLayoutListener getOnGlobalLayoutListener() { + final int buttonsHeight = getResources().getDimensionPixelSize(R.dimen.dialog_button_ex_height); + final int shadowHeight = AndroidUtils.dpToPx(getContext(), 8); + final int statusBarHeight = AndroidUtils.getStatusBarHeight(getContext()); + return new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + Rect visibleDisplayFrame = new Rect(); + final ScrollView scrollView = getView().findViewById(R.id.scroll_view); + scrollView.getWindowVisibleDisplayFrame(visibleDisplayFrame); + int contentHeight = visibleDisplayFrame.bottom - visibleDisplayFrame.top - buttonsHeight + - shadowHeight - statusBarHeight; + if (contentHeightPrevious != contentHeight) { + if (scrollView.getHeight() > contentHeight) { + scrollView.getLayoutParams().height = contentHeight; + } else { + scrollView.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT; + } + scrollView.requestLayout(); + int delay = Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP ? 300 : 1000; + scrollView.postDelayed(new Runnable() { + public void run() { + scrollView.scrollTo(0, scrollView.getHeight()); + } + }, delay); + contentHeightPrevious = contentHeight; + } + } + }; } @Override From be7bbd0d65eb774ef30f5becbfeb61bbf7aaed52 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Tue, 16 Jun 2020 14:32:02 +0300 Subject: [PATCH 034/300] Fix rtl --- OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml b/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml index c851367c7c..a03fa1879d 100644 --- a/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml +++ b/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml @@ -96,7 +96,7 @@ android:id="@+id/metric" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_vertical" + android:layout_gravity="start|center_vertical" android:paddingStart="@dimen/content_padding_small" android:paddingRight="@dimen/content_padding_small" android:paddingEnd="@dimen/content_padding_small" From 1dd909b115972032b906cc698125970639f13a76 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Tue, 16 Jun 2020 18:28:35 +0300 Subject: [PATCH 035/300] refactoring pr --- .../main/java/net/osmand/osm/MapPoiTypes.java | 5 +- .../java/net/osmand/search/SearchUICore.java | 6 +- .../layout/preference_switch_with_alert.xml | 61 -------------- OsmAnd/res/xml/global_settings.xml | 3 +- OsmAnd/res/xml/screen_alerts.xml | 10 ++- OsmAnd/res/xml/voice_announces.xml | 10 ++- .../access/AccessibilitySettingsFragment.java | 25 +----- .../src/net/osmand/plus/AppInitializer.java | 3 + OsmAnd/src/net/osmand/plus/UiUtilities.java | 55 +++++-------- .../osmand/plus/activities/MapActivity.java | 3 - .../audionotes/MultimediaNotesFragment.java | 19 +---- .../plus/dialogs/SpeedCamerasBottomSheet.java | 40 ++++----- .../mapsource/InputZoomLevelsBottomSheet.java | 20 +---- .../quickaction/QuickActionListFragment.java | 2 +- .../search/QuickSearchDialogFragment.java | 2 +- .../osmand/plus/search/QuickSearchHelper.java | 8 +- .../plus/settings/backend/OsmandSettings.java | 4 +- .../fragments/BaseSettingsFragment.java | 31 ++++++- .../fragments/GlobalSettingsFragment.java | 36 ++++---- .../fragments/ImportCompleteFragment.java | 3 +- .../fragments/ImportDuplicatesFragment.java | 3 +- .../fragments/ImportSettingsFragment.java | 3 +- .../fragments/ScreenAlertsFragment.java | 82 +++++-------------- .../fragments/VoiceAnnouncesFragment.java | 36 +++++--- 24 files changed, 174 insertions(+), 296 deletions(-) delete mode 100644 OsmAnd/res/layout/preference_switch_with_alert.xml diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java index 7b719ab158..d0c941a898 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java @@ -947,9 +947,8 @@ public class MapPoiTypes { } public void excludeSpeedCameraPoiType() { - Iterator<PoiCategory> categoryIter = categories.iterator(); - while (categoryIter.hasNext()) { - Iterator<PoiType> poiIter = categoryIter.next().getPoiTypes().iterator(); + for (PoiCategory category : categories) { + Iterator<PoiType> poiIter = category.getPoiTypes().iterator(); while (poiIter.hasNext()) { PoiType poiType = poiIter.next(); if ("speed_camera".equals(poiType.getKeyName())) { diff --git a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java index 8aab2a9103..1143a2965b 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java @@ -657,7 +657,7 @@ public class SearchUICore { private List<MapObject> exportedObjects; private List<City> exportedCities; - private static boolean speedCamerasUninstalled = false; + public static boolean speedCamerasUninstalled = false; public SearchResultMatcher(ResultMatcher<SearchResult> matcher, SearchPhrase phrase, int request, AtomicInteger requestNumber, int totalLimit) { @@ -902,10 +902,6 @@ public class SearchUICore { } return "speed_camera".equals(key); } - - public static void setSpeedCamerasUninstalled(boolean speedCamerasUninstalled) { - SearchResultMatcher.speedCamerasUninstalled = speedCamerasUninstalled; - } } private enum ResultCompareStep { diff --git a/OsmAnd/res/layout/preference_switch_with_alert.xml b/OsmAnd/res/layout/preference_switch_with_alert.xml deleted file mode 100644 index cdf10c32a6..0000000000 --- a/OsmAnd/res/layout/preference_switch_with_alert.xml +++ /dev/null @@ -1,61 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <include layout="@layout/preference_switch" /> - - <LinearLayout - android:id="@+id/alert_bg" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="@dimen/content_padding_half" - android:gravity="center_vertical" - android:orientation="horizontal" - tools:background="?attr/activity_background_basic"> - - <ImageView - android:id="@+id/alert_icon" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/bottom_sheet_image_text_margin_start" - android:layout_marginLeft="@dimen/bottom_sheet_image_text_margin_start" - android:layout_marginEnd="@dimen/content_padding" - android:layout_marginRight="@dimen/content_padding" - tools:src="@drawable/ic_action_alert" - tools:tint="@color/icon_color_default_dark" /> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/content_padding" - android:layout_marginLeft="@dimen/content_padding" - android:layout_marginTop="@dimen/content_padding_small" - android:layout_marginEnd="@dimen/content_padding" - android:layout_marginRight="@dimen/content_padding" - android:layout_marginBottom="@dimen/content_padding_small" - android:orientation="vertical"> - - <TextView - android:id="@+id/alert_title" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="@dimen/content_padding_small" - android:textColor="?android:textColorPrimary" - android:textSize="@dimen/default_list_text_size" - tools:text="@string/speed_cameras_alert" /> - - <TextView - android:id="@+id/alert_subtitle" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:textSize="@dimen/default_list_text_size" - tools:text="@string/read_more" /> - - </LinearLayout> - - </LinearLayout> - -</LinearLayout> \ No newline at end of file diff --git a/OsmAnd/res/xml/global_settings.xml b/OsmAnd/res/xml/global_settings.xml index b323527a39..4cbc10ef0d 100644 --- a/OsmAnd/res/xml/global_settings.xml +++ b/OsmAnd/res/xml/global_settings.xml @@ -66,7 +66,8 @@ android:title="@string/shared_string_legal" /> <Preference - android:key="uninstall_speed_cameras" + android:key="speed_cameras_uninstalled" + android:persistent="false" android:layout="@layout/preference_with_descr" android:title="@string/uninstall_speed_cameras" tools:icon="@drawable/ic_speed_camera_disabled" /> diff --git a/OsmAnd/res/xml/screen_alerts.xml b/OsmAnd/res/xml/screen_alerts.xml index c0c0219ab8..ca963a5927 100644 --- a/OsmAnd/res/xml/screen_alerts.xml +++ b/OsmAnd/res/xml/screen_alerts.xml @@ -28,9 +28,17 @@ <SwitchPreferenceCompat android:key="show_cameras" - android:layout="@layout/preference_switch_with_alert" + android:layout="@layout/preference_switch" android:title="@string/show_cameras" /> + <Preference + android:key="speed_cameras_uninstalled" + android:layout="@layout/preference_permission" + android:persistent="false" + android:summary="@string/read_more" + android:title="@string/speed_cameras_alert" + tools:icon="@drawable/ic_action_alert" /> + <SwitchPreferenceCompat android:key="show_tunnels" android:layout="@layout/preference_switch" diff --git a/OsmAnd/res/xml/voice_announces.xml b/OsmAnd/res/xml/voice_announces.xml index 724d6afb37..df7d47b8c3 100644 --- a/OsmAnd/res/xml/voice_announces.xml +++ b/OsmAnd/res/xml/voice_announces.xml @@ -46,9 +46,17 @@ <SwitchPreferenceCompat android:key="speak_cameras" - android:layout="@layout/preference_switch_with_alert" + android:layout="@layout/preference_switch" android:title="@string/speak_cameras" /> + <Preference + android:key="speed_cameras_uninstalled" + android:layout="@layout/preference_permission" + android:persistent="false" + android:summary="@string/read_more" + android:title="@string/speed_cameras_alert" + tools:icon="@drawable/ic_action_alert" /> + <SwitchPreferenceCompat android:key="speak_tunnels" android:layout="@layout/preference_switch" diff --git a/OsmAnd/src/net/osmand/access/AccessibilitySettingsFragment.java b/OsmAnd/src/net/osmand/access/AccessibilitySettingsFragment.java index 3f99fddd46..781a10bf41 100644 --- a/OsmAnd/src/net/osmand/access/AccessibilitySettingsFragment.java +++ b/OsmAnd/src/net/osmand/access/AccessibilitySettingsFragment.java @@ -2,27 +2,20 @@ package net.osmand.access; import android.content.Context; import android.content.Intent; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.LayerDrawable; -import android.os.Build; import android.os.Bundle; import android.provider.Settings; -import android.view.View; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener; import android.widget.ImageView; -import android.widget.LinearLayout; import androidx.fragment.app.FragmentManager; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceViewHolder; -import net.osmand.AndroidUtils; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; -import net.osmand.plus.UiUtilities; import net.osmand.plus.access.AccessibilityMode; import net.osmand.plus.access.RelativeDirectionStyle; import net.osmand.plus.monitoring.OsmandMonitoringPlugin; @@ -215,23 +208,7 @@ public class AccessibilitySettingsFragment extends BaseSettingsFragment implemen super.onBindPreferenceViewHolder(preference, holder); String prefId = preference.getKey(); if (ACCESSIBILITY_OPTIONS.equals(prefId)) { - View selectableView = holder.itemView.findViewById(R.id.selectable_list_item); - if (selectableView != null) { - int color = AndroidUtils.getColorFromAttr(app, R.attr.activity_background_color); - int selectedColor = UiUtilities.getColorWithAlpha(getActiveProfileColor(), 0.3f); - - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { - Drawable bgDrawable = getPaintedIcon(R.drawable.rectangle_rounded, color); - Drawable selectable = getPaintedIcon(R.drawable.ripple_rectangle_rounded, selectedColor); - Drawable[] layers = {bgDrawable, selectable}; - AndroidUtils.setBackground(selectableView, new LayerDrawable(layers)); - } else { - Drawable bgDrawable = getPaintedIcon(R.drawable.rectangle_rounded, color); - AndroidUtils.setBackground(selectableView, bgDrawable); - } - LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) selectableView.getLayoutParams(); - params.setMargins(params.leftMargin, AndroidUtils.dpToPx(app, 6), params.rightMargin, params.bottomMargin); - } + setupPrefRoundedBg(holder); } else if (settings.ACCESSIBILITY_MODE.getId().equals(prefId)) { ImageView imageView = (ImageView) holder.findViewById(android.R.id.icon); if (imageView != null) { diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java index c39fe3a9d5..e07399832c 100644 --- a/OsmAnd/src/net/osmand/plus/AppInitializer.java +++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java @@ -406,6 +406,9 @@ public class AppInitializer implements IProgress { return null; } }); + if (app.getSettings().SPEED_CAMERAS_UNINSTALLED.get()) { + app.getPoiTypes().excludeSpeedCameraPoiType(); + } } public void onCreateApplication() { diff --git a/OsmAnd/src/net/osmand/plus/UiUtilities.java b/OsmAnd/src/net/osmand/plus/UiUtilities.java index 0f817aac35..3c24dff20a 100644 --- a/OsmAnd/src/net/osmand/plus/UiUtilities.java +++ b/OsmAnd/src/net/osmand/plus/UiUtilities.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import android.content.res.ColorStateList; import android.graphics.Color; +import android.graphics.Typeface; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; @@ -639,44 +640,32 @@ public class UiUtilities { } } - public static SpannableString createSpannableString(@NonNull String text, @NonNull String textToStyle, @NonNull StyleSpan styleSpan) { - SpannableString spannable = new SpannableString(text); - try { - int startIndex = text.indexOf(textToStyle); - spannable.setSpan( - styleSpan, - startIndex, - startIndex + textToStyle.length(), - Spanned.SPAN_INCLUSIVE_INCLUSIVE); - return spannable; - } catch (RuntimeException e) { - LOG.error("Error trying to find index of " + textToStyle + " " + e); - return spannable; - } - } - - public static SpannableString setWordsMediumFont(@NonNull Context ctx, @NonNull String text, @NonNull String... textToStyle) { + public static SpannableString createSpannableString(@NonNull String text, @NonNull StyleSpan styleSpan, @NonNull String... textToStyle) { SpannableString spannable = new SpannableString(text); for (String t : textToStyle) { - try { - int startIndex = text.indexOf(t); - spannable.setSpan( - new CustomTypefaceSpan(FontCache.getRobotoMedium(ctx)), - startIndex, - startIndex + t.length(), - Spanned.SPAN_INCLUSIVE_INCLUSIVE); - } catch (RuntimeException e) { - LOG.error("Error trying to find index of " + t + " " + e); - } + setSpan(spannable, styleSpan, text, t); } return spannable; } - public static GradientDrawable getRoundedBackgroundDrawable(@NonNull Context context, @ColorRes int colorRes, int radius) { - int r = AndroidUtils.dpToPx(context, radius); - GradientDrawable background = new GradientDrawable(); - background.setColor(ContextCompat.getColor(context, colorRes)); - background.setCornerRadius(r); - return background; + private static void setSpan(@NonNull SpannableString spannable, @NonNull Object styleSpan, @NonNull String text, @NonNull String t) { + try { + int startIndex = text.indexOf(t); + spannable.setSpan( + styleSpan, + startIndex, + startIndex + t.length(), + Spanned.SPAN_INCLUSIVE_INCLUSIVE); + } catch (RuntimeException e) { + LOG.error("Error trying to find index of " + t + " " + e); + } + } + + public static SpannableString createCustomFontSpannable(@NonNull Typeface typeface, @NonNull String text, @NonNull String... textToStyle) { + SpannableString spannable = new SpannableString(text); + for (String s : textToStyle) { + setSpan(spannable, new CustomTypefaceSpan(typeface), text, s); + } + return spannable; } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 476768dc6e..9bc9d3e24b 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -389,9 +389,6 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven lockHelper.setLockUIAdapter(this); mIsDestroyed = false; - if (settings.SPEED_CAMERAS_UNINSTALLED.get()) { - app.getPoiTypes().excludeSpeedCameraPoiType(); - } } public void exitFromFullScreen(View view) { diff --git a/OsmAnd/src/net/osmand/plus/audionotes/MultimediaNotesFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/MultimediaNotesFragment.java index 1741f768b3..6996f7ee5b 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/MultimediaNotesFragment.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/MultimediaNotesFragment.java @@ -6,7 +6,6 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Typeface; import android.graphics.drawable.Drawable; -import android.graphics.drawable.LayerDrawable; import android.hardware.Camera; import android.media.CamcorderProfile; import android.media.MediaRecorder; @@ -14,7 +13,6 @@ import android.os.Build; import android.os.Bundle; import android.os.StatFs; import android.text.SpannableString; -import android.view.View; import androidx.annotation.NonNull; import androidx.core.app.ActivityCompat; @@ -28,7 +26,6 @@ import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.OsmAndAppCustomization; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; -import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.helpers.FontCache; import net.osmand.plus.profiles.SelectCopyAppModeBottomSheet; @@ -466,21 +463,7 @@ public class MultimediaNotesFragment extends BaseSettingsFragment implements Cop super.onBindPreferenceViewHolder(preference, holder); String prefId = preference.getKey(); if (CAMERA_PERMISSION.equals(prefId)) { - View selectableView = holder.itemView.findViewById(R.id.selectable_list_item); - if (selectableView != null) { - int color = AndroidUtils.getColorFromAttr(app, R.attr.activity_background_color); - int selectedColor = UiUtilities.getColorWithAlpha(getActiveProfileColor(), 0.3f); - - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { - Drawable bgDrawable = getPaintedIcon(R.drawable.rectangle_rounded, color); - Drawable selectable = getPaintedIcon(R.drawable.ripple_rectangle_rounded, selectedColor); - Drawable[] layers = {bgDrawable, selectable}; - AndroidUtils.setBackground(selectableView, new LayerDrawable(layers)); - } else { - Drawable bgDrawable = getPaintedIcon(R.drawable.rectangle_rounded, color); - AndroidUtils.setBackground(selectableView, bgDrawable); - } - } + setupPrefRoundedBg(holder); } else if (OPEN_NOTES_DESCRIPTION.equals(prefId)) { int minHeight = getResources().getDimensionPixelSize(R.dimen.bottom_sheet_list_item_height); holder.itemView.setMinimumHeight(minHeight); diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java index 27b59e97a2..fbf64a8d29 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java @@ -17,12 +17,18 @@ import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.base.MenuBottomSheetDialogFragment; import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; +import net.osmand.plus.helpers.FontCache; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.OsmandPreference; +import net.osmand.plus.settings.fragments.OnPreferenceChanged; +import net.osmand.plus.widgets.style.CustomTypefaceSpan; import net.osmand.search.SearchUICore.SearchResultMatcher; public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { public static final String TAG = SpeedCamerasBottomSheet.class.getName(); private OsmandApplication app; + private OsmandSettings settings; public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment) { if (!fm.isStateSaved()) { @@ -36,22 +42,17 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); app = requiredMyApplication(); + settings = app.getSettings(); } @Override public void createMenuItems(Bundle savedInstanceState) { View root = UiUtilities.getInflater(app, nightMode).inflate(R.layout.bottom_sheet_speed_cameras, null); - ((ImageView) root.findViewById(R.id.icon)).setImageDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.img_speed_camera_warning)); + ((ImageView) root.findViewById(R.id.icon)).setImageDrawable(ContextCompat.getDrawable(app, R.drawable.img_speed_camera_warning)); ((TextView) root.findViewById(R.id.description)).setText(getDescriptionText()); items.add(new BaseBottomSheetItem.Builder().setCustomView(root).create()); } - @Override - public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - UiUtilities.setupDialogButton(nightMode, rightButton, getDismissButtonType(), R.string.keep_active); - } - @Override protected void onRightBottomButtonClick() { setDialogShowed(); @@ -60,17 +61,17 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { @Override protected void onDismissButtonClickAction() { - app.getSettings().SPEED_CAMERAS_UNINSTALLED.set(true); - app.getSettings().SPEAK_SPEED_CAMERA.set(false); - app.getSettings().SHOW_CAMERAS.set(false); + OsmandPreference<Boolean> speedCamUninstalled = settings.SPEED_CAMERAS_UNINSTALLED; + speedCamUninstalled.set(true); + settings.SPEAK_SPEED_CAMERA.set(false); + settings.SHOW_CAMERAS.set(false); app.getPoiTypes().excludeSpeedCameraPoiType(); - SearchResultMatcher.setSpeedCamerasUninstalled(true); + SearchResultMatcher.speedCamerasUninstalled = true; Fragment targetFragment = getTargetFragment(); - if (targetFragment instanceof OnSpeedCamerasUninstallListener) { - ((OnSpeedCamerasUninstallListener) targetFragment).onSpeedCamerasUninstalled(); + if (targetFragment instanceof OnPreferenceChanged) { + ((OnPreferenceChanged) targetFragment).onPreferenceChanged(speedCamUninstalled.getId()); } setDialogShowed(); - dismiss(); } @Override @@ -83,18 +84,19 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { return R.string.keep_active; } + @Override + protected UiUtilities.DialogButtonType getRightBottomButtonType() { + return getDismissButtonType(); + } + private SpannableString getDescriptionText() { String keepActive = getString(R.string.keep_active); String uninstall = getString(R.string.shared_string_uninstall); String text = getString(R.string.speed_cameras_legal_descr, keepActive, uninstall); - return UiUtilities.setWordsMediumFont(app, text, keepActive, uninstall); + return UiUtilities.createCustomFontSpannable(FontCache.getRobotoMedium(app), text, keepActive, uninstall); } private void setDialogShowed() { app.getSettings().SPEED_CAMERAS_ALERT_SHOWED.set(true); } - - public interface OnSpeedCamerasUninstallListener { - void onSpeedCamerasUninstalled(); - } } diff --git a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java index 3f44454f22..8cf8f99444 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/InputZoomLevelsBottomSheet.java @@ -3,6 +3,7 @@ package net.osmand.plus.mapsource; import android.os.Bundle; import android.text.SpannableString; import android.text.Spanned; +import android.text.style.StyleSpan; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; @@ -81,7 +82,7 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { String mapSource = getString(R.string.map_source); String overlayUnderlay = getString(R.string.pref_overlay); String dialogDesr = getString(dialogDescrRes, mapSource, overlayUnderlay); - dialogDescrTv.setText(createSpannableString(dialogDesr, mapSource, overlayUnderlay)); + dialogDescrTv.setText(UiUtilities.createCustomFontSpannable(FontCache.getRobotoMedium(app), dialogDesr, mapSource, overlayUnderlay)); } else { dialogDescrTv.setText(getString(dialogDescrRes)); } @@ -155,23 +156,6 @@ public class InputZoomLevelsBottomSheet extends MenuBottomSheetDialogFragment { return R.string.shared_string_apply; } - private SpannableString createSpannableString(@NonNull String text, @NonNull String... textToStyle) { - SpannableString spannable = new SpannableString(text); - for (String t : textToStyle) { - try { - int startIndex = text.indexOf(t); - spannable.setSpan( - new CustomTypefaceSpan(FontCache.getRobotoMedium(requireContext())), - startIndex, - startIndex + t.length(), - Spanned.SPAN_INCLUSIVE_INCLUSIVE); - } catch (RuntimeException e) { - LOG.error("Error trying to find index of " + t + " " + e); - } - } - return spannable; - } - private void setSliderDescrRes(int sliderDescrRes) { this.sliderDescrRes = sliderDescrRes; } diff --git a/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java b/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java index 8bb543ef16..b32addf136 100644 --- a/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java +++ b/OsmAnd/src/net/osmand/plus/quickaction/QuickActionListFragment.java @@ -890,7 +890,7 @@ public class QuickActionListFragment extends BaseOsmAndFragment String message = String.format(ctx.getString( R.string.quick_actions_delete_text), actionName); SpannableString styledMessage = UiUtilities.createSpannableString( - message, actionName, new StyleSpan(Typeface.BOLD)); + message, new StyleSpan(Typeface.BOLD), actionName); ConfirmationBottomSheet.showInstance(ctx.getSupportFragmentManager(), target, ctx.getString(R.string.quick_actions_delete), styledMessage, diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java index 673af0c9e1..022cbb8468 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java @@ -1256,7 +1256,7 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC //show "Apply to all profiles" SnackBar String modeName = appMode.toHumanString(); String text = app.getString(R.string.changes_applied_to_profile, modeName); - SpannableString message = UiUtilities.createSpannableString(text, modeName, new StyleSpan(Typeface.BOLD)); + SpannableString message = UiUtilities.createSpannableString(text, new StyleSpan(Typeface.BOLD), modeName); Snackbar snackbar = Snackbar.make(containerView, message, Snackbar.LENGTH_LONG) .setAction(R.string.apply_to_all_profiles, new View.OnClickListener() { @Override diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java index ad87af9077..0878f0a37c 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java @@ -29,6 +29,7 @@ import net.osmand.plus.poi.NominatimPoiFilter; import net.osmand.plus.poi.PoiFiltersHelper; import net.osmand.plus.poi.PoiUIFilter; import net.osmand.plus.resources.ResourceManager.ResourceListener; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarController; import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarControllerType; import net.osmand.search.SearchUICore; @@ -65,10 +66,11 @@ public class QuickSearchHelper implements ResourceListener { public QuickSearchHelper(OsmandApplication app) { this.app = app; - core = new SearchUICore(app.getPoiTypes(), app.getSettings().MAP_PREFERRED_LOCALE.get(), - app.getSettings().MAP_TRANSLITERATE_NAMES.get()); + OsmandSettings settings = app.getSettings(); + core = new SearchUICore(app.getPoiTypes(), settings.MAP_PREFERRED_LOCALE.get(), + settings.MAP_TRANSLITERATE_NAMES.get()); app.getResourceManager().addResourceListener(this); - SearchResultMatcher.setSpeedCamerasUninstalled(app.getSettings().SPEED_CAMERAS_UNINSTALLED.get()); + SearchResultMatcher.speedCamerasUninstalled = settings.SPEED_CAMERAS_UNINSTALLED.get(); } public SearchUICore getCore() { diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java index 532dd0a245..ab296c4a3f 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java @@ -2108,8 +2108,8 @@ public class OsmandSettings { public final OsmandPreference<Boolean> SPEAK_SPEED_CAMERA = new BooleanPreference("speak_cameras", false).makeProfile().cache(); public final OsmandPreference<Boolean> SPEAK_TUNNELS = new BooleanPreference("speak_tunnels", false).makeProfile().cache(); - public final OsmandPreference<Boolean> SPEED_CAMERAS_UNINSTALLED = new BooleanPreference("speed_cameras_uninstalled", false).makeGlobal().cache(); - public final OsmandPreference<Boolean> SPEED_CAMERAS_ALERT_SHOWED = new BooleanPreference("speed_cameras_alert_showed", false).makeGlobal().cache(); + public final OsmandPreference<Boolean> SPEED_CAMERAS_UNINSTALLED = new BooleanPreference("speed_cameras_uninstalled", false).makeGlobal(); + public final OsmandPreference<Boolean> SPEED_CAMERAS_ALERT_SHOWED = new BooleanPreference("speed_cameras_alert_showed", false).makeGlobal(); public final OsmandPreference<Boolean> ANNOUNCE_WPT = new BooleanPreference("announce_wpt", true) { @Override diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java index d0ed8f7515..f0da066fbe 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/BaseSettingsFragment.java @@ -16,6 +16,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.CompoundButton; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.ColorInt; @@ -923,14 +924,40 @@ public abstract class BaseSettingsFragment extends PreferenceFragmentCompat impl } } - protected void applyPreferenceWithSnackBar(final String prefId, final Serializable newValue) { + public void setupSpeedCamerasAlert() { + Preference speedCamerasAlert = findPreference(settings.SPEED_CAMERAS_UNINSTALLED.getId()); + speedCamerasAlert.setIcon(getContentIcon(R.drawable.ic_action_alert)); + speedCamerasAlert.setVisible(!settings.SPEED_CAMERAS_UNINSTALLED.get()); + } + + public void setupPrefRoundedBg(PreferenceViewHolder holder) { + View selectableView = holder.itemView.findViewById(R.id.selectable_list_item); + if (selectableView != null) { + int color = AndroidUtils.getColorFromAttr(app, R.attr.activity_background_color); + int selectedColor = UiUtilities.getColorWithAlpha(getActiveProfileColor(), 0.3f); + + Drawable bgDrawable = getPaintedIcon(R.drawable.rectangle_rounded, color); + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { + Drawable selectable = getPaintedIcon(R.drawable.ripple_rectangle_rounded, selectedColor); + Drawable[] layers = {bgDrawable, selectable}; + AndroidUtils.setBackground(selectableView, new LayerDrawable(layers)); + } else { + AndroidUtils.setBackground(selectableView, bgDrawable); + } + LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) selectableView.getLayoutParams(); + params.setMargins(params.leftMargin, AndroidUtils.dpToPx(app, 6), params.rightMargin, params.bottomMargin); + } + } + + protected void applyPreferenceWithSnackBar(final String prefId, + final Serializable newValue) { onApplyPreferenceChange(prefId, false, newValue); updateSetting(prefId); View containerView = getView(); if (containerView != null) { String modeName = appMode.toHumanString(); String text = app.getString(R.string.changes_applied_to_profile, modeName); - SpannableString message = UiUtilities.createSpannableString(text, modeName, new StyleSpan(Typeface.BOLD)); + SpannableString message = UiUtilities.createSpannableString(text, new StyleSpan(Typeface.BOLD), modeName); Snackbar snackbar = Snackbar.make(containerView, message, Snackbar.LENGTH_LONG) .setAction(R.string.apply_to_all_profiles, new View.OnClickListener() { @Override diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java index 8896c159b9..9f3a6439aa 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java @@ -17,7 +17,6 @@ import net.osmand.plus.activities.SettingsGeneralActivity; import net.osmand.plus.dialogs.SendAnalyticsBottomSheetDialogFragment; import net.osmand.plus.dialogs.SendAnalyticsBottomSheetDialogFragment.OnSendAnalyticsPrefsUpdate; import net.osmand.plus.dialogs.SpeedCamerasBottomSheet; -import net.osmand.plus.dialogs.SpeedCamerasBottomSheet.OnSpeedCamerasUninstallListener; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.preferences.ListPreferenceEx; @@ -25,19 +24,14 @@ import net.osmand.plus.settings.preferences.SwitchPreferenceEx; public class GlobalSettingsFragment extends BaseSettingsFragment - implements OnSendAnalyticsPrefsUpdate, OnPreferenceChanged, - OnSpeedCamerasUninstallListener { + implements OnSendAnalyticsPrefsUpdate, OnPreferenceChanged { public static final String TAG = GlobalSettingsFragment.class.getSimpleName(); private static final String SEND_ANONYMOUS_DATA_PREF_ID = "send_anonymous_data"; private static final String DIALOGS_AND_NOTIFICATIONS_PREF_ID = "dialogs_and_notifications"; - private static final String UNINSTALL_SPEED_CAMERAS_PREF_ID = "uninstall_speed_cameras"; private static final String LEGAL_CATEGORY_ID = "legal"; - private Preference uninstallSpeedCameras; - private PreferenceCategory legalCategory; - @Override protected void setupPreferences() { setupDefaultAppModePref(); @@ -47,12 +41,8 @@ public class GlobalSettingsFragment extends BaseSettingsFragment setupSendAnonymousDataPref(); setupDialogsAndNotificationsPref(); setupEnableProxyPref(); - legalCategory = (PreferenceCategory) findPreference(LEGAL_CATEGORY_ID); - uninstallSpeedCameras = (Preference) findPreference(UNINSTALL_SPEED_CAMERAS_PREF_ID); - uninstallSpeedCameras.setIcon(getPersistentPrefIcon(R.drawable.ic_speed_camera_disabled)); - if (settings.SPEED_CAMERAS_UNINSTALLED.get()) { - onSpeedCamerasUninstalled(); - } + setupLegalCategory(); + setupUninstallSpeedCamerasPref(); } @Override @@ -117,6 +107,9 @@ public class GlobalSettingsFragment extends BaseSettingsFragment app.checkPreferredLocale(); app.restartApp(activity); } + } else if (prefId.equals(settings.SPEED_CAMERAS_UNINSTALLED.getId())) { + setupLegalCategory(); + setupUninstallSpeedCamerasPref(); } } @@ -128,7 +121,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment @Override public boolean onPreferenceClick(Preference preference) { String prefId = preference.getKey(); - if (UNINSTALL_SPEED_CAMERAS_PREF_ID.equals(prefId)) { + if (settings.SPEED_CAMERAS_UNINSTALLED.getId().equals(prefId)) { FragmentManager fm = getFragmentManager(); if (fm != null) { SpeedCamerasBottomSheet.showInstance(fm, this); @@ -221,11 +214,14 @@ public class GlobalSettingsFragment extends BaseSettingsFragment enableProxy.setIcon(getPersistentPrefIcon(R.drawable.ic_action_proxy)); } - @Override - public void onSpeedCamerasUninstalled() { - if (uninstallSpeedCameras != null && legalCategory != null) { - uninstallSpeedCameras.setVisible(false); - legalCategory.setVisible(false); - } + private void setupLegalCategory() { + PreferenceCategory legalCategory = (PreferenceCategory) findPreference(LEGAL_CATEGORY_ID); + legalCategory.setVisible(!settings.SPEED_CAMERAS_UNINSTALLED.get()); + } + + private void setupUninstallSpeedCamerasPref() { + Preference uninstallSpeedCameras = (Preference) findPreference(settings.SPEED_CAMERAS_UNINSTALLED.getId()); + uninstallSpeedCameras.setIcon(getActiveIcon(R.drawable.ic_speed_camera_disabled)); + uninstallSpeedCameras.setVisible(!settings.SPEED_CAMERAS_UNINSTALLED.get()); } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportCompleteFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportCompleteFragment.java index 273e0f3de2..b7ab4e13ea 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportCompleteFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportCompleteFragment.java @@ -77,8 +77,7 @@ public class ImportCompleteFragment extends BaseOsmAndFragment { recyclerView = root.findViewById(R.id.list); description.setText(UiUtilities.createSpannableString( String.format(getString(R.string.import_complete_description), fileName), - fileName, - new StyleSpan(Typeface.BOLD) + new StyleSpan(Typeface.BOLD), fileName )); btnClose.setOnClickListener(new View.OnClickListener() { @Override diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportDuplicatesFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportDuplicatesFragment.java index 6224105fa9..7ea985e19a 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportDuplicatesFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportDuplicatesFragment.java @@ -257,8 +257,7 @@ public class ImportDuplicatesFragment extends BaseOsmAndFragment implements View toolbarLayout.setTitle(getString(R.string.shared_string_importing)); description.setText(UiUtilities.createSpannableString( String.format(getString(R.string.importing_from), file.getName()), - file.getName(), - new StyleSpan(Typeface.BOLD) + new StyleSpan(Typeface.BOLD), file.getName() )); progressBar.setVisibility(View.VISIBLE); list.setVisibility(View.GONE); diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportSettingsFragment.java index 99f1af5f37..bf3df71f48 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportSettingsFragment.java @@ -234,8 +234,7 @@ public class ImportSettingsFragment extends BaseOsmAndFragment toolbarLayout.setTitle(getString(toolbarTitleRes)); description.setText(UiUtilities.createSpannableString( String.format(getString(descriptionRes), fileName), - fileName, - new StyleSpan(Typeface.BOLD) + new StyleSpan(Typeface.BOLD), fileName )); buttonsContainer.setVisibility(View.GONE); progressBar.setVisibility(View.VISIBLE); diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java index 901d0cfdc9..c07f8fca2d 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java @@ -6,40 +6,29 @@ import android.os.Build; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.TextView; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.appcompat.widget.SwitchCompat; import androidx.core.content.ContextCompat; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; import androidx.preference.SwitchPreferenceCompat; import net.osmand.AndroidUtils; -import net.osmand.plus.OsmandApplication; import net.osmand.plus.dialogs.SpeedCamerasBottomSheet; -import net.osmand.plus.dialogs.SpeedCamerasBottomSheet.OnSpeedCamerasUninstallListener; -import net.osmand.plus.helpers.FontCache; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; -import java.lang.ref.WeakReference; import static net.osmand.plus.UiUtilities.CompoundButtonType.TOOLBAR; -public class ScreenAlertsFragment extends BaseSettingsFragment implements OnSpeedCamerasUninstallListener { +public class ScreenAlertsFragment extends BaseSettingsFragment implements OnPreferenceChanged { public static final String TAG = ScreenAlertsFragment.class.getSimpleName(); private static final String SHOW_ROUTING_ALARMS_INFO = "show_routing_alarms_info"; private static final String SCREEN_ALERTS_IMAGE = "screen_alerts_image"; - private static final String SHOW_CAMERAS = "show_cameras"; - private SwitchPreferenceCompat showCameras; @Override protected void setupPreferences() { @@ -47,19 +36,16 @@ public class ScreenAlertsFragment extends BaseSettingsFragment implements OnSpee SwitchPreferenceCompat showTrafficWarnings = (SwitchPreferenceCompat) findPreference(settings.SHOW_TRAFFIC_WARNINGS.getId()); SwitchPreferenceCompat showPedestrian = (SwitchPreferenceCompat) findPreference(settings.SHOW_PEDESTRIAN.getId()); SwitchPreferenceCompat showTunnels = (SwitchPreferenceCompat) findPreference(settings.SHOW_TUNNELS.getId()); - showCameras = (SwitchPreferenceCompat) findPreference(settings.SHOW_CAMERAS.getId()); showRoutingAlarmsInfo.setIcon(getContentIcon(R.drawable.ic_action_info_dark)); showTrafficWarnings.setIcon(getIcon(R.drawable.list_warnings_traffic_calming)); showPedestrian.setIcon(getIcon(R.drawable.list_warnings_pedestrian)); showTunnels.setIcon(getIcon(R.drawable.list_warnings_tunnel)); - showCameras.setIcon(getIcon(R.drawable.list_warnings_speed_camera)); setupScreenAlertsImage(); + setupShowCamerasPref(); + setupSpeedCamerasAlert(); enableDisablePreferences(settings.SHOW_ROUTING_ALARMS.getModeValue(getSelectedAppMode())); - if (settings.SPEED_CAMERAS_UNINSTALLED.get()) { - onSpeedCamerasUninstalled(); - } } @Override @@ -119,8 +105,8 @@ public class ScreenAlertsFragment extends BaseSettingsFragment implements OnSpee deviceImage.setImageDrawable(getDeviceImage()); warningIcon.setImageDrawable(getWarningIcon()); - } else if (SHOW_CAMERAS.equals(key)) { - setupSpeedCamerasAlert(app, requireMyActivity(), holder, this, isNightMode()); + } else if (settings.SPEED_CAMERAS_UNINSTALLED.getId().equals(key)) { + setupPrefRoundedBg(holder); } } } @@ -131,10 +117,20 @@ public class ScreenAlertsFragment extends BaseSettingsFragment implements OnSpee Preference routeParametersImage = findPreference(SCREEN_ALERTS_IMAGE); updatePreference(routeParametersImage); } - + if (settings.SPEED_CAMERAS_UNINSTALLED.getId().equals(preference.getKey())) { + SpeedCamerasBottomSheet.showInstance(requireActivity().getSupportFragmentManager(), this); + } return super.onPreferenceClick(preference); } + @Override + public void onPreferenceChanged(String prefId) { + if (prefId.equals(settings.SPEED_CAMERAS_UNINSTALLED.getId())) { + setupShowCamerasPref(); + setupSpeedCamerasAlert(); + } + } + private void setupScreenAlertsImage() { Preference routeParametersImage = findPreference(SCREEN_ALERTS_IMAGE); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) { @@ -163,47 +159,9 @@ public class ScreenAlertsFragment extends BaseSettingsFragment implements OnSpee return null; } - public static void setupSpeedCamerasAlert(@NonNull OsmandApplication app, - @NonNull FragmentActivity activity, - @NonNull PreferenceViewHolder holder, - @Nullable Fragment targetFragment, - boolean nightMode) { - ImageView alertIcon = (ImageView) holder.itemView.findViewById(R.id.alert_icon); - TextView alertTitle = (TextView) holder.itemView.findViewById(R.id.alert_title); - TextView alertSubTitle = (TextView) holder.itemView.findViewById(R.id.alert_subtitle); - LinearLayout alertBg = (LinearLayout) holder.itemView.findViewById(R.id.alert_bg); - - alertBg.setBackgroundDrawable(UiUtilities.getRoundedBackgroundDrawable( - app, - nightMode ? R.color.activity_background_color_dark : R.color.activity_background_color_light, - 6)); - alertIcon.setImageDrawable(app.getUIUtilities().getIcon( - R.drawable.ic_action_alert, - nightMode ? R.color.icon_color_default_dark : R.color.icon_color_default_light)); - alertTitle.setText(R.string.speed_cameras_alert); - alertTitle.setTypeface(FontCache.getRobotoMedium(app)); - alertSubTitle.setText(R.string.read_more); - alertSubTitle.setTypeface(FontCache.getRobotoMedium(app)); - alertSubTitle.setTextColor(nightMode - ? app.getResources().getColor(R.color.active_color_primary_dark) - : app.getResources().getColor(R.color.active_color_primary_light)); - final WeakReference<FragmentActivity> weakActivity = new WeakReference<>(activity); - final WeakReference<Fragment> weakFragment = new WeakReference<>(targetFragment); - alertSubTitle.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - FragmentActivity a = weakActivity.get(); - if (a != null) { - SpeedCamerasBottomSheet.showInstance(a.getSupportFragmentManager(), weakFragment.get()); - } - } - }); - } - - @Override - public void onSpeedCamerasUninstalled() { - if (showCameras != null) { - showCameras.setVisible(false); - } + private void setupShowCamerasPref() { + SwitchPreferenceCompat showCameras = (SwitchPreferenceCompat) findPreference(settings.SHOW_CAMERAS.getId()); + showCameras.setIcon(getIcon(R.drawable.list_warnings_speed_camera)); + showCameras.setVisible(!settings.SPEED_CAMERAS_UNINSTALLED.get()); } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java index 11c1f6b72b..24a1b817d4 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VoiceAnnouncesFragment.java @@ -14,9 +14,10 @@ import androidx.appcompat.widget.SwitchCompat; import androidx.core.content.ContextCompat; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; +import androidx.preference.SwitchPreferenceCompat; import net.osmand.AndroidUtils; -import net.osmand.plus.dialogs.SpeedCamerasBottomSheet.OnSpeedCamerasUninstallListener; +import net.osmand.plus.dialogs.SpeedCamerasBottomSheet; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; @@ -34,10 +35,9 @@ import static net.osmand.plus.settings.backend.OsmandSettings.VOICE_PROVIDER_NOT import static net.osmand.plus.UiUtilities.CompoundButtonType.TOOLBAR; import static net.osmand.plus.activities.SettingsNavigationActivity.MORE_VALUE; -public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnSpeedCamerasUninstallListener { +public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnPreferenceChanged { public static final String TAG = VoiceAnnouncesFragment.class.getSimpleName(); - private Preference speakCamera; @Override protected void createToolbar(LayoutInflater inflater, View view) { @@ -98,10 +98,8 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnSp setupInterruptMusicPref(); } enableDisablePreferences(!settings.VOICE_MUTE.getModeValue(getSelectedAppMode())); - speakCamera = findPreference(settings.SPEAK_SPEED_CAMERA.getId()); - if (settings.SPEED_CAMERAS_UNINSTALLED.get()) { - onSpeedCamerasUninstalled(); - } + setupSpeakCamerasPref(); + setupSpeedCamerasAlert(); } private void setupSpeedLimitExceedPref() { @@ -231,8 +229,8 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnSp Object currentValue = ((ListPreferenceEx) preference).getValue(); imageView.setEnabled(preference.isEnabled() && !OsmandSettings.VOICE_PROVIDER_NOT_USE.equals(currentValue)); } - } else if (settings.SPEAK_SPEED_CAMERA.getId().equals(preference.getKey())) { - ScreenAlertsFragment.setupSpeedCamerasAlert(app, requireMyActivity(), holder, this, isNightMode()); + } else if (settings.SPEED_CAMERAS_UNINSTALLED.getId().equals(preference.getKey())) { + setupPrefRoundedBg(holder); } } @@ -296,9 +294,23 @@ public class VoiceAnnouncesFragment extends BaseSettingsFragment implements OnSp } @Override - public void onSpeedCamerasUninstalled() { - if (speakCamera != null) { - speakCamera.setVisible(false); + public boolean onPreferenceClick(Preference preference) { + if (settings.SPEED_CAMERAS_UNINSTALLED.getId().equals(preference.getKey())) { + SpeedCamerasBottomSheet.showInstance(requireActivity().getSupportFragmentManager(), this); + } + return super.onPreferenceClick(preference); + } + + @Override + public void onPreferenceChanged(String prefId) { + if (prefId.equals(settings.SPEED_CAMERAS_UNINSTALLED.getId())) { + setupSpeakCamerasPref(); + setupSpeedCamerasAlert(); } } + + private void setupSpeakCamerasPref() { + SwitchPreferenceCompat showCameras = (SwitchPreferenceCompat) findPreference(settings.SPEAK_SPEED_CAMERA.getId()); + showCameras.setVisible(!settings.SPEED_CAMERAS_UNINSTALLED.get()); + } } \ No newline at end of file From 7f40160f0d920001fbb8977ee223fbe46334f5a2 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Tue, 16 Jun 2020 18:30:25 +0300 Subject: [PATCH 036/300] small refactor --- .../osmand/plus/mapsource/EditMapSourceDialogFragment.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java index 94dc944cb1..0a1c957c4f 100644 --- a/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapsource/EditMapSourceDialogFragment.java @@ -341,7 +341,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } } - private void setSaveBtnEnabled() { + private void updateSaveButton() { boolean enabled = !nameEditText.getText().toString().isEmpty() && !urlEditText.getText().toString().isEmpty(); saveBtn.setEnabled(enabled); @@ -418,7 +418,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment urlEditText.setText(urlToLoad); nameEditText.addTextChangedListener(new MapSourceTextWatcher(nameInputLayout)); urlEditText.addTextChangedListener(new MapSourceTextWatcher(urlInputLayout)); - setSaveBtnEnabled(); + updateSaveButton(); addConfigurationItems(ConfigurationItem.values()); } @@ -556,7 +556,7 @@ public class EditMapSourceDialogFragment extends BaseOsmAndDialogFragment } else { relatedInputLayout.setError(null); } - setSaveBtnEnabled(); + updateSaveButton(); checkWasChanged(); } } From 6089a0a1ca309f8aa52256e3bf8d9a0c54d4ac12 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Tue, 16 Jun 2020 22:42:10 +0300 Subject: [PATCH 037/300] Refactoring FavoriteImageDrawable --- .../activities/FavoritesListFragment.java | 4 +- .../activities/FavoritesSearchFragment.java | 4 +- .../activities/FavoritesTreeFragment.java | 4 +- .../plus/audionotes/AudioNotesLayer.java | 22 +-- ...eDrawable.java => PointImageDrawable.java} | 174 ++++++++++-------- .../plus/dashboard/DashFavoritesFragment.java | 4 +- .../osmand/plus/helpers/WaypointHelper.java | 8 +- .../FavouritePointMenuController.java | 4 +- .../controllers/WptPtMenuController.java | 4 +- .../editors/FavoritePointEditorFragment.java | 4 +- .../FavoritePointEditorFragmentNew.java | 4 +- .../editors/WptPtEditorFragment.java | 4 +- .../editors/WptPtEditorFragmentNew.java | 4 +- .../other/FavouritesAdapter.java | 4 +- .../adapters/CoordinateInputAdapter.java | 4 +- .../plus/myplaces/TrackPointFragment.java | 4 +- .../net/osmand/plus/osmedit/OsmBugsLayer.java | 23 +-- .../osmand/plus/osmedit/OsmEditsLayer.java | 14 +- .../ParkingPositionMenuController.java | 4 +- .../search/listitems/QuickSearchListItem.java | 10 +- .../osmand/plus/views/FavouritesLayer.java | 46 ++--- .../src/net/osmand/plus/views/GPXLayer.java | 58 +++--- .../net/osmand/plus/views/POIMapLayer.java | 18 +- .../plus/views/TransportStopsLayer.java | 31 ++-- 24 files changed, 236 insertions(+), 224 deletions(-) rename OsmAnd/src/net/osmand/plus/base/{FavoriteImageDrawable.java => PointImageDrawable.java} (58%) diff --git a/OsmAnd/src/net/osmand/plus/activities/FavoritesListFragment.java b/OsmAnd/src/net/osmand/plus/activities/FavoritesListFragment.java index f5db5a3ce4..e2d8ff2e03 100644 --- a/OsmAnd/src/net/osmand/plus/activities/FavoritesListFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/FavoritesListFragment.java @@ -32,7 +32,7 @@ import net.osmand.plus.UiUtilities; import net.osmand.plus.UiUtilities.UpdateLocationViewCache; import net.osmand.plus.activities.search.SearchActivity; import net.osmand.plus.activities.search.SearchActivity.SearchActivityChild; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.base.OsmAndListFragment; import net.osmand.util.MapUtils; @@ -232,7 +232,7 @@ public class FavoritesListFragment extends OsmAndListFragment implements SearchA } ((TextView) row.findViewById(R.id.group_name)).setText(favorite.getCategory()); - icon.setImageDrawable(FavoriteImageDrawable.getOrCreate(activity, app.getFavorites().getColorWithCategory(favorite, + icon.setImageDrawable(PointImageDrawable.getFromFavorite(activity, app.getFavorites().getColorWithCategory(favorite, app.getResources().getColor(R.color.color_favorite)), false, favorite)); app.getUIUtilities().updateLocationView(cache, direction, distanceText, diff --git a/OsmAnd/src/net/osmand/plus/activities/FavoritesSearchFragment.java b/OsmAnd/src/net/osmand/plus/activities/FavoritesSearchFragment.java index 192176ca42..ac02ed60c9 100644 --- a/OsmAnd/src/net/osmand/plus/activities/FavoritesSearchFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/FavoritesSearchFragment.java @@ -47,7 +47,7 @@ import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmandApplication; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.myplaces.FavoritesActivity; import net.osmand.util.Algorithms; import net.osmand.util.MapUtils; @@ -463,7 +463,7 @@ public class FavoritesSearchFragment extends DialogFragment { TextView title = (TextView) view.findViewById(R.id.title); TextView subtitle = (TextView) view.findViewById(R.id.subtitle); - imageView.setImageDrawable(FavoriteImageDrawable.getOrCreate(activity, + imageView.setImageDrawable(PointImageDrawable.getFromFavorite(activity, helper.getColorWithCategory(point, getResources().getColor(R.color.color_favorite)), false, point)); title.setText(point.getDisplayName(app)); diff --git a/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java b/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java index 71084c00e2..cf6874f828 100644 --- a/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java @@ -47,7 +47,7 @@ import net.osmand.plus.OsmandApplication; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.base.OsmandExpandableListFragment; import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.helpers.FontCache; @@ -1032,7 +1032,7 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment implemen int color = visible ? app.getFavorites().getColorWithCategory(model, getResources().getColor(R.color.color_favorite)) : ContextCompat.getColor(app, disabledIconColor); - icon.setImageDrawable(FavoriteImageDrawable.getOrCreate(getActivity(), color, false, model)); + icon.setImageDrawable(PointImageDrawable.getFromFavorite(getActivity(), color, false, model)); int iconSize = (int) getResources().getDimension(R.dimen.favorites_my_places_icon_size); FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(iconSize, iconSize, CENTER); icon.setLayoutParams(lp); diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java index d6b0e55a2e..b5f0aed71d 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java @@ -8,7 +8,6 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import net.osmand.data.DataTileManager; -import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -17,7 +16,7 @@ import net.osmand.data.RotatedTileBox; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.views.ContextMenuLayer; import net.osmand.plus.views.ContextMenuLayer.IContextMenuProvider; import net.osmand.plus.views.OsmandMapLayer; @@ -86,11 +85,10 @@ public class AudioNotesLayer extends OsmandMapLayer implements float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude()); if (intersects(boundIntersections, x, y, iconSize, iconSize)) { - FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(activity, - ContextCompat.getColor(activity, R.color.audio_video_icon_color), true, - new FavouritePoint(0, 0, "", "")); - fid.setAlpha(0.8f); - fid.drawSmallPoint(canvas, x, y, textScale); + PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, + ContextCompat.getColor(activity, R.color.audio_video_icon_color), true); + pointImageDrawable.setAlpha(0.8f); + pointImageDrawable.drawSmallPoint(canvas, x, y, textScale); smallObjectsLatLon.add(new LatLon(o.getLatitude(), o.getLongitude())); } else { fullObjects.add(o); @@ -117,12 +115,10 @@ public class AudioNotesLayer extends OsmandMapLayer implements } else { iconId = R.drawable.mx_special_video_camera; } - FavouritePoint fp = new FavouritePoint(0, 0, "", ""); - fp.setIconId(iconId); - FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(activity, - ContextCompat.getColor(activity, R.color.audio_video_icon_color), true, fp); - fid.setAlpha(0.8f); - fid.drawPoint(canvas, x, y, textScale, false); + PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, + ContextCompat.getColor(activity, R.color.audio_video_icon_color), true, iconId); + pointImageDrawable.setAlpha(0.8f); + pointImageDrawable.drawPoint(canvas, x, y, textScale, false); } @Override diff --git a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java similarity index 58% rename from OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java rename to OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java index a1356fb738..cca1b6a122 100644 --- a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java @@ -13,6 +13,7 @@ import android.graphics.Rect; import android.graphics.drawable.Drawable; import androidx.annotation.ColorInt; +import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import net.osmand.GPXUtilities; @@ -27,7 +28,7 @@ import java.util.TreeMap; import static net.osmand.data.FavouritePoint.DEFAULT_BACKGROUND_TYPE; import static net.osmand.data.FavouritePoint.DEFAULT_UI_ICON_ID; -public class FavoriteImageDrawable extends Drawable { +public class PointImageDrawable extends Drawable { private boolean withShadow; private boolean synced; @@ -51,34 +52,29 @@ public class FavoriteImageDrawable extends Drawable { private ColorFilter grayFilter; private float scale = 1.0f; - private FavoriteImageDrawable(Context ctx, @ColorInt int color, boolean withShadow, boolean synced, - FavouritePoint point) { - this.withShadow = withShadow; - this.synced = synced; - Resources res = ctx.getResources(); - UiUtilities uiUtilities = ((OsmandApplication) ctx.getApplicationContext()).getUIUtilities(); - int overlayIconId = point != null ? point.getOverlayIconId(ctx) : 0; + private PointImageDrawable(PointInfo pointInfo) { + this.withShadow = pointInfo.withShadow; + this.synced = pointInfo.synced; + Resources res = pointInfo.ctx.getResources(); + UiUtilities uiUtilities = ((OsmandApplication) pointInfo.ctx.getApplicationContext()).getUIUtilities(); + int overlayIconId = pointInfo.overlayIconId; int uiIconId; - if (overlayIconId != 0) { - favIcon = uiUtilities.getIcon(getMapIconId(ctx, overlayIconId), R.color.color_white); - uiIconId = overlayIconId; - } else { - favIcon = res.getDrawable(R.drawable.mm_special_star); - uiIconId = DEFAULT_UI_ICON_ID; - } - int col = color == 0 ? res.getColor(R.color.color_favorite) : color; + favIcon = uiUtilities.getIcon(getMapIconId(pointInfo.ctx, overlayIconId), R.color.color_white); + uiIconId = overlayIconId; + + int col = pointInfo.color == 0 ? res.getColor(R.color.color_favorite) : pointInfo.color; uiListIcon = uiUtilities.getIcon(uiIconId, R.color.color_white); - int uiBackgroundIconId = point != null ? point.getBackgroundType().getIconId() : R.drawable.bg_point_circle; + int uiBackgroundIconId = pointInfo.backgroundType.getIconId(); uiBackgroundIcon = uiUtilities.getPaintedIcon(uiBackgroundIconId, col); - int mapBackgroundIconIdTop = getMapBackgroundIconId(ctx, point, "top"); - int mapBackgroundIconIdCenter = getMapBackgroundIconId(ctx, point, "center"); - int mapBackgroundIconIdBottom = getMapBackgroundIconId(ctx, point, "bottom"); + int mapBackgroundIconIdTop = getMapBackgroundIconId(pointInfo, "top", false); + int mapBackgroundIconIdCenter = getMapBackgroundIconId(pointInfo, "center", false); + int mapBackgroundIconIdBottom = getMapBackgroundIconId(pointInfo, "bottom", false); favBackgroundTop = BitmapFactory.decodeResource(res, mapBackgroundIconIdTop); favBackgroundCenter = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenter); favBackgroundBottom = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottom); - int mapBackgroundIconIdTopSmall = getMapBackgroundIconIdSmall(ctx, point, "top"); - int mapBackgroundIconIdCenterSmall = getMapBackgroundIconIdSmall(ctx, point, "center"); - int mapBackgroundIconIdBottomSmall = getMapBackgroundIconIdSmall(ctx, point, "bottom"); + int mapBackgroundIconIdTopSmall = getMapBackgroundIconId(pointInfo, "top", true); + int mapBackgroundIconIdCenterSmall = getMapBackgroundIconId(pointInfo, "center", true); + int mapBackgroundIconIdBottomSmall = getMapBackgroundIconId(pointInfo, "bottom", true); favBackgroundTopSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdTopSmall); favBackgroundCenterSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenterSmall); favBackgroundBottomSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottomSmall); @@ -96,24 +92,13 @@ public class FavoriteImageDrawable extends Drawable { .replaceFirst("mx_", "mm_"), "drawable", ctx.getPackageName()); } - private int getMapBackgroundIconIdSmall(Context ctx, FavouritePoint point, String layer) { - if (point != null) { - int iconId = point.getBackgroundType().getIconId(); - String iconName = ctx.getResources().getResourceEntryName(iconId); - return ctx.getResources().getIdentifier("ic_" + iconName + "_" + layer + "_small", - "drawable", ctx.getPackageName()); - } - return R.drawable.ic_white_shield_small; - } - - private int getMapBackgroundIconId(Context ctx, FavouritePoint point, String layer) { - if (point != null) { - int iconId = point.getBackgroundType().getIconId(); - String iconName = ctx.getResources().getResourceEntryName(iconId); - return ctx.getResources().getIdentifier("ic_" + iconName + "_" + layer - , "drawable", ctx.getPackageName()); - } - return R.drawable.ic_white_favorite_shield; + private int getMapBackgroundIconId(PointInfo pointInfo, String layer, boolean isSmall) { + Context ctx = pointInfo.ctx; + int iconId = pointInfo.backgroundType.getIconId(); + String iconName = ctx.getResources().getResourceEntryName(iconId); + String suffix = isSmall ? "_small" : ""; + return ctx.getResources().getIdentifier("ic_" + iconName + "_" + layer + suffix, + "drawable", ctx.getPackageName()); } @Override @@ -220,6 +205,7 @@ public class FavoriteImageDrawable extends Drawable { public void setAlpha(float alpha) { setAlpha((int) (255 * alpha)); } + @Override public void setAlpha(int alpha) { paintBackground.setAlpha(alpha); @@ -234,52 +220,96 @@ public class FavoriteImageDrawable extends Drawable { this.scale = scale; } - private static TreeMap<String, FavoriteImageDrawable> cache = new TreeMap<>(); + private static TreeMap<String, PointImageDrawable> cache = new TreeMap<>(); - private static FavoriteImageDrawable getOrCreate(Context ctx, @ColorInt int color, boolean withShadow, - boolean synced, FavouritePoint point) { - String uniqueId = ""; - if (point != null) { - uniqueId = point.getIconEntryName(ctx); - uniqueId += point.getBackgroundType().name(); - } - color = color | 0xff000000; - int hash = (color << 4) + ((withShadow ? 1 : 0) << 2) + ((synced ? 3 : 0) << 2); + private static PointImageDrawable getOrCreate(@NonNull PointInfo pointInfo) { + + String uniqueId = pointInfo.ctx.getResources().getResourceEntryName(pointInfo.overlayIconId); + uniqueId += pointInfo.backgroundType.name(); + int color = pointInfo.color | 0xff000000; + int hash = (color << 4) + ((pointInfo.withShadow ? 1 : 0) << 2) + ((pointInfo.synced ? 3 : 0) << 2); uniqueId = hash + uniqueId; - FavoriteImageDrawable drawable = cache.get(uniqueId); + PointImageDrawable drawable = cache.get(uniqueId); if (drawable == null) { - drawable = new FavoriteImageDrawable(ctx, color, withShadow, synced, point); + drawable = new PointImageDrawable(pointInfo); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); cache.put(uniqueId, drawable); } return drawable; } - public static FavoriteImageDrawable getOrCreate(Context ctx, @ColorInt int color, boolean withShadow, - FavouritePoint point) { - return getOrCreate(ctx, color, withShadow, false, point); + public static PointImageDrawable getOrCreateSyncedIcon(Context ctx, @ColorInt int color, FavouritePoint point) { + return getFromFavorite(ctx, color, false, true, point); } - public static FavoriteImageDrawable getOrCreate(Context ctx, @ColorInt int color, boolean withShadow, - GPXUtilities.WptPt pt) { - return getOrCreate(ctx, color, withShadow, false, getFavouriteFromWpt(ctx, pt)); + public static PointImageDrawable getOrCreateSyncedIcon(Context ctx, @ColorInt int color, GPXUtilities.WptPt wpt) { + return getFromWpt(ctx, color, false, true, wpt); } - public static FavoriteImageDrawable getOrCreateSyncedIcon(Context ctx, @ColorInt int color, FavouritePoint point) { - return getOrCreate(ctx, color, false, true, point); + public static PointImageDrawable getFromWpt(Context ctx, @ColorInt int color, boolean withShadow, + GPXUtilities.WptPt wpt) { + return getFromWpt(ctx, color, withShadow, false, wpt); } - public static FavoriteImageDrawable getOrCreateSyncedIcon(Context ctx, @ColorInt int color, GPXUtilities.WptPt pt) { - return getOrCreate(ctx, color, false, true, getFavouriteFromWpt(ctx, pt)); - } - - private static FavouritePoint getFavouriteFromWpt(Context ctx, GPXUtilities.WptPt pt) { - FavouritePoint point = null; - if (pt != null) { - point = new FavouritePoint(pt.getLatitude(), pt.getLongitude(), pt.name, pt.category); - point.setIconIdFromName(ctx, pt.getIconNameOrDefault()); - point.setBackgroundType(BackgroundType.getByTypeName(pt.getBackgroundType(), DEFAULT_BACKGROUND_TYPE)); + public static PointImageDrawable getFromWpt(Context ctx, @ColorInt int color, boolean withShadow, boolean synced, + GPXUtilities.WptPt wpt) { + if (wpt != null) { + int overlayIconId = ctx.getResources().getIdentifier("mx_" + wpt.getIconNameOrDefault(), + "drawable", ctx.getPackageName()); + return getOrCreate(ctx, color, withShadow, synced, overlayIconId, + BackgroundType.getByTypeName(wpt.getBackgroundType(), DEFAULT_BACKGROUND_TYPE)); + } else { + return getOrCreate(ctx, color, withShadow); + } + } + + public static PointImageDrawable getFromFavorite(Context ctx, @ColorInt int color, boolean withShadow, + FavouritePoint favoritePoint) { + return getFromFavorite(ctx, color, withShadow, false, favoritePoint); + } + + public static PointImageDrawable getFromFavorite(Context ctx, @ColorInt int color, boolean withShadow, + boolean synced, FavouritePoint favoritePoint) { + if (favoritePoint != null) { + return getOrCreate(ctx, color, withShadow, synced, favoritePoint.getOverlayIconId(ctx), + favoritePoint.getBackgroundType()); + } else { + return getOrCreate(ctx, color, withShadow); + } + } + + public static PointImageDrawable getOrCreate(Context ctx, @ColorInt int color, boolean withShadow) { + return getOrCreate(ctx, color, withShadow, DEFAULT_UI_ICON_ID); + } + + public static PointImageDrawable getOrCreate(Context ctx, @ColorInt int color, boolean withShadow, int overlayIconId) { + return getOrCreate(ctx, color, withShadow, false, overlayIconId, BackgroundType.CIRCLE); + } + + public static PointImageDrawable getOrCreate(Context ctx, @ColorInt int color, boolean withShadow, boolean synced, + int overlayIconId, @NonNull BackgroundType backgroundType) { + overlayIconId = overlayIconId == 0 ? DEFAULT_UI_ICON_ID : overlayIconId; + PointInfo pointInfo = new PointInfo(ctx, color, withShadow, overlayIconId, backgroundType); + pointInfo.synced = synced; + return getOrCreate(pointInfo); + } + + private static class PointInfo { + Context ctx; + @ColorInt + int color; + boolean withShadow; + boolean synced = false; + @DrawableRes + int overlayIconId; + BackgroundType backgroundType; + + private PointInfo(Context ctx, int color, boolean withShadow, int overlayIconId, BackgroundType backgroundType) { + this.ctx = ctx; + this.color = color; + this.withShadow = withShadow; + this.overlayIconId = overlayIconId; + this.backgroundType = backgroundType; } - return point; } } diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java index 65eeffd8bd..59e89f8cb9 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java @@ -21,7 +21,7 @@ import net.osmand.plus.FavouritesDbHelper.FavoritesListener; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.dashboard.tools.DashFragmentData; import net.osmand.plus.dialogs.DirectionsDialogs; import net.osmand.plus.myplaces.FavoritesActivity; @@ -144,7 +144,7 @@ public class DashFavoritesFragment extends DashLocationFragment { } int iconColor = app.getFavorites().getColorWithCategory(point, getResources().getColor(R.color.color_favorite)); - Drawable favoriteIcon = FavoriteImageDrawable.getOrCreate(app, iconColor, false, point); + Drawable favoriteIcon = PointImageDrawable.getFromFavorite(app, iconColor, false, point); ((ImageView) view.findViewById(R.id.favourite_icon)).setImageDrawable(favoriteIcon); DashLocationView dv = new DashLocationView(direction, label, new LatLon(point.getLatitude(), point.getLongitude())); diff --git a/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java b/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java index 5cd0ce4b39..9c4c30efbb 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java @@ -23,7 +23,7 @@ import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper.TargetPoint; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.IntermediatePointsDialog; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.poi.PoiUIFilter; import net.osmand.plus.render.RenderingIcons; import net.osmand.plus.routing.AlarmInfo; @@ -776,14 +776,14 @@ public class WaypointHelper { } } else if (type == FAVORITES ) { - return FavoriteImageDrawable.getOrCreate(uiCtx, + return PointImageDrawable.getFromFavorite(uiCtx, app.getFavorites().getColorWithCategory((FavouritePoint) point, app.getResources().getColor(R.color.color_favorite)), false, (FavouritePoint) point); } else if (type == WAYPOINTS) { if (point instanceof WptLocationPoint) { - return FavoriteImageDrawable.getOrCreate(uiCtx, point.getColor(), false, ((WptLocationPoint) point).getPt()); + return PointImageDrawable.getFromWpt(uiCtx, point.getColor(), false, ((WptLocationPoint) point).getPt()); } else if (point instanceof GPXUtilities.WptPt) { - return FavoriteImageDrawable.getOrCreate(uiCtx, point.getColor(), false, (GPXUtilities.WptPt) point); + return PointImageDrawable.getFromWpt(uiCtx, point.getColor(), false, (GPXUtilities.WptPt) point); } else { return null; } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java index 6aa59d60f8..7dea6105ef 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java @@ -15,7 +15,7 @@ import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.MapMarkersHelper.MapMarker; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.mapcontextmenu.MenuController; import net.osmand.plus.mapcontextmenu.builders.FavouritePointMenuBuilder; import net.osmand.plus.mapcontextmenu.editors.FavoritePointEditor; @@ -126,7 +126,7 @@ public class FavouritePointMenuController extends MenuController { public Drawable getRightIcon() { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { - return FavoriteImageDrawable.getOrCreate(mapActivity.getMyApplication(), + return PointImageDrawable.getFromFavorite(mapActivity.getMyApplication(), mapActivity.getMyApplication().getFavorites().getColorWithCategory(fav, ContextCompat.getColor(mapActivity, R.color.color_favorite)), false, fav); } else { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/WptPtMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/WptPtMenuController.java index d94079c977..3c1ce7d9f4 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/WptPtMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/WptPtMenuController.java @@ -15,7 +15,7 @@ import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.MapMarkersHelper.MapMarker; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.mapcontextmenu.MenuBuilder; import net.osmand.plus.mapcontextmenu.MenuController; import net.osmand.plus.wikivoyage.menu.WikivoyageWptPtMenuBuilder; @@ -83,7 +83,7 @@ public class WptPtMenuController extends MenuController { public Drawable getRightIcon() { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { - return FavoriteImageDrawable.getOrCreate(mapActivity.getMyApplication(), + return PointImageDrawable.getFromWpt(mapActivity.getMyApplication(), wpt.getColor(ContextCompat.getColor(mapActivity, R.color.gpx_color_point)), false, wpt); } else { return null; diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragment.java index 384024c54f..d3f6ea52c6 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragment.java @@ -21,7 +21,7 @@ import net.osmand.plus.FavouritesDbHelper.FavoriteGroup; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.dialogs.FavoriteDialogs; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.util.Algorithms; @@ -313,7 +313,7 @@ public class FavoritePointEditorFragment extends PointEditorFragment { @Override public Drawable getNameIcon() { - return FavoriteImageDrawable.getOrCreate(getMapActivity(), getPointColor(), false, getFavorite()); + return PointImageDrawable.getFromFavorite(getMapActivity(), getPointColor(), false, getFavorite()); } @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java index 822b3cb170..81db01571a 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java @@ -25,7 +25,7 @@ import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.dialogs.FavoriteDialogs; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.util.Algorithms; @@ -415,7 +415,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { point.setBackgroundType(backgroundType); point.setIconId(iconId); } - return FavoriteImageDrawable.getOrCreate(getMapActivity(), getPointColor(), false, point); + return PointImageDrawable.getFromFavorite(getMapActivity(), getPointColor(), false, point); } @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragment.java index cefbebf253..21cbe28ff1 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragment.java @@ -24,7 +24,7 @@ import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.SavingTrackHelper; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.plus.mapcontextmenu.editors.WptPtEditor.OnDismissListener; import net.osmand.util.Algorithms; @@ -365,7 +365,7 @@ public class WptPtEditorFragment extends PointEditorFragment { @Override public Drawable getNameIcon() { - return FavoriteImageDrawable.getOrCreate(getMapActivity(), getPointColor(), false, wpt); + return PointImageDrawable.getFromWpt(getMapActivity(), getPointColor(), false, wpt); } @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragmentNew.java index 427b7d3f9e..e74539a06a 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/WptPtEditorFragmentNew.java @@ -27,7 +27,7 @@ import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.SavingTrackHelper; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.plus.mapcontextmenu.editors.WptPtEditor.OnDismissListener; import net.osmand.util.Algorithms; @@ -411,7 +411,7 @@ public class WptPtEditorFragmentNew extends PointEditorFragmentNew { point.setBackgroundType(backgroundTypeName); point.setIconName(iconName); } - return FavoriteImageDrawable.getOrCreate(getMapActivity(), getPointColor(), false, point); + return PointImageDrawable.getFromWpt(getMapActivity(), getPointColor(), false, point); } @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/FavouritesAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/FavouritesAdapter.java index 94ac032e63..1cd0f59fea 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/FavouritesAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/FavouritesAdapter.java @@ -13,7 +13,7 @@ import net.osmand.data.FavouritePoint; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities.UpdateLocationViewCache; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import java.util.List; @@ -47,7 +47,7 @@ public class FavouritesAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol favouritesViewHolder.title.setText(favouritePoint.getDisplayName(app)); favouritesViewHolder.description.setText(favouritePoint.getCategoryDisplayName(app)); favouritesViewHolder.favouriteImage.setImageDrawable( - FavoriteImageDrawable.getOrCreate(app, + PointImageDrawable.getFromFavorite(app, app.getFavorites().getColorWithCategory(favouritePoint, ContextCompat.getColor(app, R.color.color_favorite)), false, favouritePoint)); app.getUIUtilities().updateLocationView(cache, favouritesViewHolder.arrowImage, favouritesViewHolder.distance, diff --git a/OsmAnd/src/net/osmand/plus/mapmarkers/adapters/CoordinateInputAdapter.java b/OsmAnd/src/net/osmand/plus/mapmarkers/adapters/CoordinateInputAdapter.java index cc48e72a76..fdb074aeaa 100644 --- a/OsmAnd/src/net/osmand/plus/mapmarkers/adapters/CoordinateInputAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapmarkers/adapters/CoordinateInputAdapter.java @@ -19,7 +19,7 @@ import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.UiUtilities.UpdateLocationViewCache; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; public class CoordinateInputAdapter extends RecyclerView.Adapter<MapMarkerItemViewHolder> { @@ -67,7 +67,7 @@ public class CoordinateInputAdapter extends RecyclerView.Adapter<MapMarkerItemVi WptPt wpt = getItem(position); holder.iconDirection.setVisibility(View.VISIBLE); - holder.icon.setImageDrawable(FavoriteImageDrawable.getOrCreate(app, wpt.getColor(), false, wpt)); + holder.icon.setImageDrawable(PointImageDrawable.getFromWpt(app, wpt.getColor(), false, wpt)); holder.mainLayout.setBackgroundColor(getResolvedColor(nightTheme ? R.color.list_background_color_dark : R.color.list_background_color_light)); holder.title.setTextColor(getResolvedColor(nightTheme ? R.color.text_color_primary_dark : R.color.text_color_primary_light)); holder.divider.setBackgroundColor(getResolvedColor(nightTheme ? R.color.coordinate_input_edit_text_normal_dark : R.color.divider_color_light)); diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java index 274dd3a379..553d97ac47 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackPointFragment.java @@ -67,7 +67,7 @@ import net.osmand.plus.activities.OsmandActionBarActivity; import net.osmand.plus.activities.OsmandBaseExpandableListAdapter; import net.osmand.plus.activities.SavingTrackHelper; import net.osmand.plus.activities.TrackActivity; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.base.OsmandExpandableListFragment; import net.osmand.plus.mapmarkers.CoordinateInputDialogFragment; import net.osmand.plus.myplaces.TrackBitmapDrawer.TrackBitmapDrawerListener; @@ -1114,7 +1114,7 @@ public class TrackPointFragment extends OsmandExpandableListFragment implements } else { description.setVisibility(View.GONE); } - icon.setImageDrawable(FavoriteImageDrawable.getOrCreate(getActivity(), groupColor, false, wpt)); + icon.setImageDrawable(PointImageDrawable.getFromWpt(getActivity(), groupColor, false, wpt)); } else { boolean showAll = gpxItem == null; diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java index c29cef7544..9ea08e353a 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java @@ -16,7 +16,6 @@ import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; -import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -24,7 +23,7 @@ import net.osmand.data.QuadTree; import net.osmand.data.RotatedTileBox; import net.osmand.osm.io.NetworkUtils; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; @@ -132,8 +131,9 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider } else { backgroundColorRes = R.color.osm_bug_resolved_icon_color; } - FavoriteImageDrawable fid = getFavoriteImageDrawable(backgroundColorRes, 0); - fid.drawSmallPoint(canvas, x, y, textScale); + PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, + ContextCompat.getColor(activity, backgroundColorRes), true); + pointImageDrawable.drawSmallPoint(canvas, x, y, textScale); } else { fullObjects.add(o); fullObjectsLatLon.add(new LatLon(o.getLatitude(), o.getLongitude())); @@ -154,8 +154,9 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider iconId = R.drawable.mx_special_symbol_check_mark; backgroundColorRes = R.color.osm_bug_resolved_icon_color; } - FavoriteImageDrawable fid = getFavoriteImageDrawable(backgroundColorRes, iconId); - fid.drawPoint(canvas, x, y, textScale, false); + PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, + ContextCompat.getColor(activity, backgroundColorRes), true, iconId); + pointImageDrawable.drawPoint(canvas, x, y, textScale, false); } this.fullObjectsLatLon = fullObjectsLatLon; this.smallObjectsLatLon = smallObjectsLatLon; @@ -163,16 +164,6 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider } } - private FavoriteImageDrawable getFavoriteImageDrawable(int backgroundColorRes, int iconId) { - FavouritePoint fp = new FavouritePoint(0, 0, "", ""); - fp.setIconId(iconId); - FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(activity, - ContextCompat.getColor(activity, backgroundColorRes), true, - fp); - fid.setAlpha(0.8f); - return fid; - } - @Override public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) { diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java index 0ed021a532..8363891600 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java @@ -9,14 +9,13 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; -import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.RotatedTileBox; import net.osmand.osm.edit.Entity; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.views.ContextMenuLayer; import net.osmand.plus.views.OsmandMapLayer; import net.osmand.plus.views.OsmandMapTileView; @@ -79,12 +78,11 @@ public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IC private void drawPoint(Canvas canvas, OsmPoint o, float x, float y) { float textScale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); - FavouritePoint fp = new FavouritePoint(0, 0, "", ""); - fp.setIconId(R.drawable.mx_special_information); - FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(activity, - ContextCompat.getColor(activity, R.color.created_poi_icon_color), true, fp); - fid.setAlpha(0.8f); - fid.drawPoint(canvas, x, y, textScale, false); + PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, + ContextCompat.getColor(activity, R.color.created_poi_icon_color), true, + R.drawable.mx_special_information); + pointImageDrawable.setAlpha(0.8f); + pointImageDrawable.drawPoint(canvas, x, y, textScale, false); } @Override diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java index 1298739605..148607117c 100644 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java +++ b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionMenuController.java @@ -10,7 +10,7 @@ import net.osmand.data.PointDescription; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.mapcontextmenu.MenuBuilder; import net.osmand.plus.mapcontextmenu.MenuController; @@ -107,7 +107,7 @@ public class ParkingPositionMenuController extends MenuController { public Drawable getRightIcon() { MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { - return FavoriteImageDrawable.getOrCreate(mapActivity.getMyApplication(), + return PointImageDrawable.getFromFavorite(mapActivity.getMyApplication(), ContextCompat.getColor(mapActivity, R.color.parking_icon_background), false, fav); } else { return null; diff --git a/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java b/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java index 59dbe1fae6..4f941b9b48 100644 --- a/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java +++ b/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java @@ -26,7 +26,7 @@ import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.search.SearchHistoryFragment; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.helpers.SearchHistoryHelper.HistoryEntry; import net.osmand.plus.poi.PoiUIFilter; import net.osmand.plus.render.RenderingIcons; @@ -377,11 +377,11 @@ public class QuickSearchListItem { return getIcon(app, R.drawable.ic_action_world_globe); case FAVORITE: FavouritePoint fav = (FavouritePoint) searchResult.object; - return FavoriteImageDrawable.getOrCreate(app, - app.getFavorites().getColorWithCategory(fav, app.getResources().getColor(R.color.color_favorite)), false, fav); + int color = app.getFavorites().getColorWithCategory(fav, app.getResources().getColor(R.color.color_favorite)); + return PointImageDrawable.getFromFavorite(app, color, false, fav); case FAVORITE_GROUP: FavoriteGroup group = (FavoriteGroup) searchResult.object; - int color = group.getColor() == 0 ? ContextCompat.getColor(app, R.color.color_favorite) : group.getColor(); + color = group.getColor() == 0 ? ContextCompat.getColor(app, R.color.color_favorite) : group.getColor(); return app.getUIUtilities().getPaintedIcon(R.drawable.ic_action_favorite, color | 0xff000000); case REGION: return getIcon(app, R.drawable.ic_world_globe_dark); @@ -395,7 +395,7 @@ public class QuickSearchListItem { } case WPT: WptPt wpt = (WptPt) searchResult.object; - return FavoriteImageDrawable.getOrCreate(app, wpt.getColor(), false, wpt); + return PointImageDrawable.getFromWpt(app, wpt.getColor(), false, wpt); case UNKNOWN_NAME_FILTER: break; } diff --git a/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java b/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java index 7a3ccb3efc..2426dc213a 100644 --- a/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java @@ -21,7 +21,7 @@ import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.MapMarkersHelper.MapMarker; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.views.ContextMenuLayer.ApplyMovedObjectCallback; import net.osmand.plus.views.MapTextLayer.MapTextProvider; @@ -103,19 +103,19 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer. for (FavoriteGroup group : favorites.getFavoriteGroups()) { List<Pair<FavouritePoint, MapMarker>> fullObjects = new ArrayList<>(); boolean synced = mapMarkersHelper.getMarkersGroup(group) != null; - for (FavouritePoint o : group.getPoints()) { - double lat = o.getLatitude(); - double lon = o.getLongitude(); - if (o.isVisible() && o != contextMenuLayer.getMoveableObject() + for (FavouritePoint favoritePoint : group.getPoints()) { + double lat = favoritePoint.getLatitude(); + double lon = favoritePoint.getLongitude(); + if (favoritePoint.isVisible() && favoritePoint != contextMenuLayer.getMoveableObject() && lat >= latLonBounds.bottom && lat <= latLonBounds.top && lon >= latLonBounds.left && lon <= latLonBounds.right) { MapMarker marker = null; if (synced) { - if ((marker = mapMarkersHelper.getMapMarker(o)) == null) { + if ((marker = mapMarkersHelper.getMapMarker(favoritePoint)) == null) { continue; } } - cache.add(o); + cache.add(favoritePoint); float x = tileBox.getPixXFromLatLon(lat, lon); float y = tileBox.getPixYFromLatLon(lat, lon); @@ -125,23 +125,23 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer. if (marker != null && marker.history) { color = grayColor; } else { - color = favorites.getColorWithCategory(o,defaultColor); + color = favorites.getColorWithCategory(favoritePoint,defaultColor); } - FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(view.getContext(), color, - true, o); - fid.drawSmallPoint(canvas, x, y, textScale); + PointImageDrawable pointImageDrawable = PointImageDrawable.getFromFavorite( + view.getContext(), color,true, favoritePoint); + pointImageDrawable.drawSmallPoint(canvas, x, y, textScale); smallObjectsLatLon.add(new LatLon(lat, lon)); } else { - fullObjects.add(new Pair<>(o, marker)); + fullObjects.add(new Pair<>(favoritePoint, marker)); fullObjectsLatLon.add(new LatLon(lat, lon)); } } } for (Pair<FavouritePoint, MapMarker> pair : fullObjects) { - FavouritePoint o = pair.first; - float x = tileBox.getPixXFromLatLon(o.getLatitude(), o.getLongitude()); - float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude()); - drawBigPoint(canvas, o, x, y, pair.second, textScale); + FavouritePoint favoritePoint = pair.first; + float x = tileBox.getPixXFromLatLon(favoritePoint.getLatitude(), favoritePoint.getLongitude()); + float y = tileBox.getPixYFromLatLon(favoritePoint.getLatitude(), favoritePoint.getLongitude()); + drawBigPoint(canvas, favoritePoint, x, y, pair.second, textScale); } } this.fullObjectsLatLon = fullObjectsLatLon; @@ -154,17 +154,19 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer. } - private void drawBigPoint(Canvas canvas, FavouritePoint o, float x, float y, @Nullable MapMarker marker, float textScale) { - FavoriteImageDrawable fid; + private void drawBigPoint(Canvas canvas, FavouritePoint favoritePoint, float x, float y, @Nullable MapMarker marker, + float textScale) { + PointImageDrawable pointImageDrawable; boolean history = false; if (marker != null) { - fid = FavoriteImageDrawable.getOrCreateSyncedIcon(view.getContext(), favorites.getColorWithCategory(o,defaultColor), o); + pointImageDrawable = PointImageDrawable.getOrCreateSyncedIcon(view.getContext(), + favorites.getColorWithCategory(favoritePoint,defaultColor), favoritePoint); history = marker.history; } else { - fid = FavoriteImageDrawable.getOrCreate(view.getContext(), favorites.getColorWithCategory(o, defaultColor), - true, o); + pointImageDrawable = PointImageDrawable.getFromFavorite(view.getContext(), + favorites.getColorWithCategory(favoritePoint, defaultColor),true, favoritePoint); } - fid.drawPoint(canvas, x, y, textScale, history); + pointImageDrawable.drawPoint(canvas, x, y, textScale, history); } @Override diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 34cc7a513e..11d3db4589 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -40,7 +40,7 @@ import net.osmand.plus.MapMarkersHelper.MapMarkersGroup; import net.osmand.plus.OsmandApplication; import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; import net.osmand.plus.R; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu.TrackChartPoints; import net.osmand.plus.render.OsmandRenderer; import net.osmand.plus.render.OsmandRenderer.RenderingContext; @@ -380,20 +380,20 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex List<Pair<WptPt, MapMarker>> fullObjects = new ArrayList<>(); int fileColor = getFileColor(g); boolean synced = mapMarkersHelper.getMarkersGroup(g.getGpxFile()) != null; - for (WptPt o : getListStarPoints(g)) { - if (o.lat >= latLonBounds.bottom && o.lat <= latLonBounds.top - && o.lon >= latLonBounds.left && o.lon <= latLonBounds.right - && o != contextMenuLayer.getMoveableObject()) { - pointFileMap.put(o, g); + for (WptPt wpt : getListStarPoints(g)) { + if (wpt.lat >= latLonBounds.bottom && wpt.lat <= latLonBounds.top + && wpt.lon >= latLonBounds.left && wpt.lon <= latLonBounds.right + && wpt != contextMenuLayer.getMoveableObject()) { + pointFileMap.put(wpt, g); MapMarker marker = null; if (synced) { - if ((marker = mapMarkersHelper.getMapMarker(o)) == null) { + if ((marker = mapMarkersHelper.getMapMarker(wpt)) == null) { continue; } } - cache.add(o); - float x = tileBox.getPixXFromLatLon(o.lat, o.lon); - float y = tileBox.getPixYFromLatLon(o.lat, o.lon); + cache.add(wpt); + float x = tileBox.getPixXFromLatLon(wpt.lat, wpt.lon); + float y = tileBox.getPixYFromLatLon(wpt.lat, wpt.lon); if (intersects(boundIntersections, x, y, iconSize, iconSize)) { @ColorInt @@ -401,26 +401,26 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex if (marker != null && marker.history) { color = grayColor; } else { - color = getPointColor(o, fileColor); + color = getPointColor(wpt, fileColor); } - FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(view.getContext(), color, - true, o); - fid.drawSmallPoint(canvas, x, y, textScale); - smallObjectsLatLon.add(new LatLon(o.lat, o.lon)); + PointImageDrawable pointImageDrawable = PointImageDrawable.getFromWpt(view.getContext(), color, + true, wpt); + pointImageDrawable.drawSmallPoint(canvas, x, y, textScale); + smallObjectsLatLon.add(new LatLon(wpt.lat, wpt.lon)); } else { - fullObjects.add(new Pair<>(o, marker)); - fullObjectsLatLon.add(new LatLon(o.lat, o.lon)); + fullObjects.add(new Pair<>(wpt, marker)); + fullObjectsLatLon.add(new LatLon(wpt.lat, wpt.lon)); } } - if (o == contextMenuLayer.getMoveableObject()) { - pointFileMap.put(o, g); + if (wpt == contextMenuLayer.getMoveableObject()) { + pointFileMap.put(wpt, g); } } for (Pair<WptPt, MapMarker> pair : fullObjects) { - WptPt o = pair.first; - float x = tileBox.getPixXFromLatLon(o.lat, o.lon); - float y = tileBox.getPixYFromLatLon(o.lat, o.lon); - drawBigPoint(canvas, o, fileColor, x, y, pair.second, textScale); + WptPt wpt = pair.first; + float x = tileBox.getPixXFromLatLon(wpt.lat, wpt.lon); + float y = tileBox.getPixYFromLatLon(wpt.lat, wpt.lon); + drawBigPoint(canvas, wpt, fileColor, x, y, pair.second, textScale); } } if (trackChartPoints != null) { @@ -494,17 +494,17 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex return g.getColor() == 0 ? defPointColor : g.getColor(); } - private void drawBigPoint(Canvas canvas, WptPt o, int fileColor, float x, float y, @Nullable MapMarker marker, float textScale) { - int pointColor = getPointColor(o, fileColor); - FavoriteImageDrawable fid; + private void drawBigPoint(Canvas canvas, WptPt wpt, int fileColor, float x, float y, @Nullable MapMarker marker, float textScale) { + int pointColor = getPointColor(wpt, fileColor); + PointImageDrawable pointImageDrawable; boolean history = false; if (marker != null) { - fid = FavoriteImageDrawable.getOrCreateSyncedIcon(view.getContext(), pointColor, o); + pointImageDrawable = PointImageDrawable.getOrCreateSyncedIcon(view.getContext(), pointColor, wpt); history = marker.history; } else { - fid = FavoriteImageDrawable.getOrCreate(view.getContext(), pointColor, true, o); + pointImageDrawable = PointImageDrawable.getFromWpt(view.getContext(), pointColor, true, wpt); } - fid.drawPoint(canvas, x, y, textScale, history); + pointImageDrawable.drawPoint(canvas, x, y, textScale, history); } @ColorInt diff --git a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java index 517092764e..b2dc12e0e0 100644 --- a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java @@ -22,7 +22,6 @@ import net.osmand.PlatformUtil; import net.osmand.ResultMatcher; import net.osmand.ValueHolder; import net.osmand.data.Amenity; -import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -32,7 +31,7 @@ import net.osmand.osm.PoiType; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.helpers.WaypointHelper; import net.osmand.plus.poi.PoiUIFilter; import net.osmand.plus.render.RenderingIcons; @@ -202,10 +201,9 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon float iconSize = getIconSize(app) * 1.5f * textScale; QuadTree<QuadRect> boundIntersections = initBoundIntersections(tileBox); WaypointHelper wph = app.getWaypointHelper(); - FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(view.getContext(), - ContextCompat.getColor(app, R.color.osmand_orange), true, - new FavouritePoint(0, 0, "", "")); - fid.setAlpha(0.8f); + PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(view.getContext(), + ContextCompat.getColor(app, R.color.osmand_orange), true); + pointImageDrawable.setAlpha(0.8f); for (Amenity o : objects) { float x = tileBox.getPixXFromLatLon(o.getLocation().getLatitude(), o.getLocation() .getLongitude()); @@ -215,7 +213,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon if (tileBox.containsPoint(x, y, iconSize)) { if (intersects(boundIntersections, x, y, iconSize, iconSize) || (app.getSettings().SHOW_NEARBY_POI.get() && wph.isRouteCalculated() && !wph.isAmenityNoPassed(o))) { - fid.drawSmallPoint(canvas, x, y, textScale); + pointImageDrawable.drawSmallPoint(canvas, x, y, textScale); smallObjectsLatLon.add(new LatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude())); } else { @@ -241,7 +239,11 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon } } if (id != null) { - fid.drawPoint(canvas, x, y, textScale, false); + pointImageDrawable = PointImageDrawable.getOrCreate(view.getContext(), + ContextCompat.getColor(app, R.color.osmand_orange), true, + RenderingIcons.getResId(id)); + pointImageDrawable.setAlpha(0.8f); + pointImageDrawable.drawPoint(canvas, x, y, textScale, false); } } } diff --git a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java index f5e61d05e3..a5e1489ee1 100644 --- a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java @@ -11,7 +11,7 @@ import androidx.annotation.DrawableRes; import androidx.core.content.ContextCompat; import net.osmand.ResultMatcher; -import net.osmand.data.FavouritePoint; +import net.osmand.data.FavouritePoint.BackgroundType; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -20,7 +20,7 @@ import net.osmand.data.RotatedTileBox; import net.osmand.data.TransportStop; import net.osmand.osm.edit.Node; import net.osmand.osm.edit.Way; -import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; @@ -222,11 +222,11 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa float y = tb.getPixYFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude()); if (intersects(boundIntersections, x, y, iconSize, iconSize)) { - FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(mapActivity, - ContextCompat.getColor(mapActivity, R.color.transport_stop_icon_background), true, - createUIPoint(0)); - fid.setAlpha(0.9f); - fid.drawSmallPoint(canvas, x, y, textScale); + PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(mapActivity, + ContextCompat.getColor(mapActivity, R.color.transport_stop_icon_background), + true,false ,0, BackgroundType.SQUARE); + pointImageDrawable.setAlpha(0.9f); + pointImageDrawable.drawSmallPoint(canvas, x, y, textScale); } else { fullObjects.add(o); } @@ -247,19 +247,12 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa } } - private FavouritePoint createUIPoint(int iconId) { - FavouritePoint fp = new FavouritePoint(0, 0, "", ""); - fp.setIconId(iconId); - fp.setBackgroundType(FavouritePoint.BackgroundType.SQUARE); - return fp; - } - private void drawPoint(Canvas canvas, float textScale, float x, float y, @DrawableRes int iconId) { - FavouritePoint fp = createUIPoint(iconId); - FavoriteImageDrawable fid = FavoriteImageDrawable.getOrCreate(mapActivity, - ContextCompat.getColor(mapActivity, R.color.transport_stop_icon_background), true, fp); - fid.setAlpha(0.9f); - fid.drawPoint(canvas, x, y, textScale, false); + PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(mapActivity, + ContextCompat.getColor(mapActivity, R.color.transport_stop_icon_background), + true,false ,iconId, BackgroundType.SQUARE); + pointImageDrawable.setAlpha(0.9f); + pointImageDrawable.drawPoint(canvas, x, y, textScale, false); } @Override From 78880e11b1f47cbdbda7bf443ed4186dd4e1f359 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Wed, 17 Jun 2020 10:04:11 +0300 Subject: [PATCH 038/300] transforming tags WIP --- .../binary/BinaryMapRouteReaderAdapter.java | 18 ++++++++- .../net/osmand/binary/RouteDataObject.java | 40 ++++++++++++++++++- .../osmand/router/RoutingConfiguration.java | 2 +- .../net/osmand/router/RoutingContext.java | 4 ++ 4 files changed, 60 insertions(+), 4 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index 048eb706fb..a1e2af0eac 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -73,6 +73,7 @@ public class BinaryMapRouteReaderAdapter { private float floatValue; private int type; private List<RouteTypeCondition> conditions = null; + private TIntObjectHashMap<Integer> directions = null; private int forward; public RouteTypeRule() { @@ -165,6 +166,10 @@ public class BinaryMapRouteReaderAdapter { return conditions != null; } + public boolean directional() { + return directions != null; + } + public String getNonConditionalTag() { String tag = getTag(); if(tag != null && tag.endsWith(":conditional")) { @@ -172,7 +177,12 @@ public class BinaryMapRouteReaderAdapter { } return tag; } - + + //TODO implement + public String getNonDirectionalTag() { + return null; + } + public int onewayDirection(){ if(type == ONEWAY){ return intValue; @@ -286,7 +296,12 @@ public class BinaryMapRouteReaderAdapter { if (i > 0) { intValue = Integer.parseInt(v.substring(0, i)); } + } else if (t.endsWith("direction") && v!=null) { + type = TRAFFIC_SIGNALS; + directions = new TIntObjectHashMap<Integer>(); + } + } } @@ -344,6 +359,7 @@ public class BinaryMapRouteReaderAdapter { while (routeEncodingRules.size() <= id) { routeEncodingRules.add(null); } + /**TODO delete*/ System.out.println(String.format("initRouteIncodingRule=> id: %d, tag: %s, val: %s", id, tags, val)); routeEncodingRules.set(id, new RouteTypeRule(tags, val)); if (tags.equals("name")) { nameTypeRule = id; diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/RouteDataObject.java b/OsmAnd-java/src/main/java/net/osmand/binary/RouteDataObject.java index 807561e66d..eaf670cca1 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/RouteDataObject.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/RouteDataObject.java @@ -541,6 +541,44 @@ public class RouteDataObject { } } + // TODO implement + public void processDirectionalTags() { + if (pointTypes != null) { + for (int i = 0; i < pointTypes.length; i++) { + if (pointTypes[i] != null) { + int[] pTypes = pointTypes[i]; + int pSz = pTypes.length; + if (pSz > 0) { + for (int j = 0; j < pSz; j++) { + RouteTypeRule r = region.quickGetEncodingRule(pTypes[j]); + if (r != null && r.directional()) { +// int vl = r.conditionalValue(conditionalTime); +// if (vl != 0) { +// RouteTypeRule rtr = region.quickGetEncodingRule(vl); +// String nonCondTag = rtr.getTag(); +// int ks; +// for (ks = 0; ks < pointTypes[i].length; ks++) { +// RouteTypeRule toReplace = region.quickGetEncodingRule(pointTypes[i][j]); +// if (toReplace != null && toReplace.getTag().contentEquals(nonCondTag)) { +// break; +// } +// } +// if (ks == pTypes.length) { +// int[] ntypes = new int[pTypes.length + 1]; +// System.arraycopy(pTypes, 0, ntypes, 0, pTypes.length); +// pTypes = ntypes; +// } +// pTypes[ks] = vl; +// } + } + } + } + pointTypes[i] = pTypes; + } + } + } + } + public float getMaximumSpeed(boolean direction) { int sz = types.length; float maxSpeed = 0; @@ -1054,6 +1092,4 @@ public class RouteDataObject { } restrictionsVia[k] = viaWay; } - - } diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java index 232b971f9f..09a1003483 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java @@ -47,7 +47,7 @@ public class RoutingConfiguration { public float recalculateDistance = 20000f; // 1.6 Time to calculate all access restrictions based on conditions - public long routeCalculationTime = 0; + public long routeCalculationTime = 1592317409;//0; public static class Builder { // Design time storage diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java index 2c44940dff..44bb6846c2 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java @@ -17,6 +17,7 @@ import org.apache.commons.logging.Log; import gnu.trove.iterator.TIntObjectIterator; import gnu.trove.iterator.TLongIterator; import gnu.trove.map.TLongObjectMap; +import gnu.trove.map.hash.TIntObjectHashMap; import gnu.trove.map.hash.TLongObjectHashMap; import gnu.trove.set.hash.TLongHashSet; import net.osmand.NativeLibrary; @@ -308,6 +309,7 @@ public class RoutingContext { } ts.excludedIds.add(ro.getId()); } + ro.processDirectionalTags(); } } } @@ -607,6 +609,8 @@ public class RoutingContext { public TLongObjectMap<RouteSegment> getRoutes() { return routes; } + private TIntObjectHashMap<Integer> forwardTags; + private TIntObjectHashMap<Integer> backwardTags; public void loadAllObjects(final List<RouteDataObject> toFillIn, RoutingContext ctx, TLongObjectHashMap<RouteDataObject> excludeDuplications) { if(routes != null) { From 4009946a32ccd8500e0e535875d5a4baf2d0d0df Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Wed, 17 Jun 2020 12:40:31 +0300 Subject: [PATCH 039/300] small refactor --- OsmAnd/res/layout/bottom_sheet_speed_cameras.xml | 2 +- OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/layout/bottom_sheet_speed_cameras.xml b/OsmAnd/res/layout/bottom_sheet_speed_cameras.xml index 6fc553118f..c00d4a72a5 100644 --- a/OsmAnd/res/layout/bottom_sheet_speed_cameras.xml +++ b/OsmAnd/res/layout/bottom_sheet_speed_cameras.xml @@ -8,7 +8,7 @@ android:orientation="vertical" android:padding="@dimen/content_padding"> - <ImageView + <androidx.appcompat.widget.AppCompatImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java index fbf64a8d29..dc2b01fcb8 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java @@ -48,7 +48,7 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { @Override public void createMenuItems(Bundle savedInstanceState) { View root = UiUtilities.getInflater(app, nightMode).inflate(R.layout.bottom_sheet_speed_cameras, null); - ((ImageView) root.findViewById(R.id.icon)).setImageDrawable(ContextCompat.getDrawable(app, R.drawable.img_speed_camera_warning)); + ((ImageView) root.findViewById(R.id.icon)).setImageDrawable(app.getUIUtilities().getIcon(R.drawable.img_speed_camera_warning)); ((TextView) root.findViewById(R.id.description)).setText(getDescriptionText()); items.add(new BaseBottomSheetItem.Builder().setCustomView(root).create()); } From fe2af006ea20c3dd9f4cfcf314e7709e045ff424 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Wed, 17 Jun 2020 17:28:16 +0300 Subject: [PATCH 040/300] rearrange filters redesign --- OsmAnd/res/layout/order_poi_list_item.xml | 35 +++++++---- OsmAnd/res/values/strings.xml | 1 + .../net/osmand/plus/poi/PoiFiltersHelper.java | 9 ++- .../plus/poi/RearrangePoiFiltersFragment.java | 62 +++++++++++++++++-- 4 files changed, 87 insertions(+), 20 deletions(-) diff --git a/OsmAnd/res/layout/order_poi_list_item.xml b/OsmAnd/res/layout/order_poi_list_item.xml index a7e396c634..8b94a16e34 100644 --- a/OsmAnd/res/layout/order_poi_list_item.xml +++ b/OsmAnd/res/layout/order_poi_list_item.xml @@ -16,17 +16,16 @@ tools:background="?android:attr/selectableItemBackground"> <androidx.appcompat.widget.AppCompatImageView - android:id="@+id/action_icon" + android:id="@+id/move_icon" android:layout_width="wrap_content" - android:layout_height="wrap_content" + android:layout_height="match_parent" android:layout_gravity="center" android:paddingLeft="@dimen/content_padding" android:paddingRight="@dimen/content_padding" - android:minHeight="@dimen/bottom_sheet_list_item_height" - tools:src="@drawable/ic_action_remove" - tools:tint="@color/icon_color_default_light" + android:paddingStart="@dimen/content_padding" android:paddingEnd="@dimen/content_padding" - android:paddingStart="@dimen/content_padding" /> + android:tint="?attr/secondary_icon_color" + osmand:srcCompat="@drawable/ic_action_item_move" /> <androidx.appcompat.widget.AppCompatImageView android:id="@+id/icon" @@ -59,16 +58,30 @@ android:paddingStart="0dp" /> <androidx.appcompat.widget.AppCompatImageView - android:id="@+id/move_icon" + android:id="@+id/action_delete" android:layout_width="wrap_content" - android:layout_height="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:minHeight="@dimen/bottom_sheet_list_item_height" + android:paddingStart="@dimen/content_padding_half" + android:paddingLeft="@dimen/content_padding_half" + android:paddingEnd="@dimen/content_padding_half" + android:paddingRight="@dimen/content_padding_half" + tools:src="@drawable/ic_action_delete_item" + tools:tint="@color/icon_color_default_light" /> + + <androidx.appcompat.widget.AppCompatImageView + android:id="@+id/action_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" android:layout_gravity="center" android:paddingLeft="@dimen/content_padding" android:paddingRight="@dimen/content_padding" - osmand:srcCompat="@drawable/ic_action_item_move" - android:tint="?attr/secondary_icon_color" + android:minHeight="@dimen/bottom_sheet_list_item_height" android:paddingStart="@dimen/content_padding" - android:paddingEnd="@dimen/content_padding" /> + android:paddingEnd="@dimen/content_padding" + tools:src="@drawable/ic_action_remove" + tools:tint="@color/icon_color_default_light" /> </LinearLayout> diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 6362a76dc1..f50040ea20 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,7 @@ Thx - Hardy --> + <string name="item_deleted">%1$s deleted</string> <string name="quick_action_showhide_mapillary_descr">A toggle to show or hide the Mapillary layer on the map.</string> <string name="quick_action_mapillary_show">Show Mapillary</string> <string name="quick_action_mapillary_hide">Hide Mapillary</string> diff --git a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java index ed1c11dfc2..4a7be56153 100644 --- a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java +++ b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java @@ -10,7 +10,6 @@ import net.osmand.PlatformUtil; import net.osmand.osm.AbstractPoiType; import net.osmand.osm.MapPoiTypes; import net.osmand.osm.PoiCategory; -import net.osmand.osm.PoiType; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.api.SQLiteAPI; @@ -19,7 +18,6 @@ import net.osmand.plus.api.SQLiteAPI.SQLiteCursor; import net.osmand.plus.api.SQLiteAPI.SQLiteStatement; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.wikipedia.WikipediaPoiMenu; -import net.osmand.util.Algorithms; import org.apache.commons.logging.Log; import org.json.JSONArray; @@ -39,7 +37,6 @@ import java.util.Map; import java.util.Set; import java.util.TreeSet; -import static net.osmand.osm.MapPoiTypes.WIKI_PLACE; import static net.osmand.plus.wikipedia.WikipediaPoiMenu.ENABLED_WIKI_POI_LANGUAGES_KEY; import static net.osmand.plus.wikipedia.WikipediaPoiMenu.GLOBAL_WIKI_POI_ENABLED_KEY; @@ -178,6 +175,12 @@ public class PoiFiltersHelper { helper.close(); } + public void updateCachedFilter(PoiUIFilter poiFilter) { + int i = cacheTopStandardFilters.indexOf(poiFilter); + if (i != -1) { + cacheTopStandardFilters.set(i, poiFilter); + } + } private PoiUIFilter getFilterById(String filterId, PoiUIFilter... filters) { for (PoiUIFilter pf : filters) { diff --git a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java index c6daaa6bc1..6fb1ffdedb 100644 --- a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java +++ b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java @@ -13,6 +13,7 @@ import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; @@ -27,6 +28,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.snackbar.Snackbar; import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; @@ -47,6 +49,7 @@ import java.util.HashMap; import java.util.List; import static net.osmand.plus.poi.PoiUIFilter.CUSTOM_FILTER_ID; +import static net.osmand.plus.poi.PoiUIFilter.USER_PREFIX; import static net.osmand.plus.poi.RearrangePoiFiltersFragment.ItemType.DESCRIPTION; import static net.osmand.plus.poi.RearrangePoiFiltersFragment.ItemType.POI; import static net.osmand.plus.poi.RearrangePoiFiltersFragment.ItemType.SPACE; @@ -67,6 +70,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec private boolean wasReset = false; private boolean isChanged = false; private ApplicationMode appMode; + private LinearLayout buttonsContainer; private HashMap<String, Integer> poiFiltersOrders = new HashMap<>(); private List<String> availableFiltersKeys = new ArrayList<>(); @@ -199,7 +203,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec } app.getPoiFilters().saveFiltersOrder(selectedAppMode, filterIds); } else if (wasReset) { - app.getPoiFilters().saveFiltersOrder(selectedAppMode,null); + app.getPoiFilters().saveFiltersOrder(selectedAppMode, null); } } if (resultCallback != null) { @@ -208,6 +212,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec dismiss(); } }); + buttonsContainer = mainView.findViewById(R.id.buttons_container); return mainView; } @@ -512,6 +517,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec private OsmandApplication app; private UiUtilities uiUtilities; + private PoiFiltersHelper poiHelper; private List<ListItem> items = new ArrayList<>(); private boolean nightMode; @@ -520,8 +526,9 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec public EditPoiFiltersAdapter(OsmandApplication app, boolean nightMode) { setHasStableIds(true); this.app = app; - this.uiUtilities = app.getUIUtilities(); this.nightMode = nightMode; + uiUtilities = app.getUIUtilities(); + poiHelper = app.getPoiFilters(); } @NonNull @@ -557,13 +564,13 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec @SuppressLint("ClickableViewAccessibility") @Override - public void onBindViewHolder(final @NonNull RecyclerView.ViewHolder holder, int position) { - ListItem item = items.get(position); - boolean nightMode = isNightMode(app, usedOnMap); + public void onBindViewHolder(final @NonNull RecyclerView.ViewHolder holder, final int position) { + final ListItem item = items.get(position); + final boolean nightMode = isNightMode(app, usedOnMap); int activeColorResId = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light; if (holder instanceof PoiViewHolder) { PoiViewHolder h = (PoiViewHolder) holder; - PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; + final PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; int osmandOrangeColorResId = nightMode ? R.color.osmand_orange_dark : R.color.osmand_orange; h.title.setText(poiInfo.name); h.icon.setImageDrawable(uiUtilities.getIcon(poiInfo.iconRes, osmandOrangeColorResId)); @@ -591,6 +598,47 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec } else { h.actionIcon.setImageDrawable(uiUtilities.getIcon(R.drawable.ic_action_add, R.color.color_osm_edit_create)); } + boolean userFilter = poiInfo.filterId.startsWith(USER_PREFIX); + h.actionDelete.setImageDrawable(uiUtilities.getIcon(R.drawable.ic_action_delete_item, R.color.color_osm_edit_delete)); + h.actionDelete.setVisibility(userFilter ? View.VISIBLE : View.GONE); + h.actionDelete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar snackbar = Snackbar.make(requireView(), + getString(R.string.item_deleted, poiInfo.name), Snackbar.LENGTH_LONG) + .setAction(R.string.shared_string_undo, new View.OnClickListener() { + @Override + public void onClick(View view) { + items.add(position, item); + notifyDataSetChanged(); + } + }) + .addCallback(new Snackbar.Callback() { + @Override + public void onShown(Snackbar sb) { + super.onShown(sb); + items.remove(item); + notifyDataSetChanged(); + } + + @Override + public void onDismissed(Snackbar transientBottomBar, int event) { + super.onDismissed(transientBottomBar, event); + if (DISMISS_EVENT_ACTION != event) { + PoiUIFilter filter = poiHelper.getFilterById(poiInfo.filterId); + if (filter != null && poiHelper.removePoiFilter(filter)) { + filter.setDeleted(true); + poiHelper.updateCachedFilter(filter); + app.getSearchUICore().refreshCustomPoiFilters(); + } + } + } + }); + snackbar.setAnchorView(buttonsContainer); + UiUtilities.setupSnackbar(snackbar, nightMode); + snackbar.show(); + } + }); } else if (holder instanceof SpaceViewHolder) { float space = (float) item.value; ((SpaceViewHolder) holder).setSpace((int) space); @@ -751,6 +799,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec private TextView description; private ImageView icon; private ImageView actionIcon; + private ImageView actionDelete; private ImageView moveIcon; private View itemsContainer; @@ -758,6 +807,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec super(itemView); title = itemView.findViewById(R.id.title); actionIcon = itemView.findViewById(R.id.action_icon); + actionDelete = itemView.findViewById(R.id.action_delete); icon = itemView.findViewById(R.id.icon); moveIcon = itemView.findViewById(R.id.move_icon); itemsContainer = itemView.findViewById(R.id.selectable_list_item); From 05ffbdffaaca8fd0cb498fd28e487bf1989c028c Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Thu, 18 Jun 2020 12:29:59 +0300 Subject: [PATCH 041/300] refactor speed camera restriction --- .../osmand/binary/BinaryMapPoiReaderAdapter.java | 4 ++++ .../main/java/net/osmand/osm/AbstractPoiType.java | 8 ++++++++ .../src/main/java/net/osmand/osm/MapPoiTypes.java | 10 ++++------ .../main/java/net/osmand/search/SearchUICore.java | 13 ++++--------- OsmAnd/src/net/osmand/plus/AppInitializer.java | 3 ++- .../plus/dialogs/SpeedCamerasBottomSheet.java | 7 ++----- .../net/osmand/plus/search/QuickSearchHelper.java | 1 - .../search/QuickSearchSubCategoriesFragment.java | 7 +++++++ 8 files changed, 31 insertions(+), 22 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java index aa51de0c4b..a080b25851 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java @@ -715,6 +715,10 @@ public class BinaryMapPoiReaderAdapter { am.setRoutePoint(arp); } } + PoiType poiType = poiTypes.getPoiTypeByKeyInCategory(am.getType(), am.getSubType()); + if (poiType != null && poiType.isForbidden()) { + return null; + } return am; case OsmandOdb.OsmAndPoiBoxDataAtom.DX_FIELD_NUMBER: x = (codedIS.readSInt32() + (px << (24 - zoom))) << 7; diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/AbstractPoiType.java b/OsmAnd-java/src/main/java/net/osmand/osm/AbstractPoiType.java index 5a8d801d25..3d9ae43b66 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/AbstractPoiType.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/AbstractPoiType.java @@ -21,6 +21,7 @@ public abstract class AbstractPoiType { private String synonyms; private String enTranslation; private String translation; + private boolean isForbidden; public AbstractPoiType(String keyName, MapPoiTypes registry) { this.keyName = keyName; @@ -67,6 +68,13 @@ public abstract class AbstractPoiType { return this instanceof PoiType && this.isAdditional(); } + public void setForbidden(boolean forbidden) { + isForbidden = forbidden; + } + + public boolean isForbidden() { + return isForbidden; + } public String getTranslation() { if(translation == null) { diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java index d0c941a898..9f6b42933e 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java @@ -946,13 +946,11 @@ public class MapPoiTypes { } } - public void excludeSpeedCameraPoiType() { + public void forbidPoiType(String keyName) { for (PoiCategory category : categories) { - Iterator<PoiType> poiIter = category.getPoiTypes().iterator(); - while (poiIter.hasNext()) { - PoiType poiType = poiIter.next(); - if ("speed_camera".equals(poiType.getKeyName())) { - poiIter.remove(); + for (PoiType poiType : category.getPoiTypes()) { + if (keyName.equals(poiType.getKeyName())) { + poiType.setForbidden(true); } } } diff --git a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java index 1143a2965b..53c035fdaa 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java @@ -657,8 +657,6 @@ public class SearchUICore { private List<MapObject> exportedObjects; private List<City> exportedCities; - public static boolean speedCamerasUninstalled = false; - public SearchResultMatcher(ResultMatcher<SearchResult> matcher, SearchPhrase phrase, int request, AtomicInteger requestNumber, int totalLimit) { this.matcher = matcher; @@ -736,7 +734,7 @@ public class SearchUICore { @Override public boolean publish(SearchResult object) { - if (speedCamerasUninstalled && isSpeedCameraObject(object.object)) { + if (isPoiTypeForbidden(object.object)) { return false; } if (phrase != null && object.otherNames != null && !phrase.getFirstUnknownNameStringMatcher().matches(object.localeName)) { @@ -893,14 +891,11 @@ public class SearchUICore { return json; } - private boolean isSpeedCameraObject(Object object) { - String key = ""; + private boolean isPoiTypeForbidden(Object object) { if (object instanceof PoiType) { - key = ((PoiType) object).getKeyName(); - } else if (object instanceof Amenity) { - key = ((Amenity) object).getSubType(); + return ((PoiType) object).isForbidden(); } - return "speed_camera".equals(key); + return false; } } diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java index e07399832c..f7c1d89aba 100644 --- a/OsmAnd/src/net/osmand/plus/AppInitializer.java +++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java @@ -86,6 +86,7 @@ import java.util.Random; import btools.routingapp.BRouterServiceConnection; import static net.osmand.plus.AppVersionUpgradeOnInit.LAST_APP_VERSION; +import static net.osmand.plus.dialogs.SpeedCamerasBottomSheet.SPEED_CAMERA_KEY_NAME; import static net.osmand.plus.liveupdates.LiveUpdatesHelper.getPendingIntent; import static net.osmand.plus.liveupdates.LiveUpdatesHelper.preferenceLastCheck; import static net.osmand.plus.liveupdates.LiveUpdatesHelper.preferenceLiveUpdatesOn; @@ -407,7 +408,7 @@ public class AppInitializer implements IProgress { } }); if (app.getSettings().SPEED_CAMERAS_UNINSTALLED.get()) { - app.getPoiTypes().excludeSpeedCameraPoiType(); + app.getPoiTypes().forbidPoiType(SPEED_CAMERA_KEY_NAME); } } diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java index dc2b01fcb8..cd6b8f487a 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java @@ -8,7 +8,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; @@ -21,12 +20,11 @@ import net.osmand.plus.helpers.FontCache; import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.backend.OsmandSettings.OsmandPreference; import net.osmand.plus.settings.fragments.OnPreferenceChanged; -import net.osmand.plus.widgets.style.CustomTypefaceSpan; -import net.osmand.search.SearchUICore.SearchResultMatcher; public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { public static final String TAG = SpeedCamerasBottomSheet.class.getName(); + public static final String SPEED_CAMERA_KEY_NAME = "speed_camera"; private OsmandApplication app; private OsmandSettings settings; @@ -65,8 +63,7 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { speedCamUninstalled.set(true); settings.SPEAK_SPEED_CAMERA.set(false); settings.SHOW_CAMERAS.set(false); - app.getPoiTypes().excludeSpeedCameraPoiType(); - SearchResultMatcher.speedCamerasUninstalled = true; + app.getPoiTypes().forbidPoiType(SPEED_CAMERA_KEY_NAME); Fragment targetFragment = getTargetFragment(); if (targetFragment instanceof OnPreferenceChanged) { ((OnPreferenceChanged) targetFragment).onPreferenceChanged(speedCamUninstalled.getId()); diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java index 0878f0a37c..55da1967d0 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchHelper.java @@ -70,7 +70,6 @@ public class QuickSearchHelper implements ResourceListener { core = new SearchUICore(app.getPoiTypes(), settings.MAP_PREFERRED_LOCALE.get(), settings.MAP_TRANSLITERATE_NAMES.get()); app.getResourceManager().addResourceListener(this); - SearchResultMatcher.speedCamerasUninstalled = settings.SPEED_CAMERAS_UNINSTALLED.get(); } public SearchUICore getCore() { diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchSubCategoriesFragment.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchSubCategoriesFragment.java index 09777e794d..f7b58f6ab6 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchSubCategoriesFragment.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchSubCategoriesFragment.java @@ -35,6 +35,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashSet; +import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -86,6 +87,12 @@ public class QuickSearchSubCategoriesFragment extends BaseOsmAndDialogFragment { acceptedCategories = new HashSet<>(savedInstanceState.getStringArrayList(ACCEPTED_CATEGORIES_KEY)); } poiTypeList = new ArrayList<>(poiCategory.getPoiTypes()); + Iterator<PoiType> iter = poiTypeList.iterator(); + while (iter.hasNext()) { + if (iter.next().isForbidden()) { + iter.remove(); + } + } Collections.sort(poiTypeList, new Comparator<PoiType>() { @Override public int compare(PoiType poiType, PoiType t1) { From 18074b0dfcd2f680c0ca0c3a8c8796f41399ee49 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Thu, 18 Jun 2020 13:38:24 +0300 Subject: [PATCH 042/300] small refactor --- .../java/net/osmand/binary/BinaryMapPoiReaderAdapter.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java index a080b25851..5c196ebd89 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java @@ -715,10 +715,6 @@ public class BinaryMapPoiReaderAdapter { am.setRoutePoint(arp); } } - PoiType poiType = poiTypes.getPoiTypeByKeyInCategory(am.getType(), am.getSubType()); - if (poiType != null && poiType.isForbidden()) { - return null; - } return am; case OsmandOdb.OsmAndPoiBoxDataAtom.DX_FIELD_NUMBER: x = (codedIS.readSInt32() + (px << (24 - zoom))) << 7; @@ -774,6 +770,10 @@ public class BinaryMapPoiReaderAdapter { } } subtype = poiTypes.replaceDeprecatedSubtype(type, subtype); + PoiType poiType = poiTypes.getPoiTypeByKeyInCategory(type, subtype); + if (poiType != null && poiType.isForbidden()) { + return null; + } if (req.poiTypeFilter == null || req.poiTypeFilter.accept(type, subtype)) { if (amenityType == null) { amenityType = type; From 19acf675c9bb3e714da4f5b742066bfc1243ec71 Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Thu, 18 Jun 2020 14:31:34 +0300 Subject: [PATCH 043/300] Gpx context menu UI initial commit --- .../plus/mapcontextmenu/MenuBuilder.java | 4 + .../builders/SelectedGpxMenuBuilder.java | 181 ++++++++++++++++++ .../SelectedGpxMenuController.java | 5 +- 3 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java index 14829330bc..fd025205e6 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuBuilder.java @@ -754,6 +754,10 @@ public class MenuBuilder { return iconsCache.getIcon(iconId, light ? R.color.ctx_menu_bottom_view_icon_light : R.color.ctx_menu_bottom_view_icon_dark); } + public Drawable getThemedIcon(int iconId) { + return app.getUIUtilities().getThemedIcon(iconId); + } + public Drawable getRowIcon(Context ctx, String fileName) { Drawable d = RenderingIcons.getBigIcon(ctx, fileName); if (d != null) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java new file mode 100644 index 0000000000..1dc5bb2d22 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java @@ -0,0 +1,181 @@ +package net.osmand.plus.mapcontextmenu.builders; + +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import net.osmand.AndroidUtils; +import net.osmand.GPXUtilities.GPXTrackAnalysis; +import net.osmand.plus.GpxSelectionHelper; +import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; +import net.osmand.plus.OsmAndFormatter; +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.helpers.AndroidUiHelper; +import net.osmand.plus.mapcontextmenu.MenuBuilder; +import net.osmand.util.Algorithms; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; + + +public class SelectedGpxMenuBuilder extends MenuBuilder { + + private SelectedGpxFile selectedGpxFile; + private GPXTrackAnalysis analysis; + + public SelectedGpxMenuBuilder(@NonNull MapActivity mapActivity, @NonNull SelectedGpxFile selectedGpxFile) { + super(mapActivity); + this.selectedGpxFile = selectedGpxFile; + analysis = selectedGpxFile.getTrackAnalysis(mapActivity.getMyApplication()); + } + + @Override + protected boolean needBuildPlainMenuItems() { + return false; + } + + @Override + protected boolean needBuildCoordinatesRow() { + return false; + } + + @Override + public void buildInternal(View view) { + buildOverviewRows(view); + buildElevationRows(view); + buildSpeedRows(view); + } + + public void buildOverviewRows(View view) { + buildCategoryView(view, app.getString(R.string.shared_string_overview)); + + buildRow(view, getThemedIcon(R.drawable.ic_action_polygom_dark), null, app.getString(R.string.distance), + OsmAndFormatter.getFormattedDistance(analysis.totalDistance, app), 0, null, + false, null, false, 0, false, false, false, null, false); + + String timeSpan = Algorithms.formatDuration((int) (analysis.timeSpan / 1000), app.accessibilityEnabled()); + String timeMoving = Algorithms.formatDuration((int) (analysis.timeMoving / 1000), app.accessibilityEnabled()); + String title = app.getString(R.string.shared_string_time_span) + " / " + app.getString(R.string.shared_string_time_moving); + buildRow(view, getThemedIcon(R.drawable.ic_action_time_span), null, title, + timeSpan + " / " + timeMoving, 0, null, + false, null, false, 0, false, false, false, null, false); + + Date start = new Date(analysis.startTime); + Date end = new Date(analysis.endTime); + DateFormat format = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + buildRow(view, getThemedIcon(R.drawable.ic_action_time_start), null, app.getString(R.string.shared_string_start_time), + format.format(start) + " / " + format.format(end), 0, null, + false, null, false, 0, false, false, false, null, true); + } + + public void buildElevationRows(View view) { + if (analysis.isElevationSpecified()) { + buildCategoryView(view, app.getString(R.string.altitude)); + + buildRow(view, getThemedIcon(R.drawable.ic_action_altitude_average), null, app.getString(R.string.average_altitude), + OsmAndFormatter.getFormattedAlt(analysis.avgElevation, app), 0, null, + false, null, false, 0, false, false, false, null, false); + + String min = OsmAndFormatter.getFormattedAlt(analysis.minElevation, app); + String max = OsmAndFormatter.getFormattedAlt(analysis.maxElevation, app); + buildRow(view, getThemedIcon(R.drawable.ic_action_altitude_range_16), null, app.getString(R.string.altitude_range), + min + " - " + max, 0, null, + false, null, false, 0, false, false, false, null, false); + + String asc = OsmAndFormatter.getFormattedAlt(analysis.diffElevationUp, app); + String desc = OsmAndFormatter.getFormattedAlt(analysis.diffElevationDown, app); + buildRow(view, getThemedIcon(R.drawable.ic_action_altitude_descent), null, app.getString(R.string.ascent_descent), + asc + " / " + desc, 0, null, + false, null, false, 0, false, false, false, null, true); + } + } + + public void buildSpeedRows(View view) { + if (analysis.isSpeedSpecified()) { + buildCategoryView(view, app.getString(R.string.map_widget_speed)); + + buildRow(view, getThemedIcon(R.drawable.ic_action_speed), null, app.getString(R.string.average_speed), + OsmAndFormatter.getFormattedSpeed(analysis.avgSpeed, app), 0, null, + false, null, false, 0, false, false, false, null, false); + + buildRow(view, getThemedIcon(R.drawable.ic_action_max_speed), null, app.getString(R.string.max_speed), + OsmAndFormatter.getFormattedSpeed(analysis.maxSpeed, app), 0, null, + false, null, false, 0, false, false, false, null, false); + + buildRow(view, getThemedIcon(R.drawable.ic_action_altitude_descent), null, app.getString(R.string.distance_moving), + OsmAndFormatter.getFormattedDistance(analysis.totalDistanceMoving, app), 0, null, + false, null, false, 0, false, false, false, null, true); + } + } + + private void buildCategoryView(View view, String name) { + if (!isFirstRow()) { + buildRowDivider(view); + } + + View categoryView = UiUtilities.getInflater(view.getContext(), !light).inflate(R.layout.preference_category_with_descr, (ViewGroup) view, false); + + AndroidUiHelper.updateVisibility(categoryView.findViewById(android.R.id.icon), false); + AndroidUiHelper.updateVisibility(categoryView.findViewById(android.R.id.summary), false); + + TextView title = categoryView.findViewById(android.R.id.title); + title.setText(name); + + ((LinearLayout) view).addView(categoryView); + } + + @Override + public boolean hasCustomAddressLine() { + return true; + } + + public void buildCustomAddressLine(LinearLayout ll) { + int gpxSmallIconMargin = (int) ll.getResources().getDimension(R.dimen.gpx_small_icon_margin); + int gpxSmallTextMargin = (int) ll.getResources().getDimension(R.dimen.gpx_small_text_margin); + float gpxTextSize = ll.getResources().getDimension(R.dimen.default_desc_text_size); + + int textColor = ContextCompat.getColor(ll.getContext(), light ? R.color.text_color_primary_light : R.color.text_color_primary_dark); + + buildIcon(ll, gpxSmallIconMargin, R.drawable.ic_action_distance_16); + buildTextView(ll, gpxSmallTextMargin, gpxTextSize, textColor, + OsmAndFormatter.getFormattedDistance(analysis.totalDistance, app)); + + buildIcon(ll, gpxSmallIconMargin, R.drawable.ic_action_waypoint_16); + buildTextView(ll, gpxSmallTextMargin, gpxTextSize, textColor, "" + analysis.wptPoints); + + buildIcon(ll, gpxSmallIconMargin, R.drawable.ic_action_time_16); + buildTextView(ll, gpxSmallTextMargin, gpxTextSize, textColor, + Algorithms.formatDuration((int) (analysis.timeSpan / 1000), app.accessibilityEnabled()) + ""); + } + + private void buildIcon(LinearLayout ll, int gpxSmallIconMargin, int iconId) { + ImageView icon = new ImageView(ll.getContext()); + LinearLayout.LayoutParams llIconParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + AndroidUtils.setMargins(llIconParams, 0, 0, gpxSmallIconMargin, 0); + llIconParams.gravity = Gravity.CENTER_VERTICAL; + icon.setLayoutParams(llIconParams); + icon.setImageDrawable(app.getUIUtilities().getThemedIcon(iconId)); + ll.addView(icon); + } + + private void buildTextView(LinearLayout ll, int gpxSmallTextMargin, float gpxTextSize, int textColor, String text) { + TextView textView = new TextView(ll.getContext()); + LinearLayout.LayoutParams llTextParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + AndroidUtils.setMargins(llTextParams, 0, 0, gpxSmallTextMargin, 0); + textView.setLayoutParams(llTextParams); + textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, gpxTextSize); + textView.setTextColor(textColor); + textView.setText(text); + ll.addView(textView); + } +} diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java index 064806de12..2694035715 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java @@ -16,8 +16,8 @@ import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.TrackActivity; import net.osmand.plus.helpers.GpxUiHelper; -import net.osmand.plus.mapcontextmenu.MenuBuilder; import net.osmand.plus.mapcontextmenu.MenuController; +import net.osmand.plus.mapcontextmenu.builders.SelectedGpxMenuBuilder; import net.osmand.plus.settings.backend.OsmandSettings; import java.io.File; @@ -29,8 +29,9 @@ public class SelectedGpxMenuController extends MenuController { private SelectedGpxFile item; public SelectedGpxMenuController(@NonNull final MapActivity mapActivity, @NonNull PointDescription pointDescription, @NonNull final SelectedGpxFile item) { - super(new MenuBuilder(mapActivity), pointDescription, mapActivity); + super(new SelectedGpxMenuBuilder(mapActivity, item), pointDescription, mapActivity); this.item = item; + builder.setShowOnlinePhotos(false); leftTitleButtonController = new TitleButtonController() { @Override From a28ac55bbf720598a6f87d791ee044ca110b9440 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Thu, 18 Jun 2020 14:37:00 +0300 Subject: [PATCH 044/300] Fix #9196 Color selection for favorites point group outside of screen --- .../layout/expandable_list_item_category.xml | 38 +++++++++------- OsmAnd/res/layout/favorites_list_item.xml | 4 +- .../res/layout/rendering_prop_menu_item.xml | 43 +++++++++---------- OsmAnd/res/values-large/sizes.xml | 1 - .../EditFavoriteGroupDialogFragment.java | 21 +++++---- 5 files changed, 56 insertions(+), 51 deletions(-) diff --git a/OsmAnd/res/layout/expandable_list_item_category.xml b/OsmAnd/res/layout/expandable_list_item_category.xml index ea9a902906..b59ec5723a 100644 --- a/OsmAnd/res/layout/expandable_list_item_category.xml +++ b/OsmAnd/res/layout/expandable_list_item_category.xml @@ -19,28 +19,34 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingLeft="@dimen/content_padding" - android:paddingStart="@dimen/content_padding" + android:paddingLeft="@dimen/favorites_my_places_icon_left_padding" + android:paddingStart="@dimen/favorites_my_places_icon_left_padding" android:paddingRight="0dp" android:paddingEnd="0dp" android:minHeight="@dimen/bottom_sheet_list_item_height" android:background="?attr/expandable_list_item_background"> - <androidx.appcompat.widget.AppCompatCheckBox - android:id="@+id/toggle_item" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:background="?attr/dashboard_button" - android:focusable="false" - android:visibility="gone" - tools:visiblity="visible"/> + <FrameLayout + android:layout_width="@dimen/favorites_my_places_icon_size" + android:layout_height="match_parent" + android:layout_gravity="center_vertical"> - <androidx.appcompat.widget.AppCompatImageView - android:id="@+id/category_icon" - android:layout_width="@dimen/standard_icon_size" - android:layout_height="@dimen/standard_icon_size" - android:layout_gravity="center_vertical"/> + <androidx.appcompat.widget.AppCompatCheckBox + android:id="@+id/toggle_item" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:focusable="false" + android:visibility="gone" + tools:visibility="visible" /> + + <androidx.appcompat.widget.AppCompatImageView + android:id="@+id/category_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:contentDescription="@string/shared_string_groups" /> + </FrameLayout> <net.osmand.plus.widgets.TextViewEx android:id="@+id/category_name" diff --git a/OsmAnd/res/layout/favorites_list_item.xml b/OsmAnd/res/layout/favorites_list_item.xml index f2de16e79f..d53497c0f5 100644 --- a/OsmAnd/res/layout/favorites_list_item.xml +++ b/OsmAnd/res/layout/favorites_list_item.xml @@ -45,9 +45,7 @@ android:id="@+id/toggle_item" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:layout_marginStart="@dimen/content_padding_half" - android:layout_marginLeft="@dimen/content_padding_half" + android:layout_gravity="center" android:focusable="false" android:visibility="gone" tools:visibility="visible" /> diff --git a/OsmAnd/res/layout/rendering_prop_menu_item.xml b/OsmAnd/res/layout/rendering_prop_menu_item.xml index 509f9b7d59..be61cded13 100644 --- a/OsmAnd/res/layout/rendering_prop_menu_item.xml +++ b/OsmAnd/res/layout/rendering_prop_menu_item.xml @@ -1,29 +1,28 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center_vertical" - android:orientation="vertical"> + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:orientation="vertical"> - <TextView - android:id="@+id/text1" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginLeft="16dp" - android:layout_marginRight="16dp" - android:layout_marginTop="12dp" - android:layout_marginBottom="12dp" - android:textColor="?android:attr/textColorPrimary" - android:textSize="@dimen/default_list_text_size" - android:layout_marginEnd="16dp" - android:layout_marginStart="16dp" /> + <TextView + android:id="@+id/text1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/content_padding" + android:layout_marginLeft="@dimen/content_padding" + android:layout_marginTop="@dimen/content_padding_small" + android:layout_marginEnd="@dimen/content_padding" + android:layout_marginRight="@dimen/content_padding" + android:layout_marginBottom="@dimen/content_padding_small" + android:textAppearance="@style/TextAppearance.ListItemTitle" /> - <View - android:id="@+id/divider" - android:layout_width="match_parent" - android:layout_height="1dp" - android:background="?attr/ctx_menu_info_divider" - android:visibility="gone"/> + <View + android:id="@+id/divider" + android:layout_width="match_parent" + android:layout_height="1dp" + android:background="?attr/ctx_menu_info_divider" + android:visibility="gone" /> </LinearLayout> diff --git a/OsmAnd/res/values-large/sizes.xml b/OsmAnd/res/values-large/sizes.xml index 07c7bb1153..21a0e7d6f4 100644 --- a/OsmAnd/res/values-large/sizes.xml +++ b/OsmAnd/res/values-large/sizes.xml @@ -65,7 +65,6 @@ <dimen name="context_menu_transport_stop_item_height">24dp</dimen> <dimen name="context_menu_main_actions_padding_top">11dp</dimen> <dimen name="context_menu_main_actions_padding_bottom">9dp</dimen> - <dimen name="context_menu_main_actions_icon_margin">5dp</dimen> <!-- General --> diff --git a/OsmAnd/src/net/osmand/plus/activities/EditFavoriteGroupDialogFragment.java b/OsmAnd/src/net/osmand/plus/activities/EditFavoriteGroupDialogFragment.java index 8e319c7c8f..4b2079a573 100644 --- a/OsmAnd/src/net/osmand/plus/activities/EditFavoriteGroupDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/EditFavoriteGroupDialogFragment.java @@ -4,8 +4,8 @@ import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Bundle; -import android.view.ContextThemeWrapper; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -31,6 +31,7 @@ import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.MapMarkersHelper.MapMarkersGroup; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; import net.osmand.plus.base.MenuBottomSheetDialogFragment; import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithCompoundButton; @@ -73,12 +74,13 @@ public class EditFavoriteGroupDialogFragment extends MenuBottomSheetDialogFragme public void onClick(View v) { Activity activity = getActivity(); if (activity != null) { - AlertDialog.Builder b = new AlertDialog.Builder(activity); + Context themedContext = UiUtilities.getThemedContext(activity, nightMode); + AlertDialog.Builder b = new AlertDialog.Builder(themedContext); b.setTitle(R.string.favorite_category_name); - final EditText nameEditText = new EditText(activity); + final EditText nameEditText = new EditText(themedContext); nameEditText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); nameEditText.setText(group.getName()); - LinearLayout container = new LinearLayout(activity); + LinearLayout container = new LinearLayout(themedContext); int sidePadding = AndroidUtils.dpToPx(activity, 24f); int topPadding = AndroidUtils.dpToPx(activity, 4f); container.setPadding(sidePadding, topPadding, sidePadding, topPadding); @@ -105,9 +107,8 @@ public class EditFavoriteGroupDialogFragment extends MenuBottomSheetDialogFragme .create(); items.add(editNameItem); - final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme; - final View changeColorView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), - R.layout.change_fav_color, null); + final View changeColorView = UiUtilities.getInflater(getContext(), nightMode) + .inflate(R.layout.change_fav_color, null, false); ((ImageView) changeColorView.findViewById(R.id.change_color_icon)) .setImageDrawable(getContentIcon(R.drawable.ic_action_appearance)); updateColorView((ImageView) changeColorView.findViewById(R.id.colorImage)); @@ -118,13 +119,15 @@ public class EditFavoriteGroupDialogFragment extends MenuBottomSheetDialogFragme public void onClick(View v) { Activity activity = getActivity(); if (activity != null) { - final ListPopupWindow popup = new ListPopupWindow(activity); + final ListPopupWindow popup = new ListPopupWindow(v.getContext()); popup.setAnchorView(v); popup.setContentWidth(AndroidUtils.dpToPx(app, 200f)); popup.setModal(true); popup.setDropDownGravity(Gravity.END | Gravity.TOP); if (AndroidUiHelper.isOrientationPortrait(activity)) { - popup.setVerticalOffset(AndroidUtils.dpToPx(app, 48f)); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + popup.setVerticalOffset(AndroidUtils.dpToPx(app, 48f)); + } } else { popup.setVerticalOffset(AndroidUtils.dpToPx(app, -48f)); } From ce12603bc64639f5418c990a0269233d45380119 Mon Sep 17 00:00:00 2001 From: Ldm Public <ldmpub@gmail.com> Date: Tue, 16 Jun 2020 12:59:02 +0000 Subject: [PATCH 045/300] Translated using Weblate (French) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-fr/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 6d3b4a6814..86c9135cbb 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3764,4 +3764,8 @@ <string name="vessel_height_warning">Vous pouvez définir la hauteur du navire pour éviter les ponts bas. Souvenez-vous que si le pont est mobile, nous utiliserons sa hauteur en position ouverte.</string> <string name="vessel_height_limit_description">Définir la hauteur du navire afin d\'éviter les ponts bas. Souvenez-vous que si le pont est mobile, nous utiliserons sa hauteur en position ouverte.</string> <string name="vessel_width_limit_description">Définir la largeur du navire pour éviter les ponts étroits</string> + <string name="quick_action_showhide_mapillary_title">Afficher/masquer Mapillary</string> + <string name="quick_action_mapillary_hide">Masquer Mapillary</string> + <string name="quick_action_mapillary_show">Afficher Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Bouton pour afficher ou masquer la couche Mapillary sur la carte.</string> </resources> \ No newline at end of file From 1fef5eb82eba91b26aaa9b21cb8bdbda51962123 Mon Sep 17 00:00:00 2001 From: Hakuchi <heimlikloh@mail.com> Date: Tue, 16 Jun 2020 15:52:37 +0000 Subject: [PATCH 046/300] Translated using Weblate (German) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-de/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index cc8c9abc23..b4ad80fbd6 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -3789,4 +3789,8 @@ <string name="vessel_height_warning">Sie können die Schiffshöhe einstellen, um niedrige Brücken zu vermeiden. Denken Sie daran, wenn die Brücke beweglich ist, werden wir ihre Höhe im offenen Zustand verwenden.</string> <string name="vessel_height_limit_description">Stellen Sie die Schiffshöhe ein, um niedrige Brücken zu vermeiden.Denken Sie daran, wenn die Brücke beweglich ist, werden wir ihre Höhe im offenen Zustand verwenden.</string> <string name="vessel_width_limit_description">Stellen Sie die Schiffsbreite ein, um schmale Brücken zu vermeiden</string> + <string name="quick_action_showhide_mapillary_title">Mapillary ein-/ausblenden</string> + <string name="quick_action_mapillary_hide">Mapillary ausblenden</string> + <string name="quick_action_mapillary_show">Mapillary anzeigen</string> + <string name="quick_action_showhide_mapillary_descr">Eine Umschaltfläche zum ein- oder ausblenden der Mapillary-Layer auf der Karte.</string> </resources> \ No newline at end of file From 78b96175a3cdc1ec92b49f28d2b94058e9889a37 Mon Sep 17 00:00:00 2001 From: solokot <solokot@gmail.com> Date: Tue, 16 Jun 2020 06:17:43 +0000 Subject: [PATCH 047/300] Translated using Weblate (Russian) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-ru/strings.xml | 50 +++++++++++++++++--------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 1f3581c4c1..0fd3c8da08 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -43,7 +43,7 @@ <string name="quick_action_showhide_osmbugs_title">Показать/скрыть заметки OSM</string> <string name="quick_action_osmbugs_show">Показать заметки OSM</string> <string name="quick_action_osmbugs_hide">Скрыть заметки OSM</string> - <string name="quick_action_showhide_osmbugs_descr">Переключатель, чтобы отобразить или скрыть заметки OSM на карте.</string> + <string name="quick_action_showhide_osmbugs_descr">Переключатель, чтобы показать или скрыть заметки OSM на карте.</string> <string name="sorted_by_distance">Отсортировано по расстоянию</string> <string name="search_favorites">Поиск в избранных</string> <string name="hillshade_menu_download_descr">Загрузите карту «Наложение затенения рельефа» для отображения вертикального затенения (отмывки) рельефа.</string> @@ -52,7 +52,7 @@ <string name="shared_string_plugin">Плагин</string> <string name="srtm_purchase_header">Приобретите и установите плагин «Контурные линии» для отображения градуированных вертикальных областей.</string> <string name="srtm_color_scheme">Цветовая схема</string> - <string name="show_from_zoom_level">Отображать, начиная с уровня масштабирования</string> + <string name="show_from_zoom_level">Показывать, начиная с уровня масштабирования</string> <string name="animate_my_location">Анимация моего положения</string> <string name="animate_my_location_desc">Включить анимацию прокрутки карты с моим положением во время навигации.</string> <string name="display_zoom_level">Масштаб: %1$s</string> @@ -145,8 +145,8 @@ <string name="routing_attr_height_obstacles_description">Фактор рельефа местности (по данным SRTM, ASTER и EU-DEM).</string> <string name="quick_action_duplicates">Название быстрого действия было изменено на %1$s, чтобы избежать дублирования.</string> <string name="quick_action_duplicate">Обнаружен дубликат имени</string> - <string name="quick_action_showhide_favorites_descr">Переключатель, чтобы отобразить или скрыть избранные точки на карте.</string> - <string name="quick_action_showhide_poi_descr">Переключатель, чтобы отобразить или скрыть POI на карте.</string> + <string name="quick_action_showhide_favorites_descr">Переключатель, чтобы показать или скрыть избранные точки на карте.</string> + <string name="quick_action_showhide_poi_descr">Переключатель, чтобы показать или скрыть POI на карте.</string> <string name="quick_action_showhide_favorites_title">Показать/скрыть избранные</string> <string name="quick_action_add_category">Добавить категорию</string> <string name="quick_action_add_create_items">Действия</string> @@ -213,7 +213,7 @@ <string name="save_track_precision_descr">Фильтр: не записывать, если эта точность не достигнута.</string> <string name="christmas_poi">Рождественские POI</string> <string name="christmas_desc">В преддверии рождественских и новогодних праздников вы можете выбрать отображение связанных с ними POI, таких как рождественские ёлки, ярмарки и т.д.</string> - <string name="christmas_desc_q">Отображать праздничные POI\?</string> + <string name="christmas_desc_q">Показывать праздничные POI\?</string> <string name="rendering_attr_contourColorScheme_description">Цветовая схема горизонталей</string> <string name="rendering_value_light_brown_name">Светло-коричневый</string> <string name="rendering_value_dark_brown_name">Тёмно-коричневый</string> @@ -250,8 +250,8 @@ <string name="shared_string_topbar">Верхняя панель</string> <string name="osm_user_stat">Правок: %1$s, ранг: %2$s, всего правок: %3$s</string> <string name="osm_editors_ranking">Рейтинг картографов OSM</string> - <string name="show_transparency_seekbar">Отображать регулировку прозрачности</string> - <string name="show_polygons">Отображать полигоны</string> + <string name="show_transparency_seekbar">Показывать регулировку прозрачности</string> + <string name="show_polygons">Показывать полигоны</string> <string name="rendering_attr_showMtbRoutes_name">Трассы для горных велосипедов</string> <string name="shared_string_select">Выбрать</string> <string name="rendering_attr_hideIcons_name">Значки POI</string> @@ -342,7 +342,7 @@ <string name="no_buildings_found">Здания не найдены.</string> <string name="incremental_search_city">Выберите город</string> <string name="search_villages_and_postcodes">Поиск по деревням/почтовым индексам</string> - <string name="rendering_attr_showRoadMaps_description">Выберите когда отображать только дорожные карты:</string> + <string name="rendering_attr_showRoadMaps_description">Выберите, когда показывать только дорожные карты:</string> <string name="rendering_attr_showRoadMaps_name">Карты только дорог</string> <string name="download_roads_only_item">Только дороги</string> <string name="download_regular_maps">Стандартная карта</string> @@ -623,7 +623,7 @@ <string name="select_build_to_install">Выберите сборку OsmAnd для установки</string> <string name="voice_is_not_available_msg">Голосовая навигация недоступна. Перейдите в «Настройки» → «Настройки навигации», выберите профиль → «Голосовые данные» и выберите или загрузите пакет голосовых подсказок.</string> <string name="voice_is_not_available_title">Выберите пакет голосовых подсказок</string> - <string name="trace_rendering_descr">Отображать производительность отрисовки.</string> + <string name="trace_rendering_descr">Показывать производительность отрисовки.</string> <string name="trace_rendering">Отладочная информация об отрисовке</string> <string name="daynight_mode_day">День</string> <string name="daynight_mode_night">Ночь</string> @@ -868,7 +868,7 @@ <string name="map_view_3d_descr">Включить 3D-вид для карты.</string> <string name="map_view_3d">3D вид</string> <string name="show_poi_over_map_description">Показать последние использованные POI на карте.</string> - <string name="show_poi_over_map">Отображать POI</string> + <string name="show_poi_over_map">Показывать POI</string> <string name="map_tile_source_descr">Выберите источник онлайн или кешированных тайлов карты.</string> <string name="map_tile_source">Растровые карты</string> <string name="map_source">Источник карты</string> @@ -1020,13 +1020,13 @@ <string name="navpoint_search_desc">Координаты</string> <string name="transport_search_desc">Поиск общественного транспорта</string> <string name="favourites_search_desc">Способ поиска в избранных</string> - <string name="rendering_attr_noPolygons_description">Отображать только контуры, без заливки.</string> + <string name="rendering_attr_noPolygons_description">Показывать только контуры, без заливки.</string> <string name="rendering_attr_noPolygons_name">Полигоны</string> <string name="rendering_attr_appMode_name">Режим отрисовки</string> <string name="rendering_attr_appMode_description">Оптимизация карты для соответствующего профиля</string> - <string name="rendering_attr_contourLines_description">Отображать, начиная с уровня масштабирования (требуются данные контурных линий):</string> + <string name="rendering_attr_contourLines_description">Показывать, начиная с уровня масштабирования (требуются данные контурных линий):</string> <string name="rendering_attr_contourLines_name">Показывать контурные линии</string> - <string name="rendering_attr_hmRendered_description">Отображать больше деталей на карте.</string> + <string name="rendering_attr_hmRendered_description">Показывать больше деталей на карте.</string> <string name="rendering_attr_hmRendered_name">Больше деталей</string> <string name="route_roundabout">Круговое движение, %1$d съезд</string> <string name="route_kl">Держитесь левее</string> @@ -1195,7 +1195,7 @@ <string name="map_widget_monitoring_services">Службы мониторинга</string> <string name="no_route">Нет маршрута</string> <string name="gps_not_available">Включите GPS в настройках</string> - <string name="map_widget_show_destination_arrow">Отображать направление к пункту назначения</string> + <string name="map_widget_show_destination_arrow">Показывать направление к пункту назначения</string> <string name="enable_plugin_monitoring_services">Включите плагин «Запись поездки» для использования сервисов мониторинга (запись GPX, сопровождение в реальном времени)</string> <string name="rendering_attr_roadColors_description">Выберите цветовую схему дорог:</string> <string name="rendering_attr_roadColors_name">Цветовая схема дорог</string> @@ -1448,7 +1448,7 @@ <string name="index_item_world_seamarks">Мировые морские объекты</string> <string name="index_item_world_altitude_correction">Мировая коррекция высоты</string> <string name="index_name_canada">Северная Америка — Канада</string> - <string name="always_center_position_on_map">Отображать положение в центре экрана</string> + <string name="always_center_position_on_map">Показывать положение в центре экрана</string> <string name="voice_pref_title">Голос</string> <string name="misc_pref_title">Разное</string> <string name="localization_pref_title">Локализация</string> @@ -1993,7 +1993,7 @@ <string name="file_size_in_mb">%.1f МБ</string> <string name="update_all">Обновить все (%1$s МБ)</string> <string name="free_downloads_used">Использовано бесплатных загрузок</string> - <string name="free_downloads_used_description">Отображать сколько бесплатных загрузок использовано.</string> + <string name="free_downloads_used_description">Показывать количество использованных бесплатных загрузок.</string> <string name="share_geo">гео:</string> <string name="share_menu_location">Поделиться местоположением</string> <string name="shared_string_send">Отправить</string> @@ -2475,8 +2475,8 @@ <string name="empty_state_markers_history_desc">На этом экране появятся маркеры, отмеченные как пройденные.</string> <string name="shared_string_two">Два</string> <string name="shared_string_one">Один</string> - <string name="show_guide_line_descr">Отображать направляющие линии от вашего местоположения до активных маркеров.</string> - <string name="show_arrows_descr">Отображать одну или две стрелки, указывающие направление на активные маркеры.</string> + <string name="show_guide_line_descr">Показывать направляющие линии от вашего местоположения до активных маркеров.</string> + <string name="show_arrows_descr">Показывать одну или две стрелки, указывающие направление на активные маркеры.</string> <string name="distance_indication_descr">Выберите способ отображения расстояния до активных маркеров.</string> <string name="active_markers_descr">Выберите количество указателей направления.</string> <string name="digits_quantity">Количество десятичных цифр</string> @@ -2945,7 +2945,7 @@ <string name="time_of_day">Время суток</string> <string name="step_by_step">Поворот за поворотом</string> <string name="routeInfo_road_types_name">Типы дорог</string> - <string name="quick_action_show_hide_gpx_tracks_descr">Переключатель, чтобы отобразить или скрыть выбранные GPX-треки на карте.</string> + <string name="quick_action_show_hide_gpx_tracks_descr">Переключатель, чтобы показать или скрыть выбранные GPX-треки на карте.</string> <string name="by_transport_type">На %1$s</string> <string name="exit_at">Выход на</string> <string name="sit_on_the_stop">Посадка на остановке</string> @@ -3213,7 +3213,7 @@ <string name="gpx_join_gaps">Соединить разрывы (исключить пробелы)</string> <string name="app_mode_camper">Кемпер</string> <string name="app_mode_campervan">Альковен (RV)</string> - <string name="rendering_attr_showLez_description">Отображать на карте зоны с низким уровнем выбросов. Не влияет на навигацию.</string> + <string name="rendering_attr_showLez_description">Показывать на карте зоны с низким уровнем выбросов. Не влияет на навигацию.</string> <string name="shared_string_default">По умолчанию</string> <string name="lang_oc">Окситанский</string> <string name="app_mode_pickup_truck">Пикап</string> @@ -3330,7 +3330,7 @@ <string name="quick_action_contour_lines_show">Показать контурные линии</string> <string name="quick_action_contour_lines_hide">Скрыть контурные линии</string> <string name="quick_action_show_hide_contour_lines">Показать/скрыть контурные линии</string> - <string name="quick_action_hillshade_descr">Переключатель, чтобы отобразить или скрыть затенение рельефа на карте.</string> + <string name="quick_action_hillshade_descr">Переключатель, чтобы показать или скрыть затенение рельефа на карте.</string> <string name="quick_action_hillshade_show">Показать затенение рельефа</string> <string name="quick_action_hillshade_hide">Скрыть затенение рельефа</string> <string name="quick_action_show_hide_hillshade">Показать/скрыть затенение рельефа</string> @@ -3582,7 +3582,7 @@ <string name="n_items_of_z">%1$s из %2$s</string> <string name="terrain_slider_description">Настройка минимального и максимального уровней масштабирования, при которых слой будет отображаться.</string> <string name="quick_action_show_hide_terrain">Показать/скрыть рельеф</string> - <string name="quick_action_terrain_descr">Переключатель, чтобы отобразить или скрыть слой рельефа местности на карте.</string> + <string name="quick_action_terrain_descr">Переключатель, чтобы показать или скрыть слой рельефа местности на карте.</string> <string name="quick_action_terrain_show">Показать рельеф</string> <string name="quick_action_terrain_hide">Скрыть рельеф</string> <string name="shared_string_terrain">Рельеф</string> @@ -3715,7 +3715,7 @@ <string name="create_edit_poi">Создать/изменить POI</string> <string name="back_to_editing">Возврат к редактированию</string> <string name="parking_positions">Место стоянки</string> - <string name="quick_action_transport_descr">Переключатель, чтобы отобразить или скрыть общественный транспорт на карте.</string> + <string name="quick_action_transport_descr">Переключатель, чтобы показать или скрыть общественный транспорт на карте.</string> <string name="reset_deafult_order">Восстановить исходный порядок</string> <string name="quick_action_switch_profile_descr">Нажатие кнопки «Действия» переключает между выбранными профилями.</string> <string name="shared_string_add_profile">Добавить профиль</string> @@ -3781,4 +3781,8 @@ <string name="vessel_height_warning">Вы можете указать высоту судна, чтобы избегать низких мостов. Имейте в виду, что если мост раздвижной, будет использована его высота в открытом состоянии.</string> <string name="vessel_height_limit_description">Укажите высоту судна, чтобы избежать низких мостов. Имейте в виду, что если мост раздвижной, будет использована его высота в открытом состоянии.</string> <string name="vessel_width_limit_description">Укажите ширину судна, чтобы избежать узких мостов</string> + <string name="quick_action_showhide_mapillary_title">Показать/скрыть Mapillary</string> + <string name="quick_action_mapillary_hide">Скрыть Mapillary</string> + <string name="quick_action_mapillary_show">Показать Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Переключатель, чтобы показать или скрыть слой Mapillary на карте.</string> </resources> \ No newline at end of file From b66edeced0460e38c0b82ea3353a045054fdf4bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= <oguzersen@protonmail.com> Date: Tue, 16 Jun 2020 01:50:32 +0000 Subject: [PATCH 048/300] Translated using Weblate (Turkish) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-tr/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 0ed2331723..46c6a96900 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -3737,4 +3737,8 @@ <string name="vessel_height_warning">Alçak köprülerden kaçınmak için gemi yüksekliğini ayarlayabilirsiniz. Köprü hareket edebiliyorsa, açık durumdaki yüksekliğini kullanacağımızı unutmayın.</string> <string name="vessel_height_limit_description">Alçak köprülerden kaçınmak için gemi yüksekliğini ayarlayın. Köprü hareket edebiliyorsa, açık durumdaki yüksekliğini kullanacağımızı unutmayın.</string> <string name="vessel_width_limit_description">Dar köprülerden kaçınmak için gemi genişliğini ayarlayın</string> + <string name="quick_action_showhide_mapillary_title">Mapillary\'i göster/gizle</string> + <string name="quick_action_mapillary_hide">Mapillary\'i gizle</string> + <string name="quick_action_mapillary_show">Mapillary\'i göster</string> + <string name="quick_action_showhide_mapillary_descr">Harita üzerinde Mapillary katmanını göstermek veya gizlemek için bir geçiş.</string> </resources> \ No newline at end of file From 69ad8799ddedea5ca242071d101527448c3a9ebb Mon Sep 17 00:00:00 2001 From: Athoss <athoss@citromail.hu> Date: Tue, 16 Jun 2020 13:05:11 +0000 Subject: [PATCH 049/300] Translated using Weblate (Hungarian) Currently translated at 95.6% (3245 of 3392 strings) --- OsmAnd/res/values-hu/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 0ad25e284b..fb9efbb337 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3704,4 +3704,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="vessel_height_limit_description">Adja meg a hajómagasságot az alacsony hidak elkerüléséhez. Ne feledje, amennyiben a híd mozdítható, a nyitott állapotú magasságát vesszük figyelembe.</string> <string name="vessel_height_warning">Megadhatja a hajómagasságot az alacsony hidak elkerüléséhez. Ne feledje, amennyiben a híd mozdítható, a nyitott állapotú magasságát vesszük figyelembe.</string> <string name="vessel_width_limit_description">Adja meg a hajószélességet a keskeny hidak elkerüléséhez</string> + <string name="quick_action_showhide_mapillary_title">Mapillary megjelenítése/elrejtése</string> + <string name="quick_action_mapillary_hide">Mapillary elrejtése</string> + <string name="quick_action_mapillary_show">Mapillary megjelenítése</string> + <string name="quick_action_showhide_mapillary_descr">Váltógomb, amely a térképen megjeleníti vagy elrejti a Mapillary réteget.</string> </resources> \ No newline at end of file From c1b71a0b79e19c95cfa34ebbe043c7129b98e530 Mon Sep 17 00:00:00 2001 From: Mirco Zorzo <mircozorzo@inwind.it> Date: Thu, 18 Jun 2020 05:25:08 +0000 Subject: [PATCH 050/300] Translated using Weblate (Italian) Currently translated at 90.0% (3056 of 3392 strings) --- OsmAnd/res/values-it/strings.xml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index 570099fb41..84112aba40 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -3174,7 +3174,7 @@ <string name="rendering_attr_highway_class_track_grade5_name">Grado 5</string> <string name="external_input_device">Dispositivi di input esterni</string> <string name="external_input_device_descr">Selezionare un dispositivo esterno per il controllo, ad esempio una tastiera generica o WunderLINQ.</string> - <string name="sett_no_ext_input">Nessuna</string> + <string name="sett_no_ext_input">Nessuno</string> <string name="sett_generic_ext_input">Tastiera</string> <string name="sett_wunderlinq_ext_input">WunderLINQ</string> <string name="sett_parrot_ext_input">Parrot</string> @@ -3471,7 +3471,7 @@ <string name="monitoring_min_accuracy_descr_remark">Osservazione: se il GPS è stato disattivato poco prima di una registrazione, i primi punti misurati potrebbero avere una minore accuratezza, perciò nel nostro codice noi possiamo voler attendere qualche secondo prima oppure prima di registrare dei punti (o registrare i 3 migliori punti consecutivi, ecc...), ma questo non è ancora implementato .</string> <string name="monitoring_min_distance_descr">Questo filtro evita che punti duplicati siano registrati quando lo spostamento è troppo piccolo, crea un migliore aspetto delle tracce che non vengono successivamente elaborate.</string> <string name="monitoring_min_distance_descr_side_effect">Effetto collaterale: periodi di riposo non sono registrati affatto oppure con un singolo punto. Piccoli (reali) movimenti (es. lateralmente, per marcare un possible spegnimento nel tuo viaggio) possono essere scartati dal filtro. Il file contiene meno informazioni per la post-elaborazione e presenta statistiche peggiori filtrando i punti ovviamente ridondanti al momento della registrazione, mantenendo potenzialmente artefatti causati da cattiva ricezione o effetti del chipset GPS.</string> - <string name="monitoring_min_distance_descr_recommendation">Raccomandazione: un valore di 5 metri potrebbe funzionare bene se non necessiti di registrare dettagli che hanno una misura inferiore di questo e non vuoi chiaramente registrare dati quando sei fermo.</string> + <string name="monitoring_min_distance_descr_recommendation">Raccomandazione: un valore di 5 metri potrebbe funzionare bene se non necessiti di registrare dettagli che hanno una misura inferiore di questo valore e non vuoi chiaramente registrare dati quando sei fermo.</string> <string name="live_monitoring_time_buffer">Tempo tampone</string> <string name="live_monitoring_tracking_interval">Intervallo di registrazione</string> <string name="live_monitoring_adress">Indirizzo web</string> @@ -3773,8 +3773,19 @@ <string name="width_limit_description">Indica la larghezza del veicolo, alcune restrizioni stradali potrebbero essere applicate per veicoli larghi.</string> <string name="height_limit_description">Indica l\'altezza del veicolo, alcune restrizioni stradali potrebbero essere applicate per veicoli alti.</string> <string name="weight_limit_description">Indica il peso del veicolo, alcune restrizioni stradali potrebbero essere applicate per veicoli pesanti.</string> - <string name="turn_screen_on_power_button_disabled">Disattivato. Richiede \'Mantieni lo schermo acceso\' sotto \'Tempo di accensione\'.</string> + <string name="turn_screen_on_power_button_disabled">Disattivato. Richiede \'Mantieni lo schermo acceso\' in \'Tempo di accensione\'.</string> <string name="shared_string_meters">metri</string> - <string name="details_dialog_decr">Controlla la visibilità di dettagli aggiuntivi mostrati su mappa</string> + <string name="details_dialog_decr">Mostra o nasconde i dettagli aggiuntivi della mappa</string> <string name="shared_string_night_map">Mappa notturna</string> + <string name="shared_string_tones">toni</string> + <string name="add_online_source">Aggiungi sorgente online</string> + <string name="clear_tiles_warning">Applicando questi cambiamenti i dati memorizzati nella cache verranno cancellati per questa sorgente di mattonelle</string> + <string name="vessel_height_warning_link">Imposta l\'altezza dell\'imbarcazione</string> + <string name="vessel_height_warning">Puoi mpostare l\'altezza dell\'imbarcazione per evitare ponti bassi. Ricorda che, se il ponte è mobile, useremo la sua altezza da aperto.</string> + <string name="vessel_height_limit_description">Imposta l\'altezza dell\'imbarcazione per evitare ponti bassi. Ricorda che, se il ponte è mobile, useremo la sua altezza da aperto.</string> + <string name="vessel_width_limit_description">Imposta la larghezza della\"imbarcazione per evitare i ponti stretti</string> + <string name="quick_action_showhide_mapillary_title">Mostra/nascondi Mapillary</string> + <string name="quick_action_mapillary_hide">Nascondi Mapilly</string> + <string name="quick_action_mapillary_show">Mostra Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Un pulsante per visualizzare nella mappa o nascondere il livello Mapillary .</string> </resources> \ No newline at end of file From fec854e9278703dfda374b4517f825547d3fc703 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani <sh.yaron@gmail.com> Date: Tue, 16 Jun 2020 08:58:04 +0000 Subject: [PATCH 051/300] Translated using Weblate (Hebrew) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-he/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index cf77c54ac4..35688b4e7a 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -3790,4 +3790,8 @@ <string name="vessel_height_warning">ניתן להגדיר את גובה כלי השיט כדי להימנע מגשרים נמוכים. נא לשים לב שאם הגשר נע, אנו נשתמש בגובהו במצב הפתוח.</string> <string name="vessel_height_limit_description">יש להגדיר את גובה כלי השיט כדי להימנע מגשרים נמוכים. נא לשים לב שאם הגשר נע, אנו נשתמש בגובהו במצב הפתוח.</string> <string name="vessel_width_limit_description">הגדרת רוחב כלי השיט כדי להימנע מגשרים צרים</string> + <string name="quick_action_showhide_mapillary_title">הצגת/הסתרת Mapillary</string> + <string name="quick_action_mapillary_hide">הסתרת Mapillary</string> + <string name="quick_action_mapillary_show">הצגת Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">מפסק להצגה או הסתרה של שכבת Mapillary על גבי המפה.</string> </resources> \ No newline at end of file From 6149356c2188ef61ed90bb5d42b9845544e55124 Mon Sep 17 00:00:00 2001 From: Piotr Kubowicz <piotr.kubowicz@gmail.com> Date: Tue, 16 Jun 2020 15:05:50 +0000 Subject: [PATCH 052/300] Translated using Weblate (Polish) Currently translated at 98.3% (3337 of 3392 strings) --- OsmAnd/res/values-pl/strings.xml | 90 +++++++++++++++++--------------- 1 file changed, 49 insertions(+), 41 deletions(-) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index fd3623fe9b..5e3b4e7ea8 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -140,7 +140,7 @@ <string name="mile">mi</string> <string name="send_location_way_choose_title">Udostępnij położenie używając</string> <string name="send_location_sms_pattern">Położenie: %1$s -%2$s</string> +\n%2$s</string> <string name="send_location_email_pattern">Aby wyświetlić położenie proszę użyć odnośnika %1$s lub odnośnika intent androida %2$s</string> <string name="send_location">Wyślij położenie</string> <string name="context_menu_item_share_location">Udostępnij położenie</string> @@ -678,8 +678,7 @@ <string name="shared_string_name">Nazwa</string> <string name="favourites_edit_dialog_category">Kategoria</string> <string name="gpx_option_from_start_point">Przejdź wzdłuż całej trasy</string> - <string name="create_poi_link_to_osm_doc"> - <u>Online OSM</u> klasyfikacja map z obrazami.</string> + <string name="create_poi_link_to_osm_doc"><u>Online OSM</u> klasyfikacja map z obrazami.</string> <string name="local_index_routing_data">Dane wyznaczania tras</string> <string name="navigate_point_format">Format</string> <string name="poi_search_desc">Wyszukiwanie użytecznych miejsc</string> @@ -961,7 +960,7 @@ <string name="access_arrival_time">Czas przybycia</string> <string name="map_widget_gps_info">Dane GPS</string> <string name="layer_hillshade">Cieniowanie rzeźby terenu</string> - <string name="osmand_play_title_30_chars">"OsmAnd Mapy i nawigacja "</string> + <string name="osmand_play_title_30_chars">OsmAnd Mapy i nawigacja</string> <string name="osmand_plus_play_title_30_chars">OsmAnd+ mapy i nawigacja</string> <string name="street_name">Nazwa ulicy</string> <string name="hno">Numer domu</string> @@ -1047,7 +1046,7 @@ <string name="speak_street_names">Nazwy ulic (syntezowane)</string> <string name="driving_region_japan">Japonia</string> <string name="driving_region_us">Stany Zjednoczone</string> - <string name="driving_region_europe_asia">Europa i Azja, Ameryka Łaciński i podobne</string> + <string name="driving_region_europe_asia">Europa i Azja, Ameryka Łacińska i podobne</string> <string name="driving_region_uk">Wielka Brytania, Indie i inne</string> <string name="driving_region_descr">Wybierz region jazdy: USA, Europa, Wielka Brytania, Azja i inne.</string> <string name="driving_region">Region ruchu</string> @@ -1068,8 +1067,8 @@ <string name="edit_tilesource_minzoom">Minimalne przybliżenie</string> <string name="edit_tilesource_choose_existing">Zdefiniowane…</string> <string name="maps_define_edit">Zdefiniuj/Edytuj…</string> - <string name="edit_tilesource_successfully">Zapisano zasób danych kafelkowych %1$s</string> - <string name="edit_tilesource_elliptic_tile">Eliptyczna Merkatora</string> + <string name="edit_tilesource_successfully">Zapisano źródło kafelków %1$s</string> + <string name="edit_tilesource_elliptic_tile">Eliptyczne odwzorowanie Merkatora</string> <string name="route_descr_destination">Cel</string> <string name="base_world_map">Mapa podstawowa</string> <string name="map_magnifier">Przybliżenie</string> @@ -1096,7 +1095,7 @@ <string name="speech_rate_descr">Określ szybkość mowy dla zamiany tekstu na mowę.</string> <string name="speech_rate">Szybkość mowy</string> <string name="disable_complex_routing_descr">Wyłącza dwuetapowe wyznaczanie trasy dla nawigacji samochodowej.</string> - <string name="complex_route_calculation_failed">"Nie udało się szybko wyznaczyć trasę (%s). Przełączanie na tryb powolny."</string> + <string name="complex_route_calculation_failed">Nie udało się szybko wyznaczyć trasy (%s). Przełączanie na tryb powolny.</string> <string name="disable_complex_routing">Wyłączenie złożonego wyznaczania trasy</string> <string name="guidance_preferences_descr">Ustawienia nawigacji</string> <string name="routing_preferences_descr">Ustawienia trasy</string> @@ -1420,8 +1419,8 @@ <string name="back_to_map">Powrót do mapy</string> <string name="share_note">Udostępnij uwagę</string> <string name="location_on_map">Położenie: - Szer. %1$s - Dł. %2$s</string> +\n Szer. %1$s +\n Dł. %2$s</string> <string name="notes">Notatki A/V</string> <string name="online_map">Mapa online</string> <string name="roads_only">Tylko drogi</string> @@ -1448,7 +1447,7 @@ <string name="waypoint_visit_before">Odwiedź wcześniej</string> <string name="simulate_your_location">Symulowanie położenia</string> <string name="short_location_on_map">Szerokość %1$s -Długość %2$s</string> +\nDługość %2$s</string> <string name="tips_and_tricks_descr">Wyświetla najczęściej zadawane pytania, ostatnie zmiany i inne.</string> <string name="routing_settings_2">Nawigacja</string> <string name="general_settings_2">Ogólne</string> @@ -2182,11 +2181,11 @@ Długość %2$s</string> <string name="quick_action_map_underlay_switch">Zmieniono podkład mapy na „%s”.</string> <string name="navigate_point_olc">Otwarty kod lokalizacyjny (OLC)</string> <string name="navigate_point_olc_info_invalid">Niepoprawny OLC -</string> +\n</string> <string name="navigate_point_olc_info_short">Krótki OLC -Podaj pełny kod</string> +\nPodaj pełny kod</string> <string name="navigate_point_olc_info_area">Poprawny pełny OLC -Reprezentuje obszar: %1$s x %2$s</string> +\nReprezentuje obszar: %1$s x %2$s</string> <string name="quick_action_page_list_descr">Przycisk wyświetlający poniższą listę.</string> <string name="auto_split_recording_title">Automatyczne dzielenie nagrań po przerwie</string> <string name="auto_split_recording_descr">Rozpoczyna nowy segment po 6 min przerwy, nową trasę po 2 h i nowy plik po dłuższej przerwie, jeżeli data ulegnie zmianie.</string> @@ -2278,17 +2277,18 @@ Reprezentuje obszar: %1$s x %2$s</string> <string name="shared_string_overview">Podsumowanie</string> <string name="animate_my_location">Animowanie położenia</string> <string name="animate_my_location_desc">Animuje aktualne położenie na mapie podczas nawigacji.</string> - <string name="osmand_extended_description_part2">Nawigacja GPS -\n • Możesz wybrać pomiędzy trybem offline (brak kosztów roamingu za granicą) lub online (szybciej) -\n • Podpowiedzi głosowe zakręt-za-zakrętem poprowadzą cię do celu (nagrane lub syntetyzowane głosy) -\n • Ponowne wyznaczanie trasy po zboczeniu z niej -\n • Informacje o pasach, nazwach ulic i przybliżonym czasie przybycia pomogą ci w trasie -\n • Aby zwiększyć twoje bezpieczeństwo, motyw dzienny/nocny przełącza się automatycznie -\n • Możesz skonfigurować wyświetlanie limitów prędkości i ostrzeżeń o jej przekroczeniu -\n • Mapa skaluje się do twojej prędkości -\n • Możesz wyszukiwać miejsca według adresu, typu (np. Parking, restauracja, hotel, stacja benzynowa, muzeum) lub współrzędnych geograficznych -\n • Wsparcie dla celów pośrednich trasy -\n • Możesz zarejestrować lub wysłać trasę GPX i podążać za nią</string> + <string name="osmand_extended_description_part2">Nawigacja GPS +\n • Możesz wybrać pomiędzy trybem offline (brak kosztów roamingu za granicą) lub online (szybciej) +\n • Podpowiedzi głosowe zakręt-za-zakrętem poprowadzą cię do celu (nagrane lub syntetyzowane głosy) +\n • Ponowne wyznaczanie trasy po zboczeniu z niej +\n • Informacje o pasach, nazwach ulic i przybliżonym czasie przybycia pomogą ci w trasie +\n • Aby zwiększyć twoje bezpieczeństwo, motyw dzienny/nocny przełącza się automatycznie +\n • Możesz skonfigurować wyświetlanie limitów prędkości i ostrzeżeń o jej przekroczeniu +\n • Mapa skaluje się do twojej prędkości +\n • Możesz wyszukiwać miejsca według adresu, typu (np. Parking, restauracja, hotel, stacja benzynowa, muzeum) lub współrzędnych geograficznych +\n • Wsparcie dla celów pośrednich trasy +\n • Możesz zarejestrować lub wysłać trasę GPX i podążać za nią +\n</string> <string name="favorite_group_name">Nazwa grupy</string> <string name="change_color">Zmień kolor</string> <string name="edit_name">Zmień nazwę</string> @@ -2362,7 +2362,7 @@ Reprezentuje obszar: %1$s x %2$s</string> <string name="store_tracks_in_monthly_directories">Rejestrowanie śladów do miesięcznych katalogów</string> <string name="store_tracks_in_monthly_directories_descrp">Przechowuje zarejestrowane ślady w podkatalogach odpowiadającym miesiącom (np. 2018-01).</string> <string name="shared_string_reset">Resetuj</string> - <string name="mapillary_menu_descr_tile_cache">"Ponowne wczytanie kafelków uaktualni je."</string> + <string name="mapillary_menu_descr_tile_cache">Wczytaj ponownie kafelki, aby zobaczyć aktualne dane.</string> <string name="average">Średnia</string> <string name="of">%1$d z %2$d</string> <string name="ascent_descent">Podjazd/zjazd</string> @@ -2482,7 +2482,7 @@ Reprezentuje obszar: %1$s x %2$s</string> <string name="waypoints_added_to_map_markers">Dodano punkty pośrednie do znaczników mapy</string> <string name="shared_string_gpx_waypoints">Punkty śladu</string> <string name="favourites_group">Kategoria ulubionych</string> - <string name="add_group">"Dodaj grupę "</string> + <string name="add_group">Dodaj grupę</string> <string name="add_group_descr">Importuj grupy z Ulubionych lub punkty trasy GPX.</string> <string name="empty_state_markers_active">Utwórz znaczniki na mapie!</string> <string name="empty_state_markers_active_desc">Proszę dotknąć \"Miejsca\" a następnie przycisk znacznika opatrzony flagą.</string> @@ -2491,7 +2491,7 @@ Reprezentuje obszar: %1$s x %2$s</string> <string name="show_guide_line_descr">Wyświetla na mapie linię łączącą aktualne położenie z położeniem aktywnego znacznika.</string> <string name="show_arrows_descr">Wyświetla na mapie jedną lub dwie strzałki wskazujące kierunek do aktywnych znaczników.</string> <string name="distance_indication_descr">Wybiera sposób wyświetlania odległości od aktywnego znacznika.</string> - <string name="active_markers_descr">Określ liczbę wskaźników kierunku:</string> + <string name="active_markers_descr">Określ liczbę wskaźników kierunku.</string> <string name="looking_for_tracks_with_waypoints">Wyszukiwanie tras z punktami</string> <string name="shared_string_more_without_dots">Więcej</string> <string name="appearance_on_the_map">Wygląd na mapie</string> @@ -2762,8 +2762,9 @@ Reprezentuje obszar: %1$s x %2$s</string> \n• Inne poprawki błędów \n</string> <string name="increase_search_radius_to">Zwiększ promień wyszukiwania do %1$s</string> - <string name="send_search_query_description">Zostaną wysłane informacje o zapytaniu: „%1$s” i położeniu. - \nInformacje osobiste nie są gromadzone, dane wyszukiwania są używane tylko do poprawienia algorytmu wyszukiwania.</string> + <string name="send_search_query_description">Twoje zapytanie wraz z położeniem będzie wysłane do: „%1$s”. +\n +\n Informacje osobiste nie są gromadzone, dane wyszukiwania są używane tylko do poprawienia algorytmu wyszukiwania.</string> <string name="search_no_results_description">Brak wyników? \nPowiedz nam o tym.</string> <string name="send_search_query">Wysłać zapytanie?</string> @@ -3613,7 +3614,7 @@ Reprezentuje obszar: %1$s x %2$s</string> <string name="shared_string_octagon">Ośmiokąt</string> <string name="app_mode_ski_touring">Turystyka narciarska</string> <string name="app_mode_ski_snowmobile">Skuter śnieżny</string> - <string name="replace_point_descr">Zastąp tym inny punkt</string> + <string name="replace_point_descr">Zastąp tym inny punkt.</string> <string name="custom_osmand_plugin">Niestandardowa wtyczka OsmAnd</string> <string name="changes_applied_to_profile">Zmiany zastosowano do profilu \"%1$s\".</string> <string name="settings_item_read_error">Nie udało się odczytać z \"%1$s\".</string> @@ -3643,7 +3644,7 @@ Reprezentuje obszar: %1$s x %2$s</string> <string name="wiki_menu_download_descr">Potrzebne są dodatkowe mapy, żeby przeglądać UM Wikipedii na mapie.</string> <string name="some_articles_may_not_available_in_lang">Pewne artykuły Wikipedii mogą być nie dostępne w wybranym języku.</string> <string name="custom_color">Dostosowany kolor</string> - <string name="select_wikipedia_article_langs">Wybierz języki, w których będą pojawiać się artykuły z Wikipedii na mapie. Możesz przełączać się pomiędzy dostępnymi językami podczas czytania artykułu.</string> + <string name="select_wikipedia_article_langs">Wybierz języki, w których na mapie będą pojawiać się artykuły z Wikipedii. Możesz przełączać się pomiędzy dostępnymi językami podczas czytania artykułu.</string> <string name="lang_zhyue">Kantoński</string> <string name="lang_uz">Uzbecki</string> <string name="lang_ur">Urdu</string> @@ -3679,7 +3680,7 @@ Reprezentuje obszar: %1$s x %2$s</string> <string name="ltr_or_rtl_combine_via_slash_with_space">%1$s / %2$s</string> <string name="search_poi_types">Szukaj typów użytecznych miejsc</string> <string name="search_poi_types_descr">Łącz typy użytecznych zmian z różnych kategorii. Stuknij \"Zmień\", aby zaznaczyć wszystko, stuknij lewą stronę, aby wybrać kategorię.</string> - <string name="legend_item_description">Przewodnik po symbolach mapy</string> + <string name="legend_item_description">Przewodnik po symbolach mapy.</string> <string name="navigation_profiles_item">Profile nawigacji</string> <string name="mapillary_item">OsmAnd + Mapillary</string> <string name="quick_action_item">Szybka czynność</string> @@ -3734,27 +3735,27 @@ Reprezentuje obszar: %1$s x %2$s</string> <string name="turn_screen_on_proximity_sensor">Czujnik zbliżeniowy</string> <string name="keep_screen_on">Nie wyłączaj ekranu</string> <string name="keep_screen_off">Nie włączaj ekranu</string> - <string name="pseudo_mercator_projection">Projekcja Pseudo-Mercator</string> + <string name="pseudo_mercator_projection">Zmodyfikowane odwzorowanie Merkatora</string> <string name="one_image_per_tile">Jeden plik obrazu na kafelek</string> <string name="sqlite_db_file">Plik SQLiteDB</string> <string name="online_map_name_helper_text">Podaj nazwę źródła mapy online.</string> <string name="online_map_url_helper_text">Wpisz lub wklej URL dla źródła online.</string> <string name="edit_online_source">Edytuj źródło online</string> <string name="expire_time">Czas wygaśnięcia</string> - <string name="mercator_projection">Projekcja Mercatora</string> + <string name="mercator_projection">Odwzorowanie Merkatora</string> <string name="storage_format">Format pamięci masowej</string> - <string name="map_source_zoom_levels">Wybierz minimalny i maksymalny poziom powiększenia na którym mapy online będą wyświetlane lub wczytywane.</string> + <string name="map_source_zoom_levels">Wybierz minimalny i maksymalne powiększenie, przy którym mapy online będą wyświetlane lub wczytywane.</string> <string name="map_source_zoom_levels_descr">Te parametry wpłyną na wyświetlanie, gdy są używane jako mapa lub nakładka/podkład. \n \n%1$s: Mapa będzie ograniczona do wybranych powiększeń. \n \n%2$s: Poziomy powiększenia na których początkowe kafelki będą widoczne. Skalowanie w dół lub w górę nastąpi niezależnie od tych wartości.</string> - <string name="expire_time_descr">Czas wygaśnięcia w minutach. Buforowane kafelki zostaną ponownie załadowane po określonym czasie. Pozostaw to pole puste, aby nigdy nie odświeżać kafelków dla tego źródła. -\n -\nJeden dzień to 1440 minut. -\nJeden tydzień to 10 080 minut. + <string name="expire_time_descr">Buforowane kafelki zostaną ponownie pobrane po określonej liczbie minut. Pozostaw to pole puste, aby nigdy nie odświeżać kafelków dla tego źródła. +\n +\nJeden dzień to 1440 minut. +\nJeden tydzień to 10 080 minut. \nJeden miesiąc to 43 829 minut.</string> - <string name="tiles_storage_descr">Wybierz jak będą gromadzone pobrane kafelki.</string> + <string name="tiles_storage_descr">Wybierz, jak będą przechowywane pobrane kafelki.</string> <string name="export_import_quick_actions_with_profiles_promo">Możesz importować lub eksportować szybkie czynności z profilami aplikacji.</string> <string name="shared_string_delete_all_q">Usunąć wszystko\?</string> <string name="delete_all_actions_message_q">Czy na pewno chcesz nieodwracalnie usunąć szybkie akcje %d\?</string> @@ -3766,4 +3767,11 @@ Reprezentuje obszar: %1$s x %2$s</string> <string name="details_dialog_decr">Kontroluj widoczność dodatkowych szczegółów na mapie</string> <string name="shared_string_night_map">Mapa nocna</string> <string name="shared_string_all_time">Cały czas</string> + <string name="vessel_height_warning">Możesz ustawić wysokość statku, aby unikać niskich mostów. Uwaga: dla mostów zwodzonych liczymy wysokość podniesionego mostu.</string> + <string name="vessel_height_limit_description">Ustaw wysokość statku, by unikać niskich mostów. Uwaga: dla mostów zwodzonych liczymy wysokość podniesionego mostu.</string> + <string name="vessel_height_warning_link">Ustaw wysokość statku</string> + <string name="vessel_width_limit_description">Ustaw szerokość statku, by unikać wąskich mostów</string> + <string name="quick_action_showhide_mapillary_title">Pokaż/ukryj Mapillary</string> + <string name="quick_action_mapillary_hide">Ukryj Mapillary</string> + <string name="quick_action_mapillary_show">Pokaż Mapillary</string> </resources> \ No newline at end of file From 0bb9c093fe125acb5eb6ea79276fe2eae47d5fb9 Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood <rlo927@gmail.com> Date: Tue, 16 Jun 2020 09:32:58 +0000 Subject: [PATCH 053/300] Translated using Weblate (Arabic) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-ar/strings.xml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 86fe0ada27..e64e706a81 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -182,7 +182,7 @@ <string name="driving_region_japan">اليابان</string> <string name="driving_region_us">الولايات المتحدة</string> <string name="driving_region_canada">كندا</string> - <string name="driving_region_europe_asia">أوروبا وآسيا</string> + <string name="driving_region_europe_asia">أوروبا وآسيا وأمريكا اللاتينية ومناطق مماثلة</string> <string name="driving_region_uk">المملكة المتحدة، الهند وما شابه ذلك</string> <string name="speak_title">الإعلامات…</string> <string name="osb_author_or_password_not_specified">أدخل اسم المستخدم وكلمة السر في الإعدادات</string> @@ -321,7 +321,7 @@ <string name="intermediate_point">الوجهة الوسطى %1$s</string> <string name="context_menu_item_last_intermediate_point">أضف آخر وجهة وسيطة</string> <string name="context_menu_item_first_intermediate_point">إضافة كوجهة وسيطة أولى</string> - <string name="edit_tilesource_expiration_time">الانتهاء (دقائق)</string> + <string name="edit_tilesource_expiration_time">انتهاء الوقت (دقيقة)</string> <string name="edit_tilesource_choose_existing">اختر القائمة …</string> <string name="map_widget_fps_info">معلومات تنقيح FPS</string> <string name="settings_preset_descr">اختيار وضع افتراضي لعرض الخريطة: استعراض، سيارة، مشي .</string> @@ -351,7 +351,7 @@ <string name="show_warnings_descr">ضبط تحذيرات المرور ( حدود السرعة، والتوقف القسري، والمطبات الصناعية ) ، وتحذيرات كاميرا السرعة ، ومعلومات الممرات.</string> <string name="local_index_tile_data_zooms">التقريبات المُنزّلة: %1$s</string> <string name="local_index_tile_data_name">معلومات التّجانب: %1$s</string> - <string name="edit_tilesource_successfully">حُفِظ المصدر التّجانبي %1$s بنجاح</string> + <string name="edit_tilesource_successfully">مصدر التجانب %1$s المحفوظ</string> <string name="use_compass_navigation_descr">استخدم البوصلة عندما لا تكون هناك أي وجهة محددة.</string> <string name="auto_zoom_map_descr">ملائمة تقريب الخريطة تزامناً مع موقعك.</string> <string name="auto_zoom_map">التكبير التلقائي</string> @@ -406,7 +406,7 @@ <string name="osmand_parking_time_limit">وقت محدد زمنياً</string> <string name="osmand_parking_time_no_limit">مواقف غير محدودة زمنياً</string> <string name="av_photo_play_sound_descr">فعّل هذا في حال رغبتك بسماع نغمة التقاط الصّور.</string> - <string name="edit_tilesource_elliptic_tile">نموذج مركتور البيضوي</string> + <string name="edit_tilesource_elliptic_tile">نموذج مركتور البيضاوي</string> <string name="route_descr_lat_lon">N %1$.3f E %2$.3f</string> <string name="use_kalman_filter_compass_descr">يحد من شوشرة البوصلة ولكنه يضيف بطئ بسيط.</string> <string name="use_kalman_filter_compass">مرشح كالمان</string> @@ -2236,7 +2236,7 @@ <string name="select_gpx_folder">حدد مجلد المسار</string> <string name="shared_string_gpx_tracks">المسارات</string> <string name="shared_string_time">الوقت</string> - <string name="osmand_plus_extended_description_part8">التغطية التقريبية للخريطة و جودتها : + <string name="osmand_plus_extended_description_part8">التغطية التقريبية للخريطة و جودتها : \n• أوروبا الغربية : **** \n• أوروبا الشرقية : *** \n• روسيا : *** @@ -3772,4 +3772,8 @@ <string name="vessel_height_warning_link">ضبط ارتفاع السفينة</string> <string name="vessel_height_warning">يمكنك ضبط ارتفاع الحاوية لتجنب الجسور المنخفضة. ضع في اعتبارك أنه إذا كان الجسر متحركاً ، فسوف نستخدم ارتفاعه في الحالة المفتوحة.</string> <string name="vessel_width_limit_description">تحديد عرض السفينة لتجنب الجسور الضيقة</string> + <string name="quick_action_showhide_mapillary_title">إظهار/إخفاء مابيلاري</string> + <string name="quick_action_mapillary_hide">إخفاء مابيلاري</string> + <string name="quick_action_mapillary_show">إظهار مابيلاري</string> + <string name="quick_action_showhide_mapillary_descr">إظهار أو إخفاء طبقة مابيلاري على الخريطة.</string> </resources> \ No newline at end of file From 862611efc08dd0c8fb3e17806e97057233ba59a6 Mon Sep 17 00:00:00 2001 From: iman <iriman@chmail.ir> Date: Wed, 17 Jun 2020 20:27:58 +0000 Subject: [PATCH 054/300] Translated using Weblate (Persian) Currently translated at 99.8% (3386 of 3392 strings) --- OsmAnd/res/values-fa/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 8835daf1f5..d4075be199 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -3815,4 +3815,8 @@ <string name="vessel_height_warning">می‌توانید ارتفاع کشتی را برای پرهیز از پل‌های کوتاه وارد کنید. به یاد داشته باشید که اگر پل متحرک است، در حالت باز نیز ارتفاع کشتی را در نظر می‌گیریم.</string> <string name="vessel_height_limit_description">ارتفاع کشتی را برای پرهیز از پل‌های کوتاه وارد کنید. به یاد داشته باشید که اگر پل متحرک است، در حالت باز نیز ارتفاع کشتی را در نظر می‌گیریم.</string> <string name="vessel_width_limit_description">عرض کشتی را برای پرهیز از پل های باریک وارد کنید</string> + <string name="quick_action_showhide_mapillary_title">آشکار/پنهان کردن مپیلاری</string> + <string name="quick_action_mapillary_show">آشکارکردن مپیلاری</string> + <string name="quick_action_mapillary_hide">پنهان‌کردن مپیلاری</string> + <string name="quick_action_showhide_mapillary_descr">دکمه‌ای برای آشکار/پنهان کردن لایهٔ مپیلاری روی نقشه.</string> </resources> \ No newline at end of file From 6b2da2fd289b0b602dbba9b7a4dbcc92da6b501f Mon Sep 17 00:00:00 2001 From: Osoitz <oelkoro@gmail.com> Date: Wed, 17 Jun 2020 04:19:51 +0000 Subject: [PATCH 055/300] Translated using Weblate (Basque) Currently translated at 99.0% (3361 of 3392 strings) --- OsmAnd/res/values-eu/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-eu/strings.xml b/OsmAnd/res/values-eu/strings.xml index ed61fc2439..6c92616fcb 100644 --- a/OsmAnd/res/values-eu/strings.xml +++ b/OsmAnd/res/values-eu/strings.xml @@ -3784,4 +3784,7 @@ Area honi dagokio: %1$s x %2$s</string> <string name="shared_string_meters">metro</string> <string name="details_dialog_decr">Kontrolatu mapan agertzen diren xehetasun gehigarrien ikusgaitasuna</string> <string name="shared_string_night_map">Gauerako mapa</string> + <string name="quick_action_showhide_mapillary_title">Erakutsi/ezkutatu Mapillary</string> + <string name="quick_action_mapillary_hide">Ezkutatu Mapillary</string> + <string name="quick_action_mapillary_show">Erakutsi Mapillary</string> </resources> \ No newline at end of file From 24b1ca7d745eb95c29b687af1d1ebea52e9c5950 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf <lmelonimamo@yahoo.it> Date: Wed, 17 Jun 2020 13:16:44 +0000 Subject: [PATCH 056/300] Translated using Weblate (Sardinian) Currently translated at 99.6% (3381 of 3392 strings) --- OsmAnd/res/values-sc/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 1db7c16316..faa1c80347 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3784,4 +3784,8 @@ <string name="vessel_height_warning">Podes impostare s\'artària de sa barca pro evitare sos pontes bassos. Ammenta·ti chi, si su ponte est mòbile, amus a impreare s\'artària sua de cando est abertu.</string> <string name="vessel_height_limit_description">Imposta s\'artària de sa barca pro evitare sos pontes bassos. Ammenta·ti chi, si su ponte est mòbile, amus a impreare s\'artària sua de cando est abertu.</string> <string name="vessel_width_limit_description">Imposta sa largària de sa barca pro evitare pontes astrintos</string> + <string name="quick_action_showhide_mapillary_title">Ammustra/cua Mapillary</string> + <string name="quick_action_mapillary_hide">Cua Mapillary</string> + <string name="quick_action_mapillary_show">Ammustra Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Unu butone pro ammustrare o cuare s\'istratu de Mapillary in sa mapa.</string> </resources> \ No newline at end of file From 27c253e8850a14a8fae3d9c82f72f0c290d9646a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= <ivanrsm1997@gmail.com> Date: Wed, 17 Jun 2020 11:56:49 +0000 Subject: [PATCH 057/300] Translated using Weblate (Galician) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-gl/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 29481afc0c..4493b4e5c0 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -3809,4 +3809,8 @@ Lon %2$s</string> <string name="vessel_height_warning">Podes definir a altura da embarcación para evitar pontes baixas. Lémbrate se a ponte é móbil, empregaremos a súa altura no estado aberto.</string> <string name="vessel_height_limit_description">Define o alto da embarcación para evitar pontes baixas. Lémbrate se a ponte é móbil, empregaremos a súa altura no estado aberto.</string> <string name="vessel_width_limit_description">Estabelecer o largo da embarcación para evitar pontes estreitas</string> + <string name="quick_action_showhide_mapillary_title">Amosar/agochar o Mapillary</string> + <string name="quick_action_mapillary_hide">Agochar o Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Un botón para amosar ou agochar a capa do Mapillary no mapa.</string> + <string name="quick_action_mapillary_show">Amosar o Mapillary</string> </resources> \ No newline at end of file From b17b04199f85edb68fc200be8a7a7440a290b6b2 Mon Sep 17 00:00:00 2001 From: Piotr Kubowicz <piotr.kubowicz@gmail.com> Date: Tue, 16 Jun 2020 15:05:11 +0000 Subject: [PATCH 058/300] Translated using Weblate (Polish) Currently translated at 99.9% (3803 of 3804 strings) --- OsmAnd/res/values-pl/phrases.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-pl/phrases.xml b/OsmAnd/res/values-pl/phrases.xml index 591e033a49..7181c1a022 100644 --- a/OsmAnd/res/values-pl/phrases.xml +++ b/OsmAnd/res/values-pl/phrases.xml @@ -1746,13 +1746,13 @@ <string name="poi_service_repair_no">Brak napraw</string> <string name="poi_service_electrical">Naprawa aut elektrycznych</string> <string name="poi_self_service_yes">Tak</string> - <string name="poi_self_service_no">Brak samoobsługi</string> + <string name="poi_self_service_no">Brak</string> <string name="poi_automated_yes">Tak</string> <string name="poi_automated_no">Nie-automatyczny</string> <string name="poi_full_service_yes">Pełna obsługa</string> <string name="poi_brushless_yes">Tak</string> <string name="poi_brushless_no">Bezszczotkowa: nie</string> - <string name="poi_car_wash_no">Myjnia samochodowa: nie</string> + <string name="poi_car_wash_no">Brak</string> <string name="poi_aeroway_fuel">Stacja benzynowa dla samolotów</string> <string name="poi_public_bath">Łaźnia publiczna</string> <string name="poi_indoor_yes">Wewnątrz</string> From b6af38465e93e26845b27dc56aa9dc0e65b711fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= <ivanrsm1997@gmail.com> Date: Wed, 17 Jun 2020 11:26:32 +0000 Subject: [PATCH 059/300] Translated using Weblate (Galician) Currently translated at 100.0% (3804 of 3804 strings) --- OsmAnd/res/values-gl/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-gl/phrases.xml b/OsmAnd/res/values-gl/phrases.xml index 2a9a1ed9cb..55ce301510 100644 --- a/OsmAnd/res/values-gl/phrases.xml +++ b/OsmAnd/res/values-gl/phrases.xml @@ -249,7 +249,7 @@ <string name="poi_shelter">Abeiro</string> <string name="poi_funicular">Funicular</string> <string name="poi_club_astronomy">Club de astronomía</string> - <string name="poi_club_computer">Club de informática</string> + <string name="poi_club_computer">Clube de informática</string> <string name="poi_club_board_games">Club de xogos de mesa</string> <string name="poi_club_motorcycle">Club de motos</string> <string name="poi_club_sport">Club deportivo</string> From f58b79b50c9fbcdd4f12b80e34dbd7036d8a4449 Mon Sep 17 00:00:00 2001 From: Roberto GEB <robertogeb@gmail.com> Date: Tue, 16 Jun 2020 20:27:06 +0000 Subject: [PATCH 060/300] Translated using Weblate (Spanish) Currently translated at 99.8% (3798 of 3804 strings) --- OsmAnd/res/values-es/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml index aff397529d..f30d5927ce 100644 --- a/OsmAnd/res/values-es/phrases.xml +++ b/OsmAnd/res/values-es/phrases.xml @@ -1855,7 +1855,7 @@ <string name="poi_elevator_no">Ascensor: no</string> <string name="poi_technical_monument">Monumento técnico</string> <string name="poi_office_camping">Oficina del campamento</string> - <string name="poi_model_aerodrome">Aeródromo a escala</string> + <string name="poi_model_aerodrome">Pista de aeromodelismo</string> <string name="poi_guide">Oficina del guía</string> <string name="poi_quango">ONG casi autónoma</string> <string name="poi_consulting">Oficina de consultoría</string> From ac34a8fff140375efa94dbf9d394fed5014407ab Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira <duduaddad@gmail.com> Date: Wed, 17 Jun 2020 02:12:57 +0000 Subject: [PATCH 061/300] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index bd0d10b4ab..d424b7b84c 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3769,4 +3769,8 @@ Pôr do Sol: %2$s</string> <string name="vessel_height_warning">Você pode definir a altura da embarcação para evitar pontes baixas. Lembre-se, se a ponte for móvel, usaremos sua altura no estado aberto.</string> <string name="vessel_height_limit_description">Defina a altura do vaso para evitar pontes baixas. Lembre-se, se a ponte for móvel, usaremos sua altura no estado aberto.</string> <string name="vessel_width_limit_description">Defina a largura da embarcação para evitar pontes estreitas</string> + <string name="quick_action_showhide_mapillary_title">Mostrar/ocultar Mapillary</string> + <string name="quick_action_mapillary_hide">Ocultar Mapillary</string> + <string name="quick_action_mapillary_show">Mostrar Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Uma alternância para mostrar ou ocultar a camada Mapillary no mapa.</string> </resources> \ No newline at end of file From f8e0eab051faf51f6f57d8c41a397616f2e77f72 Mon Sep 17 00:00:00 2001 From: Verdulo <tomek@disroot.org> Date: Tue, 16 Jun 2020 10:00:43 +0000 Subject: [PATCH 062/300] Translated using Weblate (Esperanto) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-eo/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 16ecc9e11a..6204abe3ea 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3782,4 +3782,8 @@ <string name="vessel_height_warning">Vi povas enigi alton de via akvoveturilo por eviti malaltajn pontojn. Estu konscia, ke se ponto estas movebla, la alto en ĝia malfermita stato estos uzata.</string> <string name="vessel_height_limit_description">Enigu alton de akvoveturilo por eviti malaltajn pontojn. Estu konscia, ke se ponto estas movebla, la alto en ĝia malfermita stato estos uzata.</string> <string name="vessel_width_limit_description">Enigu larĝon de akvoveturilo por eviti mallarĝajn pontojn</string> + <string name="quick_action_showhide_mapillary_title">Montri/kaŝi Mapillary</string> + <string name="quick_action_mapillary_hide">Kaŝi Mapillary</string> + <string name="quick_action_mapillary_show">Montri Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Ŝaltilo por montri aŭ kaŝi tavolon de Mapillary sur la mapo.</string> </resources> \ No newline at end of file From 66526a721d6730156b841aa4ceafd751235fd997 Mon Sep 17 00:00:00 2001 From: Jeff Huang <s8321414@gmail.com> Date: Wed, 17 Jun 2020 00:37:43 +0000 Subject: [PATCH 063/300] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index ebeb45ab27..467d9f339a 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3777,4 +3777,8 @@ <string name="vessel_height_warning">您可以設定船艦高度以避免矮橋。請記住,如果橋是可動式的,我們將會使用其在開啟狀態的高度。</string> <string name="vessel_height_limit_description">設定船艦高度以避免矮橋。請記住,如果橋是可動式的,我們將會使用其開啟狀態的高度。</string> <string name="vessel_width_limit_description">設定船艦寬度以避免窄橋</string> + <string name="quick_action_showhide_mapillary_title">顯示/隱藏 Mapillary</string> + <string name="quick_action_mapillary_hide">隱藏 Mapillary</string> + <string name="quick_action_mapillary_show">顯示 Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">在地圖上顯示或隱藏 Mapillary 圖層的開關。</string> </resources> \ No newline at end of file From 611c8ece1c58438b120c5211b93b6f23dd8d6959 Mon Sep 17 00:00:00 2001 From: Branko Kokanovic <branko@kokanovic.org> Date: Tue, 16 Jun 2020 00:39:41 +0000 Subject: [PATCH 064/300] Translated using Weblate (Serbian) Currently translated at 72.6% (2763 of 3804 strings) --- OsmAnd/res/values-sr/phrases.xml | 37 ++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-sr/phrases.xml b/OsmAnd/res/values-sr/phrases.xml index 45bdd10dac..11e046459a 100644 --- a/OsmAnd/res/values-sr/phrases.xml +++ b/OsmAnd/res/values-sr/phrases.xml @@ -641,8 +641,8 @@ <string name="poi_internet_access_public">Интернет приступ: јавни</string> <string name="poi_internet_access_yes">Интернет приступ: да</string> <string name="poi_internet_access_no">Интернет приступ: не</string> - <string name="poi_internet_access_fee_yes">Интернет приступ - са накнадом</string> - <string name="poi_internet_access_fee_no">Интернет приступ - без накнаде</string> + <string name="poi_internet_access_fee_yes">Интернет приступ: са накнадом</string> + <string name="poi_internet_access_fee_no">Интернет приступ: без накнаде</string> <string name="poi_monastery">Манастир</string> <string name="poi_information">Информације</string> <string name="poi_clock">Сат</string> @@ -1847,13 +1847,13 @@ <string name="poi_service_electrical">Поправка електричних возила</string> <string name="poi_motorcycle_repair">Поправка мотора</string> <string name="poi_self_service_yes">Да</string> - <string name="poi_self_service_no">Без само-услуге</string> + <string name="poi_self_service_no">Не</string> <string name="poi_automated_yes">Да</string> <string name="poi_automated_no">Не аутоматски</string> <string name="poi_full_service_yes">Пуна услуга</string> <string name="poi_brushless_yes">Да</string> <string name="poi_brushless_no">Без четкица: не</string> - <string name="poi_car_wash_no">Прање кола: не</string> + <string name="poi_car_wash_no">Не</string> <string name="poi_public_bath">Јавно купатило</string> <string name="poi_male_yes">Мушкарци</string> <string name="poi_male_no">Забрањено за мушкарце</string> @@ -2736,4 +2736,33 @@ <string name="poi_sms">СМС</string> <string name="poi_volcano_status">Статус</string> <string name="poi_volcano_type">Тип</string> + <string name="poi_nuclear_explosion_type_cratering_burst">Тип експлозије: кратерска распрскавања (тик испод површине)</string> + <string name="poi_nuclear_explosion_shot_name_en">Кратко име (енгл.)</string> + <string name="poi_nuclear_explosion_series">Низ експлозија</string> + <string name="poi_nuclear_explosion_date_utc">Време експлозије (UTC)</string> + <string name="poi_nuclear_explosion_type_underwater">Тип експлозије: подводна</string> + <string name="poi_nuclear_explosion_type_space">Тип експлозије: свемир (преко 80km надморске висине)</string> + <string name="poi_nuclear_explosion_type_atmospheric_rocket_or_missile">Тип експлозије: у атмосфери, ракета или пројектил</string> + <string name="poi_nuclear_explosion_type_underground">Тип експлозије: подземна</string> + <string name="poi_nuclear_explosion_type_atmospheric_water_surface_barge">Тип експлозије: у атмосфери, водена подлога, баржа</string> + <string name="poi_nuclear_explosion_type_atmospheric_atmospheric_surface">Тип експлозије: у атмосфери, подлога</string> + <string name="poi_nuclear_explosion_type_atmospheric_balloon">Тип експлозије: у атмосфери, балон</string> + <string name="poi_nuclear_explosion_type_atmospheric_surface_tower">Тип експлозије: у атмосфери, подлога, торањ</string> + <string name="poi_nuclear_explosion_type_atmospheric_airdrop">Тип експлозије: у атмосфери, капљице</string> + <string name="poi_nuclear_explosion_type_atmospheric">Тип експлозије: у атмосфери</string> + <string name="poi_nuclear_explosion_type_underground_tunnel">Тип експлозије: подземна, тунел</string> + <string name="poi_nuclear_explosion_type_underground_shaft">Тип експлозије: подземна, јама</string> + <string name="poi_nuclear_explosion_site">Експлозија: место</string> + <string name="poi_nuclear_explosion_country">Експлозија: држава</string> + <string name="poi_protection_object_water">Објекат под заштитом: вода</string> + <string name="poi_protection_object_habitat">Објекат под заштитом: насеље</string> + <string name="poi_protection_object_nature">Објекат под заштитом: природа</string> + <string name="poi_protection_object_historic">Објекат под заштитом: историјски</string> + <string name="poi_protection_title">Наслов заштите</string> + <string name="poi_protected_area">Заштићена област</string> + <string name="poi_firepit">Место за ватру</string> + <string name="poi_construction_yes">У изградњи</string> + <string name="poi_ref">Реф.</string> + <string name="poi_tunnel_ref">Реф. тунела</string> + <string name="poi_bridge_ref">Реф. моста</string> </resources> \ No newline at end of file From b540b5b2e75a833c214cb5c697cf5e52c6c2014f Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Thu, 18 Jun 2020 14:18:24 +0200 Subject: [PATCH 065/300] Add aditional types to search --- .../osmand/search/core/SearchCoreFactory.java | 172 ++++++++++++------ 1 file changed, 121 insertions(+), 51 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java index e174967d97..26d16e2c54 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java @@ -35,6 +35,7 @@ import net.osmand.util.MapUtils; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -669,6 +670,11 @@ public class SearchCoreFactory { return phrase.getNextRadiusSearch(BBOX_RADIUS); } } + + protected static class PoiTypeResult { + public AbstractPoiType pt; + public Set<String> foundWords = new LinkedHashSet<String>(); + } public static class SearchAmenityTypesAPI extends SearchBaseAPI { @@ -704,68 +710,102 @@ public class SearchCoreFactory { } } - public Map<AbstractPoiType, List<String>> getPoiTypeResults(NameStringMatcher nm, boolean includeAdditionals) { - Map<AbstractPoiType, List<String>> results = new LinkedHashMap<>(); + public Map<String, PoiTypeResult> getPoiTypeResults(NameStringMatcher nm, boolean includeAdditionals) { + Map<String, PoiTypeResult> results = new LinkedHashMap<>(); for (AbstractPoiType pf : topVisibleFilters) { - checkPoiType(nm, pf, results); + PoiTypeResult res = checkPoiType(nm, pf); + if(res != null) { + results.put(res.pt.getKeyName(), res); + } + } + if (includeAdditionals) { + addAditonals(nm, results, types.getOtherMapCategory()); } for (PoiCategory c : categories) { - checkPoiType(nm, c, results); + PoiTypeResult res = checkPoiType(nm, c); + if(res != null) { + results.put(res.pt.getKeyName(), res); + } + if (includeAdditionals) { + addAditonals(nm, results, c); + } } Iterator<Entry<String, PoiType>> it = translatedNames.entrySet().iterator(); while (it.hasNext()) { Entry<String, PoiType> e = it.next(); PoiType pt = e.getValue(); - if (pt.getCategory() != types.getOtherMapCategory()) { - checkPoiType(nm, pt, results); - List<PoiType> additionals = pt.getPoiAdditionals(); - if (additionals != null && includeAdditionals) { - for (PoiType a : additionals) { - if (!results.containsKey(a)) { - String enTranslation = a.getEnTranslation().toLowerCase(); - if (!"yes".equals(enTranslation) && !"no".equals(enTranslation)) { - checkPoiType(nm, a, results); - } - } - } + if (pt.getCategory() != types.getOtherMapCategory() && !pt.isReference()) { + PoiTypeResult res = checkPoiType(nm, pt); + if(res != null) { + results.put(res.pt.getKeyName(), res); + } + if (includeAdditionals) { + addAditonals(nm, results, pt); } } } return results; } - private void checkPoiType(NameStringMatcher nm, AbstractPoiType pf, Map<AbstractPoiType, List<String>> results) { - List<String> lst = results.get(pf); - boolean nl = lst == null; + private void addAditonals(NameStringMatcher nm, Map<String, PoiTypeResult> results, AbstractPoiType pt) { + List<PoiType> additionals = pt.getPoiAdditionals(); + if (additionals != null) { + for (PoiType a : additionals) { + PoiTypeResult existingResult = results.get(a.getKeyName()); + if (existingResult != null) { + PoiAdditionalCustomFilter f ; + if (existingResult.pt instanceof PoiAdditionalCustomFilter) { + f = (PoiAdditionalCustomFilter) existingResult.pt; + } else { + f = new PoiAdditionalCustomFilter(types, (PoiType) existingResult.pt); + } + f.additionalPoiTypes.add(a); + existingResult.pt = f; + } else { + String enTranslation = a.getEnTranslation().toLowerCase(); + if (!"no".equals(enTranslation) // && !"yes".equals(enTranslation) + ) { + PoiTypeResult ptr = checkPoiType(nm, a); + if (ptr != null) { + results.put(a.getKeyName(), ptr); + } + } + } + } + } + } + + private PoiTypeResult checkPoiType(NameStringMatcher nm, AbstractPoiType pf) { + PoiTypeResult res = null; if (nm.matches(pf.getTranslation())) { - lst = addToList(pf.getTranslation(), lst); + res = addIfMatch(nm, pf.getTranslation(), pf, res); } if (nm.matches(pf.getEnTranslation())) { - lst = addToList(pf.getEnTranslation(), lst); + res = addIfMatch(nm, pf.getEnTranslation(), pf, res); } if (nm.matches(pf.getKeyName())) { - lst = addToList(pf.getKeyName().replace('_', ' '), lst); + res = addIfMatch(nm, pf.getKeyName().replace('_', ' '), pf, res); } if (nm.matches(pf.getSynonyms())) { String[] synonyms = pf.getSynonyms().split(";"); for (String synonym : synonyms) { - if (nm.matches(synonym)) { - lst = addToList(synonym, lst); - } + res = addIfMatch(nm, synonym, pf, res); } } - if(lst != null && nl) { - results.put(pf, lst); - } + return res; } - private List<String> addToList(String s, List<String> lst) { - if(lst == null) { - lst = new ArrayList<>(); + private PoiTypeResult addIfMatch(NameStringMatcher nm, String s, AbstractPoiType pf, PoiTypeResult res) { + if (nm.matches(s)) { + if (res == null) { + res = new PoiTypeResult(); + res.pt = pf; + } + res.foundWords.add(s); + } - lst.add(s); - return lst; + return res; } private void initPoiTypes() { @@ -792,11 +832,11 @@ public class SearchCoreFactory { } else { boolean includeAdditional = !phrase.hasMoreThanOneUnknownSearchWord(); - Map<AbstractPoiType, List<String>> poiTypes = getPoiTypeResults(nm, includeAdditional); - for (Entry<AbstractPoiType, List<String>> pt : poiTypes.entrySet()) { + Map<String, PoiTypeResult> poiTypes = getPoiTypeResults(nm, includeAdditional); + for (PoiTypeResult ptr : poiTypes.values()) { boolean match = !phrase.isFirstUnknownSearchWordComplete(); if (!match) { - for (String foundName : pt.getValue()) { + for (String foundName : ptr.foundWords) { CollatorStringMatcher csm = new CollatorStringMatcher(foundName, StringMatcherMode.CHECK_ONLY_STARTS_WITH); match = csm.matches(phrase.getUnknownSearchPhrase()); if (match) { @@ -806,9 +846,9 @@ public class SearchCoreFactory { } if (match) { SearchResult res = new SearchResult(phrase); - res.localeName = pt.getKey().getTranslation(); - res.object = pt.getKey(); - addPoiTypeResult(phrase, resultMatcher, showTopFiltersOnly, getStandardFilterId(pt.getKey()), + res.localeName = ptr.pt.getTranslation(); + res.object = ptr.pt; + addPoiTypeResult(phrase, resultMatcher, showTopFiltersOnly, getStandardFilterId(ptr.pt), res); } } @@ -826,7 +866,7 @@ public class SearchCoreFactory { } private void addPoiTypeResult(SearchPhrase phrase, SearchResultMatcher resultMatcher, boolean showTopFiltersOnly, - String stdFilterId , SearchResult res) { + String stdFilterId, SearchResult res) { res.priorityDistance = 0; res.objectType = ObjectType.POI_TYPE; res.firstUnknownWordMatches = true; @@ -919,7 +959,7 @@ public class SearchCoreFactory { SearchPoiTypeFilter poiTypeFilter = null; String nameFilter = null; int countExtraWords = 0; - Map<String, PoiType> poiAdditionals = new LinkedHashMap<String, PoiType>(); + Set<String> poiAdditionals = new LinkedHashSet<>(); if (phrase.isLastWord(ObjectType.POI_TYPE)) { Object obj = phrase.getLastSelectedWord().getResult().object; if (obj instanceof AbstractPoiType) { @@ -933,10 +973,10 @@ public class SearchCoreFactory { } else if (searchAmenityTypesAPI != null && phrase.isFirstUnknownSearchWordComplete()) { NameStringMatcher nm = phrase.getFirstUnknownNameStringMatcher(); searchAmenityTypesAPI.initPoiTypes(); - Map<AbstractPoiType, List<String>> poiTypeResults = searchAmenityTypesAPI.getPoiTypeResults(nm, true); + Map<String, PoiTypeResult> poiTypeResults = searchAmenityTypesAPI.getPoiTypeResults(nm, true); // find first full match only - for (Entry<AbstractPoiType, List<String>> poiType : poiTypeResults.entrySet()) { - for (String foundName : poiType.getValue()) { + for (PoiTypeResult poiTypeResult : poiTypeResults.values()) { + for (String foundName : poiTypeResult.foundWords) { CollatorStringMatcher csm = new CollatorStringMatcher(foundName, StringMatcherMode.CHECK_ONLY_STARTS_WITH); // matches only completely int mwords = phrase.countWords(foundName) ; @@ -953,8 +993,8 @@ public class SearchCoreFactory { nameFilter += otherSearchWords.get(k); } } - poiTypeFilter = getPoiTypeFilter(poiType.getKey(), poiAdditionals); - unselectedPoiType = poiType.getKey(); + poiTypeFilter = getPoiTypeFilter(poiTypeResult.pt, poiAdditionals); + unselectedPoiType = poiTypeResult.pt; } } } @@ -983,7 +1023,7 @@ public class SearchCoreFactory { private ResultMatcher<Amenity> getResultMatcher(final SearchPhrase phrase, final SearchPoiTypeFilter poiTypeFilter, final SearchResultMatcher resultMatcher, final String nameFilter, final BinaryMapIndexReader selected, final Set<String> searchedPois, - final Map<String, PoiType> poiAdditionals, final int countExtraWords) { + final Collection<String> poiAdditionals, final int countExtraWords) { final NameStringMatcher ns = nameFilter == null ? null : new NameStringMatcher(nameFilter, StringMatcherMode.CHECK_STARTS_FROM_SPACE); @@ -1004,7 +1044,7 @@ public class SearchCoreFactory { } if (!poiAdditionals.isEmpty()) { boolean found = false; - for (String add : poiAdditionals.keySet()) { + for (String add : poiAdditionals) { if(object.getAdditionalInfo().containsKey(add)) { found = true; break; @@ -1058,13 +1098,13 @@ public class SearchCoreFactory { }; } - private SearchPoiTypeFilter getPoiTypeFilter(AbstractPoiType pt, Map<String, PoiType> poiAdditionals ) { + private SearchPoiTypeFilter getPoiTypeFilter(AbstractPoiType pt, Set<String> poiAdditionals ) { final Map<PoiCategory, LinkedHashSet<String>> acceptedTypes = new LinkedHashMap<PoiCategory, LinkedHashSet<String>>(); pt.putTypes(acceptedTypes); poiAdditionals.clear(); - if (pt instanceof PoiType && ((PoiType) pt).isAdditional() && ((PoiType) pt).getParentType() != null) { - poiAdditionals.put(pt.getKeyName(), (PoiType) pt); + if (pt.isAdditional()) { + poiAdditionals.add(pt.getKeyName()); } return new SearchPoiTypeFilter() { @@ -1324,6 +1364,36 @@ public class SearchCoreFactory { return SEARCH_BUILDING_BY_STREET_PRIORITY; } } + + protected static class PoiAdditionalCustomFilter extends AbstractPoiType { + + protected List<PoiType> additionalPoiTypes = new ArrayList<PoiType>(); + + public PoiAdditionalCustomFilter(MapPoiTypes registry, PoiType pt) { + super(pt.getKeyName(), registry); + additionalPoiTypes.add(pt); + } + + @Override + public boolean isAdditional() { + return true; + } + + public Map<PoiCategory, LinkedHashSet<String>> putTypes(Map<PoiCategory, LinkedHashSet<String>> acceptedTypes) { + for (PoiType p : additionalPoiTypes) { + if (p.getParentType() == registry.getOtherMapCategory()) { + for (PoiCategory c : registry.getCategories(false)) { + c.putTypes(acceptedTypes); + } + } else { + p.getParentType().putTypes(acceptedTypes); + } + + } + return acceptedTypes; + } + + } public static class SearchLocationAndUrlAPI extends SearchBaseAPI { From 4727143bbe58049ffc9ed85128ea0f19be7467f4 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Thu, 18 Jun 2020 14:48:32 +0200 Subject: [PATCH 066/300] Slightly limit additional poi categoreis --- .../osmand/search/core/SearchCoreFactory.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java index 26d16e2c54..fa600cee80 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java @@ -710,7 +710,7 @@ public class SearchCoreFactory { } } - public Map<String, PoiTypeResult> getPoiTypeResults(NameStringMatcher nm, boolean includeAdditionals) { + public Map<String, PoiTypeResult> getPoiTypeResults(NameStringMatcher nm, NameStringMatcher nmAdditional) { Map<String, PoiTypeResult> results = new LinkedHashMap<>(); for (AbstractPoiType pf : topVisibleFilters) { PoiTypeResult res = checkPoiType(nm, pf); @@ -718,16 +718,16 @@ public class SearchCoreFactory { results.put(res.pt.getKeyName(), res); } } - if (includeAdditionals) { - addAditonals(nm, results, types.getOtherMapCategory()); + if (nmAdditional != null) { + addAditonals(nmAdditional, results, types.getOtherMapCategory()); } for (PoiCategory c : categories) { PoiTypeResult res = checkPoiType(nm, c); if(res != null) { results.put(res.pt.getKeyName(), res); } - if (includeAdditionals) { - addAditonals(nm, results, c); + if (nmAdditional != null) { + addAditonals(nmAdditional, results, c); } } Iterator<Entry<String, PoiType>> it = translatedNames.entrySet().iterator(); @@ -739,8 +739,8 @@ public class SearchCoreFactory { if(res != null) { results.put(res.pt.getKeyName(), res); } - if (includeAdditionals) { - addAditonals(nm, results, pt); + if (nmAdditional != null) { + addAditonals(nmAdditional, results, pt); } } } @@ -821,6 +821,7 @@ public class SearchCoreFactory { public boolean search(SearchPhrase phrase, SearchResultMatcher resultMatcher) throws IOException { boolean showTopFiltersOnly = !phrase.isUnknownSearchWordPresent(); NameStringMatcher nm = phrase.getFirstUnknownNameStringMatcher(); + initPoiTypes(); if (showTopFiltersOnly) { for (AbstractPoiType pt : topVisibleFilters) { @@ -832,7 +833,9 @@ public class SearchCoreFactory { } else { boolean includeAdditional = !phrase.hasMoreThanOneUnknownSearchWord(); - Map<String, PoiTypeResult> poiTypes = getPoiTypeResults(nm, includeAdditional); + NameStringMatcher nmAdditional = includeAdditional ? + new NameStringMatcher(phrase.getFirstUnknownSearchWord(), StringMatcherMode.CHECK_EQUALS_FROM_SPACE) : null; + Map<String, PoiTypeResult> poiTypes = getPoiTypeResults(nm, nmAdditional); for (PoiTypeResult ptr : poiTypes.values()) { boolean match = !phrase.isFirstUnknownSearchWordComplete(); if (!match) { @@ -972,8 +975,10 @@ public class SearchCoreFactory { nameFilter = phrase.getUnknownSearchPhrase(); } else if (searchAmenityTypesAPI != null && phrase.isFirstUnknownSearchWordComplete()) { NameStringMatcher nm = phrase.getFirstUnknownNameStringMatcher(); + NameStringMatcher nmAdditional = new NameStringMatcher(phrase.getFirstUnknownSearchWord(), + StringMatcherMode.CHECK_EQUALS_FROM_SPACE) ; searchAmenityTypesAPI.initPoiTypes(); - Map<String, PoiTypeResult> poiTypeResults = searchAmenityTypesAPI.getPoiTypeResults(nm, true); + Map<String, PoiTypeResult> poiTypeResults = searchAmenityTypesAPI.getPoiTypeResults(nm, nmAdditional); // find first full match only for (PoiTypeResult poiTypeResult : poiTypeResults.values()) { for (String foundName : poiTypeResult.foundWords) { From 7f52f21cfeff6c585354b8ba9c5f3733933ff826 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Thu, 18 Jun 2020 16:37:30 +0300 Subject: [PATCH 067/300] Fix remove Add action from add action menu --- .../src/net/osmand/plus/quickaction/QuickAction.java | 10 ---------- .../osmand/plus/quickaction/QuickActionRegistry.java | 2 -- 2 files changed, 12 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/quickaction/QuickAction.java b/OsmAnd/src/net/osmand/plus/quickaction/QuickAction.java index 7a0cdc2c07..c2e73cdc1b 100644 --- a/OsmAnd/src/net/osmand/plus/quickaction/QuickAction.java +++ b/OsmAnd/src/net/osmand/plus/quickaction/QuickAction.java @@ -7,20 +7,10 @@ import android.view.View; import android.view.ViewGroup; import android.widget.EditText; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; - -import androidx.annotation.DrawableRes; -import androidx.annotation.StringRes; - import net.osmand.plus.OsmandApplication; import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.quickaction.actions.NewAction; import net.osmand.util.Algorithms; -import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/OsmAnd/src/net/osmand/plus/quickaction/QuickActionRegistry.java b/OsmAnd/src/net/osmand/plus/quickaction/QuickActionRegistry.java index 01c38b7936..f34f539539 100644 --- a/OsmAnd/src/net/osmand/plus/quickaction/QuickActionRegistry.java +++ b/OsmAnd/src/net/osmand/plus/quickaction/QuickActionRegistry.java @@ -31,7 +31,6 @@ import net.osmand.plus.quickaction.actions.NavReplaceDestinationAction; import net.osmand.plus.quickaction.actions.NavResumePauseAction; import net.osmand.plus.quickaction.actions.NavStartStopAction; import net.osmand.plus.quickaction.actions.NavVoiceAction; -import net.osmand.plus.quickaction.actions.NewAction; import net.osmand.plus.quickaction.actions.ShowHideFavoritesAction; import net.osmand.plus.quickaction.actions.ShowHideGpxTracksAction; import net.osmand.plus.quickaction.actions.ShowHidePoiAction; @@ -216,7 +215,6 @@ public class QuickActionRegistry { public List<QuickActionType> updateActionTypes() { List<QuickActionType> quickActionTypes = new ArrayList<>(); - quickActionTypes.add(NewAction.TYPE); quickActionTypes.add(FavoriteAction.TYPE); quickActionTypes.add(GPXAction.TYPE); quickActionTypes.add(MarkerAction.TYPE); From 5d0e9c7503149f96e37d65062db55620770a6624 Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Thu, 18 Jun 2020 22:43:25 +0300 Subject: [PATCH 068/300] Add selected gpx point to gpx context menu --- .../plus/mapcontextmenu/MenuController.java | 6 +-- .../builders/SelectedGpxMenuBuilder.java | 33 +++++++++++-- .../SelectedGpxMenuController.java | 29 ++++++++++-- .../src/net/osmand/plus/views/GPXLayer.java | 47 +++++++++++++++---- 4 files changed, 95 insertions(+), 20 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java index 774a0b933a..362113e586 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java @@ -32,7 +32,6 @@ import net.osmand.data.TransportStop; import net.osmand.map.OsmandRegions; import net.osmand.map.WorldRegion; import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem; -import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.MapMarkersHelper.MapMarker; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmandApplication; @@ -61,6 +60,7 @@ import net.osmand.plus.mapcontextmenu.controllers.MyLocationMenuController; import net.osmand.plus.mapcontextmenu.controllers.PointDescriptionMenuController; import net.osmand.plus.mapcontextmenu.controllers.RenderedObjectMenuController; import net.osmand.plus.mapcontextmenu.controllers.SelectedGpxMenuController; +import net.osmand.plus.mapcontextmenu.controllers.SelectedGpxMenuController.SelectedGpxPoint; import net.osmand.plus.mapcontextmenu.controllers.TargetPointMenuController; import net.osmand.plus.mapcontextmenu.controllers.TransportRouteController; import net.osmand.plus.mapcontextmenu.controllers.TransportStopController; @@ -229,8 +229,8 @@ public abstract class MenuController extends BaseMenuController implements Colla menuController = new RenderedObjectMenuController(mapActivity, pointDescription, (RenderedObject) object); } else if (object instanceof MapillaryImage) { menuController = new MapillaryMenuController(mapActivity, pointDescription, (MapillaryImage) object); - } else if (object instanceof SelectedGpxFile) { - menuController = new SelectedGpxMenuController(mapActivity, pointDescription, (SelectedGpxFile) object); + } else if (object instanceof SelectedGpxPoint) { + menuController = new SelectedGpxMenuController(mapActivity, pointDescription, (SelectedGpxPoint) object); } } if (menuController == null) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java index 1dc5bb2d22..5914e8b4c1 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java @@ -13,7 +13,7 @@ import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.GPXUtilities.GPXTrackAnalysis; -import net.osmand.plus.GpxSelectionHelper; +import net.osmand.GPXUtilities.WptPt; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.R; @@ -21,6 +21,7 @@ import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.mapcontextmenu.MenuBuilder; +import net.osmand.plus.mapcontextmenu.controllers.SelectedGpxMenuController.SelectedGpxPoint; import net.osmand.util.Algorithms; import java.text.DateFormat; @@ -32,10 +33,12 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { private SelectedGpxFile selectedGpxFile; private GPXTrackAnalysis analysis; + private WptPt selectedPoint; - public SelectedGpxMenuBuilder(@NonNull MapActivity mapActivity, @NonNull SelectedGpxFile selectedGpxFile) { + public SelectedGpxMenuBuilder(@NonNull MapActivity mapActivity, @NonNull SelectedGpxPoint selectedGpxPoint) { super(mapActivity); - this.selectedGpxFile = selectedGpxFile; + selectedGpxFile = selectedGpxPoint.getSelectedGpxFile(); + selectedPoint = selectedGpxPoint.getSelectedPoint(); analysis = selectedGpxFile.getTrackAnalysis(mapActivity.getMyApplication()); } @@ -46,7 +49,7 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { @Override protected boolean needBuildCoordinatesRow() { - return false; + return true; } @Override @@ -54,6 +57,7 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { buildOverviewRows(view); buildElevationRows(view); buildSpeedRows(view); + buildPointRows(view); } public void buildOverviewRows(View view) { @@ -118,6 +122,27 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { } } + public void buildPointRows(View view) { + buildCategoryView(view, app.getString(R.string.plugin_distance_point)); + + buildRow(view, getThemedIcon(R.drawable.ic_action_polygom_dark), null, app.getString(R.string.distance), + OsmAndFormatter.getFormattedDistance((float) selectedPoint.distance, app), 0, null, + false, null, false, 0, false, false, false, null, false); + + DateFormat format = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + buildRow(view, getThemedIcon(R.drawable.ic_action_time_start), null, app.getString(R.string.shared_string_time), + format.format(selectedPoint.time), 0, null, + false, null, false, 0, false, false, false, null, true); + + buildRow(view, getThemedIcon(R.drawable.ic_action_altitude), null, app.getString(R.string.altitude), + OsmAndFormatter.getFormattedAlt(selectedPoint.ele, app), 0, null, + false, null, false, 0, false, false, false, null, false); + + buildRow(view, getThemedIcon(R.drawable.ic_action_speed), null, app.getString(R.string.average_speed), + OsmAndFormatter.getFormattedSpeed((float) selectedPoint.speed, app), 0, null, + false, null, false, 0, false, false, false, null, false); + } + private void buildCategoryView(View view, String name) { if (!isFirstRow()) { buildRowDivider(view); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java index 2694035715..05e1c2a4da 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java @@ -8,6 +8,7 @@ import android.os.AsyncTask; import androidx.annotation.NonNull; import net.osmand.GPXUtilities; +import net.osmand.GPXUtilities.WptPt; import net.osmand.data.PointDescription; import net.osmand.plus.GpxSelectionHelper; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; @@ -28,9 +29,10 @@ public class SelectedGpxMenuController extends MenuController { private SelectedGpxFile item; - public SelectedGpxMenuController(@NonNull final MapActivity mapActivity, @NonNull PointDescription pointDescription, @NonNull final SelectedGpxFile item) { - super(new SelectedGpxMenuBuilder(mapActivity, item), pointDescription, mapActivity); - this.item = item; + public SelectedGpxMenuController(@NonNull final MapActivity mapActivity, @NonNull PointDescription pointDescription, + @NonNull SelectedGpxPoint selectedGpxPoint) { + super(new SelectedGpxMenuBuilder(mapActivity, selectedGpxPoint), pointDescription, mapActivity); + this.item = selectedGpxPoint.getSelectedGpxFile(); builder.setShowOnlinePhotos(false); leftTitleButtonController = new TitleButtonController() { @@ -175,4 +177,23 @@ public class SelectedGpxMenuController extends MenuController { int color = isLight() ? R.color.active_color_primary_light : R.color.active_color_primary_dark; return getIcon(R.drawable.ic_action_polygom_dark, color); } -} + + public static class SelectedGpxPoint { + + private final WptPt selectedPoint; + private final SelectedGpxFile selectedGpxFile; + + public SelectedGpxPoint(WptPt selectedPoint, SelectedGpxFile selectedGpxFile) { + this.selectedPoint = selectedPoint; + this.selectedGpxFile = selectedGpxFile; + } + + public WptPt getSelectedPoint() { + return selectedPoint; + } + + public SelectedGpxFile getSelectedGpxFile() { + return selectedGpxFile; + } + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index ad6f8b89db..db5c732372 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -43,6 +43,7 @@ import net.osmand.plus.MapMarkersHelper.MapMarkersGroup; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.base.FavoriteImageDrawable; +import net.osmand.plus.mapcontextmenu.controllers.SelectedGpxMenuController.SelectedGpxPoint; import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu.TrackChartPoints; import net.osmand.plus.render.OsmandRenderer; import net.osmand.plus.render.OsmandRenderer.RenderingContext; @@ -54,6 +55,7 @@ import net.osmand.render.RenderingRuleProperty; import net.osmand.render.RenderingRuleSearchRequest; import net.osmand.render.RenderingRulesStorage; import net.osmand.util.Algorithms; +import net.osmand.util.MapUtils; import java.io.File; import java.util.ArrayList; @@ -605,15 +607,18 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM List<TrkSegment> segments = selectedGpxFile.getPointsToDisplay(); for (TrkSegment segment : segments) { QuadRect trackBounds = GPXUtilities.calculateBounds(segment.points); - if (QuadRect.trivialOverlap(tb.getLatLonBounds(), trackBounds) && isPointNearSegment(tb, segment.points, r, mx, my)) { - res.add(selectedGpxFile); - break; + if (QuadRect.trivialOverlap(tb.getLatLonBounds(), trackBounds)) { + WptPt selectedPoint = findPointNearSegment(tb, segment.points, r, mx, my); + if (selectedPoint != null) { + res.add(new SelectedGpxPoint(selectedPoint, selectedGpxFile)); + break; + } } } } } - private boolean isPointNearSegment(RotatedTileBox tb, List<WptPt> points, int r, int mx, int my) { + private WptPt findPointNearSegment(RotatedTileBox tb, List<WptPt> points, int r, int mx, int my) { WptPt firstPoint = points.get(0); int ppx = (int) tb.getPixXFromLatLon(firstPoint.lat, firstPoint.lon); int ppy = (int) tb.getPixYFromLatLon(firstPoint.lat, firstPoint.lon); @@ -625,7 +630,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM int py = (int) tb.getPixYFromLatLon(point.lat, point.lon); int cross = placeInBbox(px, py, mx, my, r, r); if (cross == 0) { - return true; + return createProjectionPoint(points.get(i - 1), point, tb.getLatLonFromPixel(mx, my)); } if ((pcross & cross) == 0) { int mpx = px; @@ -636,7 +641,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM int mpynew = mpy / 2 + ppy / 2; int mcrossnew = placeInBbox(mpxnew, mpynew, mx, my, r, r); if (mcrossnew == 0) { - return true; + return createProjectionPoint(points.get(i - 1), point, tb.getLatLonFromPixel(mx, my)); } if ((mcrossnew & mcross) != 0) { mpx = mpxnew; @@ -656,7 +661,28 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM ppx = px; ppy = py; } - return false; + return null; + } + + private WptPt createProjectionPoint(WptPt prevPoint, WptPt nextPoint, LatLon latLon) { + LatLon projection = MapUtils.getProjection(latLon.getLatitude(), latLon.getLongitude(), prevPoint.lat, prevPoint.lon, nextPoint.lat, nextPoint.lon); + + WptPt projectionPoint = new WptPt(); + projectionPoint.lat = projection.getLatitude(); + projectionPoint.lon = projection.getLongitude(); + projectionPoint.heading = prevPoint.heading; + projectionPoint.distance = prevPoint.distance + MapUtils.getDistance(projection, prevPoint.lat, prevPoint.lon); + projectionPoint.ele = getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.ele, nextPoint.distance, nextPoint.ele); + projectionPoint.speed = getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.speed, nextPoint.distance, nextPoint.speed); + if (prevPoint.time != 0 && nextPoint.time != 0) { + projectionPoint.time = (long) getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.time, nextPoint.distance, nextPoint.time); + } + + return projectionPoint; + } + + private double getValueByDistInterpolation(double projectionDist, double prevDist, double prevVal, double nextDist, double nextVal) { + return prevVal + (projectionDist - prevDist) * ((nextVal - prevVal) / (nextDist - prevDist)); } int placeInBbox(int x, int y, int mx, int my, int halfw, int halfh) { @@ -672,8 +698,8 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM public PointDescription getObjectName(Object o) { if (o instanceof WptPt) { return new PointDescription(PointDescription.POINT_TYPE_WPT, ((WptPt) o).name); - } else if (o instanceof SelectedGpxFile) { - SelectedGpxFile selectedGpxFile = (SelectedGpxFile) o; + } else if (o instanceof SelectedGpxPoint) { + SelectedGpxFile selectedGpxFile = ((SelectedGpxPoint) o).getSelectedGpxFile(); String name = formatName(Algorithms.getFileWithoutDirs(selectedGpxFile.getGpxFile().path)); return new PointDescription(PointDescription.POINT_TYPE_GPX, name); } @@ -720,6 +746,9 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM public LatLon getObjectLocation(Object o) { if (o instanceof WptPt) { return new LatLon(((WptPt) o).lat, ((WptPt) o).lon); + } else if (o instanceof SelectedGpxPoint) { + WptPt point = ((SelectedGpxPoint) o).getSelectedPoint(); + return new LatLon(point.lat, point.lon); } return null; } From c20e096cdade8332c11e2c1114e68e999f196b57 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 19 Jun 2020 10:07:46 +0300 Subject: [PATCH 069/300] refactor speed cameras hiding --- .../binary/BinaryMapPoiReaderAdapter.java | 8 +-- .../java/net/osmand/osm/AbstractPoiType.java | 9 --- .../main/java/net/osmand/osm/MapPoiTypes.java | 16 ++--- .../main/java/net/osmand/osm/PoiFilter.java | 8 ++- .../java/net/osmand/search/SearchUICore.java | 11 ---- OsmAnd/res/values/strings.xml | 2 + .../src/net/osmand/plus/AppInitializer.java | 5 +- OsmAnd/src/net/osmand/plus/UiUtilities.java | 15 +++-- .../plus/dialogs/SpeedCamerasBottomSheet.java | 13 +--- ...eedCamerasUninstallRestartBottomSheet.java | 64 +++++++++++++++++++ .../plus/helpers/SearchHistoryHelper.java | 3 + .../QuickSearchSubCategoriesFragment.java | 6 -- .../plus/settings/backend/OsmandSettings.java | 10 +++ 13 files changed, 108 insertions(+), 62 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasUninstallRestartBottomSheet.java diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java index 5c196ebd89..4e8441a1bb 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java @@ -692,10 +692,11 @@ public class BinaryMapPoiReaderAdapter { StringBuilder retValue = new StringBuilder(); PoiCategory amenityType = null; LinkedList<String> textTags = null; + boolean isForbidden = false; while (true) { int t = codedIS.readTag(); int tag = WireFormat.getTagFieldNumber(t); - if (amenityType == null && (tag > OsmandOdb.OsmAndPoiBoxDataAtom.CATEGORIES_FIELD_NUMBER || tag == 0)) { + if (amenityType == null && (tag > OsmandOdb.OsmAndPoiBoxDataAtom.CATEGORIES_FIELD_NUMBER || tag == 0) || isForbidden) { codedIS.skipRawBytes(codedIS.getBytesUntilLimit()); return null; } @@ -770,10 +771,7 @@ public class BinaryMapPoiReaderAdapter { } } subtype = poiTypes.replaceDeprecatedSubtype(type, subtype); - PoiType poiType = poiTypes.getPoiTypeByKeyInCategory(type, subtype); - if (poiType != null && poiType.isForbidden()) { - return null; - } + isForbidden = poiTypes.isKeyNameForbidden(subtype); if (req.poiTypeFilter == null || req.poiTypeFilter.accept(type, subtype)) { if (amenityType == null) { amenityType = type; diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/AbstractPoiType.java b/OsmAnd-java/src/main/java/net/osmand/osm/AbstractPoiType.java index 3d9ae43b66..19cb42f350 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/AbstractPoiType.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/AbstractPoiType.java @@ -21,7 +21,6 @@ public abstract class AbstractPoiType { private String synonyms; private String enTranslation; private String translation; - private boolean isForbidden; public AbstractPoiType(String keyName, MapPoiTypes registry) { this.keyName = keyName; @@ -68,14 +67,6 @@ public abstract class AbstractPoiType { return this instanceof PoiType && this.isAdditional(); } - public void setForbidden(boolean forbidden) { - isForbidden = forbidden; - } - - public boolean isForbidden() { - return isForbidden; - } - public String getTranslation() { if(translation == null) { translation = registry.getTranslation(this); diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java index 9f6b42933e..be3644ab90 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java @@ -17,6 +17,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -34,6 +35,7 @@ public class MapPoiTypes { private static final Log log = PlatformUtil.getLog(MapRenderingTypes.class); private String resourceName; private List<PoiCategory> categories = new ArrayList<PoiCategory>(); + private Set<String> forbiddenKeyNames = new HashSet<>(); private PoiCategory otherCategory; private PoiCategory otherMapCategory; @@ -946,13 +948,11 @@ public class MapPoiTypes { } } - public void forbidPoiType(String keyName) { - for (PoiCategory category : categories) { - for (PoiType poiType : category.getPoiTypes()) { - if (keyName.equals(poiType.getKeyName())) { - poiType.setForbidden(true); - } - } - } + public void setForbiddenKeyNames(Set<String> forbiddenKeyNames) { + this.forbiddenKeyNames = forbiddenKeyNames; + } + + public boolean isKeyNameForbidden(String key) { + return forbiddenKeyNames.contains(key); } } diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/PoiFilter.java b/OsmAnd-java/src/main/java/net/osmand/osm/PoiFilter.java index fbb5fddca7..12bbaa13f0 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/PoiFilter.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/PoiFilter.java @@ -30,13 +30,14 @@ public class PoiFilter extends AbstractPoiType { List<PoiType> npoiTypes = null; Map<String, PoiType> nmap = null; for (PoiType poiType : poiTypesToAdd.values()) { - if (!map.containsKey(poiType.getKeyName())) { + String keyName = poiType.getKeyName(); + if (!map.containsKey(keyName) && !registry.isKeyNameForbidden(keyName)) { if (npoiTypes == null) { npoiTypes = new ArrayList<PoiType>(this.poiTypes); nmap = new LinkedHashMap<>(map); } npoiTypes.add(poiType); - nmap.put(poiType.getKeyName(), poiType); + nmap.put(keyName, poiType); } } if (npoiTypes != null) { @@ -46,6 +47,9 @@ public class PoiFilter extends AbstractPoiType { } public void addPoiType(PoiType type) { + if (registry.isKeyNameForbidden(type.keyName)) { + return; + } if (!map.containsKey(type.getKeyName())) { poiTypes.add(type); map.put(type.getKeyName(), type); diff --git a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java index 53c035fdaa..46b0ee4e82 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java @@ -11,7 +11,6 @@ import net.osmand.data.MapObject; import net.osmand.data.Street; import net.osmand.osm.AbstractPoiType; import net.osmand.osm.MapPoiTypes; -import net.osmand.osm.PoiType; import net.osmand.search.core.CustomSearchPoiFilter; import net.osmand.search.core.ObjectType; import net.osmand.search.core.SearchCoreAPI; @@ -734,9 +733,6 @@ public class SearchUICore { @Override public boolean publish(SearchResult object) { - if (isPoiTypeForbidden(object.object)) { - return false; - } if (phrase != null && object.otherNames != null && !phrase.getFirstUnknownNameStringMatcher().matches(object.localeName)) { for (String s : object.otherNames) { if (phrase.getFirstUnknownNameStringMatcher().matches(s)) { @@ -890,13 +886,6 @@ public class SearchUICore { } return json; } - - private boolean isPoiTypeForbidden(Object object) { - if (object instanceof PoiType) { - return ((PoiType) object).isForbidden(); - } - return false; - } } private enum ResultCompareStep { diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 6c1fdd47f7..05f81e943d 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,8 @@ Thx - Hardy --> + <string name="shared_string_uninstall_and_restart">Uninstall and Restart</string> + <string name="speed_cameras_restart_descr">Restart is needed to completely delete speed camera data.</string> <string name="quick_action_showhide_mapillary_descr">A toggle to show or hide the Mapillary layer on the map.</string> <string name="quick_action_mapillary_show">Show Mapillary</string> <string name="quick_action_mapillary_hide">Hide Mapillary</string> diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java index f7c1d89aba..9e06a56d20 100644 --- a/OsmAnd/src/net/osmand/plus/AppInitializer.java +++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java @@ -86,7 +86,6 @@ import java.util.Random; import btools.routingapp.BRouterServiceConnection; import static net.osmand.plus.AppVersionUpgradeOnInit.LAST_APP_VERSION; -import static net.osmand.plus.dialogs.SpeedCamerasBottomSheet.SPEED_CAMERA_KEY_NAME; import static net.osmand.plus.liveupdates.LiveUpdatesHelper.getPendingIntent; import static net.osmand.plus.liveupdates.LiveUpdatesHelper.preferenceLastCheck; import static net.osmand.plus.liveupdates.LiveUpdatesHelper.preferenceLiveUpdatesOn; @@ -303,6 +302,7 @@ public class AppInitializer implements IProgress { } private void initPoiTypes() { + app.poiTypes.setForbiddenKeyNames(app.osmandSettings.getForbiddenPoiKeyNames()); if (app.getAppPath(IndexConstants.SETTINGS_DIR + "poi_types.xml").exists()) { app.poiTypes.init(app.getAppPath(IndexConstants.SETTINGS_DIR + "poi_types.xml").getAbsolutePath()); } else { @@ -407,9 +407,6 @@ public class AppInitializer implements IProgress { return null; } }); - if (app.getSettings().SPEED_CAMERAS_UNINSTALLED.get()) { - app.getPoiTypes().forbidPoiType(SPEED_CAMERA_KEY_NAME); - } } public void onCreateApplication() { diff --git a/OsmAnd/src/net/osmand/plus/UiUtilities.java b/OsmAnd/src/net/osmand/plus/UiUtilities.java index 0063d9aeea..c60117f58c 100644 --- a/OsmAnd/src/net/osmand/plus/UiUtilities.java +++ b/OsmAnd/src/net/osmand/plus/UiUtilities.java @@ -1,13 +1,11 @@ package net.osmand.plus; import android.content.Context; -import android.content.Intent; import android.content.res.ColorStateList; import android.graphics.Color; import android.graphics.Typeface; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; -import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.RippleDrawable; import android.hardware.Sensor; @@ -15,8 +13,6 @@ import android.hardware.SensorManager; import android.os.Build; import android.text.SpannableString; import android.text.Spanned; -import android.text.method.LinkMovementMethod; -import android.text.style.ClickableSpan; import android.text.style.StyleSpan; import android.view.Gravity; import android.view.LayoutInflater; @@ -38,7 +34,6 @@ import androidx.annotation.StringRes; import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.view.ContextThemeWrapper; import androidx.appcompat.widget.ListPopupWindow; -import androidx.appcompat.widget.AppCompatButton; import androidx.appcompat.widget.SwitchCompat; import androidx.core.content.ContextCompat; import androidx.core.graphics.drawable.DrawableCompat; @@ -55,7 +50,6 @@ import net.osmand.AndroidUtils; import net.osmand.Location; import net.osmand.PlatformUtil; import net.osmand.data.LatLon; -import net.osmand.plus.helpers.FontCache; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.views.DirectionDrawable; import net.osmand.plus.widgets.TextViewEx; @@ -66,7 +60,6 @@ import org.apache.commons.logging.Log; import java.util.ArrayList; import java.util.List; -import java.lang.ref.WeakReference; import gnu.trove.map.hash.TLongObjectHashMap; @@ -87,6 +80,7 @@ public class UiUtilities { public enum DialogButtonType { PRIMARY, SECONDARY, + SECONDARY_HARMFUL, STROKED } @@ -633,6 +627,13 @@ public class UiUtilities { AndroidUtils.setBackground(ctx, buttonView, nightMode, R.drawable.dlg_btn_secondary_light, R.drawable.dlg_btn_secondary_dark); textAndIconColorResId = nightMode ? R.color.dlg_btn_secondary_text_dark : R.color.dlg_btn_secondary_text_light; break; + case SECONDARY_HARMFUL: + if (v21) { + AndroidUtils.setBackground(ctx, buttonContainer, nightMode, R.drawable.ripple_solid_light, R.drawable.ripple_solid_dark); + } + AndroidUtils.setBackground(ctx, buttonView, nightMode, R.drawable.dlg_btn_secondary_light, R.drawable.dlg_btn_secondary_dark); + textAndIconColorResId = R.color.color_osm_edit_delete; + break; case STROKED: if (v21) { AndroidUtils.setBackground(ctx, buttonContainer, nightMode, R.drawable.ripple_light, R.drawable.ripple_dark); diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java index cd6b8f487a..fac4230c77 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java @@ -18,8 +18,6 @@ import net.osmand.plus.base.MenuBottomSheetDialogFragment; import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; import net.osmand.plus.helpers.FontCache; import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.OsmandPreference; -import net.osmand.plus.settings.fragments.OnPreferenceChanged; public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { @@ -59,14 +57,9 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { @Override protected void onDismissButtonClickAction() { - OsmandPreference<Boolean> speedCamUninstalled = settings.SPEED_CAMERAS_UNINSTALLED; - speedCamUninstalled.set(true); - settings.SPEAK_SPEED_CAMERA.set(false); - settings.SHOW_CAMERAS.set(false); - app.getPoiTypes().forbidPoiType(SPEED_CAMERA_KEY_NAME); - Fragment targetFragment = getTargetFragment(); - if (targetFragment instanceof OnPreferenceChanged) { - ((OnPreferenceChanged) targetFragment).onPreferenceChanged(speedCamUninstalled.getId()); + FragmentManager fm = getFragmentManager(); + if (fm != null) { + SpeedCamerasUninstallRestartBottomSheet.showInstance(fm); } setDialogShowed(); } diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasUninstallRestartBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasUninstallRestartBottomSheet.java new file mode 100644 index 0000000000..8a5271cec9 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasUninstallRestartBottomSheet.java @@ -0,0 +1,64 @@ +package net.osmand.plus.dialogs; + +import android.app.Activity; +import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.fragment.app.FragmentManager; + +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; +import net.osmand.plus.UiUtilities.DialogButtonType; +import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.base.MenuBottomSheetDialogFragment; +import net.osmand.plus.base.bottomsheetmenu.simpleitems.LongDescriptionItem; +import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem; +import net.osmand.plus.settings.backend.OsmandSettings; + +public class SpeedCamerasUninstallRestartBottomSheet extends MenuBottomSheetDialogFragment { + + public static final String TAG = SpeedCamerasUninstallRestartBottomSheet.class.getSimpleName(); + + public static void showInstance(@NonNull FragmentManager fm) { + if (!fm.isStateSaved()) { + SpeedCamerasUninstallRestartBottomSheet bottomSheet = new SpeedCamerasUninstallRestartBottomSheet(); + bottomSheet.show(fm, TAG); + } + } + + @Override + public void createMenuItems(Bundle savedInstanceState) { + items.add(new TitleItem(getString(R.string.uninstall_speed_cameras))); + items.add(new LongDescriptionItem(getString(R.string.speed_cameras_restart_descr))); + } + + @Override + protected int getDismissButtonTextId() { + return R.string.shared_string_cancel; + } + + @Override + protected int getRightBottomButtonTextId() { + return R.string.shared_string_uninstall_and_restart; + } + + @Override + protected DialogButtonType getRightBottomButtonType() { + return DialogButtonType.SECONDARY_HARMFUL; + } + + @Override + protected void onRightBottomButtonClick() { + OsmandApplication app = requiredMyApplication(); + OsmandSettings settings = app.getSettings(); + settings.SPEED_CAMERAS_UNINSTALLED.set(true); + settings.SPEAK_SPEED_CAMERA.set(false); + settings.SHOW_CAMERAS.set(false); + Activity activity = getActivity(); + if (activity instanceof MapActivity) { + MapActivity.doRestart(activity); + } else { + android.os.Process.killProcess(android.os.Process.myPid()); + } + } +} diff --git a/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java b/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java index fb708bf8fd..828d79dbf0 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java @@ -428,6 +428,9 @@ public class SearchHistoryHelper { do { String name = query.getString(0); PointDescription p = PointDescription.deserializeFromString(name, new LatLon(query.getDouble(1), query.getDouble(2))); + if (context.getPoiTypes().isKeyNameForbidden(p.getName())){ + query.moveToNext(); + } HistoryEntry e = new HistoryEntry(query.getDouble(1), query.getDouble(2), p); long time = query.getLong(3); diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchSubCategoriesFragment.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchSubCategoriesFragment.java index f7b58f6ab6..e61b4631c2 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchSubCategoriesFragment.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchSubCategoriesFragment.java @@ -87,12 +87,6 @@ public class QuickSearchSubCategoriesFragment extends BaseOsmAndDialogFragment { acceptedCategories = new HashSet<>(savedInstanceState.getStringArrayList(ACCEPTED_CATEGORIES_KEY)); } poiTypeList = new ArrayList<>(poiCategory.getPoiTypes()); - Iterator<PoiType> iter = poiTypeList.iterator(); - while (iter.hasNext()) { - if (iter.next().isForbidden()) { - iter.remove(); - } - } Collections.sort(poiTypeList, new Comparator<PoiType>() { @Override public int compare(PoiType poiType, PoiType t1) { diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java index ab296c4a3f..9bc2bf0c88 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java @@ -74,6 +74,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -87,6 +88,7 @@ import java.util.StringTokenizer; import static net.osmand.aidlapi.OsmAndCustomizationConstants.CONFIGURE_MAP_ITEM_ID_SCHEME; import static net.osmand.aidlapi.OsmAndCustomizationConstants.DRAWER_ITEM_ID_SCHEME; import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_ACTIONS; +import static net.osmand.plus.dialogs.SpeedCamerasBottomSheet.SPEED_CAMERA_KEY_NAME; public class OsmandSettings { @@ -2111,6 +2113,14 @@ public class OsmandSettings { public final OsmandPreference<Boolean> SPEED_CAMERAS_UNINSTALLED = new BooleanPreference("speed_cameras_uninstalled", false).makeGlobal(); public final OsmandPreference<Boolean> SPEED_CAMERAS_ALERT_SHOWED = new BooleanPreference("speed_cameras_alert_showed", false).makeGlobal(); + public Set<String> getForbiddenPoiKeyNames() { + Set<String> keyNames = new HashSet<>(); + if (SPEED_CAMERAS_UNINSTALLED.get()) { + keyNames.add(SPEED_CAMERA_KEY_NAME); + } + return keyNames; + } + public final OsmandPreference<Boolean> ANNOUNCE_WPT = new BooleanPreference("announce_wpt", true) { @Override protected boolean setValue(Object prefs, Boolean val) { From d1ad2096d291d60b195f44adff6cad909edd112d Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 19 Jun 2020 10:13:15 +0300 Subject: [PATCH 070/300] fix icon padding --- OsmAnd/res/layout/order_poi_list_item.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/layout/order_poi_list_item.xml b/OsmAnd/res/layout/order_poi_list_item.xml index 8b94a16e34..643c5b2b6e 100644 --- a/OsmAnd/res/layout/order_poi_list_item.xml +++ b/OsmAnd/res/layout/order_poi_list_item.xml @@ -63,10 +63,10 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:minHeight="@dimen/bottom_sheet_list_item_height" - android:paddingStart="@dimen/content_padding_half" - android:paddingLeft="@dimen/content_padding_half" - android:paddingEnd="@dimen/content_padding_half" - android:paddingRight="@dimen/content_padding_half" + android:paddingStart="@dimen/content_padding_small" + android:paddingLeft="@dimen/content_padding_small" + android:paddingEnd="@dimen/content_padding_small" + android:paddingRight="@dimen/content_padding_small" tools:src="@drawable/ic_action_delete_item" tools:tint="@color/icon_color_default_light" /> From f322116d7d1ff1770512e3f1b2250a0028be9407 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Fri, 19 Jun 2020 10:21:30 +0300 Subject: [PATCH 071/300] Fix #9270 Favorites: first created group doesn't show up --- .../mapcontextmenu/editors/FavoritePointEditorFragmentNew.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java index 822b3cb170..45716315fe 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java @@ -469,7 +469,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { categories.add(lastUsedGroup.getDisplayName(app)); } for (FavouritesDbHelper.FavoriteGroup fg : getHelper().getFavoriteGroups()) { - if (lastUsedGroup != null && !fg.equals(lastUsedGroup) && fg.isVisible()) { + if (!fg.equals(lastUsedGroup) && fg.isVisible()) { categories.add(fg.getDisplayName(app)); } } From e75b4046c11f6d807fb56155795a0de66ec1e810 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 19 Jun 2020 10:29:56 +0300 Subject: [PATCH 072/300] update categories screen on custom filters deletion --- .../src/net/osmand/plus/poi/PoiFiltersHelper.java | 7 ------- .../plus/poi/RearrangePoiFiltersFragment.java | 14 ++++++++++++-- .../plus/search/QuickSearchDialogFragment.java | 10 ++++++++-- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java index 4a7be56153..67d5637c98 100644 --- a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java +++ b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java @@ -175,13 +175,6 @@ public class PoiFiltersHelper { helper.close(); } - public void updateCachedFilter(PoiUIFilter poiFilter) { - int i = cacheTopStandardFilters.indexOf(poiFilter); - if (i != -1) { - cacheTopStandardFilters.set(i, poiFilter); - } - } - private PoiUIFilter getFilterById(String filterId, PoiUIFilter... filters) { for (PoiUIFilter pf : filters) { if (pf != null && pf.getFilterId() != null && filterId != null && pf.getFilterId().equals(filterId)) { diff --git a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java index 6fb1ffdedb..3e903b128c 100644 --- a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java +++ b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java @@ -2,6 +2,7 @@ package net.osmand.plus.poi; import android.annotation.SuppressLint; import android.content.Context; +import android.content.DialogInterface; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.os.Build; @@ -217,6 +218,14 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec return mainView; } + @Override + public void onDismiss(@NonNull DialogInterface dialog) { + if (isChanged && !orderModified && !activationModified && resultCallback != null) { + resultCallback.onCustomFiltersDeleted(); + } + super.onDismiss(dialog); + } + private void createToolbar(View mainView, boolean nightMode) { AppBarLayout appbar = mainView.findViewById(R.id.appbar); View toolbar = UiUtilities.getInflater(getContext(), nightMode).inflate(R.layout.profile_preference_toolbar_with_icon, appbar, false); @@ -628,8 +637,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec PoiUIFilter filter = poiHelper.getFilterById(poiInfo.filterId); if (filter != null && poiHelper.removePoiFilter(filter)) { filter.setDeleted(true); - poiHelper.updateCachedFilter(filter); - app.getSearchUICore().refreshCustomPoiFilters(); + isChanged = true; } } } @@ -854,5 +862,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec public interface OnApplyPoiFiltersState { void onApplyPoiFiltersState(ApplicationMode mode, boolean stateChanged); + + void onCustomFiltersDeleted(); } } diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java index 7457667ceb..1395a5578b 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchDialogFragment.java @@ -1281,9 +1281,15 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC UiUtilities.setupSnackbarVerticalLayout(snackbar); UiUtilities.setupSnackbar(snackbar, nightMode); snackbar.show(); + } } - } - }); + + @Override + public void onCustomFiltersDeleted() { + searchHelper.refreshCustomPoiFilters(); + reloadCategoriesInternal(); + } + }); } })); if (categoriesSearchFragment != null) { From 69d1830b8fd4fdddb9e52ce8360d3692cf035963 Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Fri, 19 Jun 2020 12:49:16 +0300 Subject: [PATCH 073/300] Fix current recording track in gpx menu --- OsmAnd/src/net/osmand/plus/views/GPXLayer.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index db5c732372..88381c5bee 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -700,7 +700,12 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM return new PointDescription(PointDescription.POINT_TYPE_WPT, ((WptPt) o).name); } else if (o instanceof SelectedGpxPoint) { SelectedGpxFile selectedGpxFile = ((SelectedGpxPoint) o).getSelectedGpxFile(); - String name = formatName(Algorithms.getFileWithoutDirs(selectedGpxFile.getGpxFile().path)); + String name; + if (selectedGpxFile.isShowCurrentTrack()) { + name = view.getContext().getString(R.string.shared_string_currently_recording_track); + } else { + name = formatName(Algorithms.getFileWithoutDirs(selectedGpxFile.getGpxFile().path)); + } return new PointDescription(PointDescription.POINT_TYPE_GPX, name); } return null; From 576f323141b4029055ef89fb5d2578d484577371 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz <vitamikuna@gmail.com> Date: Fri, 19 Jun 2020 12:57:21 +0300 Subject: [PATCH 074/300] Fix #5721 --- .../monitoring/OsmandMonitoringPlugin.java | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java index 1231edf3ab..7ad66f4c95 100644 --- a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java +++ b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java @@ -1,9 +1,11 @@ package net.osmand.plus.monitoring; +import android.Manifest; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; +import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.view.View; import android.view.ViewGroup; @@ -17,6 +19,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.AppCompatCheckBox; +import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; @@ -27,6 +30,7 @@ import net.osmand.Location; import net.osmand.ValueHolder; import net.osmand.plus.NavigationService; import net.osmand.plus.OsmAndFormatter; +import net.osmand.plus.OsmAndLocationProvider; import net.osmand.plus.OsmAndTaskManager.OsmAndTaskRunnable; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; @@ -56,11 +60,14 @@ public class OsmandMonitoringPlugin extends OsmandPlugin { public static final String ID = "osmand.monitoring"; public final static String OSMAND_SAVE_SERVICE_ACTION = "OSMAND_SAVE_SERVICE_ACTION"; + public static final int REQUEST_LOCATION_PERMISSION_FOR_GPX_RECORDING = 208; + private MapActivity mapActivity; private OsmandSettings settings; private TextInfoWidget monitoringControl; private LiveMonitoringHelper liveMonitoringHelper; private boolean isSaving; + private boolean showDialogWhenActivityResumed; public OsmandMonitoringPlugin(OsmandApplication app) { super(app); @@ -291,6 +298,31 @@ public class OsmandMonitoringPlugin extends OsmandPlugin { return monitoringControl; } + @Override + public void mapActivityResume(MapActivity activity) { + this.mapActivity = activity; + if (showDialogWhenActivityResumed) { + showDialogWhenActivityResumed = false; + controlDialog(mapActivity, true); + } + } + + @Override + public void mapActivityPause(MapActivity activity) { + this.mapActivity = null; + } + + @Override + public void handleRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + if (requestCode == REQUEST_LOCATION_PERMISSION_FOR_GPX_RECORDING) { + if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { + showDialogWhenActivityResumed = true; + } else { + app.showToastMessage(R.string.no_location_permission); + } + } + } + public void controlDialog(final Activity activity, final boolean showTrackSelection) { final boolean wasTrackMonitored = settings.SAVE_GLOBAL_TRACK_TO_GPX.get(); final boolean nightMode; @@ -329,7 +361,15 @@ public class OsmandMonitoringPlugin extends OsmandPlugin { if(item == R.string.save_current_track){ saveCurrentTrack(null, activity); } else if(item == R.string.gpx_monitoring_start) { - if (app.getLocationProvider().checkGPSEnabled(activity)) { + if (!OsmAndLocationProvider.isLocationPermissionAvailable(activity)) { + if (mapActivity != null) { + ActivityCompat.requestPermissions(mapActivity, + new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, + REQUEST_LOCATION_PERMISSION_FOR_GPX_RECORDING); + } else { + app.showToastMessage(R.string.no_location_permission); + } + } else if (app.getLocationProvider().checkGPSEnabled(activity)) { startGPXMonitoring(activity, showTrackSelection); } } else if (item == R.string.clear_recorded_data) { From 675faeae7325e7fcc350a110fcc8e22ea03ef123 Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Fri, 19 Jun 2020 13:35:06 +0300 Subject: [PATCH 075/300] Add locationOnMap check to analyze track screen and add bearing to selected gpx point --- OsmAnd/res/values/strings.xml | 1 + .../builders/SelectedGpxMenuBuilder.java | 40 +++--- .../SelectedGpxMenuController.java | 116 ++++++++++-------- .../other/TrackDetailsMenu.java | 8 ++ .../src/net/osmand/plus/views/GPXLayer.java | 27 ++-- 5 files changed, 120 insertions(+), 72 deletions(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 6362a76dc1..940de81238 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,7 @@ Thx - Hardy --> + <string name="shared_string_bearing">Bearing</string> <string name="quick_action_showhide_mapillary_descr">A toggle to show or hide the Mapillary layer on the map.</string> <string name="quick_action_mapillary_show">Show Mapillary</string> <string name="quick_action_mapillary_hide">Hide Mapillary</string> diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java index 5914e8b4c1..29c54f5b90 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java @@ -14,7 +14,6 @@ import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.GPXUtilities.GPXTrackAnalysis; import net.osmand.GPXUtilities.WptPt; -import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; @@ -31,15 +30,15 @@ import java.util.Date; public class SelectedGpxMenuBuilder extends MenuBuilder { - private SelectedGpxFile selectedGpxFile; + private SelectedGpxPoint selectedGpxPoint; private GPXTrackAnalysis analysis; private WptPt selectedPoint; public SelectedGpxMenuBuilder(@NonNull MapActivity mapActivity, @NonNull SelectedGpxPoint selectedGpxPoint) { super(mapActivity); - selectedGpxFile = selectedGpxPoint.getSelectedGpxFile(); + this.selectedGpxPoint = selectedGpxPoint; selectedPoint = selectedGpxPoint.getSelectedPoint(); - analysis = selectedGpxFile.getTrackAnalysis(mapActivity.getMyApplication()); + analysis = selectedGpxPoint.getSelectedGpxFile().getTrackAnalysis(mapActivity.getMyApplication()); } @Override @@ -129,18 +128,27 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { OsmAndFormatter.getFormattedDistance((float) selectedPoint.distance, app), 0, null, false, null, false, 0, false, false, false, null, false); - DateFormat format = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); - buildRow(view, getThemedIcon(R.drawable.ic_action_time_start), null, app.getString(R.string.shared_string_time), - format.format(selectedPoint.time), 0, null, - false, null, false, 0, false, false, false, null, true); - - buildRow(view, getThemedIcon(R.drawable.ic_action_altitude), null, app.getString(R.string.altitude), - OsmAndFormatter.getFormattedAlt(selectedPoint.ele, app), 0, null, - false, null, false, 0, false, false, false, null, false); - - buildRow(view, getThemedIcon(R.drawable.ic_action_speed), null, app.getString(R.string.average_speed), - OsmAndFormatter.getFormattedSpeed((float) selectedPoint.speed, app), 0, null, - false, null, false, 0, false, false, false, null, false); + if (selectedPoint.time != 0) { + DateFormat format = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + buildRow(view, getThemedIcon(R.drawable.ic_action_time_start), null, app.getString(R.string.shared_string_time), + format.format(selectedPoint.time), 0, null, + false, null, false, 0, false, false, false, null, true); + } + if (!Double.isNaN(selectedPoint.ele)) { + buildRow(view, getThemedIcon(R.drawable.ic_action_altitude), null, app.getString(R.string.altitude), + OsmAndFormatter.getFormattedAlt(selectedPoint.ele, app), 0, null, + false, null, false, 0, false, false, false, null, false); + } + if (!Double.isNaN(selectedPoint.speed)) { + buildRow(view, getThemedIcon(R.drawable.ic_action_speed), null, app.getString(R.string.average_speed), + OsmAndFormatter.getFormattedSpeed((float) selectedPoint.speed, app), 0, null, + false, null, false, 0, false, false, false, null, false); + } + if (selectedGpxPoint.getPointLocation().hasBearing()) { + buildRow(view, getThemedIcon(R.drawable.ic_action_relative_bearing), null, app.getString(R.string.shared_string_bearing), + OsmAndFormatter.getFormattedAzimuth(selectedGpxPoint.getPointLocation().getBearing(), app), 0, null, + false, null, false, 0, false, false, false, null, false); + } } private void buildCategoryView(View view, String name) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java index 05e1c2a4da..e6e48ac725 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java @@ -7,8 +7,10 @@ import android.os.AsyncTask; import androidx.annotation.NonNull; +import net.osmand.AndroidUtils; import net.osmand.GPXUtilities; import net.osmand.GPXUtilities.WptPt; +import net.osmand.Location; import net.osmand.data.PointDescription; import net.osmand.plus.GpxSelectionHelper; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; @@ -22,24 +24,25 @@ import net.osmand.plus.mapcontextmenu.builders.SelectedGpxMenuBuilder; import net.osmand.plus.settings.backend.OsmandSettings; import java.io.File; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; public class SelectedGpxMenuController extends MenuController { - private SelectedGpxFile item; + private SelectedGpxPoint selectedGpxPoint; public SelectedGpxMenuController(@NonNull final MapActivity mapActivity, @NonNull PointDescription pointDescription, - @NonNull SelectedGpxPoint selectedGpxPoint) { + @NonNull final SelectedGpxPoint selectedGpxPoint) { super(new SelectedGpxMenuBuilder(mapActivity, selectedGpxPoint), pointDescription, mapActivity); - this.item = selectedGpxPoint.getSelectedGpxFile(); + this.selectedGpxPoint = selectedGpxPoint; builder.setShowOnlinePhotos(false); leftTitleButtonController = new TitleButtonController() { @Override public void buttonPressed() { Intent intent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getTrackActivity()); - intent.putExtra(TrackActivity.TRACK_FILE_NAME, item.getGpxFile().path); + intent.putExtra(TrackActivity.TRACK_FILE_NAME, selectedGpxPoint.getSelectedGpxFile().getGpxFile().path); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); mapActivity.startActivity(intent); } @@ -50,30 +53,41 @@ public class SelectedGpxMenuController extends MenuController { rightTitleButtonController = new TitleButtonController() { @Override public void buttonPressed() { - new OpenGpxDetailsTask(item).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + new OpenGpxDetailsTask(selectedGpxPoint.getSelectedGpxFile(), selectedGpxPoint.getSelectedPoint(), mapActivity).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } }; rightTitleButtonController.caption = mapActivity.getString(R.string.analyze_on_map); rightTitleButtonController.startIconId = R.drawable.ic_action_track_16; } - private class OpenGpxDetailsTask extends AsyncTask<Void, Void, GpxSelectionHelper.GpxDisplayItem> { + private static class OpenGpxDetailsTask extends AsyncTask<Void, Void, GpxSelectionHelper.GpxDisplayItem> { - private SelectedGpxFile item; - ProgressDialog progressDialog; + private OsmandApplication app; - OpenGpxDetailsTask(SelectedGpxFile item) { - this.item = item; + private WptPt selectedPoint; + private SelectedGpxFile selectedGpxFile; + + private ProgressDialog progressDialog; + private WeakReference<MapActivity> activityRef; + + OpenGpxDetailsTask(SelectedGpxFile selectedGpxFile, WptPt selectedPoint, MapActivity mapActivity) { + app = mapActivity.getMyApplication(); + this.activityRef = new WeakReference<>(mapActivity); + this.selectedGpxFile = selectedGpxFile; + this.selectedPoint = selectedPoint; } @Override protected void onPreExecute() { - if (item.getGpxFile().path != null) { - progressDialog = new ProgressDialog(getMapActivity()); - progressDialog.setTitle(""); - progressDialog.setMessage(getMapActivity().getResources().getString(R.string.loading_data)); - progressDialog.setCancelable(false); - progressDialog.show(); + MapActivity activity = activityRef.get(); + if (activity != null && AndroidUtils.isActivityNotDestroyed(activity)) { + if (selectedGpxFile.getGpxFile().path != null) { + progressDialog = new ProgressDialog(activity); + progressDialog.setTitle(""); + progressDialog.setMessage(app.getString(R.string.loading_data)); + progressDialog.setCancelable(false); + progressDialog.show(); + } } } @@ -82,13 +96,12 @@ public class SelectedGpxMenuController extends MenuController { GpxSelectionHelper.GpxDisplayGroup gpxDisplayGroup = null; GPXUtilities.GPXFile gpxFile = null; GPXUtilities.Track generalTrack = null; - if (item.getGpxFile().path != null) { - gpxFile = GPXUtilities.loadGPXFile(new File(item.getGpxFile().path)); + if (selectedGpxFile.getGpxFile().path != null) { + gpxFile = GPXUtilities.loadGPXFile(new File(selectedGpxFile.getGpxFile().path)); } if (gpxFile != null) { generalTrack = gpxFile.getGeneralTrack(); } - OsmandApplication app = getMapActivity().getMyApplication(); if (generalTrack != null) { gpxFile.addGeneralTrack(); gpxDisplayGroup = app.getSelectedGpxHelper().buildGeneralGpxDisplayGroup(gpxFile, generalTrack); @@ -107,47 +120,48 @@ public class SelectedGpxMenuController extends MenuController { @Override protected void onPostExecute(GpxSelectionHelper.GpxDisplayItem gpxItem) { - if (progressDialog != null) { - progressDialog.dismiss(); - } - if (gpxItem != null && gpxItem.analysis != null) { - ArrayList<GpxUiHelper.GPXDataSetType> list = new ArrayList<>(); - if (gpxItem.analysis.hasElevationData) { - list.add(GpxUiHelper.GPXDataSetType.ALTITUDE); + MapActivity activity = activityRef.get(); + if (activity != null) { + if (progressDialog != null && AndroidUtils.isActivityNotDestroyed(activity)) { + progressDialog.dismiss(); } - if (gpxItem.analysis.hasSpeedData) { - list.add(GpxUiHelper.GPXDataSetType.SPEED); - } else if (gpxItem.analysis.hasElevationData) { - list.add(GpxUiHelper.GPXDataSetType.SLOPE); + if (gpxItem != null && gpxItem.analysis != null) { + ArrayList<GpxUiHelper.GPXDataSetType> list = new ArrayList<>(); + if (gpxItem.analysis.hasElevationData) { + list.add(GpxUiHelper.GPXDataSetType.ALTITUDE); + } + if (gpxItem.analysis.hasSpeedData) { + list.add(GpxUiHelper.GPXDataSetType.SPEED); + } else if (gpxItem.analysis.hasElevationData) { + list.add(GpxUiHelper.GPXDataSetType.SLOPE); + } + if (list.size() > 0) { + gpxItem.chartTypes = list.toArray(new GpxUiHelper.GPXDataSetType[0]); + } + gpxItem.locationOnMap = selectedPoint; + OsmandSettings settings = app.getSettings(); + settings.setMapLocationToShow(gpxItem.locationStart.lat, gpxItem.locationStart.lon, + settings.getLastKnownMapZoom(), + new PointDescription(PointDescription.POINT_TYPE_WPT, gpxItem.name), + false, + gpxItem); + activity.getContextMenu().hide(); + MapActivity.launchMapActivityMoveToTop(activity); } - if (list.size() > 0) { - gpxItem.chartTypes = list.toArray(new GpxUiHelper.GPXDataSetType[list.size()]); - } - - MapActivity mapActivity = getMapActivity(); - OsmandApplication app = mapActivity.getMyApplication(); - final OsmandSettings settings = app.getSettings(); - settings.setMapLocationToShow(gpxItem.locationStart.lat, gpxItem.locationStart.lon, - settings.getLastKnownMapZoom(), - new PointDescription(PointDescription.POINT_TYPE_WPT, gpxItem.name), - false, - gpxItem); - mapActivity.getContextMenu().hide(); - MapActivity.launchMapActivityMoveToTop(mapActivity); } } } @Override protected void setObject(Object object) { - if (object instanceof SelectedGpxFile) { - this.item = (SelectedGpxFile) object; + if (object instanceof SelectedGpxPoint) { + this.selectedGpxPoint = (SelectedGpxPoint) object; } } @Override protected Object getObject() { - return item; + return selectedGpxPoint; } @NonNull @@ -182,10 +196,12 @@ public class SelectedGpxMenuController extends MenuController { private final WptPt selectedPoint; private final SelectedGpxFile selectedGpxFile; + private final Location pointLocation; - public SelectedGpxPoint(WptPt selectedPoint, SelectedGpxFile selectedGpxFile) { + public SelectedGpxPoint(SelectedGpxFile selectedGpxFile, WptPt selectedPoint, Location pointLocation) { this.selectedPoint = selectedPoint; this.selectedGpxFile = selectedGpxFile; + this.pointLocation = pointLocation; } public WptPt getSelectedPoint() { @@ -195,5 +211,9 @@ public class SelectedGpxMenuController extends MenuController { public SelectedGpxFile getSelectedGpxFile() { return selectedGpxFile; } + + public Location getPointLocation() { + return pointLocation; + } } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java index 9e0274d557..98991fc351 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java @@ -737,6 +737,14 @@ public class TrackDetailsMenu { } if (gpxItem.chartHighlightPos != -1) { chart.highlightValue(gpxItem.chartHighlightPos, 0); + } else if (gpxItem.locationOnMap != null) { + LineData lineData = chart.getLineData(); + List<ILineDataSet> ds = lineData != null ? lineData.getDataSets() : null; + if (ds != null && ds.size() > 0) { + OrderedLineDataSet dataSet = (OrderedLineDataSet) ds.get(0); + gpxItem.chartHighlightPos = (float) (gpxItem.locationOnMap.distance / dataSet.getDivX()); + chart.highlightValue(gpxItem.chartHighlightPos, 0); + } } else { chart.highlightValue(null); } diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 88381c5bee..881b7159f4 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -28,6 +28,7 @@ import net.osmand.GPXUtilities; import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.TrkSegment; import net.osmand.GPXUtilities.WptPt; +import net.osmand.Location; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -608,9 +609,9 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM for (TrkSegment segment : segments) { QuadRect trackBounds = GPXUtilities.calculateBounds(segment.points); if (QuadRect.trivialOverlap(tb.getLatLonBounds(), trackBounds)) { - WptPt selectedPoint = findPointNearSegment(tb, segment.points, r, mx, my); - if (selectedPoint != null) { - res.add(new SelectedGpxPoint(selectedPoint, selectedGpxFile)); + SelectedGpxPoint selectedGpxPoint = findPointNearSegment(tb, selectedGpxFile, segment.points, r, mx, my); + if (selectedGpxPoint != null) { + res.add(selectedGpxPoint); break; } } @@ -618,7 +619,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM } } - private WptPt findPointNearSegment(RotatedTileBox tb, List<WptPt> points, int r, int mx, int my) { + private SelectedGpxPoint findPointNearSegment(RotatedTileBox tb, SelectedGpxFile selectedGpxFile, List<WptPt> points, int r, int mx, int my) { WptPt firstPoint = points.get(0); int ppx = (int) tb.getPixXFromLatLon(firstPoint.lat, firstPoint.lon); int ppy = (int) tb.getPixYFromLatLon(firstPoint.lat, firstPoint.lon); @@ -630,7 +631,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM int py = (int) tb.getPixYFromLatLon(point.lat, point.lon); int cross = placeInBbox(px, py, mx, my, r, r); if (cross == 0) { - return createProjectionPoint(points.get(i - 1), point, tb.getLatLonFromPixel(mx, my)); + return createProjectionPoint(selectedGpxFile, points.get(i - 1), point, tb.getLatLonFromPixel(mx, my)); } if ((pcross & cross) == 0) { int mpx = px; @@ -641,7 +642,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM int mpynew = mpy / 2 + ppy / 2; int mcrossnew = placeInBbox(mpxnew, mpynew, mx, my, r, r); if (mcrossnew == 0) { - return createProjectionPoint(points.get(i - 1), point, tb.getLatLonFromPixel(mx, my)); + return createProjectionPoint(selectedGpxFile, points.get(i - 1), point, tb.getLatLonFromPixel(mx, my)); } if ((mcrossnew & mcross) != 0) { mpx = mpxnew; @@ -664,7 +665,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM return null; } - private WptPt createProjectionPoint(WptPt prevPoint, WptPt nextPoint, LatLon latLon) { + private SelectedGpxPoint createProjectionPoint(SelectedGpxFile selectedGpxFile, WptPt prevPoint, WptPt nextPoint, LatLon latLon) { LatLon projection = MapUtils.getProjection(latLon.getLatitude(), latLon.getLongitude(), prevPoint.lat, prevPoint.lon, nextPoint.lat, nextPoint.lon); WptPt projectionPoint = new WptPt(); @@ -678,7 +679,17 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM projectionPoint.time = (long) getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.time, nextPoint.distance, nextPoint.time); } - return projectionPoint; + Location projectionLocation = new Location(""); + projectionLocation.setLatitude(projectionPoint.lat); + projectionLocation.setLongitude(projectionPoint.lon); + + Location nextPointLocation = new Location(""); + nextPointLocation.setLatitude(nextPoint.lat); + nextPointLocation.setLongitude(nextPoint.lon); + + projectionLocation.setBearing(projectionLocation.bearingTo(nextPointLocation)); + + return new SelectedGpxPoint(selectedGpxFile, projectionPoint, projectionLocation); } private double getValueByDistInterpolation(double projectionDist, double prevDist, double prevVal, double nextDist, double nextVal) { From acf279e04cf32e8e65dcc0b879d82711d1fcf067 Mon Sep 17 00:00:00 2001 From: Nazar-Kutz <vitamikuna@gmail.com> Date: Fri, 19 Jun 2020 13:37:07 +0300 Subject: [PATCH 076/300] Fix #7199 --- .../src/net/osmand/plus/activities/MapActivityActions.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index 2fddc98cc6..074bb5d41e 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -467,10 +467,10 @@ public class MapActivityActions implements DialogProvider { } else if (standardId == R.string.context_menu_item_directions_from) { if (OsmAndLocationProvider.isLocationPermissionAvailable(mapActivity)) { enterDirectionsFromPoint(latitude, longitude); - } else if (!ActivityCompat.shouldShowRequestPermissionRationale(mapActivity, Manifest.permission.ACCESS_FINE_LOCATION)) { - mapActivity.getMyApplication().showToastMessage(R.string.ask_for_location_permission); } else { - ActivityCompat.requestPermissions(mapActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION_FOR_DIRECTIONS_NAVIGATION_PERMISSION); + ActivityCompat.requestPermissions(mapActivity, + new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, + REQUEST_LOCATION_FOR_DIRECTIONS_NAVIGATION_PERMISSION); } } else if (standardId == R.string.measurement_tool) { mapActivity.getContextMenu().close(); From 37465266aaf556b0a1e6d4e4244ebd0955c89414 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Fri, 19 Jun 2020 13:30:07 +0200 Subject: [PATCH 077/300] Make simpler --- .../java/net/osmand/binary/BinaryMapPoiReaderAdapter.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java index d279d72028..82a730ed77 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java @@ -694,11 +694,10 @@ public class BinaryMapPoiReaderAdapter { StringBuilder retValue = new StringBuilder(); PoiCategory amenityType = null; LinkedList<String> textTags = null; - boolean isForbidden = false; while (true) { int t = codedIS.readTag(); int tag = WireFormat.getTagFieldNumber(t); - if (amenityType == null && (tag > OsmandOdb.OsmAndPoiBoxDataAtom.CATEGORIES_FIELD_NUMBER || tag == 0) || isForbidden) { + if (amenityType == null && (tag > OsmandOdb.OsmAndPoiBoxDataAtom.CATEGORIES_FIELD_NUMBER || tag == 0)) { codedIS.skipRawBytes(codedIS.getBytesUntilLimit()); return null; } @@ -773,8 +772,8 @@ public class BinaryMapPoiReaderAdapter { } } subtype = poiTypes.replaceDeprecatedSubtype(type, subtype); - isForbidden = poiTypes.isKeyNameForbidden(subtype); - if (req.poiTypeFilter == null || req.poiTypeFilter.accept(type, subtype)) { + boolean isForbidden = poiTypes.isKeyNameForbidden(subtype); + if (!isForbidden && (req.poiTypeFilter == null || req.poiTypeFilter.accept(type, subtype))) { if (amenityType == null) { amenityType = type; am.setSubType(subtype); From 55a377cb477218322fda4d8194906525b6879c98 Mon Sep 17 00:00:00 2001 From: vshcherb <victor.shcherb@gmail.com> Date: Fri, 19 Jun 2020 15:10:12 +0200 Subject: [PATCH 078/300] Don't ask permission --- .../osmand/plus/activities/MapActivityActions.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index b9cb45d600..25c1b95601 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -466,13 +466,13 @@ public class MapActivityActions implements DialogProvider { } else if (standardId == R.string.context_menu_item_search) { mapActivity.showQuickSearch(latitude, longitude); } else if (standardId == R.string.context_menu_item_directions_from) { - if (OsmAndLocationProvider.isLocationPermissionAvailable(mapActivity)) { + //if (OsmAndLocationProvider.isLocationPermissionAvailable(mapActivity)) { enterDirectionsFromPoint(latitude, longitude); - } else { - ActivityCompat.requestPermissions(mapActivity, - new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, - REQUEST_LOCATION_FOR_DIRECTIONS_NAVIGATION_PERMISSION); - } + //} else { + // ActivityCompat.requestPermissions(mapActivity, + // new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, + // REQUEST_LOCATION_FOR_DIRECTIONS_NAVIGATION_PERMISSION); + //} } else if (standardId == R.string.measurement_tool) { mapActivity.getContextMenu().close(); MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), new LatLon(latitude, longitude)); @@ -1186,4 +1186,4 @@ public class MapActivityActions implements DialogProvider { }); } -} \ No newline at end of file +} From 2a0db125f630ff618d580ec46a258b5f671b90ef Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Fri, 19 Jun 2020 16:37:29 +0300 Subject: [PATCH 079/300] directional traffic signals --- .../binary/BinaryMapRouteReaderAdapter.java | 32 +++++++++---- .../net/osmand/binary/RouteDataObject.java | 38 ---------------- .../net/osmand/router/BinaryRoutePlanner.java | 3 +- .../java/net/osmand/router/GeneralRouter.java | 45 ++++++++++++++++--- .../osmand/router/RouteResultPreparation.java | 2 +- .../net/osmand/router/RoutingContext.java | 1 - .../java/net/osmand/router/VehicleRouter.java | 9 +++- 7 files changed, 72 insertions(+), 58 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index a1e2af0eac..a305d70204 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -73,7 +73,6 @@ public class BinaryMapRouteReaderAdapter { private float floatValue; private int type; private List<RouteTypeCondition> conditions = null; - private TIntObjectHashMap<Integer> directions = null; private int forward; public RouteTypeRule() { @@ -166,10 +165,6 @@ public class BinaryMapRouteReaderAdapter { return conditions != null; } - public boolean directional() { - return directions != null; - } - public String getNonConditionalTag() { String tag = getTag(); if(tag != null && tag.endsWith(":conditional")) { @@ -296,12 +291,9 @@ public class BinaryMapRouteReaderAdapter { if (i > 0) { intValue = Integer.parseInt(v.substring(0, i)); } - } else if (t.endsWith("direction") && v!=null) { + } else if (t.endsWith("direction") && v != null) { type = TRAFFIC_SIGNALS; - directions = new TIntObjectHashMap<Integer>(); - } - } } @@ -311,6 +303,8 @@ public class BinaryMapRouteReaderAdapter { public Map<String, Integer> decodingRules = null; List<RouteSubregion> subregions = new ArrayList<RouteSubregion>(); List<RouteSubregion> basesubregions = new ArrayList<RouteSubregion>(); + TIntObjectHashMap<Integer> trafficSignalsDir = new TIntObjectHashMap<Integer>(); + List<Integer> trafficSignalsTags = new ArrayList<>(); int nameTypeRule = -1; int refTypeRule = -1; @@ -369,9 +363,29 @@ public class BinaryMapRouteReaderAdapter { destinationTypeRule = id; } else if (tags.equals("destination:ref") || tags.equals("destination:ref:forward") || tags.equals("destination:ref:backward")) { destinationRefTypeRule = id; + } else if (tags.endsWith("direction")) { + int d = 0; + if (val.equals("forward")) { + trafficSignalsDir.put(id, 1); + } else if (val.equals("backward")) { + trafficSignalsDir.put(id, -1); + } + } else if (tags.equals("highway") && (val.equals("traffic_signals") || val.equals("stop") || val.equals("give_way"))){ + trafficSignalsTags.add(id); } } + public boolean isTrafficSignalsRule(int ruleId) { + return trafficSignalsTags.contains(ruleId); + } + + public int getTrafficSignalDirection(int ruleId) { + if (trafficSignalsDir.get(ruleId) != null) { + return trafficSignalsDir.get(ruleId); + } + return 0; + } + public void completeRouteEncodingRules() { for(int i = 0; i < routeEncodingRules.size(); i++) { RouteTypeRule rtr = routeEncodingRules.get(i); diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/RouteDataObject.java b/OsmAnd-java/src/main/java/net/osmand/binary/RouteDataObject.java index eaf670cca1..c5f713cdf6 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/RouteDataObject.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/RouteDataObject.java @@ -541,44 +541,6 @@ public class RouteDataObject { } } - // TODO implement - public void processDirectionalTags() { - if (pointTypes != null) { - for (int i = 0; i < pointTypes.length; i++) { - if (pointTypes[i] != null) { - int[] pTypes = pointTypes[i]; - int pSz = pTypes.length; - if (pSz > 0) { - for (int j = 0; j < pSz; j++) { - RouteTypeRule r = region.quickGetEncodingRule(pTypes[j]); - if (r != null && r.directional()) { -// int vl = r.conditionalValue(conditionalTime); -// if (vl != 0) { -// RouteTypeRule rtr = region.quickGetEncodingRule(vl); -// String nonCondTag = rtr.getTag(); -// int ks; -// for (ks = 0; ks < pointTypes[i].length; ks++) { -// RouteTypeRule toReplace = region.quickGetEncodingRule(pointTypes[i][j]); -// if (toReplace != null && toReplace.getTag().contentEquals(nonCondTag)) { -// break; -// } -// } -// if (ks == pTypes.length) { -// int[] ntypes = new int[pTypes.length + 1]; -// System.arraycopy(pTypes, 0, ntypes, 0, pTypes.length); -// pTypes = ntypes; -// } -// pTypes[ks] = vl; -// } - } - } - } - pointTypes[i] = pTypes; - } - } - } - } - public float getMaximumSpeed(boolean direction) { int sz = types.length; float maxSpeed = 0; diff --git a/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java b/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java index 6bffd147a7..154d31928e 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java @@ -442,7 +442,8 @@ public class BinaryRoutePlanner { segmentDist += squareRootDist(x, y, prevx, prevy); // 2.1 calculate possible obstacle plus time - double obstacle = ctx.getRouter().defineRoutingObstacle(road, segmentPoint); + + double obstacle = ctx.getRouter().defineRoutingObstacle(road, segmentPoint, (dir && !reverseWaySearch)); if (obstacle < 0) { directionAllowed = false; continue; diff --git a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java index b3f2660646..bf77ed698d 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java @@ -20,6 +20,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import gnu.trove.list.array.TIntArrayList; import gnu.trove.set.hash.TLongHashSet; public class GeneralRouter implements VehicleRouter { @@ -353,8 +354,8 @@ public class GeneralRouter implements VehicleRouter { } @Override - public float defineObstacle(RouteDataObject road, int point) { - int[] pointTypes = road.getPointTypes(point); + public float defineObstacle(RouteDataObject road, int point, boolean dir) { + int[] pointTypes = filterRulesByDirection(road.getPointTypes(point), dir, road); if(pointTypes != null) { Float obst = getCache(RouteDataObjectAttribute.OBSTACLES, road.region, pointTypes); if(obst == null) { @@ -367,11 +368,11 @@ public class GeneralRouter implements VehicleRouter { } @Override - public float defineRoutingObstacle(RouteDataObject road, int point) { - int[] pointTypes = road.getPointTypes(point); - if(pointTypes != null){ + public float defineRoutingObstacle(RouteDataObject road, int point, boolean dir) { + int[] pointTypes = filterRulesByDirection(road.getPointTypes(point), dir, road); + if(pointTypes != null) { Float obst = getCache(RouteDataObjectAttribute.ROUTING_OBSTACLES, road.region, pointTypes); - if(obst == null) { + if(obst == null) { obst = getObjContext(RouteDataObjectAttribute.ROUTING_OBSTACLES).evaluateFloat(road.region, pointTypes, 0); putCache(RouteDataObjectAttribute.ROUTING_OBSTACLES, road.region, pointTypes, obst); } @@ -380,6 +381,38 @@ public class GeneralRouter implements VehicleRouter { return 0; } + @Override + public int[] filterRulesByDirection(int[] pointRules, boolean direction, RouteDataObject route) { + if (pointRules != null) { + TIntArrayList filteredRules = new TIntArrayList(); + boolean foundDirRule = false; + for (int i = 0; i < pointRules.length; i++) { + foundDirRule = false; + if (route.region.isTrafficSignalsRule(pointRules[i])) { + for (int rid : pointRules) { + if (rid != pointRules[i]) { + //possible error if we have two different directions on one point? + int trafficSignalDir = route.region.getTrafficSignalDirection(rid); + if (trafficSignalDir != 0) { + if ((direction && trafficSignalDir > 0) || (!direction && trafficSignalDir < 0)) { + filteredRules.add(pointRules[i]); + } + foundDirRule = true; + } + } + } + if (!foundDirRule) { + filteredRules.add(pointRules[i]); + } + } else if (route.region.getTrafficSignalDirection(pointRules[i]) == 0){ + filteredRules.add(pointRules[i]); + } + } + return filteredRules.size() > 0 ? filteredRules.toArray() : null; + } + return pointRules; + } + @Override public double defineHeightObstacle(RouteDataObject road, short startIndex, short endIndex) { if(!heightObstacles) { diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java index 14363c39af..379f7b4172 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java @@ -268,7 +268,7 @@ public class RouteResultPreparation { double d = measuredDist(road.getPoint31XTile(j), road.getPoint31YTile(j), road.getPoint31XTile(next), road.getPoint31YTile(next)); distance += d; - double obstacle = ctx.getRouter().defineObstacle(road, j); + double obstacle = ctx.getRouter().defineObstacle(road, j, plus); if (obstacle < 0) { obstacle = 0; } diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java index 44bb6846c2..ed6f451763 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java @@ -309,7 +309,6 @@ public class RoutingContext { } ts.excludedIds.add(ro.getId()); } - ro.processDirectionalTags(); } } } diff --git a/OsmAnd-java/src/main/java/net/osmand/router/VehicleRouter.java b/OsmAnd-java/src/main/java/net/osmand/router/VehicleRouter.java index 6797de0848..6047e5f561 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/VehicleRouter.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/VehicleRouter.java @@ -30,7 +30,7 @@ public interface VehicleRouter { /** * return delay in seconds (0 no obstacles) */ - public float defineObstacle(RouteDataObject road, int point); + public float defineObstacle(RouteDataObject road, int point, boolean dir); /** * return delay in seconds for height obstacles @@ -40,13 +40,18 @@ public interface VehicleRouter { /** * return delay in seconds (0 no obstacles) */ - public float defineRoutingObstacle(RouteDataObject road, int point); + public float defineRoutingObstacle(RouteDataObject road, int point, boolean dir); /** * return routing speed in m/s for vehicle for specified road */ public float defineRoutingSpeed(RouteDataObject road); + /** + * Define if rule should be applied based on movement direction; + */ + public int[] filterRulesByDirection(int[] pointRules, boolean direction, RouteDataObject road); + /** * return real speed in m/s for vehicle for specified road */ From f6473011f824485f97c623315b4d35c4763b899d Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Fri, 19 Jun 2020 16:46:33 +0300 Subject: [PATCH 080/300] cleaning --- .../java/net/osmand/binary/BinaryMapRouteReaderAdapter.java | 5 ----- .../main/java/net/osmand/router/RoutingConfiguration.java | 2 +- .../src/main/java/net/osmand/router/RoutingContext.java | 3 --- 3 files changed, 1 insertion(+), 9 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index a305d70204..178f515b10 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -173,11 +173,6 @@ public class BinaryMapRouteReaderAdapter { return tag; } - //TODO implement - public String getNonDirectionalTag() { - return null; - } - public int onewayDirection(){ if(type == ONEWAY){ return intValue; diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java index 09a1003483..232b971f9f 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java @@ -47,7 +47,7 @@ public class RoutingConfiguration { public float recalculateDistance = 20000f; // 1.6 Time to calculate all access restrictions based on conditions - public long routeCalculationTime = 1592317409;//0; + public long routeCalculationTime = 0; public static class Builder { // Design time storage diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java index ed6f451763..2c44940dff 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java @@ -17,7 +17,6 @@ import org.apache.commons.logging.Log; import gnu.trove.iterator.TIntObjectIterator; import gnu.trove.iterator.TLongIterator; import gnu.trove.map.TLongObjectMap; -import gnu.trove.map.hash.TIntObjectHashMap; import gnu.trove.map.hash.TLongObjectHashMap; import gnu.trove.set.hash.TLongHashSet; import net.osmand.NativeLibrary; @@ -608,8 +607,6 @@ public class RoutingContext { public TLongObjectMap<RouteSegment> getRoutes() { return routes; } - private TIntObjectHashMap<Integer> forwardTags; - private TIntObjectHashMap<Integer> backwardTags; public void loadAllObjects(final List<RouteDataObject> toFillIn, RoutingContext ctx, TLongObjectHashMap<RouteDataObject> excludeDuplications) { if(routes != null) { From 54e9b29d9e21ae017da1fb4c990cee3c0a1db02d Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Fri, 19 Jun 2020 17:25:02 +0300 Subject: [PATCH 081/300] remove unused variable --- .../main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index 178f515b10..65f86b3d88 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -359,7 +359,6 @@ public class BinaryMapRouteReaderAdapter { } else if (tags.equals("destination:ref") || tags.equals("destination:ref:forward") || tags.equals("destination:ref:backward")) { destinationRefTypeRule = id; } else if (tags.endsWith("direction")) { - int d = 0; if (val.equals("forward")) { trafficSignalsDir.put(id, 1); } else if (val.equals("backward")) { From 2e6343b28b279644dcf41f389185bf0da55cd77a Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Fri, 19 Jun 2020 17:33:16 +0300 Subject: [PATCH 082/300] Fix size of map icon --- OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java index cca1b6a122..8c49bf1206 100644 --- a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java @@ -160,11 +160,12 @@ public class PointImageDrawable extends Drawable { private void drawInCenter(Canvas canvas, Rect destRect, boolean history) { this.history = history; + final float DEFAULT_SCALE_ON_MAP_1_5 = 1.5f; setBounds(destRect); - int offsetX = destRect.centerX() - (int) (favIcon.getIntrinsicWidth() / 2 * scale); - int offsetY = destRect.centerY() - (int) (favIcon.getIntrinsicHeight() / 2 * scale); - favIcon.setBounds(offsetX, offsetY, (int) (offsetX + favIcon.getIntrinsicWidth() * scale), - offsetY + (int) (favIcon.getIntrinsicHeight() * scale)); + int offsetX = destRect.centerX() - (int) (favIcon.getIntrinsicWidth() / 2 * scale * DEFAULT_SCALE_ON_MAP_1_5); + int offsetY = destRect.centerY() - (int) (favIcon.getIntrinsicHeight() / 2 * scale * DEFAULT_SCALE_ON_MAP_1_5); + favIcon.setBounds(offsetX, offsetY, (int) (offsetX + favIcon.getIntrinsicWidth() * scale * DEFAULT_SCALE_ON_MAP_1_5), + offsetY + (int) (favIcon.getIntrinsicHeight() * scale * DEFAULT_SCALE_ON_MAP_1_5)); draw(canvas); } From 0dc70df409a7b307c270e573731ad5424845de70 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Fri, 19 Jun 2020 17:55:53 +0300 Subject: [PATCH 083/300] add more stict check for tags --- .../java/net/osmand/binary/BinaryMapRouteReaderAdapter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index 65f86b3d88..22f147e7b3 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -358,7 +358,7 @@ public class BinaryMapRouteReaderAdapter { destinationTypeRule = id; } else if (tags.equals("destination:ref") || tags.equals("destination:ref:forward") || tags.equals("destination:ref:backward")) { destinationRefTypeRule = id; - } else if (tags.endsWith("direction")) { + } else if (tags.equals("traffic_signals:direction") || tags.equals("give_way:direction") || tags.equals("stop:direction")) { if (val.equals("forward")) { trafficSignalsDir.put(id, 1); } else if (val.equals("backward")) { From ba396c7542d38d489cad24844ecccd87e46ae4b0 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail.com> Date: Fri, 19 Jun 2020 18:01:06 +0300 Subject: [PATCH 084/300] fix edit osm poi opening hours formatting --- .../src/main/java/net/osmand/util/Algorithms.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java b/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java index 720ecf5107..d302c91da7 100644 --- a/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java +++ b/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java @@ -707,13 +707,9 @@ public class Algorithms { } public static String formatMinutesDuration(int minutes) { - if (minutes < 60) { - return String.valueOf(minutes); - } else { - int min = minutes % 60; - int hours = minutes / 60; - return String.format(Locale.UK, "%02d:%02d", hours, min); - } + int min = minutes % 60; + int hours = minutes / 60; + return String.format(Locale.UK, "%02d:%02d", hours, min); } public static <T extends Enum<T>> T parseEnumValue(T[] cl, String val, T defaultValue) { From 315a6f696d661288a8761f4d6c4b4571fbbdabd7 Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Fri, 19 Jun 2020 18:19:54 +0300 Subject: [PATCH 085/300] Minor UI fixes for gpx context menu --- .../builders/SelectedGpxMenuBuilder.java | 22 ++++++++++--------- .../src/net/osmand/plus/views/GPXLayer.java | 10 ++++----- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java index 29c54f5b90..ab122b1bac 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java @@ -53,10 +53,10 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { @Override public void buildInternal(View view) { + buildPointRows(view); buildOverviewRows(view); buildElevationRows(view); buildSpeedRows(view); - buildPointRows(view); } public void buildOverviewRows(View view) { @@ -68,16 +68,18 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { String timeSpan = Algorithms.formatDuration((int) (analysis.timeSpan / 1000), app.accessibilityEnabled()); String timeMoving = Algorithms.formatDuration((int) (analysis.timeMoving / 1000), app.accessibilityEnabled()); - String title = app.getString(R.string.shared_string_time_span) + " / " + app.getString(R.string.shared_string_time_moving); - buildRow(view, getThemedIcon(R.drawable.ic_action_time_span), null, title, + String timeSpanTitle = app.getString(R.string.shared_string_time_span) + " / " + app.getString(R.string.shared_string_time_moving); + buildRow(view, getThemedIcon(R.drawable.ic_action_time_span), null, timeSpanTitle, timeSpan + " / " + timeMoving, 0, null, false, null, false, 0, false, false, false, null, false); Date start = new Date(analysis.startTime); Date end = new Date(analysis.endTime); DateFormat format = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); - buildRow(view, getThemedIcon(R.drawable.ic_action_time_start), null, app.getString(R.string.shared_string_start_time), - format.format(start) + " / " + format.format(end), 0, null, + + String startEndTimeTitle = app.getString(R.string.shared_string_start_time) + " - " + app.getString(R.string.shared_string_end_time); + buildRow(view, getThemedIcon(R.drawable.ic_action_time_start), null, startEndTimeTitle, + format.format(start) + " - " + format.format(end), 0, null, false, null, false, 0, false, false, false, null, true); } @@ -100,6 +102,10 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { buildRow(view, getThemedIcon(R.drawable.ic_action_altitude_descent), null, app.getString(R.string.ascent_descent), asc + " / " + desc, 0, null, false, null, false, 0, false, false, false, null, true); + + buildRow(view, getThemedIcon(R.drawable.ic_action_altitude_descent), null, app.getString(R.string.distance_moving), + OsmAndFormatter.getFormattedDistance(analysis.totalDistanceMoving, app), 0, null, + false, null, false, 0, false, false, false, null, true); } } @@ -114,10 +120,6 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { buildRow(view, getThemedIcon(R.drawable.ic_action_max_speed), null, app.getString(R.string.max_speed), OsmAndFormatter.getFormattedSpeed(analysis.maxSpeed, app), 0, null, false, null, false, 0, false, false, false, null, false); - - buildRow(view, getThemedIcon(R.drawable.ic_action_altitude_descent), null, app.getString(R.string.distance_moving), - OsmAndFormatter.getFormattedDistance(analysis.totalDistanceMoving, app), 0, null, - false, null, false, 0, false, false, false, null, true); } } @@ -140,7 +142,7 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { false, null, false, 0, false, false, false, null, false); } if (!Double.isNaN(selectedPoint.speed)) { - buildRow(view, getThemedIcon(R.drawable.ic_action_speed), null, app.getString(R.string.average_speed), + buildRow(view, getThemedIcon(R.drawable.ic_action_speed), null, app.getString(R.string.map_widget_speed), OsmAndFormatter.getFormattedSpeed((float) selectedPoint.speed, app), 0, null, false, null, false, 0, false, false, false, null, false); } diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 62c7795979..f61d0e56b7 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -673,17 +673,17 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM projectionPoint.time = (long) getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.time, nextPoint.distance, nextPoint.time); } - Location projectionLocation = new Location(""); - projectionLocation.setLatitude(projectionPoint.lat); - projectionLocation.setLongitude(projectionPoint.lon); + Location prevPointLocation = new Location(""); + prevPointLocation.setLatitude(prevPoint.lat); + prevPointLocation.setLongitude(prevPoint.lon); Location nextPointLocation = new Location(""); nextPointLocation.setLatitude(nextPoint.lat); nextPointLocation.setLongitude(nextPoint.lon); - projectionLocation.setBearing(projectionLocation.bearingTo(nextPointLocation)); + prevPointLocation.setBearing(prevPointLocation.bearingTo(nextPointLocation)); - return new SelectedGpxPoint(selectedGpxFile, projectionPoint, projectionLocation); + return new SelectedGpxPoint(selectedGpxFile, projectionPoint, prevPointLocation); } private double getValueByDistInterpolation(double projectionDist, double prevDist, double prevVal, double nextDist, double nextVal) { From d5c3050f3a190f0873c1a927211878f510beeca5 Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Fri, 19 Jun 2020 19:40:34 +0300 Subject: [PATCH 086/300] Minor UI fixes for gpx context menu second part --- OsmAnd/src/net/osmand/plus/OsmAndFormatter.java | 13 +++++++++++-- .../builders/SelectedGpxMenuBuilder.java | 12 ++++++------ .../src/net/osmand/plus/views/MapControlsLayer.java | 2 +- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java b/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java index fed1aa90df..8dc4d709c4 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java @@ -27,7 +27,6 @@ import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; -import java.util.Collection; import java.util.List; import java.util.Locale; import java.util.Map.Entry; @@ -479,7 +478,17 @@ public class OsmAndFormatter { return newStrings; } - private static boolean isSameDay(Calendar cal1, Calendar cal2) { + public static boolean isSameDay(long startTime, long endTime) { + Calendar start = Calendar.getInstance(); + Calendar end = Calendar.getInstance(); + + start.setTimeInMillis(startTime); + end.setTimeInMillis(endTime); + + return isSameDay(start, end); + } + + public static boolean isSameDay(Calendar cal1, Calendar cal2) { return (cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA) && cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR)); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java index ab122b1bac..67796e1683 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java @@ -25,7 +25,6 @@ import net.osmand.util.Algorithms; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.Date; public class SelectedGpxMenuBuilder extends MenuBuilder { @@ -73,13 +72,14 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { timeSpan + " / " + timeMoving, 0, null, false, null, false, 0, false, false, false, null, false); - Date start = new Date(analysis.startTime); - Date end = new Date(analysis.endTime); - DateFormat format = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); - + DateFormat startFormat = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + DateFormat endFormat = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + if (OsmAndFormatter.isSameDay(analysis.startTime, analysis.endTime)) { + endFormat = SimpleDateFormat.getTimeInstance(DateFormat.SHORT); + } String startEndTimeTitle = app.getString(R.string.shared_string_start_time) + " - " + app.getString(R.string.shared_string_end_time); buildRow(view, getThemedIcon(R.drawable.ic_action_time_start), null, startEndTimeTitle, - format.format(start) + " - " + format.format(end), 0, null, + startFormat.format(analysis.startTime) + " - " + endFormat.format(analysis.endTime), 0, null, false, null, false, 0, false, false, false, null, true); } diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java index 545804fd23..976bf8fd4b 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java @@ -789,7 +789,7 @@ public class MapControlsLayer extends OsmandMapLayer { boolean showRouteCalculationControls = routePlanningMode || ((app.accessibilityEnabled() || (System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS)) && routeFollowingMode); boolean routeDialogOpened = mapRouteInfoMenu.isVisible() || (showRouteCalculationControls && mapRouteInfoMenu.needShowMenu()); - updateMyLocation(rh, routeDialogOpened || trackDialogOpened || contextMenuOpened); + updateMyLocation(rh, routeDialogOpened || contextMenuOpened); boolean showButtons = (showRouteCalculationControls || !routeFollowingMode) && !isInMovingMarkerMode() && !isInGpxDetailsMode() && !isInMeasurementToolMode() && !isInPlanRouteMode() && !contextMenuOpened && !isInChoosingRoutesMode() && !isInWaypointsChoosingMode(); //routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_info_dark : R.drawable.ic_action_gdirections_dark); From a348dc36ccb4444954d8771de19ca64bdb568bdc Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Fri, 19 Jun 2020 19:42:24 +0300 Subject: [PATCH 087/300] Remove unnecessary date format initialization --- .../plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java index 67796e1683..17548f4d72 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java @@ -73,9 +73,11 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { false, null, false, 0, false, false, false, null, false); DateFormat startFormat = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); - DateFormat endFormat = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + DateFormat endFormat; if (OsmAndFormatter.isSameDay(analysis.startTime, analysis.endTime)) { endFormat = SimpleDateFormat.getTimeInstance(DateFormat.SHORT); + } else { + endFormat = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT) } String startEndTimeTitle = app.getString(R.string.shared_string_start_time) + " - " + app.getString(R.string.shared_string_end_time); buildRow(view, getThemedIcon(R.drawable.ic_action_time_start), null, startEndTimeTitle, From 1cb985e3f21ee71ca8d66b7e50c139f03052c35d Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Fri, 19 Jun 2020 19:45:40 +0300 Subject: [PATCH 088/300] remove unnecessary changes --- OsmAnd/src/net/osmand/plus/OsmAndFormatter.java | 12 +----------- .../builders/SelectedGpxMenuBuilder.java | 11 ++++++++--- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java b/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java index 8dc4d709c4..aed1210d08 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java @@ -478,17 +478,7 @@ public class OsmAndFormatter { return newStrings; } - public static boolean isSameDay(long startTime, long endTime) { - Calendar start = Calendar.getInstance(); - Calendar end = Calendar.getInstance(); - - start.setTimeInMillis(startTime); - end.setTimeInMillis(endTime); - - return isSameDay(start, end); - } - - public static boolean isSameDay(Calendar cal1, Calendar cal2) { + private static boolean isSameDay(Calendar cal1, Calendar cal2) { return (cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA) && cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR)); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java index 17548f4d72..9b97c41ed3 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java @@ -23,8 +23,11 @@ import net.osmand.plus.mapcontextmenu.MenuBuilder; import net.osmand.plus.mapcontextmenu.controllers.SelectedGpxMenuController.SelectedGpxPoint; import net.osmand.util.Algorithms; +import org.apache.commons.lang3.time.DateUtils; + import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.Date; public class SelectedGpxMenuBuilder extends MenuBuilder { @@ -72,16 +75,18 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { timeSpan + " / " + timeMoving, 0, null, false, null, false, 0, false, false, false, null, false); + Date start = new Date(analysis.startTime); + Date end = new Date(analysis.endTime); DateFormat startFormat = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); DateFormat endFormat; - if (OsmAndFormatter.isSameDay(analysis.startTime, analysis.endTime)) { + if (DateUtils.isSameDay(start, end)) { endFormat = SimpleDateFormat.getTimeInstance(DateFormat.SHORT); } else { - endFormat = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT) + endFormat = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); } String startEndTimeTitle = app.getString(R.string.shared_string_start_time) + " - " + app.getString(R.string.shared_string_end_time); buildRow(view, getThemedIcon(R.drawable.ic_action_time_start), null, startEndTimeTitle, - startFormat.format(analysis.startTime) + " - " + endFormat.format(analysis.endTime), 0, null, + startFormat.format(start) + " - " + endFormat.format(end), 0, null, false, null, false, 0, false, false, false, null, true); } From 54c0510bbeb74941398e6f14152f1798957e5013 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Fri, 19 Jun 2020 18:48:39 +0200 Subject: [PATCH 089/300] Fix tests --- .../test/java/net/osmand/search/SearchUICoreTest.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/OsmAnd-java/src/test/java/net/osmand/search/SearchUICoreTest.java b/OsmAnd-java/src/test/java/net/osmand/search/SearchUICoreTest.java index 82bb2152bc..f3ed25ca0b 100644 --- a/OsmAnd-java/src/test/java/net/osmand/search/SearchUICoreTest.java +++ b/OsmAnd-java/src/test/java/net/osmand/search/SearchUICoreTest.java @@ -180,14 +180,14 @@ public class SearchUICoreTest { SearchResultCollection collection = new SearchResultCollection(phrase); collection.addSearchResults(matcher.getRequestResults(), true, true); List<SearchResult> searchResults = collection.getCurrentSearchResults(); - int i = 0; - for (SearchResult res : searchResults) { - String expected = result.get(i++); + for(int i = 0; i < result.size(); i++) { + String expected = result.get(i); + SearchResult res = i >= searchResults.size() ? null : searchResults.get(i); if (simpleTest && expected.indexOf('[') != -1) { expected = expected.substring(0, expected.indexOf('[')).trim(); } // String present = result.toString(); - String present = formatResult(simpleTest, res, phrase); + String present = res == null ? ("#MISSING " + (i+1)) : formatResult(simpleTest, res, phrase); if (!Algorithms.stringsEqual(expected, present)) { System.out.println(String.format("Phrase: %s", phrase)); System.out.println(String.format("Mismatch for '%s' != '%s'. Result: ", expected, present)); @@ -196,9 +196,6 @@ public class SearchUICoreTest { } } Assert.assertEquals(expected, present); - if (i >= result.size()) { - break; - } } } From 090c1e17a6b203675c1a2f137eb0bcf4560c1f78 Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Fri, 19 Jun 2020 19:54:09 +0300 Subject: [PATCH 090/300] remove unnecessary method --- OsmAnd/src/net/osmand/plus/OsmAndFormatter.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java b/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java index aed1210d08..7526f02e92 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndFormatter.java @@ -102,7 +102,7 @@ public class OsmAndFormatter { } else { calendar.setTimeInMillis(seconds * 1000); } - if (isSameDay(calendar, Calendar.getInstance())) { + if (org.apache.commons.lang3.time.DateUtils.isSameDay(calendar, Calendar.getInstance())) { return SIMPLE_TIME_OF_DAY_FORMAT.format(calendar.getTime()); } else { return SIMPLE_TIME_OF_DAY_FORMAT.format(calendar.getTime()) + " " + localDaysStr[calendar.get(Calendar.DAY_OF_WEEK)]; @@ -478,12 +478,6 @@ public class OsmAndFormatter { return newStrings; } - private static boolean isSameDay(Calendar cal1, Calendar cal2) { - return (cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA) && - cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && - cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR)); - } - public static String getFormattedCoordinates(double lat, double lon, int outputFormat) { StringBuilder result = new StringBuilder(); if (outputFormat == FORMAT_DEGREES_SHORT) { From 8298dbdf17d9ece341fa7b790019c193e01698c5 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Fri, 19 Jun 2020 19:04:08 +0200 Subject: [PATCH 091/300] Support dots in street names - https://github.com/osmandapp/Osmand/issues/6154 --- .../main/java/net/osmand/CollatorStringMatcher.java | 11 ++++++++++- .../java/net/osmand/search/core/SearchPhrase.java | 5 +++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/CollatorStringMatcher.java b/OsmAnd-java/src/main/java/net/osmand/CollatorStringMatcher.java index f5808961d7..8048595615 100644 --- a/OsmAnd-java/src/main/java/net/osmand/CollatorStringMatcher.java +++ b/OsmAnd-java/src/main/java/net/osmand/CollatorStringMatcher.java @@ -33,7 +33,16 @@ public class CollatorStringMatcher implements StringMatcher { public CollatorStringMatcher(String part, StringMatcherMode mode) { this.collator = OsmAndCollator.primaryCollator(); - this.part = simplifyStringAndAlignChars(part); + part = simplifyStringAndAlignChars(part); + if (part.length() > 0 && part.charAt(part.length() - 1) == '.') { + part = part.substring(0, part.length() - 1); + if (mode == StringMatcherMode.CHECK_EQUALS_FROM_SPACE) { + mode = StringMatcherMode.CHECK_STARTS_FROM_SPACE; + } else if (mode == StringMatcherMode.CHECK_EQUALS) { + mode = StringMatcherMode.CHECK_ONLY_STARTS_WITH; + } + } + this.part = part; this.mode = mode; } diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchPhrase.java b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchPhrase.java index 7306d2e48d..4cc5e63a84 100644 --- a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchPhrase.java +++ b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchPhrase.java @@ -281,6 +281,11 @@ public class SearchPhrase { for (String s : searchWords) { if (s.length() > 0 && !Character.isDigit(s.charAt(0)) && !LocationParser.isValidOLC(s)) { mainUnknownWordToSearch = s.trim(); + if (mainUnknownWordToSearch.endsWith(".")) { + mainUnknownWordToSearch = mainUnknownWordToSearch.substring(0, + mainUnknownWordToSearch.length() - 1); + mainUnknownSearchWordComplete = false; + } int unknownInd = unknownSearchWords.indexOf(s); if (!lastUnknownSearchWordComplete && unknownSearchWords.size() - 1 == unknownInd) { mainUnknownSearchWordComplete = false; From 418a7fafd8997b92ac89b0ba238a23d9102e5e41 Mon Sep 17 00:00:00 2001 From: Suren <aslanyan@list.ru> Date: Fri, 19 Jun 2020 17:46:45 +0000 Subject: [PATCH 092/300] Added translation using Weblate (Armenian) --- OsmAnd-telegram/res/values-hy/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 OsmAnd-telegram/res/values-hy/strings.xml diff --git a/OsmAnd-telegram/res/values-hy/strings.xml b/OsmAnd-telegram/res/values-hy/strings.xml new file mode 100644 index 0000000000..a6b3daec93 --- /dev/null +++ b/OsmAnd-telegram/res/values-hy/strings.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources></resources> \ No newline at end of file From 38533bc6b58d3634ae72260d79fe898a3d99667e Mon Sep 17 00:00:00 2001 From: Athoss <athoss@citromail.hu> Date: Fri, 19 Jun 2020 17:43:50 +0000 Subject: [PATCH 093/300] Translated using Weblate (Hungarian) Currently translated at 95.7% (3247 of 3392 strings) --- OsmAnd/res/values-hu/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index fb9efbb337..269b9651c2 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3675,10 +3675,10 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="mercator_projection">Mercator vetület</string> <string name="storage_format">Tárolás formátuma</string> <string name="map_source_zoom_levels">Adja meg a legkisebb és legnagyobb nagyítási szintet, amelyen az online térkép megjelenjen vagy letöltésre kerüljön.</string> - <string name="expire_time_descr">Lejárati idő percben megadva. A gyorsítótárazott csempék a megadott idő után újratöltésre kerülnek. A mezőt üresen hagyva ezek a csempék soha nem fognak frissülni. -\n -\nEgy nap 1440 perc. -\nEgy hét 10 080 perc. + <string name="expire_time_descr">A gyorsítótárazott csempék a megadott percek letelte után újra letöltésre kerülnek. A mezőt üresen hagyva ezek a csempék soha nem fognak frissülni. +\n +\nEgy nap 1440 perc. +\nEgy hét 10 080 perc. \nEgy hónap 43 829 perc.</string> <string name="tiles_storage_descr">Válassza ki a letöltött csempék tárolási módját.</string> <string name="width_limit_description">Adja meg a járműve szélességét, a széles járművekre útvonalkorlátozások lehetnek érvényben.</string> From a9e9a75f4f77544e1f21b5f8d9dd598fb2ee9129 Mon Sep 17 00:00:00 2001 From: ihor_ck <igor_ck@outlook.com> Date: Thu, 18 Jun 2020 18:04:43 +0000 Subject: [PATCH 094/300] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3392 of 3392 strings) --- OsmAnd/res/values-uk/strings.xml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 67de37c7e0..4479e2d600 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -3747,11 +3747,11 @@ <string name="mercator_projection">Проєкція Меркатора</string> <string name="storage_format">Формат зберігання</string> <string name="map_source_zoom_levels">Встановіть найменший та найбільший рівень масштабування для відображення або завантаження мережевої мапи.</string> - <string name="map_source_zoom_levels_descr">Впливає на екран, коли використовується як мапа чи накладка/підкладка. -\n -\n%1$s: мапа обмежена вибраним проміжком масштабування. -\n -\n%2$s: рівні масштабування, за яких буде видно первинні тайли; збільшення і зменшення масштабу може відбуватися поза цими значенями.</string> + <string name="map_source_zoom_levels_descr">Впливає на екран, коли використовується як мапа чи накладка/підкладка. +\n +\n%1$s: мапа обмежена вибраним проміжком масштабування. +\n +\n%2$s: рівні масштабування, за яких буде видно первинні тайли; зміна масштабу може відбуватися поза цими значеннями.</string> <string name="expire_time_descr">Кешовані тайли буде повторно завантажено через вказану кількість хвилин. Залиште це поле порожнім, щоб ніколи не оновлювати плитки для цього джерела. \n \nОдин день - 1440 хвилин. @@ -3777,4 +3777,8 @@ <string name="vessel_height_warning">Ви можете встановити висоту судна, щоб уникнути низьких мостів. Майте на увазі, якщо міст рухомий, використовуватиметься його висота у відкритому стані.</string> <string name="vessel_height_limit_description">Встановіть висоту судна, щоб уникнути низьких мостів. Майте на увазі, якщо міст рухомий, використовуватиметься його висота у відкритому стані.</string> <string name="vessel_width_limit_description">Встановіть ширину судна, щоб уникнути вузьких мостів</string> + <string name="quick_action_showhide_mapillary_title">Увімкнути/вимкнути Mapillary</string> + <string name="quick_action_mapillary_hide">Вимкнути Mapillary</string> + <string name="quick_action_mapillary_show">Увімкнення шару Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Перемикач увімкнення або вимкнення шару Mapillary на мапі.</string> </resources> \ No newline at end of file From c07d225a6c6509dbe0c9ccb313fcb90940bc33bf Mon Sep 17 00:00:00 2001 From: Michael <quelbs@gmail.com> Date: Fri, 19 Jun 2020 05:05:53 +0000 Subject: [PATCH 095/300] Translated using Weblate (German) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-de/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 34361c5b27..437bb5d33a 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -1333,7 +1333,7 @@ <string name="poi_smoking_yes">Erlaubt</string> <string name="poi_smoking_separated">In einem separaten Raum</string> <string name="poi_traffic_signals_sound_yes">ja</string> - <string name="poi_traffic_signals_sound_no">nein</string> + <string name="poi_traffic_signals_sound_no">kein Signalton</string> <string name="poi_rescue_station">Rettungsstation</string> <string name="poi_mini_roundabout">Mini-Kreisverkehr</string> <string name="poi_railway_crossing">Bahnübergang</string> @@ -3827,4 +3827,9 @@ <string name="poi_fire_hydrant_type_pipe">Rohr</string> <string name="poi_fire_hydrant_pressure_filter">Druck</string> <string name="poi_pump_status_missing_beam">Pumpenzustand: fehlender Arm</string> + <string name="poi_traffic_signals_arrow_yes">Ja</string> + <string name="poi_traffic_signals_vibration_yes">ja</string> + <string name="poi_traffic_signals_vibration_no">kein Vibrieren</string> + <string name="poi_traffic_signals_arrow">Pfeil</string> + <string name="poi_traffic_signals_vibration">Vibrieren</string> </resources> \ No newline at end of file From 5de868855a48903f7710fc768e57e8e9227dc7ed Mon Sep 17 00:00:00 2001 From: ihor_ck <igor_ck@outlook.com> Date: Thu, 18 Jun 2020 17:58:20 +0000 Subject: [PATCH 096/300] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-uk/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-uk/phrases.xml b/OsmAnd/res/values-uk/phrases.xml index 44457bac27..530cedf2c2 100644 --- a/OsmAnd/res/values-uk/phrases.xml +++ b/OsmAnd/res/values-uk/phrases.xml @@ -1463,7 +1463,7 @@ <string name="poi_historic_civilization_helladic">Цивілізація: еладська</string> <string name="poi_traffic_signals_sound_yes">Так</string> <string name="poi_historic_civilization_cycladic">Цивілізація: кікладська</string> - <string name="poi_traffic_signals_sound_no">Ні</string> + <string name="poi_traffic_signals_sound_no">Звук: вимкнено</string> <string name="poi_historic_civilization_minoan">Цивілізація: мінойська</string> <string name="poi_traffic_signals_sound_walk">Лише коли перехід дозволений</string> <string name="poi_historic_civilization_tiahuanacota">Цивілізація: тіауанако</string> @@ -3812,4 +3812,9 @@ <string name="poi_fire_hydrant_pressure_filter">Тиск</string> <string name="poi_pump_status_missing_beam">Стан насосу: відсутній важіль</string> <string name="poi_fire_hydrant_style_water_source_groundwater">Підземні води</string> + <string name="poi_traffic_signals_arrow_yes">Увімкнено</string> + <string name="poi_traffic_signals_vibration_yes">Увімкнено</string> + <string name="poi_traffic_signals_vibration_no">Вібрація: вимкнено</string> + <string name="poi_traffic_signals_arrow">Стрілка</string> + <string name="poi_traffic_signals_vibration">Вібрація</string> </resources> \ No newline at end of file From c5f296764b489b2d2ed804ec039b9d3b68d5241d Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf <lmelonimamo@yahoo.it> Date: Thu, 18 Jun 2020 13:10:48 +0000 Subject: [PATCH 097/300] Translated using Weblate (Sardinian) Currently translated at 99.5% (3790 of 3809 strings) --- OsmAnd/res/values-sc/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sc/phrases.xml b/OsmAnd/res/values-sc/phrases.xml index 1235a11167..e6d16782c5 100644 --- a/OsmAnd/res/values-sc/phrases.xml +++ b/OsmAnd/res/values-sc/phrases.xml @@ -1229,7 +1229,7 @@ <string name="poi_tactile_paving_yes">Eja</string> <string name="poi_tactile_paving_no">Chene pamentu tàtile</string> <string name="poi_traffic_signals_sound_yes">Eja</string> - <string name="poi_traffic_signals_sound_no">Nono</string> + <string name="poi_traffic_signals_sound_no">Sonu: nono</string> <string name="poi_traffic_signals_sound_walk">Petzi cando est possìbile colare</string> <string name="poi_services">Àrea de servìtziu</string> <string name="poi_historic_period_nuragic">Època istòrica: nuràgica</string> @@ -3820,4 +3820,9 @@ <string name="poi_fire_hydrant_type_pipe">Pompa</string> <string name="poi_fire_hydrant_pressure_filter">Pressione</string> <string name="poi_pump_status_missing_beam">Istadu de sa pompa: mancat sa trave</string> + <string name="poi_traffic_signals_arrow_yes">Eja</string> + <string name="poi_traffic_signals_vibration_yes">Eja</string> + <string name="poi_traffic_signals_vibration_no">Vibratzione: nono</string> + <string name="poi_traffic_signals_arrow">Fritza</string> + <string name="poi_traffic_signals_vibration">Vibratzione</string> </resources> \ No newline at end of file From dd8ce628ae363d432e6dd520c9769fe425a49955 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira <duduaddad@gmail.com> Date: Fri, 19 Jun 2020 16:24:58 +0000 Subject: [PATCH 098/300] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-pt-rBR/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index 39a4535dfc..b15c965fcd 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -1221,7 +1221,7 @@ <string name="poi_tactile_paving_yes">Sim</string> <string name="poi_tactile_paving_no">Sem piso tátil</string> <string name="poi_traffic_signals_sound_yes">Sim</string> - <string name="poi_traffic_signals_sound_no">Não</string> + <string name="poi_traffic_signals_sound_no">Som: Não</string> <string name="poi_traffic_signals_sound_walk">Só quando permitido atravessar</string> <string name="poi_ford_stepping_stones">Poldras (pedras de passagem)</string> <string name="poi_toll_hgv_yes">Pedágio para veículos pesados</string> @@ -3824,4 +3824,9 @@ <string name="poi_fire_hydrant_type_pipe">Tubo</string> <string name="poi_fire_hydrant_pressure_filter">Pressão</string> <string name="poi_pump_status_missing_beam">Status da bomba: falta de feixe</string> + <string name="poi_traffic_signals_arrow_yes">Sim</string> + <string name="poi_traffic_signals_vibration_yes">Sim</string> + <string name="poi_traffic_signals_vibration_no">Vibração: Não</string> + <string name="poi_traffic_signals_arrow">Seta</string> + <string name="poi_traffic_signals_vibration">Vibração</string> </resources> \ No newline at end of file From c2abdb171f26928649c7d7b1677cb4951f48aa9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= <oguzersen@protonmail.com> Date: Thu, 18 Jun 2020 17:34:21 +0000 Subject: [PATCH 099/300] Translated using Weblate (Turkish) Currently translated at 62.5% (2383 of 3809 strings) --- OsmAnd/res/values-tr/phrases.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-tr/phrases.xml b/OsmAnd/res/values-tr/phrases.xml index 816ed33bb4..5b939eb519 100644 --- a/OsmAnd/res/values-tr/phrases.xml +++ b/OsmAnd/res/values-tr/phrases.xml @@ -1445,7 +1445,7 @@ <string name="poi_tactile_paving_yes">Evet</string> <string name="poi_tactile_paving_no">Dokunsal kaldırım olmadan</string> <string name="poi_traffic_signals_sound_yes">Evet</string> - <string name="poi_traffic_signals_sound_no">Hayır</string> + <string name="poi_traffic_signals_sound_no">Ses: hayır</string> <string name="poi_traffic_signals_sound_walk">Sadece yürümeye izin verildiğinde</string> <string name="poi_toll_hgv_yes">Ağır vasıta geçiş ücreti</string> <string name="poi_rescue_station">Kurtarma istasyonu</string> @@ -2392,4 +2392,6 @@ <string name="poi_horse_no">Atlara izin verilmiyor</string> <string name="poi_cuisine">Mutfak</string> <string name="poi_url">URL</string> + <string name="poi_traffic_signals_arrow">Ok</string> + <string name="poi_traffic_signals_vibration">Titreşim</string> </resources> \ No newline at end of file From b8fd4084f113b415f0a5e240211fa45499b30356 Mon Sep 17 00:00:00 2001 From: Osoitz <oelkoro@gmail.com> Date: Fri, 19 Jun 2020 14:20:43 +0000 Subject: [PATCH 100/300] Translated using Weblate (Basque) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-eu/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-eu/phrases.xml b/OsmAnd/res/values-eu/phrases.xml index b4e383c082..5ed19a222f 100644 --- a/OsmAnd/res/values-eu/phrases.xml +++ b/OsmAnd/res/values-eu/phrases.xml @@ -1311,7 +1311,7 @@ <string name="poi_brushless_yes">Bai</string> <string name="poi_fee_no">Ez</string> <string name="poi_drinking_water_no">Ez</string> - <string name="poi_traffic_signals_sound_no">Ez</string> + <string name="poi_traffic_signals_sound_no">Soinua: ez</string> <string name="poi_piste_grooming_no">Ez</string> <string name="poi_washing_machine_yes">Bai</string> <string name="poi_washing_machine_no">Garbigailua: ez</string> @@ -3813,4 +3813,9 @@ <string name="poi_fire_hydrant_style_water_source_groundwater">Lurrazpiko ura</string> <string name="poi_fire_hydrant_type_pipe">Hodia</string> <string name="poi_fire_hydrant_pressure_filter">Presioa</string> + <string name="poi_traffic_signals_arrow_yes">Bai</string> + <string name="poi_traffic_signals_vibration_yes">Bai</string> + <string name="poi_traffic_signals_vibration_no">Bibrazioa: ez</string> + <string name="poi_traffic_signals_arrow">Gezia</string> + <string name="poi_traffic_signals_vibration">Bibrazioa</string> </resources> \ No newline at end of file From 07a0a1d2ab4475f3f718e1d27d19ece6035ff0dd Mon Sep 17 00:00:00 2001 From: Jeff Huang <s8321414@gmail.com> Date: Fri, 19 Jun 2020 00:52:03 +0000 Subject: [PATCH 101/300] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-zh-rTW/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index 511db44856..df51f2a415 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -1225,7 +1225,7 @@ <string name="poi_toll_no">不收費</string> <string name="poi_toll_hgv_yes">收大貨車費用</string> <string name="poi_traffic_signals_sound_yes">有聲音</string> - <string name="poi_traffic_signals_sound_no">沒有聲音</string> + <string name="poi_traffic_signals_sound_no">聲音:無</string> <string name="poi_traffic_signals_sound_walk">當有聲响時允許行走</string> <string name="poi_rescue_station">救護站</string> <string name="poi_services">服務區</string> @@ -3823,4 +3823,9 @@ <string name="poi_fire_hydrant_type_pipe">管線</string> <string name="poi_fire_hydrant_pressure_filter">壓力</string> <string name="poi_pump_status_missing_beam">幫浦狀態:無桿</string> + <string name="poi_traffic_signals_arrow_yes">是</string> + <string name="poi_traffic_signals_vibration_yes">是</string> + <string name="poi_traffic_signals_vibration_no">震動:無</string> + <string name="poi_traffic_signals_arrow">箭頭</string> + <string name="poi_traffic_signals_vibration">震動</string> </resources> \ No newline at end of file From 1c8cced6b1996c52d0f62a890bc738e1e360b4e5 Mon Sep 17 00:00:00 2001 From: solokot <solokot@gmail.com> Date: Thu, 18 Jun 2020 13:27:36 +0000 Subject: [PATCH 102/300] Translated using Weblate (Russian) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-ru/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml index 019412f8ca..c685fd9c49 100644 --- a/OsmAnd/res/values-ru/phrases.xml +++ b/OsmAnd/res/values-ru/phrases.xml @@ -1044,7 +1044,7 @@ <string name="poi_tactile_paving_no">Без тактильного покрытия</string> <string name="poi_traffic_signals_sound">Звуковой сигнал</string> <string name="poi_traffic_signals_sound_yes">Есть</string> - <string name="poi_traffic_signals_sound_no">Нет</string> + <string name="poi_traffic_signals_sound_no">Звук: нет</string> <string name="poi_traffic_signals_sound_walk">Только когда переход разрешён</string> <string name="poi_rescue_station">Спасательная станция</string> <string name="poi_services">Зона услуг, прилегающая к шоссе</string> @@ -3812,4 +3812,9 @@ <string name="poi_seamark_water_level_floods">Уровень воды: наводнение</string> <string name="poi_coach_no">Доступ к автобусу: нет</string> <string name="poi_coach_yes">Доступ к автобусу: да</string> + <string name="poi_traffic_signals_arrow_yes">Да</string> + <string name="poi_traffic_signals_vibration_yes">Да</string> + <string name="poi_traffic_signals_vibration_no">Вибрация: нет</string> + <string name="poi_traffic_signals_arrow">Стрелка</string> + <string name="poi_traffic_signals_vibration">Вибрация</string> </resources> \ No newline at end of file From 43ded8c0e72cc7b42f2dd9f1c68729f71043948d Mon Sep 17 00:00:00 2001 From: max-klaus <max.klaus@osmand.net> Date: Sat, 20 Jun 2020 10:48:11 +0300 Subject: [PATCH 103/300] Fix #6115 --- .../src/net/osmand/plus/poi/PoiUIFilter.java | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/poi/PoiUIFilter.java b/OsmAnd/src/net/osmand/plus/poi/PoiUIFilter.java index 5a897c0c89..e23e0c3485 100644 --- a/OsmAnd/src/net/osmand/plus/poi/PoiUIFilter.java +++ b/OsmAnd/src/net/osmand/plus/poi/PoiUIFilter.java @@ -51,6 +51,7 @@ public class PoiUIFilter implements SearchPoiTypeFilter, Comparable<PoiUIFilter> public final static int INVALID_ORDER = -1; private Map<PoiCategory, LinkedHashSet<String>> acceptedTypes = new LinkedHashMap<>(); + private Map<PoiCategory, LinkedHashSet<String>> acceptedTypesOrigin = new LinkedHashMap<>(); private Map<String, PoiType> poiAdditionals = new HashMap<>(); protected String filterId; @@ -120,6 +121,7 @@ public class PoiUIFilter implements SearchPoiTypeFilter, Comparable<PoiUIFilter> this.acceptedTypes.putAll(acceptedTypes); } updatePoiAdditionals(); + updateAcceptedTypeOrigins(); } public PoiUIFilter(Set<PoiUIFilter> filtersToMerge, OsmandApplication app) { @@ -139,6 +141,7 @@ public class PoiUIFilter implements SearchPoiTypeFilter, Comparable<PoiUIFilter> poiAdditionals = filter.getPoiAdditionals(); filterByName = filter.filterByName; savedFilterByName = filter.savedFilterByName; + updateAcceptedTypeOrigins(); } public boolean isDeleted() { @@ -670,6 +673,30 @@ public class PoiUIFilter implements SearchPoiTypeFilter, Comparable<PoiUIFilter> addOtherPoiAdditionals(); } + private void updateAcceptedTypeOrigins() { + Map<PoiCategory, LinkedHashSet<String>> acceptedTypesOrigin = new LinkedHashMap<>(); + for (Entry<PoiCategory, LinkedHashSet<String>> e : acceptedTypes.entrySet()) { + if (e.getValue() != null) { + for (String s : e.getValue()) { + PoiType subtype = poiTypes.getPoiTypeByKey(s); + if (subtype != null) { + PoiCategory c = subtype.getCategory(); + String typeName = subtype.getKeyName(); + if (!getAcceptedSubtypes(c).contains(typeName)) { + LinkedHashSet<String> typeNames = acceptedTypesOrigin.get(c); + if (typeNames == null) { + typeNames = new LinkedHashSet<>(); + acceptedTypesOrigin.put(c, typeNames); + } + typeNames.add(typeName); + } + } + } + } + } + this.acceptedTypesOrigin = acceptedTypesOrigin; + } + private void addOtherPoiAdditionals() { for (PoiType add : poiTypes.getOtherMapCategory().getPoiAdditionalsCategorized()) { poiAdditionals.put(add.getKeyName().replace('_', ':').replace(' ', ':'), add); @@ -740,6 +767,7 @@ public class PoiUIFilter implements SearchPoiTypeFilter, Comparable<PoiUIFilter> public void selectSubTypesToAccept(PoiCategory t, LinkedHashSet<String> accept) { acceptedTypes.put(t, accept); updatePoiAdditionals(); + updateAcceptedTypeOrigins(); } public void setTypeToAccept(PoiCategory poiCategory, boolean b) { @@ -749,6 +777,7 @@ public class PoiUIFilter implements SearchPoiTypeFilter, Comparable<PoiUIFilter> acceptedTypes.remove(poiCategory); } updatePoiAdditionals(); + updateAcceptedTypeOrigins(); } @Override @@ -805,14 +834,12 @@ public class PoiUIFilter implements SearchPoiTypeFilter, Comparable<PoiUIFilter> if (!poiTypes.isRegisteredType(type)) { type = poiTypes.getOtherPoiCategory(); } - if (!acceptedTypes.containsKey(type)) { - return false; - } - LinkedHashSet<String> set = acceptedTypes.get(type); - if (set == null) { + LinkedHashSet<String> acceptedTypesSet = acceptedTypes.get(type); + if (acceptedTypesSet != null && acceptedTypesSet.contains(subtype)) { return true; } - return set.contains(subtype); + acceptedTypesSet = acceptedTypesOrigin.get(type); + return acceptedTypesSet != null && acceptedTypesSet.contains(subtype); } @Override From b2fb7e7cfbf0ffe65ec4fbd06c91cb0a6e9d8b8d Mon Sep 17 00:00:00 2001 From: max-klaus <max.klaus@osmand.net> Date: Sat, 20 Jun 2020 11:05:28 +0300 Subject: [PATCH 104/300] Refactor names --- .../osmand/binary/BinaryMapPoiReaderAdapter.java | 2 +- .../src/main/java/net/osmand/osm/MapPoiTypes.java | 11 ++++++----- .../src/main/java/net/osmand/osm/PoiFilter.java | 4 ++-- OsmAnd/src/net/osmand/plus/AppInitializer.java | 2 +- .../plus/dialogs/SpeedCamerasBottomSheet.java | 4 ---- .../osmand/plus/helpers/SearchHistoryHelper.java | 2 +- .../plus/settings/backend/OsmandSettings.java | 14 +++++++------- 7 files changed, 18 insertions(+), 21 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java index 82a730ed77..857eb4f4d3 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapPoiReaderAdapter.java @@ -772,7 +772,7 @@ public class BinaryMapPoiReaderAdapter { } } subtype = poiTypes.replaceDeprecatedSubtype(type, subtype); - boolean isForbidden = poiTypes.isKeyNameForbidden(subtype); + boolean isForbidden = poiTypes.isTypeForbidden(subtype); if (!isForbidden && (req.poiTypeFilter == null || req.poiTypeFilter.accept(type, subtype))) { if (amenityType == null) { amenityType = type; diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java index be3644ab90..f535af8610 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java @@ -35,13 +35,14 @@ public class MapPoiTypes { private static final Log log = PlatformUtil.getLog(MapRenderingTypes.class); private String resourceName; private List<PoiCategory> categories = new ArrayList<PoiCategory>(); - private Set<String> forbiddenKeyNames = new HashSet<>(); + private Set<String> forbiddenTypes = new HashSet<>(); private PoiCategory otherCategory; private PoiCategory otherMapCategory; public static final String WIKI_LANG = "wiki_lang"; public static final String WIKI_PLACE = "wiki_place"; public static final String OSM_WIKI_CATEGORY = "osmwiki"; + public static final String SPEED_CAMERA = "speed_camera"; private PoiTranslator poiTranslator = null; private boolean init; @@ -948,11 +949,11 @@ public class MapPoiTypes { } } - public void setForbiddenKeyNames(Set<String> forbiddenKeyNames) { - this.forbiddenKeyNames = forbiddenKeyNames; + public void setForbiddenTypes(Set<String> forbiddenTypes) { + this.forbiddenTypes = forbiddenTypes; } - public boolean isKeyNameForbidden(String key) { - return forbiddenKeyNames.contains(key); + public boolean isTypeForbidden(String typeName) { + return forbiddenTypes.contains(typeName); } } diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/PoiFilter.java b/OsmAnd-java/src/main/java/net/osmand/osm/PoiFilter.java index 12bbaa13f0..a3f6f4eedf 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/PoiFilter.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/PoiFilter.java @@ -31,7 +31,7 @@ public class PoiFilter extends AbstractPoiType { Map<String, PoiType> nmap = null; for (PoiType poiType : poiTypesToAdd.values()) { String keyName = poiType.getKeyName(); - if (!map.containsKey(keyName) && !registry.isKeyNameForbidden(keyName)) { + if (!map.containsKey(keyName) && !registry.isTypeForbidden(keyName)) { if (npoiTypes == null) { npoiTypes = new ArrayList<PoiType>(this.poiTypes); nmap = new LinkedHashMap<>(map); @@ -47,7 +47,7 @@ public class PoiFilter extends AbstractPoiType { } public void addPoiType(PoiType type) { - if (registry.isKeyNameForbidden(type.keyName)) { + if (registry.isTypeForbidden(type.keyName)) { return; } if (!map.containsKey(type.getKeyName())) { diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java index 9e06a56d20..7bccdd599f 100644 --- a/OsmAnd/src/net/osmand/plus/AppInitializer.java +++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java @@ -302,7 +302,7 @@ public class AppInitializer implements IProgress { } private void initPoiTypes() { - app.poiTypes.setForbiddenKeyNames(app.osmandSettings.getForbiddenPoiKeyNames()); + app.poiTypes.setForbiddenTypes(app.osmandSettings.getForbiddenTypes()); if (app.getAppPath(IndexConstants.SETTINGS_DIR + "poi_types.xml").exists()) { app.poiTypes.init(app.getAppPath(IndexConstants.SETTINGS_DIR + "poi_types.xml").getAbsolutePath()); } else { diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java index fac4230c77..e620c4884f 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/SpeedCamerasBottomSheet.java @@ -17,14 +17,11 @@ import net.osmand.plus.UiUtilities; import net.osmand.plus.base.MenuBottomSheetDialogFragment; import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; import net.osmand.plus.helpers.FontCache; -import net.osmand.plus.settings.backend.OsmandSettings; public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { public static final String TAG = SpeedCamerasBottomSheet.class.getName(); - public static final String SPEED_CAMERA_KEY_NAME = "speed_camera"; private OsmandApplication app; - private OsmandSettings settings; public static void showInstance(@NonNull FragmentManager fm, @Nullable Fragment targetFragment) { if (!fm.isStateSaved()) { @@ -38,7 +35,6 @@ public class SpeedCamerasBottomSheet extends MenuBottomSheetDialogFragment { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); app = requiredMyApplication(); - settings = app.getSettings(); } @Override diff --git a/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java b/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java index 828d79dbf0..af16333cb2 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/SearchHistoryHelper.java @@ -428,7 +428,7 @@ public class SearchHistoryHelper { do { String name = query.getString(0); PointDescription p = PointDescription.deserializeFromString(name, new LatLon(query.getDouble(1), query.getDouble(2))); - if (context.getPoiTypes().isKeyNameForbidden(p.getName())){ + if (context.getPoiTypes().isTypeForbidden(p.getName())){ query.moveToNext(); } HistoryEntry e = new HistoryEntry(query.getDouble(1), query.getDouble(2), diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java index 9bc2bf0c88..07a4ebbfed 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java @@ -34,9 +34,8 @@ import net.osmand.data.PointDescription; import net.osmand.map.ITileSource; import net.osmand.map.TileSourceManager; import net.osmand.map.TileSourceManager.TileSourceTemplate; +import net.osmand.osm.MapPoiTypes; import net.osmand.osm.io.NetworkUtils; -import net.osmand.plus.settings.backend.ApplicationMode.ApplicationModeBean; -import net.osmand.plus.settings.backend.ApplicationMode.ApplicationModeBuilder; import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; @@ -56,6 +55,8 @@ import net.osmand.plus.profiles.NavigationIcon; import net.osmand.plus.profiles.ProfileIconColors; import net.osmand.plus.render.RendererRegistry; import net.osmand.plus.routing.RouteProvider.RouteService; +import net.osmand.plus.settings.backend.ApplicationMode.ApplicationModeBean; +import net.osmand.plus.settings.backend.ApplicationMode.ApplicationModeBuilder; import net.osmand.plus.voice.CommandPlayer; import net.osmand.render.RenderingRulesStorage; import net.osmand.util.Algorithms; @@ -88,7 +89,6 @@ import java.util.StringTokenizer; import static net.osmand.aidlapi.OsmAndCustomizationConstants.CONFIGURE_MAP_ITEM_ID_SCHEME; import static net.osmand.aidlapi.OsmAndCustomizationConstants.DRAWER_ITEM_ID_SCHEME; import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_ACTIONS; -import static net.osmand.plus.dialogs.SpeedCamerasBottomSheet.SPEED_CAMERA_KEY_NAME; public class OsmandSettings { @@ -2113,12 +2113,12 @@ public class OsmandSettings { public final OsmandPreference<Boolean> SPEED_CAMERAS_UNINSTALLED = new BooleanPreference("speed_cameras_uninstalled", false).makeGlobal(); public final OsmandPreference<Boolean> SPEED_CAMERAS_ALERT_SHOWED = new BooleanPreference("speed_cameras_alert_showed", false).makeGlobal(); - public Set<String> getForbiddenPoiKeyNames() { - Set<String> keyNames = new HashSet<>(); + public Set<String> getForbiddenTypes() { + Set<String> typeNames = new HashSet<>(); if (SPEED_CAMERAS_UNINSTALLED.get()) { - keyNames.add(SPEED_CAMERA_KEY_NAME); + typeNames.add(MapPoiTypes.SPEED_CAMERA); } - return keyNames; + return typeNames; } public final OsmandPreference<Boolean> ANNOUNCE_WPT = new BooleanPreference("announce_wpt", true) { From 0ad2030977ce66f09c203fa5accc5e4d07589ae8 Mon Sep 17 00:00:00 2001 From: Hakuchi <heimlikloh@mail.com> Date: Sat, 20 Jun 2020 09:05:02 +0000 Subject: [PATCH 105/300] Translated using Weblate (German) Currently translated at 99.9% (3400 of 3403 strings) --- OsmAnd/res/values-de/strings.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index b4ad80fbd6..70a81910b6 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -3793,4 +3793,14 @@ <string name="quick_action_mapillary_hide">Mapillary ausblenden</string> <string name="quick_action_mapillary_show">Mapillary anzeigen</string> <string name="quick_action_showhide_mapillary_descr">Eine Umschaltfläche zum ein- oder ausblenden der Mapillary-Layer auf der Karte.</string> + <string name="uninstall_speed_cameras">Blitzer Deinstallieren</string> + <string name="shared_string_legal">Rechtliches</string> + <string name="speed_camera_pois">Blitzer-POIs</string> + <string name="keep_active">Aktiviert lassen</string> + <string name="shared_string_uninstall">Deinstallieren</string> + <string name="speed_cameras_alert">Blitzer-Warnungen sind in einigen Ländern gesetzlich verboten.</string> + <string name="shared_string_bearing">Peilung</string> + <string name="item_deleted">%1$s gelöscht</string> + <string name="speed_cameras_restart_descr">Ein Neustart ist erforderlich, um Blitzerdaten vollständig zu löschen.</string> + <string name="shared_string_uninstall_and_restart">Deinstallieren und neu starten</string> </resources> \ No newline at end of file From 602f130bdcd3c07cafbff48e4aa003bb5f7d4426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=2E=20R=C3=BCdinger?= <Mail-an-CR@web.de> Date: Sat, 20 Jun 2020 09:14:07 +0000 Subject: [PATCH 106/300] Translated using Weblate (German) Currently translated at 99.9% (3400 of 3403 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 70a81910b6..27756b4a31 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -2928,7 +2928,7 @@ <string name="quick_action_gpx_tracks_show">GPX-Tracks einblenden</string> <string name="exit_at">Aussteigen bei</string> <string name="sit_on_the_stop">Zusteigen an Haltestelle</string> - <string name="use_osm_live_public_transport_description">OsmAnd-Live-Änderungen bei öffentlichen Verkehrsmitteln aktivieren.</string> + <string name="use_osm_live_public_transport_description">Aktivierung von OsmAnd Live für Änderungen in öffentlichen Verkehrsmitteln.</string> <string name="use_osm_live_public_transport">OsmAnd Live öffentliche Verkehrsmittel</string> <string name="public_transport_warning_descr_blog">Erfahren Sie in unserem Blog mehr darüber, wie OsmAnd Routen berechnet.</string> <string name="public_transport_warning_title">Die Navigation im öffentlichen Nahverkehr befindet sich derzeit im Beta-Test, rechnen Sie mit Fehlern und Ungenauigkeiten.</string> From 9e14e87d1669272fa5165a735c4ece1eef052546 Mon Sep 17 00:00:00 2001 From: Ldm Public <ldmpub@gmail.com> Date: Fri, 19 Jun 2020 20:32:14 +0000 Subject: [PATCH 107/300] Translated using Weblate (French) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-fr/strings.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 86c9135cbb..0bbbc5a2c2 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3768,4 +3768,21 @@ <string name="quick_action_mapillary_hide">Masquer Mapillary</string> <string name="quick_action_mapillary_show">Afficher Mapillary</string> <string name="quick_action_showhide_mapillary_descr">Bouton pour afficher ou masquer la couche Mapillary sur la carte.</string> + <string name="speed_cameras_legal_descr">Dans certains pays ou régions, l\'utilisation d\'avertisseurs de radars est interdit par la loi. +\n +\nVous devez faire un choix en fonction de la loi de votre pays. +\n +\nSélectionnez %1$s et vous recevrez des alertes et des avertissements sur les radars. +\n +\nSélectionnez %2$s. Toutes les données relatives aux radars (alertes, notifications, PI) seront supprimées.</string> + <string name="keep_active">Garder actif</string> + <string name="speed_cameras_restart_descr">Un redémarrage est nécessaire pour supprimer complètement les données des radars.</string> + <string name="uninstall_speed_cameras">Désinstaller les radars</string> + <string name="shared_string_legal">Légal</string> + <string name="speed_camera_pois">PI radars</string> + <string name="shared_string_uninstall">Désinstaller</string> + <string name="speed_cameras_alert">Les alertes radars sont interdites par la loi dans certains pays.</string> + <string name="shared_string_bearing">Direction</string> + <string name="item_deleted">%1$s supprimé</string> + <string name="shared_string_uninstall_and_restart">Désinstaller et redémarrer</string> </resources> \ No newline at end of file From aff5ca44b95fec913312264c6110e2b4b2ad47a5 Mon Sep 17 00:00:00 2001 From: Hakuchi <heimlikloh@mail.com> Date: Sat, 20 Jun 2020 09:14:17 +0000 Subject: [PATCH 108/300] Translated using Weblate (German) Currently translated at 99.9% (3400 of 3403 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 27756b4a31..b32a0fb396 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -2928,7 +2928,7 @@ <string name="quick_action_gpx_tracks_show">GPX-Tracks einblenden</string> <string name="exit_at">Aussteigen bei</string> <string name="sit_on_the_stop">Zusteigen an Haltestelle</string> - <string name="use_osm_live_public_transport_description">Aktivierung von OsmAnd Live für Änderungen in öffentlichen Verkehrsmitteln.</string> + <string name="use_osm_live_public_transport_description">Aktivierung von OsmAnd Live für Änderungen bei öffentlichen Verkehrsmitteln.</string> <string name="use_osm_live_public_transport">OsmAnd Live öffentliche Verkehrsmittel</string> <string name="public_transport_warning_descr_blog">Erfahren Sie in unserem Blog mehr darüber, wie OsmAnd Routen berechnet.</string> <string name="public_transport_warning_title">Die Navigation im öffentlichen Nahverkehr befindet sich derzeit im Beta-Test, rechnen Sie mit Fehlern und Ungenauigkeiten.</string> From 8bb08221c0ba044ed068955be4a184f96131b042 Mon Sep 17 00:00:00 2001 From: solokot <solokot@gmail.com> Date: Sat, 20 Jun 2020 06:30:40 +0000 Subject: [PATCH 109/300] Translated using Weblate (Russian) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-ru/strings.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 0fd3c8da08..fc8bd14280 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -3785,4 +3785,21 @@ <string name="quick_action_mapillary_hide">Скрыть Mapillary</string> <string name="quick_action_mapillary_show">Показать Mapillary</string> <string name="quick_action_showhide_mapillary_descr">Переключатель, чтобы показать или скрыть слой Mapillary на карте.</string> + <string name="shared_string_legal">Законодательство</string> + <string name="speed_cameras_legal_descr">В некоторых странах и регионах использование предупреждений о камерах контроля скорости запрещено законом. +\n +\nВам нужно сделать выбор в зависимости от законодательства вашей страны. +\n +\nВыберите \"%1$s\", чтобы получать предупреждения о камерах контроля скорости. +\n +\nВыберите \"%2$s\", чтобы удалить все данные, связанные с камерами контроля скорости (уведомления, предупреждения и POI), до полной переустановки OsmAnd.</string> + <string name="keep_active">Оставить включёнными</string> + <string name="uninstall_speed_cameras">Удалить камеры контроля скорости</string> + <string name="speed_camera_pois">POI камер контроля скорости</string> + <string name="speed_cameras_alert">Оповещение о камерах контроля скорости в некоторых странах запрещено законом.</string> + <string name="shared_string_bearing">Ориентация</string> + <string name="item_deleted">Удалено: %1$s</string> + <string name="speed_cameras_restart_descr">Перезапуск необходим для полного удаления данных камер контроля скорости.</string> + <string name="shared_string_uninstall_and_restart">Удалить и перезапустить</string> + <string name="shared_string_uninstall">Удалить</string> </resources> \ No newline at end of file From fd9cef9a7220ffb0ab745bbb1aeeb0f18adc4891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= <oguzersen@protonmail.com> Date: Fri, 19 Jun 2020 20:41:08 +0000 Subject: [PATCH 110/300] Translated using Weblate (Turkish) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-tr/strings.xml | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 46c6a96900..f731b7ddd3 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -632,7 +632,7 @@ <string name="favorite_delete_multiple">%1$d Sık Kullanılanlar ve %2$d Sık Kullanılan grupları silmek istediğinizden emin misiniz\?</string> <string name="local_index_gpx_info_show">" \n -\nSeçenekler için uzun bas"</string> +\nSeçenekler için uzun basın"</string> <string name="local_index_installed">Yerel sürüm</string> <string name="local_index_items_backuped">%1$d/%2$d öge devre dışı bırakıldı.</string> <string name="local_index_items_deleted">%1$d/%2$d öge silindi.</string> @@ -805,7 +805,7 @@ <string name="daynight_mode_sensor">Işık algılayıcısı</string> <string name="daynight_descr">Gece ve gündüz modu arasında geçişi ayarlayın.</string> <string name="download_files_question">{0} dosya indirilecek ({1} MB)?</string> - <string name="items_were_selected">{0} öğe seçildi</string> + <string name="items_were_selected">{0} öge seçildi</string> <string name="filter_existing_indexes">İndirilen</string> <string name="fast_route_mode_descr">En hızlı rotayı hesaplamayı etkinleştirin veya yakıt tasarrufu rotası için devre dışı bırakın.</string> <string name="continuous_rendering">Sürekli görselleştirme</string> @@ -1072,7 +1072,7 @@ <string name="shared_string_show_details">Ayrıntıları göster</string> <string name="rendering_value_disabled_name">Devre dışı</string> <string name="rendering_attr_hideHouseNumbers_name">Ev kapı numaraları</string> - <string name="confirm_usage_speed_cameras">Çoğu ülkede (Almanya, Fransa, İtalya ve diğerleri) hız kamerası uyarılarının kullanımı yasal değildir. OsmAnd yasaları çiğnemeniz durumunda sorumluluk kabul etmez. Eğer bu özelliği kullanmak sizin için uygunsa \'Evet\'e tıklayın.</string> + <string name="confirm_usage_speed_cameras">Birçok ülkede (Almanya, Fransa, İtalya ve diğerleri) hız kamerası uyarılarının kullanımına yasalarca izin verilmemektedir. Yasaları ihlal ederseniz OsmAnd herhangi bir sorumluluk kabul etmez. Lütfen sadece bu özelliği kullanmaya uygunsanız evet seçeneğine dokunun.</string> <string name="shared_string_go">Git</string> <string name="action_create">Eylem oluştur</string> <string name="action_modify">Eylem düzenle</string> @@ -1847,8 +1847,8 @@ <string name="night">Gece</string> <string name="updates_size">Güncelleme boyutu</string> <string name="select_month_and_country">Ay ve ülke:</string> - <string name="item_removed">Öğe kaldırıldı</string> - <string name="n_items_removed">öğeler silindi</string> + <string name="item_removed">Öge kaldırıldı</string> + <string name="n_items_removed">öge kaldırıldı</string> <string name="shared_string_undo_all">Tümünü geri al</string> <string name="shared_string_type">Tür</string> <string name="starting_point">Başlangıç noktası</string> @@ -3741,4 +3741,21 @@ <string name="quick_action_mapillary_hide">Mapillary\'i gizle</string> <string name="quick_action_mapillary_show">Mapillary\'i göster</string> <string name="quick_action_showhide_mapillary_descr">Harita üzerinde Mapillary katmanını göstermek veya gizlemek için bir geçiş.</string> + <string name="uninstall_speed_cameras">Hız kameralarını kaldır</string> + <string name="shared_string_legal">Yasal</string> + <string name="speed_camera_pois">Hız kamerası POI\'leri</string> + <string name="speed_cameras_legal_descr">Bazı ülke veya bölgelerde hız kamerası uyarı uygulamalarının kullanımı yasalarca yasaklanmıştır. +\n +\nÜlkenizin yasalarına bağlı olarak bir seçim yapmanız gerekmektedir. +\n +\n%1$s seçeneğini seçtiğinizde hız kameraları hakkında ikaz ve uyarıları alırsınız. +\n +\n%2$s seçeneğini seçtiğinizde hız kameraları ile ilgili tüm veriler: uyarılar, bildirimler, POI\'ler OsmAnd tamamen yeniden kurulana kadar silinecektir.</string> + <string name="keep_active">Etkin tut</string> + <string name="speed_cameras_alert">Hız kamerası uyarıları bazı ülkelerde yasalarca yasaklanmıştır.</string> + <string name="shared_string_uninstall">Kaldır</string> + <string name="shared_string_bearing">Kerteriz</string> + <string name="item_deleted">%1$s silindi</string> + <string name="speed_cameras_restart_descr">Hız kamerası verilerini tamamen silmek için yeniden başlatma gerekmektedir.</string> + <string name="shared_string_uninstall_and_restart">Kaldır ve Yeniden Başlat</string> </resources> \ No newline at end of file From 8ef188492d8b1260c66d879e34a029f4a1e17efd Mon Sep 17 00:00:00 2001 From: Yunkers <wkulma@onet.eu> Date: Sat, 20 Jun 2020 07:46:58 +0000 Subject: [PATCH 111/300] Translated using Weblate (Polish) Currently translated at 98.8% (3364 of 3403 strings) --- OsmAnd/res/values-pl/strings.xml | 37 ++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 5e3b4e7ea8..c5167021fe 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -3745,10 +3745,10 @@ <string name="mercator_projection">Odwzorowanie Merkatora</string> <string name="storage_format">Format pamięci masowej</string> <string name="map_source_zoom_levels">Wybierz minimalny i maksymalne powiększenie, przy którym mapy online będą wyświetlane lub wczytywane.</string> - <string name="map_source_zoom_levels_descr">Te parametry wpłyną na wyświetlanie, gdy są używane jako mapa lub nakładka/podkład. -\n + <string name="map_source_zoom_levels_descr">Wplynie na ekran, gdy są używane jako mapa lub nakładka/podkład. +\n \n%1$s: Mapa będzie ograniczona do wybranych powiększeń. -\n +\n \n%2$s: Poziomy powiększenia na których początkowe kafelki będą widoczne. Skalowanie w dół lub w górę nastąpi niezależnie od tych wartości.</string> <string name="expire_time_descr">Buforowane kafelki zostaną ponownie pobrane po określonej liczbie minut. Pozostaw to pole puste, aby nigdy nie odświeżać kafelków dla tego źródła. \n @@ -3764,7 +3764,7 @@ <string name="default_screen_timeout">Domyślne wygaszanie ekranu</string> <string name="shared_string_tones">tony</string> <string name="shared_string_meters">metry</string> - <string name="details_dialog_decr">Kontroluj widoczność dodatkowych szczegółów na mapie</string> + <string name="details_dialog_decr">Pokaż lub ukryj dodatkowe szczegóły mapy</string> <string name="shared_string_night_map">Mapa nocna</string> <string name="shared_string_all_time">Cały czas</string> <string name="vessel_height_warning">Możesz ustawić wysokość statku, aby unikać niskich mostów. Uwaga: dla mostów zwodzonych liczymy wysokość podniesionego mostu.</string> @@ -3774,4 +3774,33 @@ <string name="quick_action_showhide_mapillary_title">Pokaż/ukryj Mapillary</string> <string name="quick_action_mapillary_hide">Ukryj Mapillary</string> <string name="quick_action_mapillary_show">Pokaż Mapillary</string> + <string name="width_limit_description">Wprowadź szerokość pojazdu, niektóre restrykcje dróg mogą dotyczyć szerokich pojazdów.</string> + <string name="height_limit_description">Wprowadź wysokość pojazdu, niektóre restrykcje dróg mogą dotyczyć wysokich pojazdów.</string> + <string name="weight_limit_description">Wprowadź wagę pojazdu, niektóre restrykcje dróg mogą dotyczyć ciężkich pojazdów.</string> + <string name="shared_string_always">Zawsze</string> + <string name="screen_control">Kontrola ekranu</string> + <string name="system_screen_timeout_descr">Wyłącza ekran zgodnie z systemowym wygaszaniem ekranu.</string> + <string name="system_screen_timeout">Wygaś ekran zgodnie z ustawieniami systemu</string> + <string name="turn_screen_on_descr">Wybierz opcje przebudzania ekranu (upewnij się, że OsmAnd jest na pierwszym planie gdy urządzenie jest zablokowane):</string> + <string name="turn_screen_on_navigation_instructions_descr">Każda instrukcja nawigacji włączy ekran.</string> + <string name="turn_screen_on_navigation_instructions">Instrukcje nawigacji</string> + <string name="uninstall_speed_cameras">Odinstaluj fotoradary</string> + <string name="shared_string_legal">Prawny</string> + <string name="speed_camera_pois">Punkty fotoradarów</string> + <string name="speed_cameras_legal_descr">W niektórych krajachi regionach uzywanie aplikacji ostrzegających o fotoradarach jest zabronione przez prawo. +\n +\nMusisz dokonać wyboru w zależności od prawa danego kraju. +\n +\nWybierz %1$S i będziesz otrzymywać powiadomienia i ostrzeżenia o fotoradarach. +\n +\nWybierz %2$s. Wszystkie dane o fotoradarach: ostrzeżenia, powiadomienia, miejsca użyteczne zostaną usunięte, aż OsmAnd zostanie zainstalowany ponownie.</string> + <string name="keep_active">Nie wyłączaj</string> + <string name="shared_string_uninstall">Odinstaluj</string> + <string name="speed_cameras_alert">Ostrzeżenia o fotoradarach są prawnie zabronione w niektórych krajach.</string> + <string name="add_online_source">Dodaj źródło online</string> + <string name="clear_tiles_warning">Zastosowanie tych zmian wyczyści dane z pamięci podręcznej dla tego źródła kafelków</string> + <string name="shared_string_bearing">Kierunek</string> + <string name="item_deleted">Usunięto %1$s</string> + <string name="speed_cameras_restart_descr">Ponowne uruchomienie jest wymagane, żeby całkowicie usunąć dane fotoradarów.</string> + <string name="shared_string_uninstall_and_restart">Odinstaluj i zrestartuj</string> </resources> \ No newline at end of file From adf40da13c55b45f1aa2e2307d0246c25625eb08 Mon Sep 17 00:00:00 2001 From: Suren <aslanyan@list.ru> Date: Fri, 19 Jun 2020 18:03:23 +0000 Subject: [PATCH 112/300] Translated using Weblate (Armenian) Currently translated at 78.6% (2675 of 3403 strings) --- OsmAnd/res/values-hy/strings.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml index cfd3abd4d6..7a3c8d0e57 100644 --- a/OsmAnd/res/values-hy/strings.xml +++ b/OsmAnd/res/values-hy/strings.xml @@ -2931,4 +2931,15 @@ \nՄի օր - 1440 րոպե: \nՄեկ շաբաթ - 10.080 րոպե: \nՄեկ ամիս - 43.829 րոպե:</string> + <string name="keep_active">Պահել ակտիվ</string> + <string name="shared_string_uninstall">Ջնջել</string> + <string name="speed_cameras_alert">Որոշ երկրներում արագության վերահսկողության տեսախցիկների ծանուցումը արգելված է օրենքով ։</string> + <string name="quick_action_showhide_mapillary_title">Ցույց տալ/Թաքցնել Mapillary</string> + <string name="quick_action_mapillary_hide">Թաքցնել</string> + <string name="quick_action_mapillary_show">Ցույց տալ Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Անջատիչ - Mapillary շերտը ցույց տալու կամ թաքցնել ու քարտեզի վրա:</string> + <string name="shared_string_bearing">Կողմնորոշում</string> + <string name="item_deleted">%1$s ջնջվեց</string> + <string name="speed_cameras_restart_descr">Անհրաժեշտ է վերագործարկում արագության խցիկնեևի տվյալները ամբողջությամբ ջնջելու համար:</string> + <string name="shared_string_uninstall_and_restart">Ջնջել և վերագործարկեք</string> </resources> \ No newline at end of file From 79331c306e9b2c4e68497a315fb6be15d79fba4c Mon Sep 17 00:00:00 2001 From: Softmap <skdhd5@gmail.com> Date: Fri, 19 Jun 2020 19:57:16 +0000 Subject: [PATCH 113/300] Translated using Weblate (Arabic) Currently translated at 99.8% (3398 of 3403 strings) --- OsmAnd/res/values-ar/strings.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index e64e706a81..01f4b5cc82 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -3776,4 +3776,14 @@ <string name="quick_action_mapillary_hide">إخفاء مابيلاري</string> <string name="quick_action_mapillary_show">إظهار مابيلاري</string> <string name="quick_action_showhide_mapillary_descr">إظهار أو إخفاء طبقة مابيلاري على الخريطة.</string> + <string name="speed_camera_pois">POI كاميرا مراقبة السرعة</string> + <string name="uninstall_speed_cameras">إلغاء تثبيت كاميرات السرعة</string> + <string name="shared_string_legal">قانوني</string> + <string name="keep_active">ابقا نشطا</string> + <string name="shared_string_uninstall">إلغاء التثبيت</string> + <string name="speed_cameras_alert">يحظر القانون تنبيهات كاميرات السرعة في بعض البلدان.</string> + <string name="shared_string_bearing">اتجاه</string> + <string name="item_deleted">%1$s محذوفة</string> + <string name="speed_cameras_restart_descr">إعادة التشغيل مطلوبة لحذف بيانات كاميرا السرعة بالكامل.</string> + <string name="shared_string_uninstall_and_restart">إلغاء التثبيت وإعادة التشغيل</string> </resources> \ No newline at end of file From 7a4b08f78acdeac393b83d196c7a1e0b498fd6ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= <epost@anotheragency.no> Date: Fri, 19 Jun 2020 19:10:10 +0000 Subject: [PATCH 114/300] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 9.2% (315 of 3403 strings) --- OsmAnd/res/values-nb/strings.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index b97169aea4..9dfe87fbb2 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -3659,4 +3659,13 @@ <string name="tiles_storage_descr">Velg hvordan nedlastede fliskart lagres.</string> <string name="details_dialog_decr">Kontroller synlighet for ytterligere detaljer vist på kartet</string> <string name="shared_string_night_map">Nattkart</string> + <string name="turn_screen_on_power_button">Av/på-knapp</string> + <string name="turn_screen_on_proximity_sensor">Nærhetssensor</string> + <string name="shared_string_delete_all_q">Slett alle\?</string> + <string name="shared_string_legal">Juridisk</string> + <string name="add_online_source">Legg til nettbasert kilde</string> + <string name="shared_string_meters">meter</string> + <string name="vessel_height_warning_link">Sett skipshøyde</string> + <string name="vessel_height_limit_description">Sett skipshøyde for å unngå lave broer. Husk at hvis broen åpner seg, brukes høyden fra åpen tilstand.</string> + <string name="vessel_width_limit_description">Sett skipsbredde for å unngå smale broer</string> </resources> \ No newline at end of file From fe6be869b66466063a4f891e6cf732c38e5aa032 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf <lmelonimamo@yahoo.it> Date: Fri, 19 Jun 2020 22:14:15 +0000 Subject: [PATCH 115/300] Translated using Weblate (Sardinian) Currently translated at 99.6% (3392 of 3403 strings) --- OsmAnd/res/values-sc/strings.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index faa1c80347..b42ad0c9df 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3788,4 +3788,21 @@ <string name="quick_action_mapillary_hide">Cua Mapillary</string> <string name="quick_action_mapillary_show">Ammustra Mapillary</string> <string name="quick_action_showhide_mapillary_descr">Unu butone pro ammustrare o cuare s\'istratu de Mapillary in sa mapa.</string> + <string name="uninstall_speed_cameras">Disinstalla sos autovelox</string> + <string name="shared_string_legal">Legale</string> + <string name="speed_camera_pois">PDI de sos autovelox</string> + <string name="speed_cameras_legal_descr">In unos cantos istados o regiones, s\'impreu de aplicatziones pro avisare de sos autovelox est proibidu dae sa lege. +\n +\nDepes fàghere un\'issèberu chi dipendet dae sa lege de s\'istadu tuo. +\n +\nIscherta %1$s e as a retzire avisos pro sos autovelox. +\n +\nIscherta %2$s. Totu sos datos relativos a sos autovelox: avisos, notìficas e PDI ant a èssere iscantzellados finas a cando OsmAnd no at a èssere torradu a installare dae nou.</string> + <string name="speed_cameras_alert">Sos avisos pro sos autovelox sunt proibidos dae sa lege in unos cantos istados.</string> + <string name="keep_active">Mantene ativu</string> + <string name="shared_string_uninstall">Disinstalla</string> + <string name="shared_string_bearing">Orientamentu</string> + <string name="item_deleted">%1$s iscantzelladu</string> + <string name="speed_cameras_restart_descr">Depes torrare a allùghere pro iscantzellare de su totu sos datos de sos autovelox.</string> + <string name="shared_string_uninstall_and_restart">Disinstalla e torra a allùghere</string> </resources> \ No newline at end of file From 6dbf47e6b9468cca6bd297ece2d1bf8966cfe837 Mon Sep 17 00:00:00 2001 From: Yunkers <wkulma@onet.eu> Date: Sat, 20 Jun 2020 07:42:25 +0000 Subject: [PATCH 116/300] Translated using Weblate (Polish) Currently translated at 99.8% (3805 of 3809 strings) --- OsmAnd/res/values-pl/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-pl/phrases.xml b/OsmAnd/res/values-pl/phrases.xml index 7181c1a022..263a687f98 100644 --- a/OsmAnd/res/values-pl/phrases.xml +++ b/OsmAnd/res/values-pl/phrases.xml @@ -3823,4 +3823,6 @@ <string name="poi_fire_hydrant_style_water_source_groundwater">Woda podziemna</string> <string name="poi_fire_hydrant_type_pipe">Rura</string> <string name="poi_fire_hydrant_pressure_filter">Ciśnienie</string> + <string name="poi_traffic_signals_arrow">Strzałka</string> + <string name="poi_traffic_signals_vibration">Wibracja</string> </resources> \ No newline at end of file From d1a3e6623fb37e437e1b354f732c176a2c129350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= <oguzersen@protonmail.com> Date: Fri, 19 Jun 2020 20:49:49 +0000 Subject: [PATCH 117/300] Translated using Weblate (Turkish) Currently translated at 100.0% (267 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/tr/ --- OsmAnd-telegram/res/values-tr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-telegram/res/values-tr/strings.xml b/OsmAnd-telegram/res/values-tr/strings.xml index ede65e26b1..086306b609 100644 --- a/OsmAnd-telegram/res/values-tr/strings.xml +++ b/OsmAnd-telegram/res/values-tr/strings.xml @@ -103,7 +103,7 @@ <string name="show_gps_points">GPS noktalarını göster</string> <string name="show_gps_points_descr">Toplanan ve gönderilen GPS noktalarının miktarını göster.</string> <string name="please_update_osmand">Verileri haritada görüntülemek için lütfen OsmAnd\'ı güncelleyin</string> - <string name="bearing">Konum açısı</string> + <string name="bearing">Kerteriz</string> <string name="gps_points_in_buffer">gönderilen (%1$d arabellekte)</string> <string name="points_size">%1$d nokta</string> <string name="shared_string_date">Tarih</string> From b761c1d0909a927e391afda05794afa4df676908 Mon Sep 17 00:00:00 2001 From: Suren <aslanyan@list.ru> Date: Fri, 19 Jun 2020 17:48:17 +0000 Subject: [PATCH 118/300] Translated using Weblate (Armenian) Currently translated at 19.8% (53 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/hy/ --- OsmAnd-telegram/res/values-hy/strings.xml | 56 ++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/OsmAnd-telegram/res/values-hy/strings.xml b/OsmAnd-telegram/res/values-hy/strings.xml index a6b3daec93..a4ac71b3fd 100644 --- a/OsmAnd-telegram/res/values-hy/strings.xml +++ b/OsmAnd-telegram/res/values-hy/strings.xml @@ -1,2 +1,56 @@ <?xml version="1.0" encoding="utf-8"?> -<resources></resources> \ No newline at end of file +<resources> + <string name="search_contacts">Որոնել կոնտակտներ</string> + <string name="bearing">Կողմնորոշում</string> + <string name="altitude">Բարձրություն</string> + <string name="precision">Ճշգրտություն</string> + <string name="direction">Ուղղություն</string> + <string name="privacy">Գաղտնիության</string> + <string name="proxy">Պրոկսի</string> + <string name="proxy_settings">Proxy Կարգավորումներ</string> + <string name="proxy_disconnected">Անջատված է</string> + <string name="proxy_connected">Միացված է</string> + <string name="proxy_type">Proxy տեսակը</string> + <string name="shared_string_enable">Միացնել</string> + <string name="shared_string_connection">Կապ</string> + <string name="proxy_server">Սերվեր</string> + <string name="proxy_port">Պորտ</string> + <string name="proxy_credentials">Հավատարմագրման տվյալներ</string> + <string name="proxy_username">Օգտագործողի անունը</string> + <string name="proxy_password">Գաղտնաբառ</string> + <string name="proxy_key">Բանալի</string> + <string name="gpx_settings">GPX կարգավորումներ</string> + <string name="min_logging_speed_descr">Ֆիլտր՝ չգրանցել, քանի դեռ չի հասել անհրաժեշտ արագությանը</string> + <string name="min_logging_speed">Նվազագույն գրանցման արագությունը</string> + <string name="min_logging_accuracy_descr">Ֆիլտր՝ չգրանցել, քանի դեռ չի հասել անհրաժեշտ ճշգրտությանը</string> + <string name="min_logging_accuracy">Նվազագույն գրանցման ճշգրտությունը</string> + <string name="min_logging_distance_descr">Ֆիլտր՝ նոր կետի գրանցման համար անհրաժեշտ նվազագույն հեռավորությունը</string> + <string name="min_logging_distance">Նվազագույն գրանցման հեռավորությունը</string> + <string name="shared_string_select">Ընտրել</string> + <string name="timeline_no_data">Տվյալներ չկա</string> + <string name="timeline_no_data_descr">Ընտրված օրվա համար հավաքագրված տվյալներ չկան</string> + <string name="start_end_date">Սկզբ - Ավարտ ամսաթիվը</string> + <string name="set_time_timeline_descr">Ընտրեք ժամանակ ցուցադրելու համար</string> + <string name="shared_string_apply">Կիրառել</string> + <string name="shared_string_start">Սկիզբ</string> + <string name="shared_string_end">Վերջ</string> + <string name="saved_messages">Պահպանված հաղորդագրությունները</string> + <string name="unit_of_speed_system">Արագության չափման միավոր</string> + <string name="unit_of_speed_system_descr">Ընտրեք արագության չափման միավորը:</string> + <string name="unit_of_length">Հեռավորության չափման միավոր</string> + <string name="unit_of_length_descr">Փոխել հեռավորության չափման միավորը։</string> + <string name="units_and_formats">Չափման միավորներ եւ ձեւաչափեր</string> + <string name="time_zone">Ժամային գոտին</string> + <string name="time_zone_descr">Ընտրեք ժամային գոտին, որպեսզի ցույց տա ձեր գտնվելու վայրը հաղորդագրություններում:</string> + <string name="buffer_time">Բուֆերի ավարտման ժամկետը</string> + <string name="buffer_time_descr">Կետերի առավելագույն պահպանման ժամանակը բուֆերում</string> + <string name="status_widget_title">OsmAnd Tracker- ի կարգավիճակը</string> + <string name="shared_string_suggested">Առաջարկվում է</string> + <string name="back_to_osmand">Վերադառնալ OsmAnd</string> + <string name="duration_ago">%1$s առաջ</string> + <string name="last_response_duration">Վերջին պատասխանը՝ %1$s առաջ</string> + <string name="last_update_from_telegram_duration">Վերջին թարմացումը Telegram- ից՝ %1$s առաջ</string> + <string name="last_response_date">Վերջին պատասխանը՝ %1$s</string> + <string name="last_update_from_telegram_date">Վերջին թարմացումը Telegram- ից.%1$s</string> + <string name="shared_string_error_short">ՍԽԱԼ</string> +</resources> \ No newline at end of file From ae77d4089e8ab247e1019e067915c57c285e6ee2 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Sat, 20 Jun 2020 12:51:34 +0300 Subject: [PATCH 119/300] tags fix --- .../java/net/osmand/binary/BinaryMapRouteReaderAdapter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index 22f147e7b3..65f86b3d88 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -358,7 +358,7 @@ public class BinaryMapRouteReaderAdapter { destinationTypeRule = id; } else if (tags.equals("destination:ref") || tags.equals("destination:ref:forward") || tags.equals("destination:ref:backward")) { destinationRefTypeRule = id; - } else if (tags.equals("traffic_signals:direction") || tags.equals("give_way:direction") || tags.equals("stop:direction")) { + } else if (tags.endsWith("direction")) { if (val.equals("forward")) { trafficSignalsDir.put(id, 1); } else if (val.equals("backward")) { From c1f5534c32a0f1c96c059d8fec3edef662b36796 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Sat, 20 Jun 2020 16:31:47 +0300 Subject: [PATCH 120/300] simplify center calc for 4-point polygons --- .../src/main/java/net/osmand/osm/edit/OsmMapUtils.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java index 5be470ac4d..cf9def40cf 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java @@ -87,6 +87,12 @@ public class OsmMapUtils { } public static LatLon getComplexPolyCenter(Collection<Node> outer, List<List<Node>> inner) { + if (outer.size() <= 5 && inner == null) { + List<Node> sub = new ArrayList<>(outer); + + return getWeightCenterForNodes(sub.subList(0, sub.size()-1)); + } + final List<List<LatLon>> rings = new ArrayList<>(); List<LatLon> outerRing = new ArrayList<>(); From 2e852f4e9e8df2533c3efc58d5e422295318bab1 Mon Sep 17 00:00:00 2001 From: Hakuchi <heimlikloh@mail.com> Date: Sat, 20 Jun 2020 09:20:46 +0000 Subject: [PATCH 121/300] Translated using Weblate (German) Currently translated at 99.9% (3400 of 3403 strings) --- OsmAnd/res/values-de/strings.xml | 132 +++++++++++++++---------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index b32a0fb396..f0ba49e2d8 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -15,7 +15,7 @@ <string name="disable_recording_once_app_killed_descrp">Die GPX-Aufzeichnung wird angehalten, wenn OsmAnd beendet wird (über „zuletzt verwendete Apps“). (Die Hintergrunddienst-Anzeige verschwindet aus der Android-Benachrichtigungsleiste.)</string> <string name="shared_string_import2osmand">In OsmAnd importieren</string> <string name="tips_and_tricks_descr">Häufig gestellte Fragen, neueste Änderungen und anderes.</string> - <string name="delay_to_start_navigation">Zielführung beginnen nach…</string> + <string name="delay_to_start_navigation">Zielführung beginnen nach …</string> <string name="delay_to_start_navigation_descr">Wartezeit festlegen, um mit der Zielführung zu beginnen.</string> <string name="simulate_your_location">Standort simulieren</string> <string name="rendering_attr_OSMMapperAssistant_name">OSM-Mapper-Assistent</string> @@ -94,7 +94,7 @@ <string name="background_service_is_enabled_question">OsmAnd-Hintergrunddienst läuft noch. Ebenfalls beenden?</string> <string name="rendering_attr_roadColors_description">Auswahl eines Straßen-Farbschemas:</string> <string name="rendering_attr_roadColors_name">Straßenfarbschema</string> - <string name="show_warnings_title">Warnungen anzeigen…</string> + <string name="show_warnings_title">Warnungen anzeigen …</string> <string name="show_warnings_descr">Verkehrswarnungen (Tempolimits, Stoppzeichen, Rüttelschwellen, Tunnel), Blitzerwarner und Fahrspuranzeige konfigurieren.</string> <string name="use_compass_navigation_descr">Kompass verwenden, wenn keine andere Richtungsbestimmung möglich ist.</string> <string name="use_compass_navigation">Kompass verwenden</string> @@ -252,7 +252,7 @@ <string name="offline_edition">Offline-Bearbeitung</string> <string name="offline_edition_descr">Immer Offline-Bearbeitung verwenden.</string> <string name="update_poi_does_not_change_indexes">Das Bearbeiten von POIs innerhalb von OsmAnd beeinflusst nicht die heruntergeladenen Offline-Karten, sondern wird in einer Datei auf Ihrem Gerät gespeichert.</string> - <string name="local_openstreetmap_uploading">Hochladen…</string> + <string name="local_openstreetmap_uploading">Hochladen …</string> <string name="local_openstreetmap_were_uploaded">{0} POI/Notizen wurden hochgeladen</string> <string name="local_openstreetmap_uploadall">Alle hochladen</string> <string name="local_openstreetmap_upload">Änderung zu OSM hochladen</string> @@ -325,7 +325,7 @@ \n Es werden {1} MB (von {2} MB) benötigt.</string> <string name="use_transparent_map_theme">Transparentes Layout</string> <string name="native_library_not_supported">Native Bibliothek wird auf diesem Gerät nicht unterstützt.</string> - <string name="init_native_library">Native Bibliothek wird initialisiert…</string> + <string name="init_native_library">Native Bibliothek wird initialisiert …</string> <string name="choose_auto_follow_route">Kartenansicht automatisch zentrieren</string> <string name="choose_auto_follow_route_descr">Zeit, bis die Kartenansicht mit der aktuellen Position synchronisiert ist.</string> <string name="auto_follow_route_navigation">Nachführung nur bei aktiver Navigation</string> @@ -354,10 +354,10 @@ <string name="map_version_changed_info">Laden Sie die neue Version der App herunter, um die neuen Kartendateien nutzen zu können.</string> <string name="shared_string_rename">Umbenennen</string> <string name="poi_filter_nominatim">Online-Nominatim</string> - <string name="search_position_current_location_search">Standort wird ermittelt…</string> + <string name="search_position_current_location_search">Standort wird ermittelt …</string> <string name="search_position_current_location_found">Mein Standort (gefunden)</string> - <string name="search_position_address">Adresse…</string> - <string name="search_position_favorites">Favorit…</string> + <string name="search_position_address">Adresse …</string> + <string name="search_position_favorites">Favoriten …</string> <string name="search_position_undefined">Undefiniert</string> <!-- string name="search_position_current_location">Aktueller Standort…</string --> <string name="search_position_map_view">Aktueller Kartenmittelpunkt</string> @@ -413,7 +413,7 @@ <string name="map_text_size">Karten-Textgröße</string> <string name="trace_rendering">Infos zur Rendering-Fehlersuche</string> <string name="trace_rendering_descr">Rendering-Performance anzeigen (Geschwindigkeit des Offline-Bildaufbaus).</string> - <string name="installing_new_resources">Entpacke neue Daten…</string> + <string name="installing_new_resources">Entpacke neue Daten …</string> <string name="internet_connection_required_for_online_route">Die Online-Navigation funktioniert nicht offline.</string> <string name="tts_language_not_supported_title">Sprache nicht unterstützt</string> <string name="tts_language_not_supported">Die gewählte Sprache wird von der installierten Android-TTS-Engine nicht unterstützt. Stattdessen wird die voreingestellte TTS-Sprache verwendet. Im Market nach einer anderen TTS-Engine suchen\?</string> @@ -421,7 +421,7 @@ <string name="tts_missing_language_data">Gewählte Sprache aus dem Market installieren?</string> <string name="switch_to_vector_map_to_see">Es gibt eine Offline-Vektorkarte für diesen Ort. \n\t -\n\tWählen Sie \'Menü → Karte konfigurieren → Kartenquelle… → Offline-Vektorkarten\', um sie zu verwenden.</string> +\n\tWählen Sie \'Menü → Karte konfigurieren → Kartenquelle … → Offline-Vektorkarten\', um sie zu verwenden.</string> <string name="choose_audio_stream">Navi-Sprachausgabe</string> <string name="choose_audio_stream_descr">Lautsprecher für Sprachansagen auswählen.</string> <string name="voice_stream_voice_call">Wie Anrufe (unterbricht Bluetooth-Verbindung zum Autoradio)</string> @@ -433,17 +433,17 @@ <string name="map_transparency_descr">Transparenz der Hauptkarte ändern.</string> <string name="map_transparency">Kartentransparenz</string> <string name="modify_transparency">Transparenz festlegen (0 - durchsichtig, 255 - undurchsichtig)</string> - <string name="layer_underlay">Underlay-Karte…</string> + <string name="layer_underlay">Underlay-Karte …</string> <string name="map_underlay">Underlay-Karte</string> <string name="map_underlay_descr">Underlay-Karte auswählen</string> - <string name="layer_overlay">Overlay-Karte…</string> + <string name="layer_overlay">Overlay-Karte …</string> <string name="shared_string_none">Keine</string> <string name="map_overlay">Overlay-Karte</string> <string name="map_overlay_descr">Overlay-Karte auswählen</string> <string name="tile_source_already_installed">Karte schon installiert, Einstellungen werden aktualisiert.</string> <string name="select_tile_source_to_install">Zu installierende oder zu aktualisierende Karten (Kacheln) wählen.</string> <string name="internet_not_available">Kann Vorgang ohne Internetverbindung nicht abschließen.</string> - <string name="install_more">Weitere installieren…</string> + <string name="install_more">Weitere installieren …</string> <string name="level_to_switch_vector_raster_descr">Verwenden Sie Rasterkarten für alles, was über diese Ebene hinausgeht.</string> <string name="level_to_switch_vector_raster">Minimale Vektor-Zoomstufe</string> <string name="create_poi_link_to_osm_doc"><u>Online OSM</u> Kartenklassifizierung mit Bildern.</string> @@ -493,10 +493,10 @@ <string name="amenity_type_sustenance">Gastronomie</string> <string name="amenity_type_tourism">Touristik</string> <string name="amenity_type_transportation">ÖPNV</string> - <string name="indexing_address">Indiziere Adressen…</string> - <string name="indexing_map">Indiziere Karte…</string> - <string name="indexing_poi">Indiziere POI…</string> - <string name="indexing_transport">Indiziere ÖPNV…</string> + <string name="indexing_address">Indiziere Adressen …</string> + <string name="indexing_map">Indiziere Karte …</string> + <string name="indexing_poi">Indiziere POI …</string> + <string name="indexing_transport">Indiziere ÖPNV …</string> <string name="shared_string_io_error">I/O-Fehler</string> <string name="km">km</string> <string name="km_h">km/h</string> @@ -509,7 +509,7 @@ <string name="poi_filter_for_tourists">Für Touristen</string> <string name="poi_filter_fuel">Tankstelle</string> <string name="poi_filter_namefinder">Online-Namensfinder</string> - <string name="reading_cached_tiles">Lese zwischengespeicherte Kacheln…</string> + <string name="reading_cached_tiles">Lese zwischengespeicherte Kacheln …</string> <string name="version_index_is_big_for_memory">Nicht genügend Speicher für Index \'\'{0}\'\'</string> <string name="version_index_is_not_supported">Die Index-Version \'\'{0}\'\' wird nicht unterstützt</string> <string name="osmand_routing_experimental">Die Offline-Navigation von OsmAnd ist noch experimentell und funktioniert nicht gut für Entfernungen über 20 km. @@ -519,10 +519,10 @@ <string name="application_dir">Datenordner</string> <string name="osmand_net_previously_installed">Alle Offline-Daten der älteren App werden in der neuen weiter unterstützt. Favoriten müssen aber in der Vorversion exportiert und anschließend in die neue Version importiert werden.</string> <string name="build_installed">Build {0} installiert ({1}).</string> - <string name="downloading_build">Lade Build herunter…</string> + <string name="downloading_build">Lade Build herunter …</string> <string name="install_selected_build">OsmAnd ({0} von {1} {2} MB) installieren?</string> <string name="loading_builds_failed">Laden der Liste von OsmAnd-Builds ist fehlgeschlagen</string> - <string name="loading_builds">Lade OsmAnd-Builds…</string> + <string name="loading_builds">Lade OsmAnd-Builds …</string> <string name="select_build_to_install">Zu installierenden OsmAnd-Build auswählen</string> <string name="contribution_activity">Version installieren</string> <string name="gps_status_app_not_found">App \'GPS Status\' ist nicht installiert. Soll diese im Market gesucht werden\?</string> @@ -548,7 +548,7 @@ <string name="continuous_rendering">Kontinuierlicher Kartenaufbau</string> <string name="continuous_rendering_descr">Wähle zwischen kontinuierlichem Kartenaufbau oder Bilddarstellung auf einmal.</string> <string name="rendering_exception">Ausgewählter Bereich konnte nicht gezeichnet werden.</string> - <string name="show_point_options">Standort verwenden…</string> + <string name="show_point_options">Standort verwenden …</string> <string name="renderer_load_sucess">Renderer geladen</string> <string name="renderer_load_exception">Renderer konnte nicht geladen werden.</string> <string name="renderers">Vektor-Renderer</string> @@ -568,7 +568,7 @@ <string name="voices">Sprachansagen</string> <string name="voice">Sprachansage</string> <string name="no_vector_map_loaded">Vektorkarten wurden nicht geladen</string> - <string name="layer_gpx_layer">GPX-Dateien…</string> + <string name="layer_gpx_layer">GPX-Dateien …</string> <string name="error_reading_gpx">GPX-Daten konnten nicht gelesen werden</string> <string name="vector_data">Offline-Vektorkarten</string> <string name="transport_context_menu">Suche nach Verbindung an Haltestelle</string> @@ -595,9 +595,9 @@ <string name="layer_route">Route</string> <string name="shared_string_favorites">Favoriten</string> <string name="layer_osm_bugs">OSM-Notizen (online)</string> - <string name="layer_poi">POI-Overlay…</string> + <string name="layer_poi">POI-Overlay …</string> <string name="layer_amenity_label">POI-Overlay-Bezeichnungen</string> - <string name="layer_map">Kartenquelle…</string> + <string name="layer_map">Kartenquelle …</string> <string name="menu_layers">Kartenebenen</string> <string name="context_menu_item_search_poi">Suche nach POI</string> <string name="use_trackball_descr">Trackball-Gerät für Kartenbewegung verwenden.</string> @@ -620,7 +620,7 @@ <string name="menu_mute_on">Sprache ist aus</string> <string name="voice_provider_descr">Sprachpaket für Navigation auswählen.</string> <string name="voice_provider">Sprachansagen</string> - <string name="voice_data_initializing">Sprachansagen werden initialisiert…</string> + <string name="voice_data_initializing">Sprachansagen werden initialisiert …</string> <string name="voice_data_not_supported">Sprachpaket-Version wird nicht unterstützt</string> <string name="voice_data_corrupted">Sprachpaket ist defekt</string> <string name="voice_data_unavailable">Das gewählte Sprachansagepaket ist nicht verfügbar</string> @@ -628,7 +628,7 @@ \nKarte lässt sich nicht darstellen.</string> <string name="sd_mounted_ro">Speicherkarte befindet sich im Nur-Lesen-Modus. \nEs ist jetzt nur noch möglich, die vorinstallierte Karte zu sehen, nicht aber neue Bereiche herunterzuladen.</string> - <string name="unzipping_file">Datei wird entpackt…</string> + <string name="unzipping_file">Datei wird entpackt …</string> <string name="route_tr">rechts abbiegen, dann</string> <string name="route_tshr">scharf rechts abbiegen, dann</string> <string name="route_tslr">halb rechts abbiegen, dann</string> @@ -640,7 +640,7 @@ <string name="first_time_continue">Weiter</string> <string name="first_time_download">Offline-Daten herunterladen</string> <string name="first_time_msg">Danke, dass Sie OsmAnd verwenden. Laden Sie regionale Daten für die Offline-Verwendung über \'Einstellungen → Kartenverwaltung\' herunter, um Landkarten anzusehen, Adressen, POIs und öffentliche Verkehrsmittel zu finden.</string> - <string name="search_poi_location">Warte auf Signal…</string> + <string name="search_poi_location">Warte auf Signal …</string> <string name="search_near_map">Suche in der Nähe</string> <string name="search_nearby">Suche um Aufenthaltsort</string> <string name="map_orientation_default">Gleich wie Gerät</string> @@ -680,11 +680,11 @@ <string name="favorite">Favorit</string> <string name="shared_string_clear_all">Alle löschen</string> <string name="shared_string_history">Verlauf</string> - <string name="uploading_data">Daten hochladen…</string> - <string name="uploading">Hochladen…</string> + <string name="uploading_data">Daten hochladen …</string> + <string name="uploading">Hochladen …</string> <string name="search_nothing_found">Kein Treffer</string> - <string name="searching">Suchen…</string> - <string name="searching_address">Adresse suchen…</string> + <string name="searching">Suchen …</string> + <string name="searching_address">Adresse suchen …</string> <string name="search_osm_nominatim">Online-Suche mit OSM Nominatim</string> <string name="hint_search_online">Online-Suche: Hausnummer, Straße, Ort</string> <string name="search_offline_address">Offline-Suche</string> @@ -699,7 +699,7 @@ <string name="download_question_exist">Offline Daten für {0} existieren schon ({1}). Aktualisieren ({2})?</string> <string name="address">Adresse</string> <string name="shared_string_download_successful">Heruntergeladen</string> - <string name="downloading_list_indexes">Die Liste der verfügbaren Regionen wird geladen…</string> + <string name="downloading_list_indexes">Die Liste der verfügbaren Regionen wird geladen …</string> <string name="list_index_files_was_not_loaded">Liste der Regionen konnte nicht von https://osmand.net abgerufen werden.</string> <string name="select_index_file_to_download">Suche war erfolglos. Karten für nicht vorhandene Regionen können selbst erstellt werden, siehe https://osmand.net.</string> <string name="fav_points_edited">Favorit wurde bearbeitet</string> @@ -711,17 +711,17 @@ <string name="mark_final_location_first">Bitte zuerst ein Ziel festlegen</string> <string name="get_directions">Navigation</string> <string name="opening_hours">Öffnungszeiten</string> - <string name="opening_changeset">Änderungssatz öffnen…</string> - <string name="closing_changeset">Änderungssatz schließen…</string> - <string name="commiting_node">Übertrage Knoten…</string> - <string name="loading_poi_obj">Lade POI…</string> + <string name="opening_changeset">Änderungssatz öffnen …</string> + <string name="closing_changeset">Änderungssatz schließen …</string> + <string name="commiting_node">Übertrage Knoten …</string> + <string name="loading_poi_obj">Lade POI …</string> <string name="auth_failed">Autorisierung fehlgeschlagen</string> <string name="failed_op">fehlgeschlagen</string> - <string name="converting_names">Lokale/Englische Namen werden konvertiert…</string> - <string name="loading_streets_buildings">Lade Straßen und Hausnummern…</string> - <string name="loading_postcodes">Lade Postleitzahlen…</string> - <string name="loading_streets">Lade Straßen…</string> - <string name="loading_cities">Lade Orte…</string> + <string name="converting_names">Lokale/Englische Namen werden konvertiert …</string> + <string name="loading_streets_buildings">Lade Straßen und Hausnummern …</string> + <string name="loading_postcodes">Lade Postleitzahlen …</string> + <string name="loading_streets">Lade Straßen …</string> + <string name="loading_cities">Lade Orte …</string> <string name="poi">POI</string> <string name="error_occurred_saving_gpx">GPX-Datei konnte nicht gespeichert werden.</string> <string name="error_calculating_route">Route konnte nicht berechnet werden.</string> @@ -732,10 +732,10 @@ <string name="invalid_locations">Koordinaten sind ungültig</string> <string name="go_back_to_osmand">Zurück zur Karte</string> <string name="shared_string_close">Schließen</string> - <string name="loading_data">Daten werden geladen…</string> - <string name="reading_indexes">Lese lokale Daten…</string> + <string name="loading_data">Daten werden geladen …</string> + <string name="reading_indexes">Lese lokale Daten …</string> <string name="previous_run_crashed">Die vorherige Programminstanz war abgestürzt. Logdatei unter {0}. Fehler bitte melden und Logdatei anhängen.</string> - <string name="saving_gpx_tracks">GPX-Datei wird gespeichert…</string> + <string name="saving_gpx_tracks">GPX-Datei wird gespeichert …</string> <string name="finished_task">Abgeschlossen</string> <string name="use_online_routing_descr">Internet zur Routenberechnung verwenden.</string> <string name="use_online_routing">Online-Navigation nutzen</string> @@ -924,7 +924,7 @@ <string name="show_lanes">Fahrspuren</string> <string name="avoid_unpaved">Keine unbefestigten Wege</string> <string name="avoid_ferries">Keine Fähren</string> - <string name="avoid_in_routing_title">Vermeiden von…</string> + <string name="avoid_in_routing_title">Vermeiden von …</string> <string name="map_widget_fluorescent">Routen in Leuchtfarbe</string> <string name="map_widget_show_ruler">Maßstab</string> <string name="map_widget_view_direction">Blickrichtung</string> @@ -935,7 +935,7 @@ <string name="filterpoi_activity">POI-Filter erstellen</string> <string name="email">E-Mail</string> <string name="add_tag">Eintrag hinzufügen</string> - <string name="btn_advanced_mode">Ergänzende Angaben…</string> + <string name="btn_advanced_mode">Ergänzende Angaben …</string> <string name="poi_filter_parking">Parkplatz</string> <string name="poi_filter_emergency">Notfall</string> <string name="poi_filter_public_transport">ÖPNV</string> @@ -1023,7 +1023,7 @@ <string name="map_widget_audionotes">Audio-Notizen</string> <string name="audionotes_plugin_description">Machen Sie während einer Reise Audio-, Foto- und Video-Notizen, indem Sie entweder eine Karten-Schaltfläche oder ein Standort-Kontextmenü verwenden.</string> <string name="audionotes_plugin_name">Audio-/Video-Notizen</string> - <string name="audionotes_location_not_defined">Benutzen Sie \'Standort verwenden…\', um dem Ort eine Notiz zuzuweisen.</string> + <string name="audionotes_location_not_defined">Benutzen Sie \'Standort verwenden … \', um dem Ort eine Notiz zuzuweisen.</string> <string name="osmand_srtm_long_description_1000_chars">Diese Erweiterung beinhaltet Höhenlinien und Relief-Schattierungen, die als Ergänzung zu den Standard-Offline-Karten von OsmAnd angezeigt werden können. Diese Funktionalität ist vor allem für Sportler, Wanderer, Radfahrer, Trekker und jeden interessant, der sich für das Geländerelief einer Landschaft interessiert. \n \nDie globalen Daten (zwischen 70° Nord und 70° Süd) basieren auf Messungen von SRTM (Shuttle Radar Topography Mission) und ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), einem bildgebenden System an Bord des Satelliten Terra, dem Flaggschiff des NASA-Programms zur Erdbeobachtung. ASTER beruht auf der erfolgreichen Zusammenarbeit zwischen der NASA, dem japanischen Ministerium für Wirtschaft, Handel und Industrie und dem japanischen Raumfahrtprogramm (J-spacesystems).</string> @@ -1033,7 +1033,7 @@ <string name="precise_routing_mode">Präzises Routing (experimentell)</string> <string name="local_indexes_cat_av">Audio-/Video-Daten</string> <string name="prefer_motorways">Autobahnen bevorzugen</string> - <string name="prefer_in_routing_title">Bevorzugen von…</string> + <string name="prefer_in_routing_title">Bevorzugen von …</string> <string name="prefer_in_routing_descr">Autobahnen bevorzugen.</string> <string name="max_speed_none">keine</string> <string name="item_checked">ausgewählt</string> @@ -1064,7 +1064,7 @@ <string name="use_magnetic_sensor">Magnetsensor verwenden</string> <string name="local_indexes_cat_srtm">Höhenlinien</string> <string name="wait_current_task_finished">Bitte warten Sie, der laufende Task wird beendet</string> - <string name="shared_string_downloading">Herunterladen…</string> + <string name="shared_string_downloading">Herunterladen …</string> <string name="local_osm_changes_backup_successful">OSM-Änderungsdatei erzeugt %1$s</string> <string name="local_osm_changes_backup_failed">OSM-Änderungen konnten nicht gesichert werden.</string> <string name="local_osm_changes_backup">Als OSM-Änderung sichern</string> @@ -1115,7 +1115,7 @@ <string name="av_camera_focus_hiperfocal">Hyperfokaler Fokus</string> <string name="av_camera_focus_edof">Erweiterte Schärfentiefe (EDOF)</string> <string name="av_camera_focus_macro">Makrofokus-Modus (Nahaufnahme)</string> - <string name="speak_title">Ansagen…</string> + <string name="speak_title">Ansagen …</string> <string name="speak_descr">Ansagen zu Straßennamen, Verkehrswarnungen (Stoppzeichen, Rüttelschwellen), Blitzerwarnern und Tempolimits konfigurieren.</string> <string name="speak_street_names">Straßennamen (TTS)</string> <string name="map_widget_fps_info">FPS-Debug-Info</string> @@ -1142,8 +1142,8 @@ <string name="edit_tilesource_expiration_time">Ablaufzeit (Minuten)</string> <string name="edit_tilesource_minzoom">Minimale Vergrößerung</string> <string name="edit_tilesource_url_to_load">URL</string> - <string name="edit_tilesource_choose_existing">Aus vorhandenen wählen…</string> - <string name="maps_define_edit">Definieren/Bearbeiten…</string> + <string name="edit_tilesource_choose_existing">Aus vorhandenen wählen …</string> + <string name="maps_define_edit">Definieren/Bearbeiten …</string> <string name="shared_string_and">und</string> <string name="shared_string_or">oder</string> <string name="shared_string_remember_my_choice">Auswahl merken</string> @@ -1174,9 +1174,9 @@ <string name="android_19_location_disabled">Seit Android 4.4 (KitKat) ist der alte Speicherort (%s) veraltet. Alle OsmAnd-Dateien an den neuen Speicherort kopieren\? \n Hinweis 1: Die ursprünglichen Dateien bleiben hiervon unberührt, können aber nachfolgend manuell gelöscht werden. \n Hinweis 2: Die Dateien können dann nicht mehr von OsmAnd und OsmAnd+ gemeinsam genutzt werden.</string> - <string name="copying_osmand_one_file_descr">Datei (%s) wird an den neuen Speicherort kopiert…</string> - <string name="copying_osmand_files_descr">OsmAnd-Dateien werden zum neuen Speicherort (%s) kopiert…</string> - <string name="copying_osmand_files">OsmAnd-Dateien werden kopiert…</string> + <string name="copying_osmand_one_file_descr">Datei (%s) wird an den neuen Speicherort kopiert …</string> + <string name="copying_osmand_files_descr">OsmAnd-Dateien werden zum neuen Speicherort (%s) kopiert …</string> + <string name="copying_osmand_files">OsmAnd-Dateien werden kopiert …</string> <string name="calculate_osmand_route_gpx">OsmAnd-Route offline berechnen</string> <string name="app_mode_truck">Lkw</string> <string name="guidance_preferences_descr">Navigationseinstellungen</string> @@ -1193,7 +1193,7 @@ <string name="calculate_osmand_route_without_internet">OsmAnd-Routenteil offline berechnen</string> <string name="use_displayed_track_for_navigation">Angezeigten Track zur Navigation verwenden?</string> <string name="keep_and_add_destination_point">Als weiteres Ziel hinzufügen</string> - <string name="select_gpx">GPX-Datei auswählen…</string> + <string name="select_gpx">GPX-Datei auswählen …</string> <string name="route_descr_select_destination">Ziel auswählen</string> <string name="interrupt_music_descr">Musikwiedergabe während Sprachansagen pausieren.</string> <string name="always_center_position_on_map">Standort immer in der Bildschirmmitte anzeigen</string> @@ -1217,7 +1217,7 @@ <string name="shared_string_tracks">Tracks</string> <string name="shared_string_my_favorites">Favoriten</string> <string name="shared_string_my_places">Meine Orte</string> - <string name="loading_smth">%1$s wird geladen…</string> + <string name="loading_smth">%1$s wird geladen …</string> <string name="map_widget_plain_time">Aktuelle Zeit</string> <string name="selected_gpx_info_show">" \n @@ -1344,7 +1344,7 @@ <string name="gpx_saved_sucessfully">GPX-Datei gespeichert unter {0}</string> <string name="gpx_option_calculate_first_last_segment">OsmAnd-Route für ersten und letzten Abschnitt berechnen</string> <string name="download_additional_maps">Fehlende Karten herunterladen: %1$s (%2$d MB)?</string> - <string name="shared_string_more">Mehr…</string> + <string name="shared_string_more">Mehr …</string> <string name="home">Übersichtsseite</string> <string name="rendering_attr_publicTransportMode_name">Bus-, Oberleitungsbus-, Sammeltaxi-Linien</string> <string name="record_plugin_name">Streckenaufzeichnung</string> @@ -1389,7 +1389,7 @@ <string name="wake_on_voice">Bildschirm aktivieren</string> <string name="wake_on_voice_descr">Bildschirm bei Navigationsanweisung aktivieren (falls aus).</string> <string name="shared_string_never">Niemals</string> - <string name="impassable_road">Straßen vermeiden…</string> + <string name="impassable_road">Straßen vermeiden …</string> <string name="rendering_attr_tramTrainRoutes_name">Straßenbahn- und Eisenbahnlinien</string> <string name="rendering_attr_trainLightrailRoutes_name">Stadtbahnlinien</string> <string name="rendering_attr_shareTaxiRoutes_name">Sammeltaxi-Linien</string> @@ -2023,12 +2023,12 @@ <string name="clear_tile_data">Alle Kartenkacheln löschen</string> <string name="skip_map_downloading_desc">Es sind keine Offline-Karten installiert. Sie können jetzt eine Karte auswählen oder später Karten über \'Menü → %1$s\' herunterladen.</string> <string name="search_another_country">Eine andere Region auswählen</string> - <string name="search_map">Karten werden gesucht…</string> + <string name="search_map">Karten werden gesucht …</string> <string name="first_usage_wizard_desc">Lassen Sie OsmAnd Ihren Standort bestimmen und für diese Region Karten zum Herunterladen vorschlagen.</string> <string name="location_not_found">Standort nicht gefunden</string> <string name="no_inet_connection">Keine Internetverbindung</string> <string name="no_inet_connection_desc_map">Erforderlich, um Karten herunterzuladen.</string> - <string name="search_location">Standort wird gesucht…</string> + <string name="search_location">Standort wird gesucht …</string> <string name="storage_free_space">Freier Speicherplatz</string> <string name="storage_place_description">OsmAnd speichert Daten (Karten, GPX-Dateien usw.) in \'%1$s\'.</string> <string name="give_permission">Berechtigung erteilen</string> @@ -2089,7 +2089,7 @@ <string name="route_calculation">Routenberechnung</string> <string name="gpx_no_tracks_title">Sie haben noch keine GPX-Dateien</string> <string name="gpx_no_tracks_title_folder">GPX-Dateien können dem Ordner hinzugefügt werden</string> - <string name="gpx_add_track">Weitere hinzufügen…</string> + <string name="gpx_add_track">Weitere hinzufügen …</string> <string name="upload_poi">POI hochladen</string> <string name="route_roundabout_short">Nehmen Sie die %1$d Ausfahrt</string> <string name="search_map_hint">Stadt oder Region</string> @@ -2341,7 +2341,7 @@ \n • Afrika: ** \n • Antarktis: * \n Die meisten Länder rund um den Globus stehen zum Herunterladen bereit -\n Von Afghanistan bis Zimbabwe, von Australien bis in die USA. Argentinien, Brasilien, Kanada, Frankreich, Deutschland, Mexiko, Großbritannien, Spanien … +\n Von Afghanistan bis Zimbabwe, von Australien bis in die USA. Argentinien, Brasilien, Kanada, Frankreich, Deutschland, Mexiko, Großbritannien, Spanien, … \n</string> <string name="osmand_plus_extended_description_part6">Funktionen für Radler und Fußgänger \n • Darstellung von Fuß-, Wander- und Radwegen, großartig für Outdoor-Aktivitäten @@ -2892,7 +2892,7 @@ <string name="on_foot">Zu Fuß</string> <string name="route_way">Weg</string> <string name="points_of_interests">Orte von Interesse (POI)</string> - <string name="waiting_for_route_calculation">Route wird berechnet…</string> + <string name="waiting_for_route_calculation">Route wird berechnet …</string> <string name="app_mode_public_transport">Öffentlicher Verkehr</string> <string name="avoid_roads_descr">Wählen Sie eine Straße, die Sie während der Navigation vermeiden möchten, entweder auf der Karte oder aus der folgenden Liste:</string> <string name="show_along_the_route">Entlang der Route anzeigen</string> @@ -2998,7 +2998,7 @@ \n \n</string> <string name="avoid_pt_types_descr">Wählen Sie öffentliche Verkehrsmittel aus, die Sie für die Navigation vermeiden möchten:</string> - <string name="avoid_pt_types">Verkehrsmittel ausschließen…</string> + <string name="avoid_pt_types">Verkehrsmittel ausschließen …</string> <string name="shared_string_walk">Gehen</string> <string name="save_poi_value_exceed_length">Kürzen Sie die Länge des Tags „%s“ auf weniger als 255 Zeichen.</string> <string name="save_poi_value_exceed_length_title">Länge des Wertes „%s“</string> @@ -3269,7 +3269,7 @@ <string name="language_and_output">Sprache und Ausgabe</string> <string name="reset_to_default">Auf Voreinstellung zurücksetzen</string> <string name="manage_profiles_descr">Profile erstellen, importieren, bearbeiten</string> - <string name="manage_profiles">App-Profile verwalten…</string> + <string name="manage_profiles">App-Profile verwalten …</string> <string name="osmand_settings_descr">Die gesamte App betreffend</string> <string name="osmand_settings">OsmAnd-Einstellungen</string> <string name="copy_from_other_profile">Aus anderem Profil kopieren</string> @@ -3297,7 +3297,7 @@ <string name="change_data_storage_full_description">OsmAnd-Datendateien an das neue Ziel verschieben\? \n%1$s &gt; %2$s</string> <string name="enter_path_to_folder">Geben Sie den Pfad zum Ordner ein</string> - <string name="shared_string_select_folder">Ordner…</string> + <string name="shared_string_select_folder">Ordner …</string> <string name="paste_Osmand_data_folder_path">Einfügen des Pfades zum Ordner mit OsmAnd-Daten</string> <string name="change_osmand_data_folder_question">OsmAnd-Datenordner ändern\?</string> <string name="move_maps_to_new_destination">Zum neuen Ziel verschieben</string> From 746215b98e127adf98939cbf13159dc7df269106 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani <sh.yaron@gmail.com> Date: Sat, 20 Jun 2020 10:13:51 +0000 Subject: [PATCH 122/300] Translated using Weblate (Hebrew) Currently translated at 99.9% (3402 of 3403 strings) --- OsmAnd/res/values-he/strings.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index 35688b4e7a..9a10579256 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -3794,4 +3794,14 @@ <string name="quick_action_mapillary_hide">הסתרת Mapillary</string> <string name="quick_action_mapillary_show">הצגת Mapillary</string> <string name="quick_action_showhide_mapillary_descr">מפסק להצגה או הסתרה של שכבת Mapillary על גבי המפה.</string> + <string name="uninstall_speed_cameras">הסרת מצלמות מהירות</string> + <string name="shared_string_legal">משפטי</string> + <string name="speed_camera_pois">נקודת עניין של מצלמת מהירות</string> + <string name="keep_active">להשאיר פעיל</string> + <string name="shared_string_uninstall">הסרה</string> + <string name="speed_cameras_alert">אזהרות מפני מצלמות מהירות אסורות על פי חוק בחלק מהמדינות.</string> + <string name="shared_string_bearing">תכווין</string> + <string name="item_deleted">%1$s נמחקו</string> + <string name="speed_cameras_restart_descr">נדרשת הפעלה מחדש כדי למחוק לחלוטין את נתוני מצלמות המהירות.</string> + <string name="shared_string_uninstall_and_restart">הסרה והפעלה מחדש</string> </resources> \ No newline at end of file From 956a3f0fc8845d965015ca4c2bab1b2e14a55dcd Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood <rlo927@gmail.com> Date: Sat, 20 Jun 2020 13:29:45 +0000 Subject: [PATCH 123/300] Translated using Weblate (Arabic) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-ar/strings.xml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 01f4b5cc82..d3712f9d94 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -3779,11 +3779,18 @@ <string name="speed_camera_pois">POI كاميرا مراقبة السرعة</string> <string name="uninstall_speed_cameras">إلغاء تثبيت كاميرات السرعة</string> <string name="shared_string_legal">قانوني</string> - <string name="keep_active">ابقا نشطا</string> + <string name="keep_active">البقاء نشطا</string> <string name="shared_string_uninstall">إلغاء التثبيت</string> <string name="speed_cameras_alert">يحظر القانون تنبيهات كاميرات السرعة في بعض البلدان.</string> <string name="shared_string_bearing">اتجاه</string> <string name="item_deleted">%1$s محذوفة</string> <string name="speed_cameras_restart_descr">إعادة التشغيل مطلوبة لحذف بيانات كاميرا السرعة بالكامل.</string> <string name="shared_string_uninstall_and_restart">إلغاء التثبيت وإعادة التشغيل</string> + <string name="speed_cameras_legal_descr">في بعض البلدان أو المناطق، يحظر القانون استخدام تطبيقات التحذير من كاميرا السرعة. +\n +\nعليك أن تختار اعتمادا على قانون بلدك. +\n +\nحدد %1$s وستتلقى تنبيهات وتحذيرات حول كاميرات السرعة. +\n +\nحدد %2$s. جميع البيانات المتعلقة كاميرات السرعة: التنبيهات، والإخطارات، سيتم حذف نقاط الاهتمام حتى يتم إعادة تثبيت أوسماند تماما.</string> </resources> \ No newline at end of file From dfe700b94faf32348555e3ec2a2f6a98e6c22eaa Mon Sep 17 00:00:00 2001 From: iman <iriman@chmail.ir> Date: Sat, 20 Jun 2020 13:23:45 +0000 Subject: [PATCH 124/300] Translated using Weblate (Persian) Currently translated at 99.7% (3396 of 3403 strings) --- OsmAnd/res/values-fa/strings.xml | 48 +++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index d4075be199..d81e115a72 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -110,7 +110,7 @@ <string name="map_widget_mini_route">نقشه مسیر کوچک</string> <string name="avoid_in_routing_title">پرهیز از…</string> <string name="bg_service_screen_lock_toast">صفحه قفل شد</string> - <string name="show_cameras">دوربین‌های کنترل سرعت</string> + <string name="show_cameras">دوربین‌های سرعت</string> <string name="show_traffic_warnings">هشدارهای ترافیکی</string> <string name="avoid_toll_roads">جاد‌هٔ عوارضی‌دار</string> <string name="continue_follow_previous_route_auto">ناوبری ناتمام قبلی را ادامه می‌دهید؟ (%1$s ثانیه)</string> @@ -503,7 +503,7 @@ <string name="non_optimal_route_calculation">برای مسافت‌های طولانی شاید بهینه‌ترین مسیر محاسبه نشود</string> <string name="gps_not_available">لطفاً GPS را از طریق تنظیمات فعال کنید</string> <string name="map_widget_monitoring_services">خدمات ثبت و ضبط</string> - <string name="show_warnings_descr">پیکربندی‌های مربوط به هشدارهای ترافیکی (مانند محدودیت‌های سرعت، توقف‌های اجباری، سرعتگیرها، تونل‌ها)، هشدارهای دوربین کنترل سرعت و اطلاعات خط عبوری را انجام دهید.</string> + <string name="show_warnings_descr">پیکربندی‌های مربوط به هشدارهای ترافیکی (مانند محدودیت‌های سرعت، توقف‌های اجباری، سرعتگیرها، تونل‌ها)، اخطارهای دوربین سرعت و اطلاعات خط عبوری را انجام دهید.</string> <string name="use_compass_navigation_descr">اگر جهت شناسایی نشد از قطب‌نما استفاده شود.</string> <string name="avoid_motorway">آزادراه</string> <string name="snap_to_road_descr">در هنگام ناوبری، موقعیت را به جاده‌ها بچسبان.</string> @@ -670,7 +670,7 @@ <string name="tts_language_not_supported_title">این زبان پشتیبانی نمی‌شود</string> <string name="tts_language_not_supported">موتور متن به گفتاری (TTS) که روی دستگاه شما نصب است از زبان انتخاب‌شده پشتیبانی نمی‌کند و در عوض زبان پیشفرض را به کار می‌برد. می‌خواهید در فروشگاه اندروید دنبال موتور TTS دیگری بگردید؟</string> <string name="tts_missing_language_data">برای دانلود زبان انتخاب‌شده به فروشگاه می‌روید؟</string> - <string name="preferred_locale_descr">زبان برنامه (تغییر زبان پس از راه‌اندازی مجدد انجام می‌شود).</string> + <string name="preferred_locale_descr">زبان برنامه (تغییر زبان پس از شروع مجدد انجام می‌شود).</string> <string name="preferred_locale">زبان برنامه</string> <string name="rotate_map_none_opt">بدون چرخش (بالا به‌طرف شمال)</string> <string name="rotate_map_compass_opt">در جهت قطب‌نما</string> @@ -716,7 +716,7 @@ <string name="tts_missing_language_data_title">داده‌ها وجود ندارد</string> <string name="gpx_option_reverse_route">برعکس‌کردن جهت GPX</string> <string name="gpx_option_destination_point">از مقصد جاری استفاده کن</string> - <string name="gpx_option_from_start_point">گذر از همهٔ رد</string> + <string name="gpx_option_from_start_point">گذر از سرتاسر رد</string> <string name="switch_to_vector_map_to_see">برای این محل نقشهٔ بُرداری آفلاین وجود دارد. \n \n\t«منو» ← «پیکربندی نقشه» ← «منبع نقشه…» ← «نقشه‌های بُرداری آفلاین». @@ -759,7 +759,7 @@ <string name="map_tile_source">منبع کاشی‌های نقشه</string> <string name="mark_point">هدف</string> <string name="speak_speed_limit">سرعت مجاز</string> - <string name="speak_cameras">دوربین‌های کنترل سرعت</string> + <string name="speak_cameras">دوربین‌های سرعت</string> <string name="speak_traffic_warnings">هشدارهای ترافیکی</string> <string name="osmand_distance_planning_plugin_description">با رسم مسیر روی نقشه برای سفر خود طرح بریزید یا مسافت بین نقاط را اندازه بگیرید. رسم مسیر با زدن روی صفحه امکان‌پذیر است. همچنین می‌توانید از فایل‌های GPX موجود استفاده کنید یا آن‌ها را تغییر دهید. کار نهایی نیز به‌صورت فایل GPX قابل ذخیره‌سازی است تا بعداً از آن برای راهنمایی استفاده کنید.</string> <string name="layer_hillshade">لایهٔ سایه‌روشن</string> @@ -1062,7 +1062,7 @@ <string name="route_to">به:</string> <string name="osb_author_dialog_password">گذرواژهٔ OSM (اختیاری)</string> <string name="speak_title">اعلام‌کردن…</string> - <string name="speak_descr">پیکربندی‌های مربوط به اعلام نام خیابان‌ها، هشدارهای ترافیکی (مانند توقف‌های اجباری، سرعتگیرها)، هشدار دوربین‌های کنترل سرعت و محدودیت‌های سرعت را انجام دهید.</string> + <string name="speak_descr">پیکربندی‌های مربوط به اعلام نام خیابان‌ها، هشدارهای ترافیکی (مانند توقف‌های اجباری، سرعتگیرها)، اخطارهای دوربین سرعت و محدودیت‌های سرعت را انجام دهید.</string> <string name="speak_street_names">نام خیابان‌ها (موتور صوتی)</string> <string name="map_widget_fps_info">اطلاعات عیب‌یابی FPS</string> <string name="driving_region_descr">منطقهٔ رانندگی را انتخاب کنید: آمریکا، اروپا، انگلستان، آسیا و سایر مناطق.</string> @@ -1423,7 +1423,7 @@ <string name="traffic_warning_payment">عوارضی</string> <string name="traffic_warning_stop">علامت ایست</string> <string name="traffic_warning_calming">سرعتگیر</string> - <string name="traffic_warning_speed_camera">دوربین کنترل سرعت</string> + <string name="traffic_warning_speed_camera">دوربین سرعت</string> <string name="traffic_warning">هشدار ترافیکی</string> <string name="enable_proxy_title">فعال‌کردن پروکسی HTTP</string> <string name="enable_proxy_descr">یک پروکسی HTTP برای همهٔ تقاضاهای شبکه تنظیم کنید.</string> @@ -1488,7 +1488,7 @@ <string name="shared_string_show_description">نمایش توضیحات</string> <string name="shared_string_message">پیام</string> <string name="agps_data_last_downloaded">دادهٔ A-GPS دانلود شد: %1$s</string> - <string name="confirm_usage_speed_cameras">در بسیاری از کشورها (آلمان، فرانسه، ایتالیا و...) استفاده از هشداردهندهٔ دوربین‌های ترافیکی غیرقانونی است. با نقض قانون از سوی شما OsmAnd هیچ‌گونه مسئولیتی بر عهده نمی‌گیرد. لطفاً فقط اگر مجاز به استفاده از این ویژگی هستید «بله» را انتخاب کنید.</string> + <string name="confirm_usage_speed_cameras">در بسیاری از کشورها (آلمان، فرانسه، ایتالیا و...) استفاده از هشداردهندهٔ دوربین سرعت غیرقانونی است. با نقض قانون از سوی شما OsmAnd هیچ‌گونه مسئولیتی بر عهده نمی‌گیرد. لطفاً فقط اگر مجاز به استفاده از این ویژگی هستید «بله» را انتخاب کنید.</string> <string name="welmode_download_maps">دانلود نقشه‌ها</string> <string name="welcome_select_region">برای نمایش صحیح علائم و قوانین ترافیکی، لطفاً منطقهٔ رانندگی خود را انتخاب کنید:</string> <string name="welcome_text">برنامهٔ OsmAnd نقشه‌گردی و ناوبری آفلاین را برایتان به ارمغان می‌آورد.</string> @@ -1556,7 +1556,7 @@ <string name="rendering_value_translucent_blue_name">آبی شفاف</string> <string name="rendering_value_purple_name">بنفش</string> <string name="rendering_value_translucent_purple_name">بنفش شفاف</string> - <string name="restart_is_required">جهت به‌کارگیری تغییر، یک بار برنامه را ببندید و باز کنید.</string> + <string name="restart_is_required">برای اینکه تغییرات به کار بسته شود، یک بار برنامه را ببندید و باز کنید.</string> <string name="light_theme">روشن</string> <string name="dark_theme">تیره</string> <string name="lang_bn">بنگالی</string> @@ -1756,8 +1756,8 @@ <string name="osm_live_not_active">غیرفعال</string> <string name="osm_live_enter_email">لطفاً یک نشانی ایمیل معتبر وارد کنید</string> <string name="osm_live_enter_user_name">لطفاً یک نام کاربری وارد کنید</string> - <string name="osm_live_thanks">سپاسگزاریم که حامی OsmAnd هستید! -\n برنامه را دوباره راه‌اندازی کنید تا همهٔ قابلیت‌های جدید فعال شود.</string> + <string name="osm_live_thanks">سپاسگزاریم که حامی OsmAnd هستید! +\n برنامه را دوباره شروع کنید تا همهٔ قابلیت‌های جدید فعال شود.</string> <string name="osm_live_region_desc">بخشی از کمک‌های مالی شما به کاربرانی پرداخت می‌شود که این منطقه از نقشه را سروسامان می‌دهند.</string> <string name="osm_live_subscription_settings">تنظیمات اشتراک</string> <string name="quick_action_auto_zoom">زوم خودکار روشن/خاموش</string> @@ -1984,7 +1984,7 @@ <string name="map_downloaded">نقشه دانلود شد</string> <string name="map_downloaded_descr">نقشهٔ %1$s آمادهٔ استفاده است.</string> <string name="go_to_map">نقشه را نشان بده</string> - <string name="simulate_initial_startup_descr">با این تنظیم برنامه فکر می‌کند اولین بار است که راه‌اندازی می‌شود. تنظیمات دیگر دست‌نخورده می‌مانند.</string> + <string name="simulate_initial_startup_descr">با این تنظیم برنامه فکر می‌کند اولین بار است که راه‌اندازی می‌شود. تنظیماتِ دیگر دست‌نخورده می‌مانند.</string> <string name="simulate_initial_startup">شبیه‌سازی اولین اجرای برنامه</string> <string name="share_menu_location">هم‌رسانی مکان</string> <string name="shared_string_send">ارسال</string> @@ -2258,7 +2258,7 @@ <string name="coordinate_input">واردکردن مختصات</string> <string name="marker_save_as_track_descr">نشانه‌هایتان را در این فایل GPX برون‌برد کنید:</string> <string name="move_to_history">فرستادن به سابقه</string> - <string name="group_will_be_removed_after_restart">گروه با راه‌اندازی مجدد برنامه حذف می‌شود.</string> + <string name="group_will_be_removed_after_restart">بار بعد که برنامه را باز کنید، گروه حذف خواهد شد.</string> <string name="descendingly">نزولی</string> <string name="marker_show_distance_descr">مسافت تا نشانه‌ها و جهت‌گیری به‌سمت آن‌ها چگونه روی نقشه نشان داده شود:</string> <string name="map_orientation_change_in_accordance_with_speed">آستانهٔ تغییر جهت نقشه</string> @@ -2790,7 +2790,7 @@ <string name="osmand_team">تیم OsmAnd</string> <string name="maps_you_need_descr">بر اساس مقالاتی که نشانک زده‌اید، پیشنهاد می‌کنیم این نقشه‌ها را دانلود کنید:</string> <string name="maps_you_need">نقشه‌هایی که لازم دارید</string> - <string name="shared_string_restart">راه‌اندازی مجدد</string> + <string name="shared_string_restart">شروع دوبارهٔ برنامه</string> <string name="show_images">نمایش تصاویر</string> <string name="purchase_cancelled_dialog_title">اشتراک OsmAnd Live خود را لغو کردید</string> <string name="purchase_cancelled_dialog_descr">اشتراکتان را تجدید کنید تا از همهٔ قابلیت‌ها بهره‌مند شوید:</string> @@ -3249,7 +3249,7 @@ <string name="navigate_point_format_utm">UTM Standard</string> <string name="navigate_point_format_olc">Open Location Code</string> <string name="coordinates_format_info">قالب انتخابی در همه‌جای برنامه به کار خواهد رفت.</string> - <string name="start_up_message_pref">پیام راه‌اندازی</string> + <string name="start_up_message_pref">پیام شروع</string> <string name="wake_time">زمان خاموشی پس از بیدارباش</string> <string name="units_and_formats">یکاها و قالب‌ها</string> <string name="appearance">ظاهر</string> @@ -3392,7 +3392,7 @@ <string name="quick_action_hillshade_show">نشان‌دادن سایه‌روشن‌ها</string> <string name="quick_action_hillshade_hide">پنهان‌کردن سایه‌روشن‌ها</string> <string name="quick_action_show_hide_hillshade">آشکار/پنهان کردن سایه‌روشن‌ها</string> - <string name="tts_initialization_error">راه‌اندازی موتور متن به گفتار ناموفق بود.</string> + <string name="tts_initialization_error">شروع موتور متن به گفتار ناموفق بود.</string> <string name="simulate_your_location_gpx_descr">موقعیت خود را با استفاده از یک رد GPX ضبط‌شده شبیه‌سازی کنید.</string> <string name="exported_osmand_profile">پروفایل OsmAnd:‏ %1$s</string> <string name="monthly_map_updates">به‌روزرسانی‌های ماهانهٔ نقشه</string> @@ -3819,4 +3819,20 @@ <string name="quick_action_mapillary_show">آشکارکردن مپیلاری</string> <string name="quick_action_mapillary_hide">پنهان‌کردن مپیلاری</string> <string name="quick_action_showhide_mapillary_descr">دکمه‌ای برای آشکار/پنهان کردن لایهٔ مپیلاری روی نقشه.</string> + <string name="uninstall_speed_cameras">حذف نصب دوربین‌های سرعت</string> + <string name="shared_string_uninstall_and_restart">حذف نصب و شروع دوباره</string> + <string name="shared_string_legal">قانونی</string> + <string name="shared_string_uninstall">حذف نصب</string> + <string name="shared_string_bearing">سویه</string> + <string name="item_deleted">‏%1$s حذف شد</string> + <string name="speed_cameras_restart_descr">برای اینکه دادهٔ دوربین سرعت کاملاً حذف شود، یک بار برنامه را ببندید و باز کنید.</string> + <string name="speed_camera_pois">‏POIهای دوربین سرعت</string> + <string name="speed_cameras_legal_descr">قانونِ برخی کشورها استفاده از نرم‌افزارهای هشداردهندهٔ دوربین سرعت را ممنوع کرده است. +\n +\nشما باید بر اساس قانون کشور خود تصمیم بگیرید. +\n +\nباانتخاب %1$s هشدارها و اخطارهای دوربین سرعت را دریافت می‌کنید. +\n +\nباانتخاب %2$s تا زمانی که OsmAnd را دوباره نصب کنید، تمام دادهٔ مربوط به دوربین‌های سرعت (هشدارها، اعلان‌ها، نقاط توجه یا POIs) حذف می‌شود.</string> + <string name="speed_cameras_alert">قانونِ برخی از کشورها استفاده از هشداردهندهٔ دوربین سرعت را ممنوع کرده است.</string> </resources> \ No newline at end of file From 647cef063d28b42af553e6eec3be2f2e53209ac4 Mon Sep 17 00:00:00 2001 From: syl <syl@gresille.org> Date: Sat, 20 Jun 2020 10:29:41 +0000 Subject: [PATCH 125/300] Translated using Weblate (French) Currently translated at 99.9% (3808 of 3809 strings) --- OsmAnd/res/values-fr/phrases.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index 68e934c548..7f290db577 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -234,7 +234,7 @@ <string name="poi_musical_instrument">Magasin d\'instruments de musique</string> <string name="poi_nature_reserve">Réserve naturelle</string> <string name="poi_military_naval_base">Base navale militaire</string> - <string name="poi_neighbourhood">Quartier de voisinage</string> + <string name="poi_neighbourhood">Voisinage</string> <string name="poi_newsagent">Marchand de journaux</string> <string name="poi_newspaper">Entreprise de presse</string> <string name="poi_ngo">ONG</string> @@ -317,7 +317,7 @@ <string name="poi_stream">Ruisseau</string> <string name="poi_stripclub">Strip club</string> <string name="poi_studio">Studio d\'enregistrement</string> - <string name="poi_suburb">Quartier</string> + <string name="poi_suburb">Zone urbaine</string> <string name="poi_subway_entrance">Bouche de métro</string> <string name="poi_supermarket">Supermarché</string> <string name="poi_survey_point">Point géodésique</string> @@ -667,7 +667,7 @@ <string name="poi_training">Centre de formation</string> <string name="poi_field_hockey">Hockey sur gazon</string> <string name="poi_smoking_area">Zone fumeur</string> - <string name="poi_quarter">Grand quartier</string> + <string name="poi_quarter">Quartier</string> <string name="poi_rest_area">Aire de repos</string> <string name="poi_reservoir">Réservoir hydrique</string> <string name="poi_piste_ice_skate">Itinéraire de patinage sur glace</string> @@ -1772,7 +1772,7 @@ <string name="poi_smoking_separated">Dans une pièce séparée</string> <string name="poi_smoking_isolated">Dans une pièce isolée</string> <string name="poi_traffic_signals_sound_yes">Oui</string> - <string name="poi_traffic_signals_sound_no">Non</string> + <string name="poi_traffic_signals_sound_no">Son : non</string> <string name="poi_grassland">Prairie</string> <string name="poi_farmland">Zone agricole</string> <string name="poi_payment_cryptocurrencies_no">Cryptomonnaies non acceptées</string> @@ -2755,7 +2755,7 @@ <string name="poi_animal_shelter_mammal">Mammifères</string> <string name="poi_animal_shelter_fish">Poissons</string> <string name="poi_information_trail_blaze">Balise de chemin</string> - <string name="poi_traffic_signals_sound_walk">Autorisé uniquement à pied</string> + <string name="poi_traffic_signals_sound_walk">Seulement quand la traversée est autorisée</string> <string name="poi_piste_grooming_backcountry">Arrière-pays</string> <string name="poi_aerialway_occupancy">Cabine/Siège/capacité de voiture</string> <string name="poi_payment_account_cards_yes">Cartes de comptes</string> @@ -3824,4 +3824,9 @@ <string name="poi_osmand_fire_hydrant_pressure_pressurized">Pressurisé</string> <string name="poi_fire_hydrant_style_water_source_groundwater">Eaux souterraines</string> <string name="poi_fire_hydrant_type_pipe">Tuyau</string> + <string name="poi_traffic_signals_arrow_yes">Oui</string> + <string name="poi_traffic_signals_vibration_yes">Oui</string> + <string name="poi_traffic_signals_vibration_no">Vibration : non</string> + <string name="poi_traffic_signals_arrow">Flèche</string> + <string name="poi_traffic_signals_vibration">Vibration</string> </resources> \ No newline at end of file From a8d258b4b181b182bb91493da69fe168ba601510 Mon Sep 17 00:00:00 2001 From: Verdulo <tomek@disroot.org> Date: Sat, 20 Jun 2020 10:47:16 +0000 Subject: [PATCH 126/300] Translated using Weblate (Esperanto) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-eo/strings.xml | 41 ++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 6204abe3ea..5edcaebcde 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -507,7 +507,7 @@ <string name="navigation_over_track">Ĉu ekigi navigadon laŭlonge de spuro?</string> <string name="avoid_roads_msg">Elekti evitendajn vojojn por montri alternativajn kursojn</string> <string name="speak_pedestrian">Pasejoj zebrostriaj</string> - <string name="rendering_attr_roadStyle_name">Voja stilo</string> + <string name="rendering_attr_roadStyle_name">Stilo de vojoj</string> <string name="rendering_attr_roadStyle_description">Kiel vidigi vojojn</string> <string name="rendering_value__name">Norma</string> <string name="rendering_value_default_name">Norma</string> @@ -761,8 +761,8 @@ <string name="access_hint_enter_category">Entajpu kategorion</string> <string name="access_hint_enter_description">Entajpu priskribon.</string> <string name="access_default_color">Norma koloro</string> - <string name="map_widget_magnetic_bearing">Magneta birado</string> - <string name="map_widget_bearing">Relativa birado</string> + <string name="map_widget_magnetic_bearing">Magneta direkto</string> + <string name="map_widget_bearing">Relativa direkto</string> <string name="access_disable_offroute_recalc">Ne ŝanĝi kurson kiam devoje</string> <string name="access_disable_offroute_recalc_descr">Ne aŭtomate rekalkuli kurson, kiam vi forlasis ĝustan vojon.</string> <string name="access_disable_wrong_direction_recalc">Ne ŝanĝi kurson kiam kontraŭdirekte</string> @@ -1305,14 +1305,14 @@ <string name="live_monitoring_interval">Intervalo de enreta kurs-registrado</string> <string name="live_monitoring_interval_descr">Difini intervalon de enreta kurs-registrado.</string> <string name="live_monitoring_url">Adreso de enreta kurs-registrado</string> - <string name="live_monitoring_url_descr">Difini la retadreson uzante la jenajn argumentojn: -\n lat={0} (latitudo), -\n lon={1} (longitudo), -\n timestamp={2} (tempmarko), -\n hdop={3} (horizontala diluo de precizo), -\n altitude={4} (altitudo), -\n speed={5} (rapido), -\n bearing={6} (birado).</string> + <string name="live_monitoring_url_descr">Difini la retadreson uzante la jenajn argumentojn: +\n lat={0} (latitudo), +\n lon={1} (longitudo), +\n timestamp={2} (tempmarko), +\n hdop={3} (horizontala diluo de precizo), +\n altitude={4} (altitudo), +\n speed={5} (rapido), +\n bearing={6} (direkto).</string> <string name="change_markers_position">Ŝanĝi pozicion de marko</string> <string name="current_track">Nuna spuro</string> <string name="gpx_monitoring_disabled_warn">Konservu kurson uzante GPX-fenestraĵon aŭ per \'Registrado de kurso\' agordoj.</string> @@ -3459,7 +3459,7 @@ <string name="monitoring_min_distance_descr">Tiu ĉi filtrilo preventas de registri la ekzaktaj kopioj de punktoj, kiam malmulte da movo okazis, igas la spurojn aspekti pli bele sen antaŭa pritraktado.</string> <string name="monitoring_min_distance_descr_side_effect">Kromefiko: periodoj de ripozoj ne estos registritaj aŭ estos registritaj nur per unuopaj punktoj. Etaj movoj (ekz. mallongaj devojiĝoj en via ekskurso) povas ne esti registritaj. Via dosiero enhavos malpli da informoj por pritrakti kaj estos malpli preciza per escepti malnecesajn punktojn kaj havos la saman ekzaktecon (ĝustecon): mezureraroj kaŭzitaj pro misricevo aŭ difektoj de GPS-cirkvitaro plue aperos.</string> <string name="live_monitoring_adress">Retadreso</string> - <string name="live_monitoring_adress_descr">Difini la retadreson uzante la jenajn argumentojn: latitudo={0}, longitudo={1}, tempomarko={2}, hdop(horizontala diluo de precizo)={3}, altitudo={4}, rapido={5}, birado={6}.</string> + <string name="live_monitoring_adress_descr">Difini la retadreson uzante la jenajn argumentojn: latitudo={0}, longitudo={1}, tempomarko={2}, hdop(horizontala diluo de precizo)={3}, altitudo={4}, rapido={5}, direkto={6}.</string> <string name="monitoring_notification">Sciigo</string> <string name="monitoring_min_speed">Minimuma rapido</string> <string name="monitoring_min_accuracy">Minimuma precizo</string> @@ -3786,4 +3786,21 @@ <string name="quick_action_mapillary_hide">Kaŝi Mapillary</string> <string name="quick_action_mapillary_show">Montri Mapillary</string> <string name="quick_action_showhide_mapillary_descr">Ŝaltilo por montri aŭ kaŝi tavolon de Mapillary sur la mapo.</string> + <string name="uninstall_speed_cameras">Malinstali informojn pri rapidkontroliloj</string> + <string name="shared_string_legal">Leĝaj</string> + <string name="speed_camera_pois">Pozicioj de rapidkontroliloj</string> + <string name="speed_cameras_legal_descr">En iuj landoj kaj regionoj uzado de aplikaĵoj avertantaj pri rapidkontroliloj estas kontraŭleĝa. +\n +\nVi devas elekti laŭleĝe de via lando. +\n +\nElektu “%1$s” por pluigi ricevi avertojn pri rapidkontroliloj. +\n +\nElektu “%2$s” por forigi (ĝis la reinstalo de OsmAnd) ĉiujn datumojn pri rapidkontrolilojn: avertojn, sciigojn, poziciojn.</string> + <string name="keep_active">Plue uzi</string> + <string name="shared_string_uninstall">Malinstali</string> + <string name="speed_cameras_alert">Avertoj pri rapidkontroliloj estas kontraŭleĝaj en iuj landoj.</string> + <string name="shared_string_bearing">Direkto</string> + <string name="item_deleted">%1$s forigita</string> + <string name="speed_cameras_restart_descr">Restarto estas necesa por tute forigi datumojn pri rapidkontroliloj.</string> + <string name="shared_string_uninstall_and_restart">Malinstali kaj restartigi</string> </resources> \ No newline at end of file From 0bdc7d837e35594e4acc8a09e22e02c76135aa0b Mon Sep 17 00:00:00 2001 From: Verdulo <tomek@disroot.org> Date: Sat, 20 Jun 2020 13:18:59 +0000 Subject: [PATCH 127/300] Translated using Weblate (Esperanto) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-eo/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-eo/phrases.xml b/OsmAnd/res/values-eo/phrases.xml index abe0aa4bbb..8c86ca29df 100644 --- a/OsmAnd/res/values-eo/phrases.xml +++ b/OsmAnd/res/values-eo/phrases.xml @@ -1232,7 +1232,7 @@ <string name="poi_tactile_paving_yes">jes</string> <string name="poi_tactile_paving_no">sen reliefo por blinduloj</string> <string name="poi_traffic_signals_sound_yes">jes</string> - <string name="poi_traffic_signals_sound_no">ne</string> + <string name="poi_traffic_signals_sound_no">Sono: ne</string> <string name="poi_traffic_signals_sound_walk">tiam, kiam irado permesata</string> <string name="poi_leisure_common">Publika ripoza tereno</string> <string name="poi_highway_steps">Ŝtuparo</string> @@ -3817,4 +3817,9 @@ <string name="poi_fire_hydrant_type_pipe">tubo</string> <string name="poi_fire_hydrant_pressure_filter">Premo de hidranto</string> <string name="poi_pump_status_missing_beam">Stato de pumpilo: levilo mankas</string> + <string name="poi_traffic_signals_arrow_yes">jes</string> + <string name="poi_traffic_signals_vibration_yes">jes</string> + <string name="poi_traffic_signals_vibration_no">Vibrado: ne</string> + <string name="poi_traffic_signals_arrow">Sageto</string> + <string name="poi_traffic_signals_vibration">Vibrado</string> </resources> \ No newline at end of file From d266cc041227212de886039b588f9d5fff290ce6 Mon Sep 17 00:00:00 2001 From: Hakuchi <heimlikloh@mail.com> Date: Sat, 20 Jun 2020 10:09:12 +0000 Subject: [PATCH 128/300] Translated using Weblate (German) Currently translated at 100.0% (267 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/de/ --- OsmAnd-telegram/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-telegram/res/values-de/strings.xml b/OsmAnd-telegram/res/values-de/strings.xml index 44f16c5612..2bf33bcca9 100644 --- a/OsmAnd-telegram/res/values-de/strings.xml +++ b/OsmAnd-telegram/res/values-de/strings.xml @@ -124,7 +124,7 @@ <string name="waiting_for_response_from_telegram">Warten auf Antwort von Telegram</string> <string name="sending_location_messages">Sende Standort</string> <string name="initializing">Startet</string> - <string name="searching_for_gps">Positioniere..…</string> + <string name="searching_for_gps">Positionierung …</string> <string name="connecting_to_the_internet">Verbindung zum Internet</string> <string name="background_work_description">Akkuoptimierungseinstellungen, um die Standortfreigabe zu stabilisieren.</string> <string name="password_descr">Telegram-Passwort</string> From 2d000cd8d6958c780fa471fb900bddfaf8b21dda Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood <rlo927@gmail.com> Date: Sat, 20 Jun 2020 15:18:10 +0000 Subject: [PATCH 129/300] Translated using Weblate (Arabic) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-ar/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index d3712f9d94..da1b057498 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -224,7 +224,7 @@ <string name="website">الموقع</string> <string name="phone">الهاتف</string> <string name="contribution_activity">تثبيت الإصدار</string> - <string name="accessibility_options">خيارات الإتاحة</string> + <string name="accessibility_options">خيارات إمكانية الوصول</string> <string name="select_address_activity">حدد عنوان</string> <string name="shared_string_more_actions">خيارات أخرى</string> <string name="edit_filter_save_as_menu_item">حفظ باسم</string> @@ -489,8 +489,8 @@ <string name="back_right">الأيمن الخلفي</string> <string name="accuracy">الدقة</string> <string name="altitude">الارتفاع</string> - <string name="accessibility_preferences_descr">التفضيلات المتعلقة بالإتاحة.</string> - <string name="shared_string_accessibility">الإتاحة</string> + <string name="accessibility_preferences_descr">الإعدادات المتعلقة بإمكانية الوصول.</string> + <string name="shared_string_accessibility">إمكانية الوصول</string> <string name="rendering_out_of_memory">ذاكرة التشغيل غير كافية لعرض المنطقة المختارة</string> <string name="offline_edition">التعديل دون اتصال</string> <string name="offline_edition_descr">استخدام التعديل دون اتصال دائماً.</string> @@ -1837,7 +1837,7 @@ <string name="consider_turning_polygons_off">من المستحسن إيقاف عرض المضلعات.</string> <string name="access_from_map_description">سحب القائمة سيفتح لوحة التحكم و ليس القائمة</string> <string name="confirmation_to_delete_history_items">هل تريد حذف العناصر المحددة من السجل؟</string> - <string name="access_direction_haptic_feedback">توجيه رد فعل الهزاز</string> + <string name="access_direction_haptic_feedback">اتجاهات لمسية</string> <string name="please_specify_poi_type_only_from_list">يرجى تحديد نوع POI الصحيح أو تخطيه.</string> <string name="show_on_start_description">عند الإيقاف ستبدأ واجهة الخريطة مباشرة.</string> <string name="osm_edit_modified_poi">OSM POI معدل</string> From 957f3735e0c9a6f197fa19a48947064e450b2ecf Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood <rlo927@gmail.com> Date: Sat, 20 Jun 2020 16:32:11 +0000 Subject: [PATCH 130/300] Translated using Weblate (Arabic) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-ar/strings.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index da1b057498..79a4be40dd 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -977,7 +977,7 @@ <string name="shared_string_my_favorites">المفضلة</string> <string name="shared_string_tracks">المسارات</string> <string name="rendering_category_hide">إخفاء</string> - <string name="configure_map">ضبط الخريطة</string> + <string name="configure_map">تكوين الخريطة</string> <string name="layer_map">مصدر الخريطة…</string> <string name="map_source">مصدر الخريطة</string> <string name="layer_amenity_label">عرض أسماء المفضلة</string> @@ -1195,7 +1195,7 @@ <string name="rendering_attr_hideAccess_name">قيود الدخول</string> <string name="rendering_attr_showAccess_name">عرض قيود الدخول</string> <string name="rendering_attr_showSurfaces_name">عرض سطح الطريق</string> - <string name="rendering_attr_showCycleRoutes_name">عرض الطرق الدائرية</string> + <string name="rendering_attr_showCycleRoutes_name">إظهار مسارات الدراجات الهوائية</string> <string name="delay_navigation_start">بدء التوجيه المفصل تلقائياً</string> <string name="gpx_info_subtracks">مسارات فرعية: %1$s</string> <string name="gpx_info_waypoints">نقاط الطريق: %1$s</string> @@ -1669,7 +1669,7 @@ <string name="select_voice_provider">اختر التوجيه الصوتي</string> <string name="select_voice_provider_descr">اختر أو قم بتحميل التوجيه الصوتي الخاص بلغتك.</string> <string name="no_location_permission">منح الوصول إلى بيانات الموقع.</string> - <string name="rendering_attr_horseRoutes_name">طرق خاصة للخيول</string> + <string name="rendering_attr_horseRoutes_name">إظهار مسارات الخيول</string> <string name="shared_string_hide">إخفاء</string> <string name="av_video_quality_low">أقل جودة</string> <string name="av_video_quality_high">أعلى جودة</string> @@ -1765,7 +1765,7 @@ <string name="upload_osm_note_description">قم بتحميل مذكرة OSM الخاصة بك دون الكشف عن هويتك أو باستخدام ملف تعريف OpenStreetMap.org .</string> <string name="add_points_to_map_markers_q">إضافة جميع النقاط إلى علامات الخريطة؟</string> <string name="clear_markers_history_q">مسح السجلات ؟</string> - <string name="rendering_attr_showMtbRoutes_name">إظهار مسارات الدراجة الجبلية</string> + <string name="rendering_attr_showMtbRoutes_name">إظهار مسارات الدراجات الجبلية</string> <string name="clear_updates_proposition_message">يمكنك إزالة التحديثات المحملة والرجوع إلى الإصدار الأصلي للخريطة</string> <string name="add_time_span">إضافة فترة زمنية</string> <string name="item_removed">تمت إزالة العنصر</string> @@ -1896,9 +1896,9 @@ <string name="routing_attr_avoid_borders_description">تجنب عبور الحدود الوطنية</string> <string name="routing_attr_height_description">تحديد الارتفاع الأعلى المسموح به على الطرق.</string> <string name="disable_complex_routing_descr">تعطيل 2-مرحلة التوجيه للملاحة بالسيارة.</string> - <string name="rendering_attr_alpineHiking_name">نادي جبال الألب السويسرية</string> + <string name="rendering_attr_alpineHiking_name">إظهار مسارات تسلق جبال الألب</string> <string name="rendering_attr_alpineHiking_description">تقديم المسارات وفقاً لمقياس SAC.</string> - <string name="rendering_attr_hikingRoutesOSMC_name">غطاء رمز التنزه</string> + <string name="rendering_attr_hikingRoutesOSMC_name">كيفية اظهار رموز طبقة التسلق (الهايكنق)</string> <string name="rendering_attr_hikingRoutesOSMC_description">تقديم المسارات وفقاً لآثار OSMC.</string> <string name="local_index_description">انقر فوق أي عنصر لمعرفة المزيد من التفاصيل، اضغط وواصل الضغط للتعطيل أو الحذف. البيانات الحالية على الجهاز (%1$s متاح):</string> <string name="keep_informing_descr">إعادة إعلان تعليمات الملاحة في فترات منتظمة.</string> @@ -1967,11 +1967,11 @@ <string name="navigate_point_format_D">DDD.DD</string> <string name="navigate_point_format_DM">DDD MM.MM</string> <string name="navigate_point_format_DMS">DDD MM SS.SS</string> - <string name="plugin_touringview_descr">تفعيل هذه الرؤية يغير نمط خريطة أوسماند إلى \'نمط التجوال\'، هذا النمط يوفر رؤية غنية بالتفاصيل للمسافرين والسائقين المحترفين. + <string name="plugin_touringview_descr">تفعيل هذه الرؤية يغير نمط خريطة أوسماند إلى \'نمط التجوال\'، هذا النمط يوفر رؤية غنية بالتفاصيل للمسافرين والسائقين المحترفين. \n \nتوفر هذه الرؤية في أي تكبير معين للخريطة أكبر قدر ممكن من تفاصيل السفر المتاحة في بيانات الخريطة (خاصة الطرق، المسارات، المعابر وعلامات التوجيه). \n -\nكما تصور بوضوح جميع أنواع الطرق بترميز لوني، و الذي هو جد مفيد لاسيما عند قيادة المركبات الكبيرة. +\nكما تصور بوضوح جميع أنواع الطرق بترميز لوني، وهو مفيد لاسيما عند قيادة المركبات الكبيرة. \n \nوتوفر كذلك خيارات تجول كعرض طرق الدراجات الهوائية أو الطرق الجبلية في جبال الالب. \n @@ -2623,7 +2623,7 @@ <string name="shared_string_total">الإجمالي</string> <string name="clear_all_intermediates">إزالة كافة النقاط الوسيطة</string> <string name="group_deleted">تم حذف المجموعة</string> - <string name="rendering_attr_whiteWaterSports_name">رياضات المياه البيضاء</string> + <string name="rendering_attr_whiteWaterSports_name">إظهار مسارات قوارب التجديف</string> <string name="distance_farthest">المسافة: الأبعد أولاً</string> <string name="distance_nearest">المسافة: الأقرب أولاً</string> <string name="enter_lat_and_lon">أدخل خط العرض وخط الطول</string> @@ -3014,7 +3014,7 @@ <string name="years_5">سنوات</string> <string name="months_3">ثلاثة أشهر</string> <string name="price_free">مجاناً</string> - <string name="rendering_attr_showCycleNodeNetworkRoutes_name">إظهار دوائر مسارات شبكة النقاط</string> + <string name="rendering_attr_showCycleNodeNetworkRoutes_name">إظهار شبكة مسارات الدارجات الهوائية</string> <string name="download_map_dialog">نافذة تحميل الخريطة</string> <string name="dialogs_and_notifications_title">النوافذ والإشعارات</string> <string name="dialogs_and_notifications_descr">التحكم في النوافذ المنبثقة ، ومربعات الحوار والإشعارات.</string> From 130ddc8f8c32ec1898af7fbac55aa20d0c9b034e Mon Sep 17 00:00:00 2001 From: Athoss <athoss@citromail.hu> Date: Sat, 20 Jun 2020 18:08:09 +0000 Subject: [PATCH 131/300] Translated using Weblate (Hungarian) Currently translated at 96.0% (3269 of 3403 strings) --- OsmAnd/res/values-hu/strings.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 269b9651c2..db4655a635 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3708,4 +3708,21 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="quick_action_mapillary_hide">Mapillary elrejtése</string> <string name="quick_action_mapillary_show">Mapillary megjelenítése</string> <string name="quick_action_showhide_mapillary_descr">Váltógomb, amely a térképen megjeleníti vagy elrejti a Mapillary réteget.</string> + <string name="uninstall_speed_cameras">Traffipaxok eltávolítása</string> + <string name="shared_string_legal">Jogi</string> + <string name="speed_camera_pois">Traffipax POI-k</string> + <string name="speed_cameras_legal_descr">Bizonyos országokban és régiókban a traffipaxra figyelmeztető alkalmazások törvényileg tiltottak. +\n +\nDöntsön az ön országának törvényei alapján. +\n +\nVálaszzsa a %1$s lehetőséget, hogy figyelmeztetéseket és riasztásokat kapjon a traffipaxokról. +\n +\nVálaszzsa az %2$s lehetőséget, hogy az összes traffipax-szal kapcsolatos adat: riasztások, értesítések, POI-k törlésre kerüljenek az OsmAnd teljes újratelepítéséig.</string> + <string name="keep_active">Maradjanak</string> + <string name="shared_string_uninstall">Eltávolít</string> + <string name="speed_cameras_alert">Bizonyos országokban a traffipax riasztások törvényileg tiltottak.</string> + <string name="shared_string_bearing">Tájolás</string> + <string name="item_deleted">%1$s törölve</string> + <string name="speed_cameras_restart_descr">A traffipax adatok végleges eltávolításához újraindítás szükséges.</string> + <string name="shared_string_uninstall_and_restart">Eltávolítás és Újraindítás</string> </resources> \ No newline at end of file From 7c300bb2ed2a4eada764f63609fb073affd24ed1 Mon Sep 17 00:00:00 2001 From: ace shadow <acelists@atlas.sk> Date: Sat, 20 Jun 2020 18:36:36 +0000 Subject: [PATCH 132/300] Translated using Weblate (Slovak) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-sk/strings.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index df4c174281..121395e59c 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -3780,4 +3780,25 @@ <string name="vessel_height_warning">Môžete nastaviť výšku plavidla, aby sa dalo vyhnúť nízkym mostom. Pamätajte, že pri sklápacích alebo posuvných mostoch sa zohľadní výška v otvorenom stave.</string> <string name="vessel_height_limit_description">Nastavte výšku plavidla, aby sa dalo vyhnúť nízkym mostom. Pamätajte, že pri sklápacích alebo posuvných mostoch sa zohľadní výška v otvorenom stave.</string> <string name="vessel_width_limit_description">Nastavte šírku plavidla, aby sa dalo vyhnúť úzkym mostom</string> + <string name="uninstall_speed_cameras">Odinštalovať rýchlostné radary</string> + <string name="shared_string_legal">Právne</string> + <string name="speed_camera_pois">Body rýchlostných radarov</string> + <string name="speed_cameras_legal_descr">V niektorých krajinách alebo regiónoch je zákonom zakázané použivať aplikácie varujúce pred rýchlostnými radarmi. +\n +\nMusíte sa rozhodnúť podľa zákonov vašej krajiny. +\n +\nZvoľte %1$s a budete dostávať varovania pred rýchlostnými radarmi. +\n +\nZvoľte %2$s a všetky údaje o rýchlostných radaroch budú odstránené, až kým nebude OsmAnd znovu preinštalovaný.</string> + <string name="keep_active">Ponechať aktívne</string> + <string name="speed_cameras_alert">V niektorých krajinách je varovanie pred rýchlostnými radarmi zakázané zákonom.</string> + <string name="quick_action_showhide_mapillary_title">Zobraziť/skryť Mapillary</string> + <string name="quick_action_mapillary_hide">Skryť Mapillary</string> + <string name="quick_action_mapillary_show">Zobraziť Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Prepínač pre zobrazenie alebo skrytie vrstvy Mapillary na mape.</string> + <string name="shared_string_bearing">Smerovanie</string> + <string name="item_deleted">%1$s vymazané</string> + <string name="speed_cameras_restart_descr">Pre úplné odstránenie údajov o rýchlostných radaroch je potrebný reštart.</string> + <string name="shared_string_uninstall_and_restart">Odinštalovať a reštartovať</string> + <string name="shared_string_uninstall">Odinštalovať</string> </resources> \ No newline at end of file From 4532d47e41204965b5593cdd78dfc4428348d452 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira <duduaddad@gmail.com> Date: Sat, 20 Jun 2020 19:05:12 +0000 Subject: [PATCH 133/300] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index d424b7b84c..7c733a3be1 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3773,4 +3773,21 @@ Pôr do Sol: %2$s</string> <string name="quick_action_mapillary_hide">Ocultar Mapillary</string> <string name="quick_action_mapillary_show">Mostrar Mapillary</string> <string name="quick_action_showhide_mapillary_descr">Uma alternância para mostrar ou ocultar a camada Mapillary no mapa.</string> + <string name="uninstall_speed_cameras">Desinstalar radares de velocidade</string> + <string name="shared_string_legal">Legal</string> + <string name="speed_camera_pois">POIs de radares de velocidade</string> + <string name="speed_cameras_legal_descr">Em alguns países ou regiões, o uso de aplicativos de aviso de radares é proibido por lei. +\n +\nVocê precisa fazer uma escolha, dependendo da lei do seu país. +\n +\nSelecione %1$s e você receberá alertas e avisos sobre radares de velocidade. +\n +\nSelecione %2$s. Todos os dados relacionados a radares de velocidade: alertas, notificações, POIs serão excluídos até que o OsmAnd seja completamente reinstalado.</string> + <string name="keep_active">Manter ativo</string> + <string name="shared_string_uninstall">Desinstalar</string> + <string name="speed_cameras_alert">Os alertas de radares de velocidade em alguns países são proibidos por lei.</string> + <string name="shared_string_bearing">Rolamento</string> + <string name="item_deleted">%1$s excluído</string> + <string name="speed_cameras_restart_descr">É necessário reiniciar para excluir completamente os dados da câmera de velocidade.</string> + <string name="shared_string_uninstall_and_restart">Desinstalar e reiniciar</string> </resources> \ No newline at end of file From fdcd0b872dae4b05d093c25c6f3f854dc7fa30e4 Mon Sep 17 00:00:00 2001 From: Softmap <skdhd5@gmail.com> Date: Sat, 20 Jun 2020 22:56:52 +0000 Subject: [PATCH 134/300] Translated using Weblate (Arabic) Currently translated at 99.9% (3402 of 3403 strings) --- OsmAnd/res/values-ar/strings.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 79a4be40dd..4026f6025d 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -977,7 +977,7 @@ <string name="shared_string_my_favorites">المفضلة</string> <string name="shared_string_tracks">المسارات</string> <string name="rendering_category_hide">إخفاء</string> - <string name="configure_map">تكوين الخريطة</string> + <string name="configure_map">إعداد الخريطة</string> <string name="layer_map">مصدر الخريطة…</string> <string name="map_source">مصدر الخريطة</string> <string name="layer_amenity_label">عرض أسماء المفضلة</string> @@ -1195,7 +1195,7 @@ <string name="rendering_attr_hideAccess_name">قيود الدخول</string> <string name="rendering_attr_showAccess_name">عرض قيود الدخول</string> <string name="rendering_attr_showSurfaces_name">عرض سطح الطريق</string> - <string name="rendering_attr_showCycleRoutes_name">إظهار مسارات الدراجات الهوائية</string> + <string name="rendering_attr_showCycleRoutes_name">إظهار مسارات الدراجات</string> <string name="delay_navigation_start">بدء التوجيه المفصل تلقائياً</string> <string name="gpx_info_subtracks">مسارات فرعية: %1$s</string> <string name="gpx_info_waypoints">نقاط الطريق: %1$s</string> @@ -1669,7 +1669,7 @@ <string name="select_voice_provider">اختر التوجيه الصوتي</string> <string name="select_voice_provider_descr">اختر أو قم بتحميل التوجيه الصوتي الخاص بلغتك.</string> <string name="no_location_permission">منح الوصول إلى بيانات الموقع.</string> - <string name="rendering_attr_horseRoutes_name">إظهار مسارات الخيول</string> + <string name="rendering_attr_horseRoutes_name">مسارات الخيول</string> <string name="shared_string_hide">إخفاء</string> <string name="av_video_quality_low">أقل جودة</string> <string name="av_video_quality_high">أعلى جودة</string> @@ -1765,7 +1765,7 @@ <string name="upload_osm_note_description">قم بتحميل مذكرة OSM الخاصة بك دون الكشف عن هويتك أو باستخدام ملف تعريف OpenStreetMap.org .</string> <string name="add_points_to_map_markers_q">إضافة جميع النقاط إلى علامات الخريطة؟</string> <string name="clear_markers_history_q">مسح السجلات ؟</string> - <string name="rendering_attr_showMtbRoutes_name">إظهار مسارات الدراجات الجبلية</string> + <string name="rendering_attr_showMtbRoutes_name">إظهار مسارات الدراجة الجبلية</string> <string name="clear_updates_proposition_message">يمكنك إزالة التحديثات المحملة والرجوع إلى الإصدار الأصلي للخريطة</string> <string name="add_time_span">إضافة فترة زمنية</string> <string name="item_removed">تمت إزالة العنصر</string> @@ -1896,9 +1896,9 @@ <string name="routing_attr_avoid_borders_description">تجنب عبور الحدود الوطنية</string> <string name="routing_attr_height_description">تحديد الارتفاع الأعلى المسموح به على الطرق.</string> <string name="disable_complex_routing_descr">تعطيل 2-مرحلة التوجيه للملاحة بالسيارة.</string> - <string name="rendering_attr_alpineHiking_name">إظهار مسارات تسلق جبال الألب</string> + <string name="rendering_attr_alpineHiking_name">مقياس التنزه في جبال الألب (SAC)</string> <string name="rendering_attr_alpineHiking_description">تقديم المسارات وفقاً لمقياس SAC.</string> - <string name="rendering_attr_hikingRoutesOSMC_name">كيفية اظهار رموز طبقة التسلق (الهايكنق)</string> + <string name="rendering_attr_hikingRoutesOSMC_name">تراكب رمز التسلق</string> <string name="rendering_attr_hikingRoutesOSMC_description">تقديم المسارات وفقاً لآثار OSMC.</string> <string name="local_index_description">انقر فوق أي عنصر لمعرفة المزيد من التفاصيل، اضغط وواصل الضغط للتعطيل أو الحذف. البيانات الحالية على الجهاز (%1$s متاح):</string> <string name="keep_informing_descr">إعادة إعلان تعليمات الملاحة في فترات منتظمة.</string> @@ -2623,7 +2623,7 @@ <string name="shared_string_total">الإجمالي</string> <string name="clear_all_intermediates">إزالة كافة النقاط الوسيطة</string> <string name="group_deleted">تم حذف المجموعة</string> - <string name="rendering_attr_whiteWaterSports_name">إظهار مسارات قوارب التجديف</string> + <string name="rendering_attr_whiteWaterSports_name">رياضات الماء المزبد</string> <string name="distance_farthest">المسافة: الأبعد أولاً</string> <string name="distance_nearest">المسافة: الأقرب أولاً</string> <string name="enter_lat_and_lon">أدخل خط العرض وخط الطول</string> From e11bd30ea70f9036faa994b3cdc3b38eeebd2e2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= <ivanrsm1997@gmail.com> Date: Sun, 21 Jun 2020 00:17:17 +0000 Subject: [PATCH 135/300] Translated using Weblate (Galician) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-gl/strings.xml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 4493b4e5c0..d2cbc58e59 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -1393,7 +1393,7 @@ <string name="anonymous_user">Usuario anónimo</string> <string name="logged_as">Identificado como %1$s</string> <string name="speak_pedestrian">Pasos de peóns</string> - <string name="rendering_attr_roadStyle_name">Estilo da estradas</string> + <string name="rendering_attr_roadStyle_name">Estilo das estradas</string> <string name="rendering_value_default_name">Predeterminado</string> <string name="rendering_value_orange_name">Laranxa</string> <string name="rendering_value_germanRoadAtlas_name">Atlas de estradas alemás</string> @@ -3813,4 +3813,21 @@ Lon %2$s</string> <string name="quick_action_mapillary_hide">Agochar o Mapillary</string> <string name="quick_action_showhide_mapillary_descr">Un botón para amosar ou agochar a capa do Mapillary no mapa.</string> <string name="quick_action_mapillary_show">Amosar o Mapillary</string> + <string name="uninstall_speed_cameras">Desinstalar radares de velocidade</string> + <string name="shared_string_legal">Legal</string> + <string name="speed_camera_pois">PDI de radares de velocidade</string> + <string name="speed_cameras_legal_descr">Nalgúns países ou rexións, o emprego de aplicacións de aviso de radares está prohibido por lei. +\n +\nTes que facer unha escolla, dependendo da lei do teu país. +\n +\nEscolle %1$s e recibirás alertas e avisos sobre radares de velocidade. +\n +\nEscolle %2$s. Todos os datos relacionados de radares de velocidade: alertas, notificacións e PDI serán eliminados até que o OsmAnd sexa reinstalado de xeito completo.</string> + <string name="keep_active">Manter activo</string> + <string name="shared_string_uninstall">Desinstalar</string> + <string name="speed_cameras_restart_descr">É necesario reiniciar para eliminar de xeito completo os datos do radar de velocidade.</string> + <string name="speed_cameras_alert">As alertas de radares de velocidade nalgúns países están prohibidas por lei.</string> + <string name="shared_string_bearing">Levando</string> + <string name="item_deleted">%1$s eliminado</string> + <string name="shared_string_uninstall_and_restart">Desinstalar e reiniciar</string> </resources> \ No newline at end of file From eb6947a59f1ab399d227016a5593a86402e71f70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= <ivanrsm1997@gmail.com> Date: Sun, 21 Jun 2020 00:25:40 +0000 Subject: [PATCH 136/300] Translated using Weblate (Galician) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-gl/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-gl/phrases.xml b/OsmAnd/res/values-gl/phrases.xml index 55ce301510..2e2fbe9291 100644 --- a/OsmAnd/res/values-gl/phrases.xml +++ b/OsmAnd/res/values-gl/phrases.xml @@ -907,7 +907,7 @@ <string name="poi_toll_yes">Portaxe</string> <string name="poi_toll_no">Sen portaxe</string> <string name="poi_traffic_signals_sound_yes">Si</string> - <string name="poi_traffic_signals_sound_no">Non</string> + <string name="poi_traffic_signals_sound_no">Son: non</string> <string name="poi_services">Área de servizo</string> <string name="poi_bird_hide">Lugar para observar paxaros</string> <string name="poi_farmland">Agras</string> @@ -3817,4 +3817,9 @@ <string name="poi_fire_hydrant_type_pipe">Tubaxe</string> <string name="poi_fire_hydrant_pressure_filter">Presión</string> <string name="poi_pump_status_missing_beam">Estado da bomba: sen chave</string> + <string name="poi_traffic_signals_arrow_yes">Si</string> + <string name="poi_traffic_signals_vibration_yes">Si</string> + <string name="poi_traffic_signals_vibration_no">Vibración: non</string> + <string name="poi_traffic_signals_arrow">Frecha</string> + <string name="poi_traffic_signals_vibration">Vibración</string> </resources> \ No newline at end of file From 4144ac02497dafb3d042f00ac9d8ac70b114f093 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani <sh.yaron@gmail.com> Date: Sun, 21 Jun 2020 06:10:48 +0000 Subject: [PATCH 137/300] Translated using Weblate (Hebrew) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-he/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index 9a10579256..da02a51e16 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -3804,4 +3804,11 @@ <string name="item_deleted">%1$s נמחקו</string> <string name="speed_cameras_restart_descr">נדרשת הפעלה מחדש כדי למחוק לחלוטין את נתוני מצלמות המהירות.</string> <string name="shared_string_uninstall_and_restart">הסרה והפעלה מחדש</string> + <string name="speed_cameras_legal_descr">בחלק מהמדינות או האזורים השימוש ביישומוני אזהרה מפני מצלמות מהירות אסור על פי חוק. +\n +\nעליך להחליט כיצד לנהוג בהתאם לחוק במדינה שלך. +\n +\nבחירה באפשרות %1$s תוביל לכך שתישלחנה אליך התרעות על מצלמות מהירות. +\n +\nבחירה באפשרות %2$s תוביל לכך שנתונים שקשורים במצלמות מהירות: אזהרות, התרעות ונקודות עניין תימחקנה עד להתקנה מחדש של OsmAnd.</string> </resources> \ No newline at end of file From b02b5ce4263c6eaced7475da806567b9d02ad1c8 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Sun, 21 Jun 2020 15:25:39 +0300 Subject: [PATCH 138/300] Fix #9186 add/edit title favorite context menu button --- .../MapContextMenuFragment.java | 121 +++++++++--------- 1 file changed, 63 insertions(+), 58 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index 9080f88ca6..194f07552a 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -551,65 +551,17 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } View buttonsBottomBorder = view.findViewById(R.id.buttons_bottom_border); - View buttonsTopBorder = view.findViewById(R.id.buttons_top_border); - buttonsBottomBorder.setBackgroundColor(ContextCompat.getColor(mapActivity, nightMode ? R.color.ctx_menu_buttons_divider_dark : R.color.ctx_menu_buttons_divider_light)); - buttonsTopBorder.setBackgroundColor(ContextCompat.getColor(mapActivity, nightMode ? R.color.ctx_menu_buttons_divider_dark : R.color.ctx_menu_buttons_divider_light)); - LinearLayout buttons = view.findViewById(R.id.context_menu_buttons); - buttons.setBackgroundColor(ContextCompat.getColor(mapActivity, nightMode ? R.color.list_background_color_dark : R.color.activity_background_color_light)); - if (!menu.buttonsVisible()) { - buttonsTopBorder.setVisibility(View.GONE); - buttons.setVisibility(View.GONE); - } + int buttonsBorderColor = ContextCompat.getColor(mapActivity, + nightMode ? R.color.ctx_menu_buttons_divider_dark : R.color.ctx_menu_buttons_divider_light); + buttonsBottomBorder.setBackgroundColor(buttonsBorderColor); View bottomButtons = view.findViewById(R.id.context_menu_bottom_buttons); - bottomButtons.setBackgroundColor(ContextCompat.getColor(mapActivity, nightMode ? R.color.list_background_color_dark : R.color.activity_background_color_light)); - if (!menu.navigateButtonVisible()) { - bottomButtons.findViewById(R.id.context_menu_directions_button).setVisibility(View.GONE); - } - - // Action buttons - ContextMenuAdapter adapter = menu.getActionsContextMenuAdapter(false); - List<ContextMenuItem> items = adapter.getVisibleItems(); - List<String> mainIds = ((OsmandSettings.MainContextMenuItemsSettings) app.getSettings().CONTEXT_MENU_ACTIONS_ITEMS.get()).getMainIds(); - ContextMenuAdapter mainAdapter = new ContextMenuAdapter(requireMyApplication()); - ContextMenuAdapter additionalAdapter = new ContextMenuAdapter(requireMyApplication()); - - if (!mainIds.isEmpty()){ - for (ContextMenuItem item : items) { - if (mainIds.contains(item.getId())) { - mainAdapter.addItem(item); - } else { - additionalAdapter.addItem(item); - } - } - } else { - for (int i = 0; i < items.size(); i++) { - if (i < MAIN_BUTTONS_QUANTITY) { - mainAdapter.addItem(items.get(i)); - } else { - additionalAdapter.addItem(items.get(i)); - } - } - } - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT, - 1f - ); - buttons.removeAllViews(); - ContextMenuItemClickListener mainListener = menu.getContextMenuItemClickListener(mainAdapter); - ContextMenuItemClickListener additionalListener = menu.getContextMenuItemClickListener(additionalAdapter); - - if (!mainIds.isEmpty()){ - for (ContextMenuItem item: mainAdapter.getItems()) { - buttons.addView(getActionView(item, mainAdapter.getItems().indexOf(item), mainAdapter, additionalAdapter, mainListener, additionalListener), params); - } - } else { - int mainButtonsQuantity = Math.min(MAIN_BUTTONS_QUANTITY, items.size()); - for (int i = 0; i < mainButtonsQuantity; i++) { - buttons.addView(getActionView(items.get(i), i, mainAdapter, additionalAdapter, mainListener, additionalListener), params); - } - } - buttons.setGravity(Gravity.CENTER); + bottomButtons.setBackgroundColor(ContextCompat.getColor(mapActivity, + nightMode ? R.color.list_background_color_dark : R.color.activity_background_color_light)); + bottomButtons.findViewById(R.id.context_menu_directions_button) + .setVisibility(menu.navigateButtonVisible() ? View.VISIBLE : View.GONE); + View buttonsTopBorder = view.findViewById(R.id.buttons_top_border); + buttonsTopBorder.setBackgroundColor(buttonsBorderColor); + buttonsTopBorder.setVisibility(menu.buttonsVisible() ? View.VISIBLE : View.GONE); //Bottom buttons int bottomButtonsColor = nightMode ? R.color.ctx_menu_controller_button_text_color_dark_n : R.color.ctx_menu_controller_button_text_color_light_n; @@ -669,6 +621,58 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo return view; } + private void updateActionButtons(MapActivity mapActivity) { + LinearLayout buttons = view.findViewById(R.id.context_menu_buttons); + buttons.setBackgroundColor(ContextCompat.getColor(mapActivity, + nightMode ? R.color.list_background_color_dark : R.color.activity_background_color_light)); + buttons.setVisibility(menu.buttonsVisible() ? View.VISIBLE : View.GONE); + // Action buttons + ContextMenuAdapter adapter = menu.getActionsContextMenuAdapter(false); + List<ContextMenuItem> items = adapter.getVisibleItems(); + List<String> mainIds = ((OsmandSettings.MainContextMenuItemsSettings) mapActivity.getMyApplication() + .getSettings().CONTEXT_MENU_ACTIONS_ITEMS.get()).getMainIds(); + ContextMenuAdapter mainAdapter = new ContextMenuAdapter(requireMyApplication()); + ContextMenuAdapter additionalAdapter = new ContextMenuAdapter(requireMyApplication()); + + if (!mainIds.isEmpty()) { + for (ContextMenuItem item : items) { + if (mainIds.contains(item.getId())) { + mainAdapter.addItem(item); + } else { + additionalAdapter.addItem(item); + } + } + } else { + for (int i = 0; i < items.size(); i++) { + if (i < MAIN_BUTTONS_QUANTITY) { + mainAdapter.addItem(items.get(i)); + } else { + additionalAdapter.addItem(items.get(i)); + } + } + } + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT, + 1f + ); + buttons.removeAllViews(); + ContextMenuItemClickListener mainListener = menu.getContextMenuItemClickListener(mainAdapter); + ContextMenuItemClickListener additionalListener = menu.getContextMenuItemClickListener(additionalAdapter); + + if (!mainIds.isEmpty()) { + for (ContextMenuItem item : mainAdapter.getItems()) { + buttons.addView(getActionView(item, mainAdapter.getItems().indexOf(item), mainAdapter, additionalAdapter, mainListener, additionalListener), params); + } + } else { + int mainButtonsQuantity = Math.min(MAIN_BUTTONS_QUANTITY, items.size()); + for (int i = 0; i < mainButtonsQuantity; i++) { + buttons.addView(getActionView(items.get(i), i, mainAdapter, additionalAdapter, mainListener, additionalListener), params); + } + } + buttons.setGravity(Gravity.CENTER); + } + private View getActionView(ContextMenuItem contextMenuItem, final int position, final ContextMenuAdapter mainAdapter, @@ -1271,6 +1275,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } else { titleProgressContainer.setVisibility(View.GONE); } + updateActionButtons(getMapActivity()); updateAdditionalInfoVisibility(); } } From b6425a28393c5751cf15492356ee008ddab34e7a Mon Sep 17 00:00:00 2001 From: max-klaus <max.klaus@osmand.net> Date: Sun, 21 Jun 2020 15:49:36 +0300 Subject: [PATCH 139/300] Fix #8238 --- OsmAnd/src/net/osmand/plus/render/MapVectorLayer.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/render/MapVectorLayer.java b/OsmAnd/src/net/osmand/plus/render/MapVectorLayer.java index e156d0fa7d..f3643b2617 100644 --- a/OsmAnd/src/net/osmand/plus/render/MapVectorLayer.java +++ b/OsmAnd/src/net/osmand/plus/render/MapVectorLayer.java @@ -103,6 +103,7 @@ public class MapVectorLayer extends BaseMapLayer { if (mapRenderer != null && !oldRender) { NativeCoreContext.getMapRendererContext().setNightMode(drawSettings.isNightMode()); OsmandSettings st = view.getApplication().getSettings(); + /* TODO: Commented to avoid crash (looks like IMapTiledDataProvider.Request parameter does not pass correctly or cannot be resolved while calling obtainImage method) if (!Algorithms.objectEquals(st.MAP_UNDERLAY.get(), cachedUnderlay)) { cachedUnderlay = st.MAP_UNDERLAY.get(); ITileSource tileSource = st.getTileSourceByName(cachedUnderlay, false); @@ -116,12 +117,14 @@ public class MapVectorLayer extends BaseMapLayer { mapRenderer.resetMapLayerProvider(-1); } } + */ if (!Algorithms.objectEquals(st.MAP_TRANSPARENCY.get(), cachedMapTransparency)) { cachedMapTransparency = st.MAP_TRANSPARENCY.get(); MapLayerConfiguration mapLayerConfiguration = new MapLayerConfiguration(); mapLayerConfiguration.setOpacityFactor(((float) cachedMapTransparency) / 255.0f); mapRenderer.setMapLayerConfiguration(0, mapLayerConfiguration); } + /* TODO: Commented to avoid crash (looks like IMapTiledDataProvider.Request parameter does not pass correctly or cannot be resolved while calling obtainImage method) if (!Algorithms.objectEquals(st.MAP_OVERLAY.get(), cachedOverlay)) { cachedOverlay = st.MAP_OVERLAY.get(); ITileSource tileSource = st.getTileSourceByName(cachedOverlay, false); @@ -141,6 +144,7 @@ public class MapVectorLayer extends BaseMapLayer { mapLayerConfiguration.setOpacityFactor(((float) cachedOverlayTransparency) / 255.0f); mapRenderer.setMapLayerConfiguration(1, mapLayerConfiguration); } + */ // opengl renderer LatLon ll = tilesRect.getLatLonFromPixel(tilesRect.getPixWidth() / 2, tilesRect.getPixHeight() / 2); mapRenderer.setTarget(new PointI(MapUtils.get31TileNumberX(ll.getLongitude()), MapUtils.get31TileNumberY(ll From 44756e40d17935934d430c2c663ada83719065d6 Mon Sep 17 00:00:00 2001 From: Athoss <athoss@citromail.hu> Date: Sun, 21 Jun 2020 12:34:09 +0000 Subject: [PATCH 140/300] Translated using Weblate (Hungarian) Currently translated at 96.0% (3269 of 3403 strings) --- OsmAnd/res/values-hu/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index db4655a635..3879ab1306 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3485,7 +3485,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="use_system_screen_timeout_promo">Alapértelmezésben le van tiltva: amíg az OsmAnd az előtérben fut, a kijelző nem kapcsol ki. \n \nAmennyiben engedélyezve van, az OsmAnd az időtúllépésre vonatkozó rendszerbeállítást használja.</string> - <string name="use_system_screen_timeout">Kijelző időtűllépés rendszerbeállítás használata</string> + <string name="use_system_screen_timeout">Kijelző időtúllépés rendszerbeállítás használata</string> <string name="copy_coordinates">Koordináták másolása</string> <string name="route_recalculation_dist_descr">Az útvonal újraszámításra kerül, amennyiben az útvonaltól való távolság több, mint a megadott paraméter</string> <string name="route_recalculation_dist_title">Legkisebb távolság, amely felett újraszámítja az útvonalat</string> @@ -3655,9 +3655,9 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n%2$s: Ezen nagyítási szintek között az eredeti csempék jelennek meg, ezeken kívül pedig felskálázásra vagy leskálázásra kerülnek.</string> <string name="shared_string_always">Mindig</string> <string name="screen_control">Kijelző beállításai</string> - <string name="system_screen_timeout">Kijelző időtűllépés rendszerbeállítás használata</string> + <string name="system_screen_timeout">Kijelző időtúllépés rendszerbeállítás használata</string> <string name="turn_screen_on_options_descr">Ezekkel a beállításokkal az OsmAnddal az előtérben ébresztheti fel a kijelzőt.</string> - <string name="turn_screen_on_descr">Ezek a beállítások csak akkor működnek, ha az eszköz az OsmAnddal az előtérben kerül lezárásra.</string> + <string name="turn_screen_on_descr">Válassza ki a kijelző felébresztési lehetőségeit (fontos, hogy az OsmAnd az előtérben fusson, amikor az eszköz lezárásra kerül):</string> <string name="turn_screen_on_navigation_instructions_descr">Valamennyi navigációs utasítás előtt a kijelző bekapcsolásra kerül.</string> <string name="turn_screen_on_navigation_instructions">Navigációs utasítások</string> <string name="turn_screen_on_power_button_descr">A feloldógomb megnyomásakor a kijelző az OsmAnddal az előtérben fog megjelenni.</string> @@ -3715,9 +3715,9 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n \nDöntsön az ön országának törvényei alapján. \n -\nVálaszzsa a %1$s lehetőséget, hogy figyelmeztetéseket és riasztásokat kapjon a traffipaxokról. +\nVálassza a %1$s lehetőséget, hogy figyelmeztetéseket és riasztásokat kapjon a traffipaxokról. \n -\nVálaszzsa az %2$s lehetőséget, hogy az összes traffipax-szal kapcsolatos adat: riasztások, értesítések, POI-k törlésre kerüljenek az OsmAnd teljes újratelepítéséig.</string> +\nVálassza az %2$s lehetőséget, hogy az összes traffipax-szal kapcsolatos adat: riasztások, értesítések, POI-k törlésre kerüljenek az OsmAnd teljes újratelepítéséig.</string> <string name="keep_active">Maradjanak</string> <string name="shared_string_uninstall">Eltávolít</string> <string name="speed_cameras_alert">Bizonyos országokban a traffipax riasztások törvényileg tiltottak.</string> From 4a4ea6a0ddd9b6b8cee6f920488febb174288346 Mon Sep 17 00:00:00 2001 From: Suren <aslanyan@list.ru> Date: Sun, 21 Jun 2020 10:16:40 +0000 Subject: [PATCH 141/300] Translated using Weblate (Armenian) Currently translated at 79.1% (2694 of 3403 strings) --- OsmAnd/res/values-hy/strings.xml | 33 ++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml index 7a3c8d0e57..a97197c140 100644 --- a/OsmAnd/res/values-hy/strings.xml +++ b/OsmAnd/res/values-hy/strings.xml @@ -153,7 +153,7 @@ <string name="my_location">Իմ դիրքը</string> <string name="shared_string_finish">Վերջ</string> <string name="plan_route">Պլանավորել երթուղին</string> - <string name="shared_string_sort">Տեսակավորել</string> + <string name="shared_string_sort">Դասակարգել</string> <string name="coordinate_input">Կոորդինատների մուտքագրում</string> <string name="marker_save_as_track_descr">Արտահանեք ձեր մարկերները հետևյալ GPX ֆայլի մեջ:</string> <string name="marker_save_as_track">Պահպանել որպես GPX ֆայլ</string> @@ -2010,11 +2010,11 @@ <string name="preferred_locale_descr">Հավելվածի լեզուն (ուժի մեջ է մտնում OsmAnd-ի վերագործարկումից հետո)։</string> <string name="preferred_locale">Տեղայնացումը (լեզուն)</string> <string name="incomplete_locale">թերի</string> - <string name="unit_of_length_descr">Երկարության և արագության չափման միավորներ։</string> - <string name="unit_of_length">Երկարության միավորները</string> + <string name="unit_of_length_descr">Փոխել հեռավորության չափման միավորը։</string> + <string name="unit_of_length">Հեռավորության չափման միավոր</string> <string name="si_mi_feet">Մղոններ/ֆուտ</string> <string name="si_mi_yard">Մղոններ/յարդեր</string> - <string name="si_km_m">Քիլոմետր/մետր</string> + <string name="si_km_m">Կիլոմետր/մետր</string> <string name="yard">յարդ</string> <string name="foot">ֆուտ</string> <string name="mile_per_hour">մղ/ժ</string> @@ -2942,4 +2942,29 @@ <string name="item_deleted">%1$s ջնջվեց</string> <string name="speed_cameras_restart_descr">Անհրաժեշտ է վերագործարկում արագության խցիկնեևի տվյալները ամբողջությամբ ջնջելու համար:</string> <string name="shared_string_uninstall_and_restart">Ջնջել և վերագործարկեք</string> + <string name="unsupported_type_error">Չապահովվող տեսակ</string> + <string name="width_limit_description">Նշեք մեքենայի լայնությունը, երթուղու վրա կարող են կիրառվել սահմանափակումներ ծանր տրանսպորտային միջոցների համար։</string> + <string name="height_limit_description">Նշեք մեքենայի բարձրությունը, երթուղու վրա կարող են կիրառվել սահմանափակումներ ծանր տրանսպորտային միջոցների համար։</string> + <string name="weight_limit_description">Նշեք մեքենայի քաշը, երթուղու վրա կարող են կիրառվել սահմանափակումներ ծանր տրանսպորտային միջոցների համար։</string> + <string name="gpx_parse_error">OsmAnd-ի լավ ձևավորված չէ GPX, խնդրում ենք կապվել աջակցության թիմի հետ հետագա քննության համար:</string> + <string name="shared_string_always">Միշտ</string> + <string name="screen_control">Էկրանի կառավարում</string> + <string name="system_screen_timeout_descr">Էկրանը կանջատվի սարքի անգործության ժամանակահատվածից հետո, որը նշված է համակարգի պարամետրերում։</string> + <string name="turn_screen_on_descr">Էկրանի միացման կարգավորումները (սարքը կողպելուց առաջ համոզվեք, որ OsmAnd-ը գտնվում է առաջին պլանում)՝</string> + <string name="turn_screen_on_power_button_disabled">Անջատված է: Դուք պետք է միացնել «Պահել էկրանը միացված», «Արթնանալուց հետո աշխատելու ժամանակը» բաժնում:</string> + <string name="turn_screen_on_power_button_descr">"Սեղմելով սարքի միացման կոճակը հնարավորություն կտա ցուցադրել OsmAnd-ը արգելափակման էկրանին։"</string> + <string name="map_source_zoom_levels">Սահմանեք նվազագույն և առավելագույն մասշտաբի չափերը առցանց քարտեզը ցուցադրելու կամ ներբեռնելու համար:</string> + <string name="system_screen_timeout">Օգտագործել համակարգի կարգավորումը</string> + <string name="turn_screen_on_navigation_instructions_descr">Յուրաքանչյուր նավիգացիոն հրահանգը կմիացնի էկրանը:</string> + <string name="turn_screen_on_navigation_instructions">Նավիգացիոն կարգավորումներ</string> + <string name="uninstall_speed_cameras">Հեռացրեք արագության տեսախցիկները</string> + <string name="shared_string_legal">Օրենսդրություն</string> + <string name="speed_camera_pois">Արագաչափ տեսախցիկների POI-ներ</string> + <string name="speed_cameras_legal_descr">Որոշ երկրներում և շրջաններում արագության խցիկի ազդանշանների օգտագործումը օրենքով արգելված է: +\n +\nԴուք պետք է ընտրություն կատարեք ՝ համաձայն ձեր երկրի օրենսդրությունից: +\n +\nԸնտրեք %1$s արագության տեսախցիկների վերաբերյալ ահազանգեր ստանալու համար: +\n +\nԸնտրեք %2$s։ Արագության խցիկների (ծանուցումների, ազդանշանների և POI- ների) հետ կապված բոլոր տվյալները ջնջելու համար, մինչև OsmAnd- ը ամբողջովին կվերատեղակայվի:</string> </resources> \ No newline at end of file From ff9ee926b6f7eb7e44cc7015d59201f20ae68080 Mon Sep 17 00:00:00 2001 From: Franco <francobenedetti.59+github1@gmail.com> Date: Sun, 21 Jun 2020 12:53:02 +0000 Subject: [PATCH 142/300] Translated using Weblate (Spanish (Argentina)) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 5c15f4f2af..fc098eafa0 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -562,8 +562,8 @@ <string name="clear_intermediate_points">Limpiar destinos intermedios</string> <string name="keep_intermediate_points">Mantener destinos intermedios</string> <string name="new_directions_point_dialog">Ya se definieron destinos intermedios.</string> - <string name="context_menu_item_directions_to">Llegar hasta aquí</string> - <string name="context_menu_item_directions_from">Ir desde aquí</string> + <string name="context_menu_item_directions_to">Ir hasta</string> + <string name="context_menu_item_directions_from">Ir desde</string> <string name="route_descr_map_location">Mapa:</string> <string name="route_descr_lat_lon">Lat %1$.3f, Lon %2$.3f</string> <string name="route_descr_destination">Destino</string> @@ -3787,4 +3787,25 @@ <string name="vessel_height_limit_description">Define la altura de la embarcación para evitar puentes bajos. Tener en cuenta que si el puente es móvil, usaremos su altura en estado abierto.</string> <string name="vessel_height_warning">Puedes definir la altura de la embarcación para evitar puentes bajos. Tener en cuenta que si el puente es móvil, usaremos su altura en estado abierto.</string> <string name="vessel_width_limit_description">Define el ancho de la embarcación para evitar puentes estrechos</string> + <string name="speed_cameras_alert">Las alertas de los radares de velocidad se encuentran prohibidas por ley en algunos países.</string> + <string name="speed_cameras_legal_descr">En algunos países o regiones, las alertas de los radares de velocidad se encuentran prohibidas por ley. +\n +\nDebes elegir dependiendo de las leyes del país. +\n +\nPulsa en «%1$s», para recibir alertas y advertencias sobre los radares de velocidad. +\n +\nPulsa en «%2$s», para borrar todos los datos relacionados con los radares de velocidad (alertas, notificaciones y PDI) hasta reinstalar OsmAnd completamente.</string> + <string name="uninstall_speed_cameras">Desinstalar radares de velocidad</string> + <string name="speed_camera_pois">PDI de los radares de velocidad</string> + <string name="speed_cameras_restart_descr">Se debe reiniciar para borrar completamente los datos de los radares de velocidad.</string> + <string name="shared_string_legal">Legal</string> + <string name="keep_active">Mantener</string> + <string name="shared_string_uninstall">Desinstalar</string> + <string name="quick_action_showhide_mapillary_title">Mostrar/ocultar Mapillary</string> + <string name="quick_action_mapillary_hide">Ocultar Mapillary</string> + <string name="quick_action_mapillary_show">Mostrar Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Un botón que alterna la capa de Mapillary en el mapa.</string> + <string name="shared_string_bearing">Rumbo</string> + <string name="item_deleted">%1$s borrado</string> + <string name="shared_string_uninstall_and_restart">Desinstalar y reiniciar</string> </resources> \ No newline at end of file From a4672a7605bab2a2a1d6be61ace56ee4930335e3 Mon Sep 17 00:00:00 2001 From: Franco <francobenedetti.59+github1@gmail.com> Date: Sun, 21 Jun 2020 13:16:17 +0000 Subject: [PATCH 143/300] Translated using Weblate (Spanish (Argentina)) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-es-rAR/phrases.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index 72bf1710fc..1d68fd6573 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -1218,7 +1218,7 @@ <string name="poi_tactile_paving_yes">Sí</string> <string name="poi_tactile_paving_no">Pavimento táctil: no</string> <string name="poi_traffic_signals_sound_yes">Sí</string> - <string name="poi_traffic_signals_sound_no">Sonoro: no</string> + <string name="poi_traffic_signals_sound_no">Sonido: no</string> <string name="poi_traffic_signals_sound_walk">Sólo se permite al caminar</string> <string name="poi_retail">Área comercial</string> <string name="poi_ford_stepping_stones">Puente de piedras</string> @@ -2787,7 +2787,7 @@ <string name="poi_fire_hydrant_position">Ubicación del hidrante</string> <string name="poi_fire_hydrant_water_source">Origen del agua</string> <string name="poi_payment_toll_type">Forma de pago (peaje)</string> - <string name="poi_traffic_signals_sound">Sonoro</string> + <string name="poi_traffic_signals_sound">Sonido</string> <string name="poi_highway_crossing_type">Tipo de cruce</string> <string name="poi_tactile_paving">Pavimento táctil</string> <string name="poi_service_general">Servicio automotriz</string> @@ -3831,4 +3831,9 @@ <string name="poi_fire_hydrant_type_pipe">Tubería</string> <string name="poi_fire_hydrant_pressure_filter">Presión</string> <string name="poi_pump_status_missing_beam">Estado de la bomba: sin palanca</string> + <string name="poi_traffic_signals_arrow_yes">Sí</string> + <string name="poi_traffic_signals_vibration_yes">Sí</string> + <string name="poi_traffic_signals_vibration_no">Vibración: no</string> + <string name="poi_traffic_signals_arrow">Flecha</string> + <string name="poi_traffic_signals_vibration">Vibración</string> </resources> \ No newline at end of file From a9ce7bdc42ed51856808c1ce2d752bcae4022b6a Mon Sep 17 00:00:00 2001 From: Franco <francobenedetti.59+github1@gmail.com> Date: Sun, 21 Jun 2020 13:27:48 +0000 Subject: [PATCH 144/300] Translated using Weblate (Spanish (American)) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-es-rUS/strings.xml | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index 926413bb31..556f34bc56 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -562,8 +562,8 @@ <string name="clear_intermediate_points">Limpiar destinos intermedios</string> <string name="keep_intermediate_points">Mantener destinos intermedios</string> <string name="new_directions_point_dialog">Ya se definieron destinos intermedios.</string> - <string name="context_menu_item_directions_to">Llegar hasta aquí</string> - <string name="context_menu_item_directions_from">Ir desde aquí</string> + <string name="context_menu_item_directions_to">Ir hasta</string> + <string name="context_menu_item_directions_from">Ir desde</string> <string name="route_descr_map_location">Mapa:</string> <string name="route_descr_lat_lon">Lat %1$.3f, Lon %2$.3f</string> <string name="route_descr_destination">Destino</string> @@ -3784,4 +3784,25 @@ <string name="default_screen_timeout">Tiempo predefinido de la espera de la pantalla</string> <string name="clear_tiles_warning">Al aplicar estos cambios, los datos almacenados serán borrados para este repositorio de teselas</string> <string name="add_online_source">Añadir repositorio en línea</string> + <string name="uninstall_speed_cameras">Desinstalar radares de velocidad</string> + <string name="shared_string_legal">Legal</string> + <string name="speed_camera_pois">PDI de los radares de velocidad</string> + <string name="speed_cameras_alert">Las alertas de los radares de velocidad se encuentran prohibidas por ley en algunos países.</string> + <string name="speed_cameras_legal_descr">En algunos países o regiones, las alertas de los radares de velocidad se encuentran prohibidas por ley. +\n +\nDebes elegir dependiendo de las leyes del país. +\n +\nPulsa en «%1$s», para recibir alertas y advertencias sobre los radares de velocidad. +\n +\nPulsa en «%2$s», para borrar todos los datos relacionados con los radares de velocidad (alertas, notificaciones y PDI) hasta reinstalar OsmAnd completamente.</string> + <string name="keep_active">Mantener</string> + <string name="shared_string_uninstall">Desinstalar</string> + <string name="quick_action_showhide_mapillary_title">Mostrar/ocultar Mapillary</string> + <string name="quick_action_mapillary_hide">Ocultar Mapillary</string> + <string name="quick_action_mapillary_show">Mostrar Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Un botón que alterna la capa de Mapillary en el mapa.</string> + <string name="shared_string_bearing">Rumbo</string> + <string name="item_deleted">%1$s borrado</string> + <string name="speed_cameras_restart_descr">Debes reiniciar para borrar completamente los datos de los radares de velocidad.</string> + <string name="shared_string_uninstall_and_restart">Desinstalar y reiniciar</string> </resources> \ No newline at end of file From 6253d8803b1cd3887df0274160e464637a38c2d2 Mon Sep 17 00:00:00 2001 From: Franco <francobenedetti.59+github1@gmail.com> Date: Sun, 21 Jun 2020 13:40:33 +0000 Subject: [PATCH 145/300] Translated using Weblate (Spanish (American)) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-es-rUS/phrases.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-es-rUS/phrases.xml b/OsmAnd/res/values-es-rUS/phrases.xml index 041815f401..b1d9c0bc6c 100644 --- a/OsmAnd/res/values-es-rUS/phrases.xml +++ b/OsmAnd/res/values-es-rUS/phrases.xml @@ -1218,7 +1218,7 @@ <string name="poi_tactile_paving_yes">Sí</string> <string name="poi_tactile_paving_no">Pavimento táctil: no</string> <string name="poi_traffic_signals_sound_yes">Sí</string> - <string name="poi_traffic_signals_sound_no">Sonoro: no</string> + <string name="poi_traffic_signals_sound_no">Sonido: no</string> <string name="poi_traffic_signals_sound_walk">Sólo se permite al caminar</string> <string name="poi_retail">Área comercial</string> <string name="poi_ford_stepping_stones">Puente de piedras</string> @@ -2787,7 +2787,7 @@ <string name="poi_fire_hydrant_position">Ubicación del hidrante</string> <string name="poi_fire_hydrant_water_source">Origen del agua</string> <string name="poi_payment_toll_type">Forma de pago (peaje)</string> - <string name="poi_traffic_signals_sound">Sonoro</string> + <string name="poi_traffic_signals_sound">Sonido</string> <string name="poi_highway_crossing_type">Tipo de cruce</string> <string name="poi_tactile_paving">Pavimento táctil</string> <string name="poi_service_general">Servicio automotriz</string> @@ -3831,4 +3831,9 @@ <string name="poi_fire_hydrant_type_pipe">Tubería</string> <string name="poi_fire_hydrant_pressure_filter">Presión</string> <string name="poi_pump_status_missing_beam">Estado de la bomba: sin palanca</string> + <string name="poi_traffic_signals_arrow_yes">Sí</string> + <string name="poi_traffic_signals_vibration_yes">Sí</string> + <string name="poi_traffic_signals_vibration_no">Vibración: no</string> + <string name="poi_traffic_signals_arrow">Flecha</string> + <string name="poi_traffic_signals_vibration">Vibración</string> </resources> \ No newline at end of file From 252e736e8138d26646cc22687976050e4a3678fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= <sv1@fellsnet.is> Date: Sun, 21 Jun 2020 09:21:11 +0000 Subject: [PATCH 146/300] Translated using Weblate (Icelandic) Currently translated at 99.9% (3401 of 3403 strings) --- OsmAnd/res/values-is/strings.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index 318b978cdb..b5a8ca21b7 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -3776,4 +3776,18 @@ <string name="gpx_parse_error">GPX-ferill OsmAnd er gallaður, hafðu samband við aðstoðarteymið til að fá botn í þetta.</string> <string name="turn_screen_on_power_button_descr">Ef ýtt er á aflhappinn verður kveikt á skjánum með OsmAnd ofan á læsiskjánum.</string> <string name="export_import_quick_actions_with_profiles_promo">Þú getur flutt flýtiaðgerðir inn eða út með forritasniðum.</string> + <string name="uninstall_speed_cameras">Fjarlægja hraðamyndavélar</string> + <string name="shared_string_legal">Löglegt</string> + <string name="speed_camera_pois">Merktar hraðamyndavélar</string> + <string name="keep_active">Halda virku</string> + <string name="speed_cameras_alert">Aðvaranir vegna hraðamyndavéla eru bannaðar með lögum í sumum löndum.</string> + <string name="quick_action_showhide_mapillary_title">Sýna/fela Mapillary</string> + <string name="quick_action_mapillary_hide">Fela Mapillary</string> + <string name="quick_action_mapillary_show">Sýna Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Víxlhnappur til að birta eða fela Mapillary-lagið á kortinu.</string> + <string name="shared_string_bearing">Stefna</string> + <string name="item_deleted">%1$s eytt</string> + <string name="speed_cameras_restart_descr">Endurræsing er nauðsynleg til að geta fjarlægt alveg gögn um hraðamyndavélar.</string> + <string name="shared_string_uninstall_and_restart">Fjarlægja og endurræsa</string> + <string name="shared_string_uninstall">Fjarlægja</string> </resources> \ No newline at end of file From 2c493190691c5d0ade7ca507c30547989d353bdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= <sv1@fellsnet.is> Date: Sun, 21 Jun 2020 12:15:36 +0000 Subject: [PATCH 147/300] Translated using Weblate (Icelandic) Currently translated at 100.0% (3809 of 3809 strings) --- OsmAnd/res/values-is/phrases.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-is/phrases.xml b/OsmAnd/res/values-is/phrases.xml index b29e1b2110..c7a60bc0d1 100644 --- a/OsmAnd/res/values-is/phrases.xml +++ b/OsmAnd/res/values-is/phrases.xml @@ -895,7 +895,7 @@ <string name="poi_smoking_separated">Í sérherbergi</string> <string name="poi_tactile_paving_yes">Já</string> <string name="poi_traffic_signals_sound_yes">Já</string> - <string name="poi_traffic_signals_sound_no">Nei</string> + <string name="poi_traffic_signals_sound_no">Hljóð: nei</string> <string name="poi_bird_hide">Staður til fuglaskoðunar</string> <string name="poi_horse_riding">Hestaferðir</string> <string name="poi_scrub">Runnar</string> @@ -3809,4 +3809,9 @@ <string name="poi_fire_hydrant_style_water_source_groundwater">Grunnvatn</string> <string name="poi_fire_hydrant_type_pipe">Leiðsla</string> <string name="poi_fire_hydrant_pressure_filter">Þrýstingur</string> + <string name="poi_traffic_signals_arrow_yes">Já</string> + <string name="poi_traffic_signals_vibration_yes">Já</string> + <string name="poi_traffic_signals_vibration_no">Titringur: nei</string> + <string name="poi_traffic_signals_arrow">Ör</string> + <string name="poi_traffic_signals_vibration">Titringur</string> </resources> \ No newline at end of file From 02dd82b7b7a15260bdacb3521bd8f311d7b9e3d6 Mon Sep 17 00:00:00 2001 From: Suren <aslanyan@list.ru> Date: Sun, 21 Jun 2020 10:13:57 +0000 Subject: [PATCH 148/300] Translated using Weblate (Armenian) Currently translated at 40.0% (107 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/hy/ --- OsmAnd-telegram/res/values-hy/strings.xml | 56 ++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/OsmAnd-telegram/res/values-hy/strings.xml b/OsmAnd-telegram/res/values-hy/strings.xml index a4ac71b3fd..26b960e890 100644 --- a/OsmAnd-telegram/res/values-hy/strings.xml +++ b/OsmAnd-telegram/res/values-hy/strings.xml @@ -39,7 +39,7 @@ <string name="unit_of_speed_system_descr">Ընտրեք արագության չափման միավորը:</string> <string name="unit_of_length">Հեռավորության չափման միավոր</string> <string name="unit_of_length_descr">Փոխել հեռավորության չափման միավորը։</string> - <string name="units_and_formats">Չափման միավորներ եւ ձեւաչափեր</string> + <string name="units_and_formats">Չափման միավորներ և ձեւաչափեր</string> <string name="time_zone">Ժամային գոտին</string> <string name="time_zone_descr">Ընտրեք ժամային գոտին, որպեսզի ցույց տա ձեր գտնվելու վայրը հաղորդագրություններում:</string> <string name="buffer_time">Բուֆերի ավարտման ժամկետը</string> @@ -53,4 +53,58 @@ <string name="last_response_date">Վերջին պատասխանը՝ %1$s</string> <string name="last_update_from_telegram_date">Վերջին թարմացումը Telegram- ից.%1$s</string> <string name="shared_string_error_short">ՍԽԱԼ</string> + <string name="privacy_policy_use_telegram">Telegram (հաղորդագրությունների մենեջեր) օգտագործվում է մարդկանց հետ շփվելու և հաղորդակցվելու համար:</string> + <string name="shared_string_telegram">Telegram</string> + <string name="app_name_short">OsmAnd Թրեկեր</string> + <string name="timeline_description">Միացրեք մոնիտորինգը բոլոր վայրերը պատմության մեջ պահպանելու համար։</string> + <string name="location_recording_enabled">Գտնվելու վայրի արձանագրումը միացված է</string> + <string name="disable_monitoring">Անջատել մոնիտորինգը</string> + <string name="timeline_available_for_free_now">Ժամանակացույցն այժմ անվճար է:</string> + <string name="si_mi_meters">Մղոններ/մետր</string> + <string name="si_nm">Ծովային մղոն</string> + <string name="si_km_m">Կիլոմետր/մետր</string> + <string name="si_mi_yard">Մղոններ/յարդեր</string> + <string name="si_mi_feet">Մղոններ/ֆուտ</string> + <string name="si_min_m">Րոպե մղոն</string> + <string name="si_min_km">Րոպե կիլոմետր</string> + <string name="si_m_s">Մետր վայրկյանում</string> + <string name="si_mph">Մղոն ժամում</string> + <string name="si_kmh">Կիլոմետր ժամում</string> + <string name="mile_per_hour">մղ/ժ</string> + <string name="km_h">կմ/ժ</string> + <string name="m_s">մ/վ</string> + <string name="min_km">րոպե/կմ</string> + <string name="min_mile">րոպե/մ</string> + <string name="nm">նմ</string> + <string name="m">մ</string> + <string name="km">կմ</string> + <string name="mile">մղ</string> + <string name="foot">ֆուտ</string> + <string name="yard">յարդ</string> + <string name="osmand_service">Ֆոնային ռեժիմ</string> + <string name="shared_string_settings">Կարգավորումներ</string> + <string name="shared_string_cancel">Չեղարկել</string> + <string name="shared_string_continue">Շարունակել</string> + <string name="shared_string_back">Վերադառնալ</string> + <string name="shared_string_share">ՈՒղարկել</string> + <string name="shared_string_install">Տեղադրել</string> + <string name="shared_string_off">Անջատել</string> + <string name="shared_string_all">Բոլորը</string> + <string name="shared_string_close">Փակել</string> + <string name="shared_string_exit">Ելք</string> + <string name="shared_string_sort">Դասակարգել</string> + <string name="shared_string_name">Անուն</string> + <string name="shared_string_save">Պահպանել</string> + <string name="shared_string_disable">Անջատել</string> + <string name="shared_string_status">Կարգավիճակ</string> + <string name="shared_string_enabled">Միացված է</string> + <string name="shared_string_hide">Թաքցնել</string> + <string name="shared_string_add">Ավելացնել</string> + <string name="shared_string_map">Քարտեզ</string> + <string name="average_speed">Միջին արագությունը</string> + <string name="average_altitude">Միջին բարձրություն</string> + <string name="shared_string_update">Թարմացնել</string> + <string name="shared_string_appearance">Տեսակ</string> + <string name="shared_string_ok">OK</string> + <string name="shared_string_search">Որոնում</string> </resources> \ No newline at end of file From 985830b0f2b970cbeb549f9900cfd9740eedf6c1 Mon Sep 17 00:00:00 2001 From: Suren <aslanyan@list.ru> Date: Sun, 21 Jun 2020 15:53:11 +0000 Subject: [PATCH 149/300] Translated using Weblate (Armenian) Currently translated at 81.2% (2764 of 3403 strings) --- OsmAnd/res/values-hy/strings.xml | 72 +++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml index a97197c140..9644134415 100644 --- a/OsmAnd/res/values-hy/strings.xml +++ b/OsmAnd/res/values-hy/strings.xml @@ -2952,7 +2952,7 @@ <string name="system_screen_timeout_descr">Էկրանը կանջատվի սարքի անգործության ժամանակահատվածից հետո, որը նշված է համակարգի պարամետրերում։</string> <string name="turn_screen_on_descr">Էկրանի միացման կարգավորումները (սարքը կողպելուց առաջ համոզվեք, որ OsmAnd-ը գտնվում է առաջին պլանում)՝</string> <string name="turn_screen_on_power_button_disabled">Անջատված է: Դուք պետք է միացնել «Պահել էկրանը միացված», «Արթնանալուց հետո աշխատելու ժամանակը» բաժնում:</string> - <string name="turn_screen_on_power_button_descr">"Սեղմելով սարքի միացման կոճակը հնարավորություն կտա ցուցադրել OsmAnd-ը արգելափակման էկրանին։"</string> + <string name="turn_screen_on_power_button_descr">Սեղմելով սարքի միացման կոճակը հնարավորություն կտա ցուցադրել OsmAnd-ը արգելափակման էկրանին։</string> <string name="map_source_zoom_levels">Սահմանեք նվազագույն և առավելագույն մասշտաբի չափերը առցանց քարտեզը ցուցադրելու կամ ներբեռնելու համար:</string> <string name="system_screen_timeout">Օգտագործել համակարգի կարգավորումը</string> <string name="turn_screen_on_navigation_instructions_descr">Յուրաքանչյուր նավիգացիոն հրահանգը կմիացնի էկրանը:</string> @@ -2967,4 +2967,74 @@ \nԸնտրեք %1$s արագության տեսախցիկների վերաբերյալ ահազանգեր ստանալու համար: \n \nԸնտրեք %2$s։ Արագության խցիկների (ծանուցումների, ազդանշանների և POI- ների) հետ կապված բոլոր տվյալները ջնջելու համար, մինչև OsmAnd- ը ամբողջովին կվերատեղակայվի:</string> + <string name="shared_string_items">Տարրեր</string> + <string name="changes_applied_to_profile">Փոփոխությունները կիրառվել են «%1$s» պրոֆիլի վրա:</string> + <string name="settings_item_read_error">Անհնար է կարդալ «%1$s»։</string> + <string name="settings_item_import_error">Անհնար է ներմուծել «%1$s»։</string> + <string name="settings_item_write_error">Անհնար է արձանագրել «%1$s»։</string> + <string name="select_track_file">Ընտրեք track-ի ֆայլը</string> + <string name="shared_string_languages">Լեզուներ</string> + <string name="shared_string_language">Լեզու</string> + <string name="shared_string_all_languages">Բոլոր լեզուները</string> + <string name="wiki_menu_download_descr">Վիքիպեդիա-ի POI-րը քարտեզի վրա դիտելու համար անհրաժեշտ են լրացուցիչ քարտեր:</string> + <string name="select_wikipedia_article_langs">Ընտրեք լեզուները, Վիքիպեդիայի հոդվածների համար քարտեզի վրա ցուցադրելու համար: Դուք կկարողանաք փոխել լեզուները, հոդվածը կարդու ժամանակ։</string> + <string name="some_articles_may_not_available_in_lang">Որոշ Վիքիփեդիայի հոդվածներ կարող են անհասանելի լինել ձեր լեզվի համար:</string> + <string name="lang_zhyue">Կանտոնյան Չինարեն</string> + <string name="lang_zhminnan">Հարավային Մին</string> + <string name="lang_yo">Յորուբա</string> + <string name="lang_war">Վարեյ</string> + <string name="lang_uz">Ուզբեկական</string> + <string name="lang_ur">Ուրդ</string> + <string name="lang_tt">Թաթարերեն</string> + <string name="lang_tg">Տաջիկերեն</string> + <string name="lang_sco">Շոտլանդական</string> + <string name="lang_scn">Сицилийский</string> + <string name="lang_pnb">Փանջաբի</string> + <string name="lang_ne">Նեպալերեն</string> + <string name="lang_nap">Նեապոլիտանական</string> + <string name="lang_my">Բիրմաներեն</string> + <string name="lang_mn">Մոնղոլական</string> + <string name="lang_min">Մինանգկաբաու</string> + <string name="lang_mg">Մալագասերեն</string> + <string name="lang_ky">Ղրղզերեն</string> + <string name="lang_kk">Ղազախերեն</string> + <string name="lang_jv">Ճավանական</string> + <string name="lang_gu">Գուջարաթի</string> + <string name="lang_cv">Չուվաշերեն</string> + <string name="lang_ce">Չեչենական</string> + <string name="lang_bar">Բավարերեն</string> + <string name="lang_ba">Բաշկիրերեն</string> + <string name="lang_an">Արագոնի</string> + <string name="lang_lmo">Լոմբարդի</string> + <string name="custom_color">Օգտվողի գույն</string> + <string name="ltr_or_rtl_combine_via_slash_with_space">%1$s / %2$s</string> + <string name="search_poi_types">Որոնում POI տեսակները</string> + <string name="extra_maps_menu_group">Լրացուցիչ քարտեզներ</string> + <string name="download_unsupported_action">Չաջակցվող գործողություն %1$s</string> + <string name="tracker_item">OsmAnd թրեկեր</string> + <string name="mapillary_item">OsmAnd և Mapillary</string> + <string name="quick_action_item">Արագ գործողություն</string> + <string name="radius_ruler_item">Շառավիղ-քանոն</string> + <string name="measure_distance_item">Հեռավորության չափում</string> + <string name="travel_item">Ճանապարհորդություն (Վիքիուղեցույց և Վիքիպեդիա)</string> + <string name="map_markers_item">Մարկերներ</string> + <string name="favorites_item">Սիրված</string> + <string name="subscription_osmandlive_item">Բաժանորդագրություն - OsmAnd Live</string> + <string name="osmand_purchases_item">OsmAnd-ի գնումները</string> + <string name="legend_item_description">Տեղեկանք քարտեզի խորհրդանիշներին:</string> + <string name="navigation_profiles_item">Նավիգացիոն պրոֆիլներ</string> + <string name="quick_action_transport_hide">Թաքցնել հասարակական տրանսպորտը</string> + <string name="quick_action_transport_show">Ցույց տալ հասարակական տրանսպորտը</string> + <string name="quick_action_show_hide_transport">Ցույց տալ / թաքցնել հասարակական տրանսպորտը</string> + <string name="quick_action_transport_descr">Կոճակ, որը ցույց է տալիս կամ թաքցնում է հասարակական տրանսպորտը քարտեզի վրա:</string> + <string name="create_edit_poi">Ստեղծել / Խմբագրել POI</string> + <string name="add_edit_favorite">Ավելացնել / Խմբագրել Սիրվածն-րը</string> + <string name="parking_positions">Ավտոկայանատեղ</string> + <string name="reset_deafult_order">Վերականգնել բնօրինակ կարգը</string> + <string name="back_to_editing">Վերադարծ խմբագրմանը</string> + <string name="quick_action_switch_profile_descr">Սեղմելով «Գործողության կոճակը» փոխում է ընտրված պրոֆիլների միջև:</string> + <string name="shared_string_add_profile">Ավելացնել պրոֆիլ</string> + <string name="change_application_profile">Փոխել hավելվածի պրոֆիլը</string> + <string name="profiles_for_action_not_found">Համապատասխան պրոֆիլներ չեն գտնվել:</string> + <string name="index_item_world_basemap_detailed">Համաշխարհային ակնարկային քարտեզ (մանրամասն)</string> </resources> \ No newline at end of file From a7ad2ed38580eb7e4d235a5bec4fedbf6202bf48 Mon Sep 17 00:00:00 2001 From: Kamila Souckova <coding@kamila.is> Date: Mon, 22 Jun 2020 00:59:51 +0200 Subject: [PATCH 150/300] Add app mode icon for inline skating --- OsmAnd/res/drawable/ic_action_inline_skates.xml | 10 ++++++++++ OsmAnd/res/values/strings.xml | 1 + OsmAnd/src/net/osmand/plus/profiles/ProfileIcons.java | 1 + 3 files changed, 12 insertions(+) create mode 100644 OsmAnd/res/drawable/ic_action_inline_skates.xml diff --git a/OsmAnd/res/drawable/ic_action_inline_skates.xml b/OsmAnd/res/drawable/ic_action_inline_skates.xml new file mode 100644 index 0000000000..b86fe84c27 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_inline_skates.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:pathData="M7.9665536 4.070941C7.0068803 4.072229 6.0149912 4.2865025 5.1455896 4.5791361 5.0603526 4.6078099 4.954574 4.6755988 4.9331717 4.7455086L4.4546022 6.4097024c-0.09638 0.276188 -2.2440733 5.4113916 -0.6413745 7.2190636 1.8562508 2.093638 3.9856671 0.756751 5.7439389 0.878178 6.0284454 0.416328 9.1646024 0.719802 10.7497374 -0.350348 0.07881 -0.27154 0.167915 -0.774966 -0.04706 -1.265918 -0.197091 -0.449986 -0.313908 -0.78041 -0.911789 -0.982077 -0.282059 -0.09516 -0.538381 -0.165061 -0.809702 -0.239042 -0.546449 -0.149007 -1.12557 -0.307169 -1.996593 -0.697203l-1.142303 1.195054c-0.135847 0.142129 -0.359638 0.14724 -0.501766 0.01138l-0.01955 -0.01871c-0.142128 -0.135848 -0.147169 -0.359639 -0.01132 -0.501767l0.974683 -1.019741c-0.276445 -0.138894 -0.578762 -0.298709 -0.911513 -0.48325l-1.110788 1.16215c-0.135848 0.14213 -0.359639 0.147163 -0.501766 0.01132l-0.01955 -0.01871c-0.142128 -0.135847 -0.147169 -0.359637 -0.01132 -0.501766L14.269833 9.7795574C13.99751 9.6208066 13.706502 9.4467709 13.396156 9.2568292l-1.157188 1.2106388c-0.135847 0.142128 -0.359573 0.147168 -0.501702 0.01132l-0.01961 -0.01871C11.575529 10.32423 11.570495 10.10051 11.706336 9.9583831L12.7564 8.8597385C12.486211 8.6897723 12.202108 8.5083044 11.903655 8.3150003l-1.24488 1.3024534c-0.135847 0.1421277 -0.359638 0.1472397 -0.501767 0.01138l-0.01955 -0.01871C9.9953356 9.4742772 9.9902246 9.2504871 10.126085 9.1083586L11.278591 7.9026053C11.115203 7.7652924 10.274809 6.9496638 10.398949 4.7963435c0.0032 -0.056447 -0.02893 -0.11177 -0.07365 -0.1391902C9.6350936 4.2343495 8.8134596 4.069803 7.9666947 4.0709795ZM4.4388766 15.318046A2.3390127 2.3390127 0 0 0 2.1008871 17.657013 2.3390127 2.3390127 0 0 0 4.43986 19.996057 2.3390127 2.3390127 0 0 0 6.7788983 17.657013 2.3390127 2.3390127 0 0 0 4.43986 15.318046a2.3390127 2.3390127 0 0 0 -0.00133 0zm4.993565 0.0019a2.3390127 2.3390127 0 0 0 -2.3379198 2.339039 2.3390127 2.3390127 0 0 0 2.3389678 2.338973 2.3390127 2.3390127 0 0 0 2.3390454 -2.338973 2.3390127 2.3390127 0 0 0 -2.3390454 -2.339039 2.3390127 2.3390127 0 0 0 -0.0013 0zm4.9936354 0.0038a2.3390127 2.3390127 0 0 0 -2.337989 2.339037 2.3390127 2.3390127 0 0 0 2.339038 2.338974 2.3390127 2.3390127 0 0 0 2.339043 -2.338974 2.3390127 2.3390127 0 0 0 -2.339043 -2.339037 2.3390127 2.3390127 0 0 0 -0.0012 0zm4.993635 0.0019a2.3390127 2.3390127 0 0 0 -2.337996 2.338974 2.3390127 2.3390127 0 0 0 2.339045 2.339037 2.3390127 2.3390127 0 0 0 2.338972 -2.339037 2.3390127 2.3390127 0 0 0 -2.338972 -2.338974 2.3390127 2.3390127 0 0 0 -0.0012 0zM4.4327307 16.429285a1.227233 1.227233 0 0 1 0.00716 0 1.227233 1.227233 0 0 1 1.2272714 1.2272 1.227233 1.227233 0 0 1 -1.2272714 1.227273 1.227233 1.227233 0 0 1 -1.227207 -1.227273 1.227233 1.227233 0 0 1 1.2200766 -1.2272zm4.9935649 0.0019a1.227233 1.227233 0 0 1 0.0072 0 1.227233 1.227233 0 0 1 1.2272724 1.227272 1.227233 1.227233 0 0 1 -1.2272724 1.2272 1.227233 1.227233 0 0 1 -1.2272007 -1.2272 1.227233 1.227233 0 0 1 1.2200067 -1.227272zm4.9936354 0.0038a1.227233 1.227233 0 0 1 0.0073 0 1.227233 1.227233 0 0 1 1.227201 1.22727 1.227233 1.227233 0 0 1 -1.227201 1.227202 1.227233 1.227233 0 0 1 -1.227201 -1.227202 1.227233 1.227233 0 0 1 1.220007 -1.22727zm4.993629 0.0019a1.227233 1.227233 0 0 1 0.0073 0 1.227233 1.227233 0 0 1 1.227201 1.2272 1.227233 1.227233 0 0 1 -1.227201 1.227272 1.227233 1.227233 0 0 1 -1.227272 -1.227272 1.227233 1.227233 0 0 1 1.220071 -1.2272z" + android:fillColor="#727272" + android:fillType="evenOdd"/> +</vector> diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 56dbdb4f23..d43ff9d124 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,7 @@ Thx - Hardy --> + <string name="app_mode_inline_skates">Inline skates</string> <string name="shared_string_uninstall_and_restart">Uninstall and Restart</string> <string name="speed_cameras_restart_descr">Restart is needed to completely delete speed camera data.</string> <string name="item_deleted">%1$s deleted</string> diff --git a/OsmAnd/src/net/osmand/plus/profiles/ProfileIcons.java b/OsmAnd/src/net/osmand/plus/profiles/ProfileIcons.java index 0b6c6e150b..9bc0bb2441 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/ProfileIcons.java +++ b/OsmAnd/src/net/osmand/plus/profiles/ProfileIcons.java @@ -28,6 +28,7 @@ public enum ProfileIcons { TRANSPORTER(R.drawable.ic_action_personal_transporter, R.string.app_mode_personal_transporter, "ic_action_personal_transporter"), MONOWHEEL(R.drawable.ic_action_monowheel, R.string.app_mode_monowheel, "ic_action_monowheel"), SCOOTER(R.drawable.ic_action_scooter, R.string.app_mode_scooter, "ic_action_scooter"), + INLINE_SKATES(R.drawable.ic_action_inline_skates, R.string.app_mode_inline_skates, "ic_action_inline_skates"), UFO(R.drawable.ic_action_ufo, R.string.app_mode_ufo, "ic_action_ufo"), OFFROAD(R.drawable.ic_action_offroad, R.string.app_mode_offroad, "ic_action_offroad"), CAMPERVAN(R.drawable.ic_action_campervan, R.string.app_mode_campervan, "ic_action_campervan"), From d55e046e9c6462e39fc5b4315d0d413fb0fe1cdd Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Mon, 22 Jun 2020 09:57:37 +0300 Subject: [PATCH 151/300] Fix #5187 zoom factor and context menu zoom button position on tablet --- OsmAnd/res/layout/map_context_menu_fragment.xml | 8 +++----- OsmAnd/res/layout/map_hud_bottom.xml | 9 +++++---- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/OsmAnd/res/layout/map_context_menu_fragment.xml b/OsmAnd/res/layout/map_context_menu_fragment.xml index 225efaa39b..631a901de4 100644 --- a/OsmAnd/res/layout/map_context_menu_fragment.xml +++ b/OsmAnd/res/layout/map_context_menu_fragment.xml @@ -541,9 +541,7 @@ android:alpha="0"> <androidx.appcompat.widget.Toolbar - xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" android:id="@+id/context_menu_toolbar" android:layout_width="fill_parent" android:layout_height="@dimen/dashboard_map_toolbar" @@ -597,15 +595,15 @@ <LinearLayout android:id="@+id/context_menu_zoom_buttons" - android:layout_width="@dimen/fab_size_with_shadow" + android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" - android:layout_marginRight="@dimen/fab_margin_right" + android:layout_marginRight="@dimen/map_button_margin" android:gravity="center" android:orientation="vertical" android:visibility="gone" tools:visibility="visible" - android:layout_marginEnd="@dimen/fab_margin_right"> + android:layout_marginEnd="@dimen/map_button_margin"> <ImageButton android:id="@+id/context_menu_zoom_in_button" diff --git a/OsmAnd/res/layout/map_hud_bottom.xml b/OsmAnd/res/layout/map_hud_bottom.xml index 68e7c9d52f..acdcc33e56 100644 --- a/OsmAnd/res/layout/map_hud_bottom.xml +++ b/OsmAnd/res/layout/map_hud_bottom.xml @@ -84,9 +84,9 @@ android:layout_height="wrap_content" android:gravity="center_horizontal" tools:text="13.44" - android:layout_marginBottom="56dp" - android:layout_marginLeft="8dp" - android:layout_marginStart="8dp" + android:layout_marginBottom="@dimen/map_button_shadow_width" + android:layout_marginLeft="@dimen/map_alarm_bottom_text_margin" + android:layout_marginStart="@dimen/map_alarm_bottom_text_margin" android:layout_gravity="bottom|start" android:textSize="@dimen/map_button_text_size"/> @@ -142,7 +142,8 @@ android:layout_gravity="bottom" android:background="@drawable/btn_circle" android:visibility="gone" - tools:src="@drawable/ic_action_remove_dark"/> + tools:src="@drawable/ic_action_remove_dark" + android:contentDescription="@string/snap_to_road" /> <FrameLayout android:id="@+id/map_ruler_layout" From 183e620d91a4d72d39c73508f95843af817a9d5c Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Mon, 22 Jun 2020 09:58:43 +0300 Subject: [PATCH 152/300] Fix #5187 lanes widget size on tablet --- OsmAnd/res/values-large/sizes.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OsmAnd/res/values-large/sizes.xml b/OsmAnd/res/values-large/sizes.xml index 21a0e7d6f4..f4c129da0e 100644 --- a/OsmAnd/res/values-large/sizes.xml +++ b/OsmAnd/res/values-large/sizes.xml @@ -45,6 +45,11 @@ <dimen name="map_widget_icon_margin">3dp</dimen> + <dimen name="widget_turn_lane_size">54dp</dimen> + <dimen name="widget_turn_lane_border">9dp</dimen> + <dimen name="widget_turn_lane_margin">3dp</dimen> + <dimen name="widget_turn_lane_min_delta">27dp</dimen> + <!-- ContextMenu --> <dimen name="context_menu_top_shadow_h">30dp</dimen> <dimen name="context_menu_icon_top_padding">25dp</dimen> From 9f3e3312b07c4b51256ccf4aebbadb188d0d0e15 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Mon, 22 Jun 2020 13:32:43 +0300 Subject: [PATCH 153/300] show message in prefs after cameras uninstalled --- OsmAnd/res/values/strings.xml | 1 + OsmAnd/res/xml/global_settings.xml | 2 +- .../fragments/GlobalSettingsFragment.java | 17 ++++++----------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 56dbdb4f23..52b6b02f3a 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,7 @@ Thx - Hardy --> + <string name="speed_cameras_removed_descr">This device doesn\'t have speed cameras.</string> <string name="shared_string_uninstall_and_restart">Uninstall and Restart</string> <string name="speed_cameras_restart_descr">Restart is needed to completely delete speed camera data.</string> <string name="item_deleted">%1$s deleted</string> diff --git a/OsmAnd/res/xml/global_settings.xml b/OsmAnd/res/xml/global_settings.xml index 4cbc10ef0d..5f2fef7d02 100644 --- a/OsmAnd/res/xml/global_settings.xml +++ b/OsmAnd/res/xml/global_settings.xml @@ -69,7 +69,7 @@ android:key="speed_cameras_uninstalled" android:persistent="false" android:layout="@layout/preference_with_descr" - android:title="@string/uninstall_speed_cameras" + tools:title="@string/uninstall_speed_cameras" tools:icon="@drawable/ic_speed_camera_disabled" /> </PreferenceScreen> \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java index 9f3a6439aa..800e7a936f 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java @@ -30,7 +30,6 @@ public class GlobalSettingsFragment extends BaseSettingsFragment private static final String SEND_ANONYMOUS_DATA_PREF_ID = "send_anonymous_data"; private static final String DIALOGS_AND_NOTIFICATIONS_PREF_ID = "dialogs_and_notifications"; - private static final String LEGAL_CATEGORY_ID = "legal"; @Override protected void setupPreferences() { @@ -41,7 +40,6 @@ public class GlobalSettingsFragment extends BaseSettingsFragment setupSendAnonymousDataPref(); setupDialogsAndNotificationsPref(); setupEnableProxyPref(); - setupLegalCategory(); setupUninstallSpeedCamerasPref(); } @@ -108,7 +106,6 @@ public class GlobalSettingsFragment extends BaseSettingsFragment app.restartApp(activity); } } else if (prefId.equals(settings.SPEED_CAMERAS_UNINSTALLED.getId())) { - setupLegalCategory(); setupUninstallSpeedCamerasPref(); } } @@ -121,7 +118,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment @Override public boolean onPreferenceClick(Preference preference) { String prefId = preference.getKey(); - if (settings.SPEED_CAMERAS_UNINSTALLED.getId().equals(prefId)) { + if (settings.SPEED_CAMERAS_UNINSTALLED.getId().equals(prefId) && !settings.SPEED_CAMERAS_UNINSTALLED.get()) { FragmentManager fm = getFragmentManager(); if (fm != null) { SpeedCamerasBottomSheet.showInstance(fm, this); @@ -214,14 +211,12 @@ public class GlobalSettingsFragment extends BaseSettingsFragment enableProxy.setIcon(getPersistentPrefIcon(R.drawable.ic_action_proxy)); } - private void setupLegalCategory() { - PreferenceCategory legalCategory = (PreferenceCategory) findPreference(LEGAL_CATEGORY_ID); - legalCategory.setVisible(!settings.SPEED_CAMERAS_UNINSTALLED.get()); - } - private void setupUninstallSpeedCamerasPref() { + boolean uninstalled = settings.SPEED_CAMERAS_UNINSTALLED.get(); Preference uninstallSpeedCameras = (Preference) findPreference(settings.SPEED_CAMERAS_UNINSTALLED.getId()); - uninstallSpeedCameras.setIcon(getActiveIcon(R.drawable.ic_speed_camera_disabled)); - uninstallSpeedCameras.setVisible(!settings.SPEED_CAMERAS_UNINSTALLED.get()); + if (!uninstalled) { + uninstallSpeedCameras.setIcon(getActiveIcon(R.drawable.ic_speed_camera_disabled)); + } + uninstallSpeedCameras.setTitle(uninstalled ? R.string.speed_cameras_removed_descr : R.string.uninstall_speed_cameras); } } \ No newline at end of file From 25451ff8cfe0dc1fee589946ddd50f3e2a8c8deb Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Mon, 22 Jun 2020 13:45:34 +0300 Subject: [PATCH 154/300] dont show speed cameras icon on uninstall --- .../osmand/plus/settings/fragments/ScreenAlertsFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java index c07f8fca2d..a312253aee 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java @@ -150,7 +150,7 @@ public class ScreenAlertsFragment extends BaseSettingsFragment implements OnPref return getIcon(americanSigns ? R.drawable.warnings_traffic_calming_us : R.drawable.warnings_traffic_calming); } else if (settings.SHOW_PEDESTRIAN.getModeValue(selectedMode)) { return getIcon(americanSigns ? R.drawable.warnings_pedestrian_us : R.drawable.warnings_pedestrian); - } else if (settings.SHOW_CAMERAS.getModeValue(selectedMode)) { + } else if (settings.SHOW_CAMERAS.getModeValue(selectedMode) && !settings.SPEED_CAMERAS_UNINSTALLED.get()) { return getIcon(R.drawable.warnings_speed_camera); } else if (settings.SHOW_TUNNELS.getModeValue(selectedMode)) { return getIcon(americanSigns ? R.drawable.warnings_tunnel_us : R.drawable.warnings_tunnel); From 5bf391a8c54256969849ed143c98b34e9987efd2 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Mon, 22 Jun 2020 12:54:06 +0200 Subject: [PATCH 155/300] Simplify code --- .../osmand/plus/base/PointImageDrawable.java | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java index 8c49bf1206..d3b1b570c8 100644 --- a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java @@ -16,6 +16,7 @@ import androidx.annotation.ColorInt; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; +import net.osmand.AndroidUtils; import net.osmand.GPXUtilities; import net.osmand.data.FavouritePoint; import net.osmand.data.FavouritePoint.BackgroundType; @@ -30,6 +31,8 @@ import static net.osmand.data.FavouritePoint.DEFAULT_UI_ICON_ID; public class PointImageDrawable extends Drawable { + private final int DEFAULT_SIZE_ON_MAP_DP = 16; + private final int dp_12_px; private boolean withShadow; private boolean synced; private boolean history; @@ -51,6 +54,7 @@ public class PointImageDrawable extends Drawable { private ColorFilter colorFilter; private ColorFilter grayFilter; private float scale = 1.0f; + private int size = 0; private PointImageDrawable(PointInfo pointInfo) { this.withShadow = pointInfo.withShadow; @@ -84,6 +88,7 @@ public class PointImageDrawable extends Drawable { syncedIcon = BitmapFactory.decodeResource(res, R.drawable.ic_marker_point_14dp); colorFilter = new PorterDuffColorFilter(col, PorterDuff.Mode.SRC_IN); grayFilter = new PorterDuffColorFilter(res.getColor(R.color.color_favorite_gray), PorterDuff.Mode.MULTIPLY); + dp_12_px = AndroidUtils.dpToPx(pointInfo.ctx, 12); } private int getMapIconId(Context ctx, int iconId) { @@ -158,28 +163,21 @@ public class PointImageDrawable extends Drawable { canvas.drawBitmap(bitmap, null, bs, paintBackground); } - private void drawInCenter(Canvas canvas, Rect destRect, boolean history) { - this.history = history; - final float DEFAULT_SCALE_ON_MAP_1_5 = 1.5f; - setBounds(destRect); - int offsetX = destRect.centerX() - (int) (favIcon.getIntrinsicWidth() / 2 * scale * DEFAULT_SCALE_ON_MAP_1_5); - int offsetY = destRect.centerY() - (int) (favIcon.getIntrinsicHeight() / 2 * scale * DEFAULT_SCALE_ON_MAP_1_5); - favIcon.setBounds(offsetX, offsetY, (int) (offsetX + favIcon.getIntrinsicWidth() * scale * DEFAULT_SCALE_ON_MAP_1_5), - offsetY + (int) (favIcon.getIntrinsicHeight() * scale * DEFAULT_SCALE_ON_MAP_1_5)); - draw(canvas); - } - public void drawPoint(Canvas canvas, float x, float y, float scale, boolean history) { - this.scale = scale; - int scaledWidth = getIntrinsicWidth(); - int scaledHeight = getIntrinsicHeight(); - if (scale != 1.0f) { - scaledWidth *= scale; - scaledHeight *= scale; + if(scale != this.scale || this.size == 0) { + this.scale = scale; + int pixels = (int) (dp_12_px * DEFAULT_SIZE_ON_MAP_DP / 12.0); + this.size = Math.round(scale * pixels/ favIcon.getIntrinsicWidth()) * favIcon.getIntrinsicWidth(); } - Rect rect = new Rect(0, 0, scaledWidth, scaledHeight); - rect.offset((int) x - scaledWidth / 2, (int) y - scaledHeight / 2); - drawInCenter(canvas, rect, history); + this.history = history; + Rect rect = new Rect(0, 0, size, size); + rect.offset((int) x - size / 2, (int) y - size/ 2); + setBounds(rect); + int offsetX = rect.centerX() - size / 2; + int offsetY = rect.centerY() - size / 2; + favIcon.setBounds(offsetX, offsetY, (int) (offsetX + size), + offsetY + size); + draw(canvas); } public void drawSmallPoint(Canvas canvas, float x, float y, float scale) { From 6883fc30e614e6cc0ff947e65a1c17db6bf34f7a Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Mon, 22 Jun 2020 13:22:48 +0200 Subject: [PATCH 156/300] Fix drawable --- .../osmand/plus/base/PointImageDrawable.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java index d3b1b570c8..8e5fa4b2a4 100644 --- a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java @@ -54,7 +54,8 @@ public class PointImageDrawable extends Drawable { private ColorFilter colorFilter; private ColorFilter grayFilter; private float scale = 1.0f; - private int size = 0; + private int favsize = 0; + private int backsize = 0; private PointImageDrawable(PointInfo pointInfo) { this.withShadow = pointInfo.withShadow; @@ -164,19 +165,20 @@ public class PointImageDrawable extends Drawable { } public void drawPoint(Canvas canvas, float x, float y, float scale, boolean history) { - if(scale != this.scale || this.size == 0) { + if(scale != this.scale || this.favsize == 0) { this.scale = scale; int pixels = (int) (dp_12_px * DEFAULT_SIZE_ON_MAP_DP / 12.0); - this.size = Math.round(scale * pixels/ favIcon.getIntrinsicWidth()) * favIcon.getIntrinsicWidth(); + this.favsize = Math.round(scale * pixels / favIcon.getIntrinsicWidth()) * favIcon.getIntrinsicWidth(); + this.backsize = getIntrinsicWidth(); } this.history = history; - Rect rect = new Rect(0, 0, size, size); - rect.offset((int) x - size / 2, (int) y - size/ 2); + Rect rect = new Rect(0, 0, backsize , backsize ); + rect.offset((int) x - backsize / 2, (int) y - backsize / 2); setBounds(rect); - int offsetX = rect.centerX() - size / 2; - int offsetY = rect.centerY() - size / 2; - favIcon.setBounds(offsetX, offsetY, (int) (offsetX + size), - offsetY + size); + int offsetX = rect.centerX() - favsize / 2; + int offsetY = rect.centerY() - favsize / 2; + favIcon.setBounds(offsetX, offsetY, (int) (offsetX + favsize), + offsetY + favsize); draw(canvas); } From 3c6c6439f0e60ce6412fdbc5f3d58f5cb5bfd5ea Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Mon, 22 Jun 2020 13:32:57 +0200 Subject: [PATCH 157/300] Fix drawable --- OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java index 8e5fa4b2a4..6192bfe2e0 100644 --- a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java @@ -32,6 +32,7 @@ import static net.osmand.data.FavouritePoint.DEFAULT_UI_ICON_ID; public class PointImageDrawable extends Drawable { private final int DEFAULT_SIZE_ON_MAP_DP = 16; + private final int ICON_SIZE_VECTOR_PX = 12; private final int dp_12_px; private boolean withShadow; private boolean synced; @@ -168,8 +169,8 @@ public class PointImageDrawable extends Drawable { if(scale != this.scale || this.favsize == 0) { this.scale = scale; int pixels = (int) (dp_12_px * DEFAULT_SIZE_ON_MAP_DP / 12.0); - this.favsize = Math.round(scale * pixels / favIcon.getIntrinsicWidth()) * favIcon.getIntrinsicWidth(); - this.backsize = getIntrinsicWidth(); + this.favsize = Math.round(scale * pixels / ICON_SIZE_VECTOR_PX) * ICON_SIZE_VECTOR_PX; + this.backsize = (int) (scale * getIntrinsicWidth()); } this.history = history; Rect rect = new Rect(0, 0, backsize , backsize ); From 07c21f6d3ec6377d8650b4219b7572a9afe8bd1c Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Mon, 22 Jun 2020 14:42:48 +0300 Subject: [PATCH 158/300] remove elevation from snackbar --- OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java index 3e903b128c..a1bf241c68 100644 --- a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java +++ b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java @@ -21,6 +21,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.core.view.MotionEventCompat; +import androidx.core.view.ViewCompat; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; @@ -642,6 +643,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec } } }); + ViewCompat.setElevation(snackbar.getView(), 0f); snackbar.setAnchorView(buttonsContainer); UiUtilities.setupSnackbar(snackbar, nightMode); snackbar.show(); From daa446daf86993ce8497fb8f901b412581ff2491 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Mon, 22 Jun 2020 14:43:22 +0300 Subject: [PATCH 159/300] margin between text and icon --- OsmAnd/res/layout/order_poi_list_item.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/layout/order_poi_list_item.xml b/OsmAnd/res/layout/order_poi_list_item.xml index 643c5b2b6e..02271d0783 100644 --- a/OsmAnd/res/layout/order_poi_list_item.xml +++ b/OsmAnd/res/layout/order_poi_list_item.xml @@ -62,6 +62,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" + android:layout_marginStart="@dimen/list_content_padding_large" + android:layout_marginLeft="@dimen/list_content_padding_large" android:minHeight="@dimen/bottom_sheet_list_item_height" android:paddingStart="@dimen/content_padding_small" android:paddingLeft="@dimen/content_padding_small" From 76549c03f85fb5dcc0f0312491dd98b1a6e95d45 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Mon, 22 Jun 2020 15:06:20 +0300 Subject: [PATCH 160/300] proper icon for custom filter --- .../plus/poi/RearrangePoiFiltersFragment.java | 4 +- .../search/listitems/QuickSearchListItem.java | 41 +++++++++++-------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java index a1bf241c68..8ef989ad28 100644 --- a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java +++ b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java @@ -34,6 +34,7 @@ import com.google.android.material.snackbar.Snackbar; import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; +import net.osmand.plus.search.listitems.QuickSearchListItem; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; @@ -583,7 +584,8 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec final PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; int osmandOrangeColorResId = nightMode ? R.color.osmand_orange_dark : R.color.osmand_orange; h.title.setText(poiInfo.name); - h.icon.setImageDrawable(uiUtilities.getIcon(poiInfo.iconRes, osmandOrangeColorResId)); + int iconRes = QuickSearchListItem.getCustomFilterIconRes(poiHelper.getFilterById(poiInfo.filterId)); + h.icon.setImageDrawable(uiUtilities.getIcon(iconRes, osmandOrangeColorResId)); h.moveIcon.setVisibility(poiInfo.isActive ? View.VISIBLE : View.GONE); h.actionIcon.setOnClickListener(new View.OnClickListener() { @Override diff --git a/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java b/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java index 4f941b9b48..204c31de88 100644 --- a/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java +++ b/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java @@ -4,6 +4,7 @@ import android.content.Context; import android.graphics.drawable.Drawable; import android.text.Spannable; +import androidx.annotation.DrawableRes; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; @@ -334,23 +335,8 @@ public class QuickSearchListItem { } else if (searchResult.object instanceof CustomSearchPoiFilter) { CustomSearchPoiFilter searchPoiFilter = (CustomSearchPoiFilter) searchResult.object; PoiUIFilter filter = app.getPoiFilters().getFilterById(searchPoiFilter.getFilterId()); - iconId = R.drawable.mx_special_custom_category; if (filter != null) { - Map<PoiCategory, LinkedHashSet<String>> acceptedTypes = filter.getAcceptedTypes(); - List<PoiCategory> categories = new ArrayList<>(acceptedTypes.keySet()); - if (categories.size() == 1) { - String res = ""; - PoiCategory category = categories.get(0); - LinkedHashSet<String> filters = acceptedTypes.get(category); - if (filters == null || filters.size() > 1) { - res = category.getIconKeyName(); - } else { - res = getPoiTypeIconName(category.getPoiTypeByKeyName(filters.iterator().next())); - } - if (res != null && RenderingIcons.containsBigIcon(res)) { - iconId = RenderingIcons.getBigIconResourceId(res); - } - } + iconId = getCustomFilterIconRes(filter); } } if (iconId > 0) { @@ -422,4 +408,27 @@ public class QuickSearchListItem { return app.getUIUtilities().getIcon(iconId, app.getSettings().isLightContent() ? R.color.osmand_orange : R.color.osmand_orange_dark); } + + @DrawableRes + public static int getCustomFilterIconRes(PoiUIFilter filter) { + int iconId = 0; + if (filter != null) { + Map<PoiCategory, LinkedHashSet<String>> acceptedTypes = filter.getAcceptedTypes(); + List<PoiCategory> categories = new ArrayList<>(acceptedTypes.keySet()); + if (categories.size() == 1) { + String res = ""; + PoiCategory category = categories.get(0); + LinkedHashSet<String> filters = acceptedTypes.get(category); + if (filters == null || filters.size() > 1) { + res = category.getIconKeyName(); + } else { + res = getPoiTypeIconName(category.getPoiTypeByKeyName(filters.iterator().next())); + } + if (res != null && RenderingIcons.containsBigIcon(res)) { + iconId = RenderingIcons.getBigIconResourceId(res); + } + } + } + return iconId > 0 ? iconId : R.drawable.mx_special_custom_category; + } } From dcf3ad8fa0bf979d6831280e9de3b3962c107980 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Mon, 22 Jun 2020 16:38:36 +0300 Subject: [PATCH 161/300] update categories after custom filter deleted --- .../osmand/plus/poi/RearrangePoiFiltersFragment.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java index 8ef989ad28..e9077bb143 100644 --- a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java +++ b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java @@ -72,6 +72,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec private boolean activationModified; private boolean wasReset = false; private boolean isChanged = false; + private boolean filterDeleted = false; private ApplicationMode appMode; private LinearLayout buttonsContainer; @@ -222,7 +223,8 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec @Override public void onDismiss(@NonNull DialogInterface dialog) { - if (isChanged && !orderModified && !activationModified && resultCallback != null) { + if (filterDeleted && resultCallback != null) { + requireMyApplication().getPoiFilters().saveInactiveFilters(getSelectedAppMode(), availableFiltersKeys); resultCallback.onCustomFiltersDeleted(); } super.onDismiss(dialog); @@ -584,8 +586,9 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec final PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; int osmandOrangeColorResId = nightMode ? R.color.osmand_orange_dark : R.color.osmand_orange; h.title.setText(poiInfo.name); + boolean userFilter = poiInfo.filterId.startsWith(USER_PREFIX); int iconRes = QuickSearchListItem.getCustomFilterIconRes(poiHelper.getFilterById(poiInfo.filterId)); - h.icon.setImageDrawable(uiUtilities.getIcon(iconRes, osmandOrangeColorResId)); + h.icon.setImageDrawable(uiUtilities.getIcon(userFilter ? iconRes : poiInfo.iconRes, osmandOrangeColorResId)); h.moveIcon.setVisibility(poiInfo.isActive ? View.VISIBLE : View.GONE); h.actionIcon.setOnClickListener(new View.OnClickListener() { @Override @@ -610,7 +613,6 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec } else { h.actionIcon.setImageDrawable(uiUtilities.getIcon(R.drawable.ic_action_add, R.color.color_osm_edit_create)); } - boolean userFilter = poiInfo.filterId.startsWith(USER_PREFIX); h.actionDelete.setImageDrawable(uiUtilities.getIcon(R.drawable.ic_action_delete_item, R.color.color_osm_edit_delete)); h.actionDelete.setVisibility(userFilter ? View.VISIBLE : View.GONE); h.actionDelete.setOnClickListener(new View.OnClickListener() { @@ -639,8 +641,9 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec if (DISMISS_EVENT_ACTION != event) { PoiUIFilter filter = poiHelper.getFilterById(poiInfo.filterId); if (filter != null && poiHelper.removePoiFilter(filter)) { + availableFiltersKeys.remove(poiInfo.filterId); filter.setDeleted(true); - isChanged = true; + filterDeleted = true; } } } From 31dbe2c69a71523e280cb76d44bd31d2abc2d08a Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Mon, 22 Jun 2020 17:57:33 +0300 Subject: [PATCH 162/300] Fix vector to bitmap --- .../osmand/plus/base/PointImageDrawable.java | 108 ++++++++++-------- 1 file changed, 61 insertions(+), 47 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java index 6192bfe2e0..d60c21cd16 100644 --- a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java @@ -11,10 +11,12 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.os.Build; import androidx.annotation.ColorInt; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; +import androidx.core.graphics.drawable.DrawableCompat; import net.osmand.AndroidUtils; import net.osmand.GPXUtilities; @@ -31,19 +33,18 @@ import static net.osmand.data.FavouritePoint.DEFAULT_UI_ICON_ID; public class PointImageDrawable extends Drawable { - private final int DEFAULT_SIZE_ON_MAP_DP = 16; - private final int ICON_SIZE_VECTOR_PX = 12; private final int dp_12_px; private boolean withShadow; private boolean synced; private boolean history; - private Drawable favIcon; - private Bitmap favBackgroundTop; - private Bitmap favBackgroundCenter; - private Bitmap favBackgroundBottom; - private Bitmap favBackgroundTopSmall; - private Bitmap favBackgroundCenterSmall; - private Bitmap favBackgroundBottomSmall; + private Drawable mapIcon; + private Bitmap mapIconBitmap; + private Bitmap mapIconBackgroundTop; + private Bitmap mapIconBackgroundCenter; + private Bitmap mapIconBackgroundBottom; + private Bitmap mapIconBackgroundTopSmall; + private Bitmap mapIconBackgroundCenterSmall; + private Bitmap mapIconBackgroundBottomSmall; private Bitmap syncedStroke; private Bitmap syncedColor; private Bitmap syncedShadow; @@ -55,8 +56,8 @@ public class PointImageDrawable extends Drawable { private ColorFilter colorFilter; private ColorFilter grayFilter; private float scale = 1.0f; - private int favsize = 0; - private int backsize = 0; + private int mapIconSize = 0; + private int backSize = 0; private PointImageDrawable(PointInfo pointInfo) { this.withShadow = pointInfo.withShadow; @@ -65,9 +66,8 @@ public class PointImageDrawable extends Drawable { UiUtilities uiUtilities = ((OsmandApplication) pointInfo.ctx.getApplicationContext()).getUIUtilities(); int overlayIconId = pointInfo.overlayIconId; int uiIconId; - favIcon = uiUtilities.getIcon(getMapIconId(pointInfo.ctx, overlayIconId), R.color.color_white); + mapIcon = uiUtilities.getIcon(getMapIconId(pointInfo.ctx, overlayIconId), R.color.color_white); uiIconId = overlayIconId; - int col = pointInfo.color == 0 ? res.getColor(R.color.color_favorite) : pointInfo.color; uiListIcon = uiUtilities.getIcon(uiIconId, R.color.color_white); int uiBackgroundIconId = pointInfo.backgroundType.getIconId(); @@ -75,15 +75,15 @@ public class PointImageDrawable extends Drawable { int mapBackgroundIconIdTop = getMapBackgroundIconId(pointInfo, "top", false); int mapBackgroundIconIdCenter = getMapBackgroundIconId(pointInfo, "center", false); int mapBackgroundIconIdBottom = getMapBackgroundIconId(pointInfo, "bottom", false); - favBackgroundTop = BitmapFactory.decodeResource(res, mapBackgroundIconIdTop); - favBackgroundCenter = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenter); - favBackgroundBottom = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottom); + mapIconBackgroundTop = BitmapFactory.decodeResource(res, mapBackgroundIconIdTop); + mapIconBackgroundCenter = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenter); + mapIconBackgroundBottom = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottom); int mapBackgroundIconIdTopSmall = getMapBackgroundIconId(pointInfo, "top", true); int mapBackgroundIconIdCenterSmall = getMapBackgroundIconId(pointInfo, "center", true); int mapBackgroundIconIdBottomSmall = getMapBackgroundIconId(pointInfo, "bottom", true); - favBackgroundTopSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdTopSmall); - favBackgroundCenterSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenterSmall); - favBackgroundBottomSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottomSmall); + mapIconBackgroundTopSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdTopSmall); + mapIconBackgroundCenterSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenterSmall); + mapIconBackgroundBottomSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottomSmall); syncedStroke = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_stroke); syncedColor = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_color); syncedShadow = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_shadow); @@ -126,7 +126,7 @@ public class PointImageDrawable extends Drawable { if (synced) { return syncedShadow.getHeight(); } else if (withShadow) { - return favBackgroundCenter.getHeight(); + return mapIconBackgroundCenter.getHeight(); } return uiBackgroundIcon.getIntrinsicHeight(); } @@ -136,7 +136,7 @@ public class PointImageDrawable extends Drawable { if (synced) { return syncedShadow.getWidth(); } else if (withShadow) { - return favBackgroundCenter.getWidth(); + return mapIconBackgroundCenter.getWidth(); } return uiBackgroundIcon.getIntrinsicWidth(); } @@ -151,10 +151,14 @@ public class PointImageDrawable extends Drawable { drawBitmap(canvas, bs, syncedStroke, paintBackground); drawBitmap(canvas, bs, syncedIcon, paintIcon); } else if (withShadow) { - drawBitmap(canvas, bs, favBackgroundBottom, null); - drawBitmap(canvas, bs, favBackgroundCenter, paintBackground); - drawBitmap(canvas, bs, favBackgroundTop, null); - favIcon.draw(canvas); + drawBitmap(canvas, bs, mapIconBackgroundBottom, null); + drawBitmap(canvas, bs, mapIconBackgroundCenter, paintBackground); + drawBitmap(canvas, bs, mapIconBackgroundTop, null); + int offsetX = bs.centerX() - mapIconSize / 2; + int offsetY = bs.centerY() - mapIconSize / 2; + Rect mapIconBounds = new Rect(offsetX, offsetY, (offsetX + mapIconSize), + offsetY + mapIconSize); + drawBitmap(canvas, mapIconBounds, mapIconBitmap, null); } else { uiBackgroundIcon.draw(canvas); uiListIcon.draw(canvas); @@ -166,37 +170,51 @@ public class PointImageDrawable extends Drawable { } public void drawPoint(Canvas canvas, float x, float y, float scale, boolean history) { - if(scale != this.scale || this.favsize == 0) { - this.scale = scale; - int pixels = (int) (dp_12_px * DEFAULT_SIZE_ON_MAP_DP / 12.0); - this.favsize = Math.round(scale * pixels / ICON_SIZE_VECTOR_PX) * ICON_SIZE_VECTOR_PX; - this.backsize = (int) (scale * getIntrinsicWidth()); - } + setScale(scale); this.history = history; - Rect rect = new Rect(0, 0, backsize , backsize ); - rect.offset((int) x - backsize / 2, (int) y - backsize / 2); + Rect rect = new Rect(0, 0, backSize, backSize); + rect.offset((int) x - backSize / 2, (int) y - backSize / 2); setBounds(rect); - int offsetX = rect.centerX() - favsize / 2; - int offsetY = rect.centerY() - favsize / 2; - favIcon.setBounds(offsetX, offsetY, (int) (offsetX + favsize), - offsetY + favsize); draw(canvas); } + private void setScale(float scale) { + if (scale != this.scale || this.mapIconSize == 0) { + int DEFAULT_SIZE_ON_MAP_DP = 16; + int ICON_SIZE_VECTOR_PX = 12; + this.scale = scale; + int pixels = (int) (dp_12_px * DEFAULT_SIZE_ON_MAP_DP / 12.0); + this.mapIconSize = Math.round((scale * pixels / ICON_SIZE_VECTOR_PX * ICON_SIZE_VECTOR_PX)); + this.backSize = (int) (scale * getIntrinsicWidth()); + mapIconBitmap = getBitmapFromVectorDrawable(mapIcon); + } + } + + public Bitmap getBitmapFromVectorDrawable(Drawable drawable) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + drawable = (DrawableCompat.wrap(drawable)).mutate(); + } + Bitmap bitmap = Bitmap.createBitmap(mapIconSize, mapIconSize, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + drawable.draw(canvas); + return bitmap; + } + public void drawSmallPoint(Canvas canvas, float x, float y, float scale) { - this.scale = scale; + setScale(scale); paintBackground.setColorFilter(history ? grayFilter : colorFilter); - int scaledWidth = favBackgroundBottomSmall.getWidth(); - int scaledHeight = favBackgroundBottomSmall.getHeight(); + int scaledWidth = mapIconBackgroundBottomSmall.getWidth(); + int scaledHeight = mapIconBackgroundBottomSmall.getHeight(); if (scale != 1.0f) { scaledWidth *= scale; scaledHeight *= scale; } Rect destRect = new Rect(0, 0, scaledWidth, scaledHeight); destRect.offset((int) x - scaledWidth / 2, (int) y - scaledHeight / 2); - canvas.drawBitmap(favBackgroundBottomSmall, null, destRect, null); - canvas.drawBitmap(favBackgroundCenterSmall, null, destRect, paintBackground); - canvas.drawBitmap(favBackgroundTopSmall, null, destRect, null); + canvas.drawBitmap(mapIconBackgroundBottomSmall, null, destRect, null); + canvas.drawBitmap(mapIconBackgroundCenterSmall, null, destRect, paintBackground); + canvas.drawBitmap(mapIconBackgroundTopSmall, null, destRect, null); } @Override @@ -218,10 +236,6 @@ public class PointImageDrawable extends Drawable { paintIcon.setColorFilter(cf); } - public void setScale(float scale) { - this.scale = scale; - } - private static TreeMap<String, PointImageDrawable> cache = new TreeMap<>(); private static PointImageDrawable getOrCreate(@NonNull PointInfo pointInfo) { From cebf38f5d8862081dea00b70dba34a46249f1640 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Mon, 22 Jun 2020 17:59:34 +0300 Subject: [PATCH 163/300] don`t show empty filters --- OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java index 67d5637c98..bccc49f614 100644 --- a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java +++ b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java @@ -822,7 +822,7 @@ public class PoiFiltersHelper { String subCategory = query.getString(2); if (subCategory == null) { m.put(a, null); - } else { + } else if (!mapPoiTypes.isTypeForbidden(subCategory)) { if (m.get(a) == null) { m.put(a, new LinkedHashSet<String>()); } @@ -849,7 +849,9 @@ public class PoiFiltersHelper { map.get(filterId), application); filter.setSavedFilterByName(query.getString(2)); filter.setDeleted(deleted); - list.add(filter); + if (filter.getAcceptedTypesCount() > 0) { + list.add(filter); + } } } while (query.moveToNext()); } From 5e1aafcf084e911cc7f947b17d093e1bb0c2f1b1 Mon Sep 17 00:00:00 2001 From: Tymofij Lytvynenko <till.svit@gmail.com> Date: Mon, 22 Jun 2020 07:46:04 +0000 Subject: [PATCH 164/300] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-uk/strings.xml | 47 ++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 4479e2d600..08a2939a46 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -274,8 +274,8 @@ <string name="choose_audio_stream">Вивід голосових вказівок</string> <string name="choose_audio_stream_descr">Виберіть канал для голосових вказівок.</string> <string name="voice_stream_voice_call">Голосовий канал (перервати звук з динаміків автомобіля)</string> - <string name="voice_stream_notification">Повідомлення авдіо</string> - <string name="voice_stream_music">Медіа / Навігаційне авдіо</string> + <string name="voice_stream_notification">Повідомлення аудіо</string> + <string name="voice_stream_music">Медіа / Навігаційне аудіо</string> <string name="warning_tile_layer_not_downloadable">Застосунок не може завантажити шар мапи %1$s, спробуйте перевстановити його.</string> <string name="overlay_transparency_descr">Змінити прозорість мапи.</string> <string name="overlay_transparency">Прозорість</string> @@ -787,7 +787,7 @@ <string name="srtm_paid_version_msg">Будь ласка, зверніть увагу на оплату втулка \"Горизонталі\" для підтримки подальшого розвитку.</string> <string name="srtm_paid_version_title">Втулок \'Горизонталі\'</string> <string name="av_def_action_video">Запис відео</string> - <string name="av_def_action_audio">Запис авдіо</string> + <string name="av_def_action_audio">Запис аудіо</string> <string name="av_widget_action_descr">Усталена дія віджету:</string> <string name="av_widget_action">Дія для віджета</string> <string name="precise_routing_mode_descr">Обчислити точні маршрути без глюків. Обчислення все ще обмежене відстанню і повільне.</string> @@ -803,20 +803,20 @@ <string name="map_widget_av_notes">Звуко/відео-нотатки</string> <string name="osmand_srtm_short_description_80_chars">Плагін OsmAnd для показу горизонталей в автономному режимі</string> <string name="av_use_external_camera">Використовувати програму Камера</string> - <string name="av_settings_descr">Налаштування авдіо/відео запису.</string> + <string name="av_settings_descr">Налаштування аудіо/відео запису.</string> <string name="av_settings">Налаштування аудіо/відео</string> <string name="recording_error">Не вдалося виконати запис</string> <string name="recording_camera_not_available">Камера недоступна</string> <string name="recording_default_name">Запис</string> <string name="av_def_action_choose">За запитом\?</string> - <string name="recording_is_recorded">Авдіо/відео зараз записується. Для зупинки натисніть на AV-віджет.</string> - <string name="recording_context_menu_arecord">Створити авдіо-нотатку</string> + <string name="recording_is_recorded">Аудіо/відео зараз записується. Для зупинки натисніть на AV-віджет.</string> + <string name="recording_context_menu_arecord">Створити аудіо-нотатку</string> <string name="recording_context_menu_vrecord">Створити відео-нотатку</string> <string name="recording_context_menu_delete">Вилучити запис</string> <string name="recording_context_menu_play">Грати</string> <string name="map_widget_intermediate_distance">Проміжний пункт призначення</string> <string name="recording_can_not_be_played">Неможливо відтворити запис.</string> - <string name="recording_playing">Відбувається відтворення авдіо + <string name="recording_playing">Відбувається відтворення аудіо \n%1$s</string> <string name="recording_open_external_player">Відкрити зовнішній програвач</string> <string name="recording_delete_confirm">Вилучити цей елемент?</string> @@ -1626,10 +1626,10 @@ <string name="av_video_quality_high">Вища якість</string> <string name="av_video_quality">Якість відео</string> <string name="av_video_quality_descr">Виберіть якість відео.</string> - <string name="av_audio_format">Формат авдіо</string> - <string name="av_audio_format_descr">Виберіть формат авдіо.</string> - <string name="av_audio_bitrate">Бітова швидкість авдіо</string> - <string name="av_audio_bitrate_descr">Виберіть бітову швидкість авдіо.</string> + <string name="av_audio_format">Формат аудіо</string> + <string name="av_audio_format_descr">Виберіть формат аудіо.</string> + <string name="av_audio_bitrate">Бітова швидкість аудіо</string> + <string name="av_audio_bitrate_descr">Виберіть бітову швидкість аудіо.</string> <string name="please_specify_poi_type_only_from_list">Будь ласка, вкажіть коректний тип POI з переліку, або пропустіть його.</string> <string name="show_on_start">Показувати під час запуску</string> <string name="copied_to_clipboard">Скопійовано до буферу обміну</string> @@ -2009,7 +2009,7 @@ <string name="trip_rec_notification_settings_desc">Показувати сповіщення, яке дозволить почати запис мандрівки.</string> <string name="shared_string_notifications">Повідомлення</string> <string name="shared_string_continue">Продовжити</string> - <string name="shared_string_pause">Павза</string> + <string name="shared_string_pause">Призупинити</string> <string name="shared_string_trip">Подорож</string> <string name="shared_string_recorded">Записано</string> <string name="shared_string_record">Запис</string> @@ -2188,13 +2188,13 @@ <string name="quick_action_add_osm_bug">Додати нотатку OSM</string> <string name="rendering_value_fine_name">Дуже тонкий</string> <string name="navigate_point_olc">Відкритий код розташування (OLC)</string> - <string name="quick_action_take_audio_note">Нова авдіонотатка</string> + <string name="quick_action_take_audio_note">Нова аудіонотатка</string> <string name="quick_action_take_video_note">Нова відеонотатка</string> <string name="quick_action_take_photo_note">Нова світлино-нотатка</string> <string name="quick_favorites_name_preset">Найменування</string> <string name="quick_action_add_marker_descr">Кнопка для додавання позначки мапи посередині екрану.</string> <string name="quick_action_add_gpx_descr">Натискання на цю кнопку додасть маршрутну точку GPX посередині екрану.</string> - <string name="quick_action_take_audio_note_descr">Натискання цієї кнопки додає авдіонотатку посередині екрану.</string> + <string name="quick_action_take_audio_note_descr">Натискання цієї кнопки додає аудіонотатку посередині екрану.</string> <string name="quick_action_take_video_note_descr">Натискання цієї кнопки додає відеонотатку посередині екрану.</string> <string name="quick_action_take_photo_note_descr">Натискання цієї кнопки додає світлинонотатку посередині екрану.</string> <string name="quick_action_add_osm_bug_descr">Натискання цієї кнопки додає OSM-нотатку посередині екрану.</string> @@ -2611,7 +2611,7 @@ <string name="one_tap_active_descr">Натискання на позначку на мапі перемістить її на перше місце в списку задіяних позначок, не відкриваючи контекстне меню.</string> <string name="one_tap_active">Задіювання одним натисненням</string> <string name="empty_state_av_notes">Робіть нотатки!</string> - <string name="empty_state_av_notes_desc">Додайте авдіо, відео або світлино-нотатку в будь-яку точку на мапі, використовуючи віджет або контекстне меню.</string> + <string name="empty_state_av_notes_desc">Додайте аудіо, відео або світлино-нотатку в будь-яку точку на мапі, використовуючи віджет або контекстне меню.</string> <string name="notes_by_date">Примітки за датою</string> <string name="by_date">За датою</string> <string name="by_type">За типом</string> @@ -3781,4 +3781,21 @@ <string name="quick_action_mapillary_hide">Вимкнути Mapillary</string> <string name="quick_action_mapillary_show">Увімкнення шару Mapillary</string> <string name="quick_action_showhide_mapillary_descr">Перемикач увімкнення або вимкнення шару Mapillary на мапі.</string> + <string name="uninstall_speed_cameras">Видалити камери контролю швидкості</string> + <string name="shared_string_legal">Законодавство</string> + <string name="speed_camera_pois">POI камер контролю швидкості</string> + <string name="speed_cameras_legal_descr">У деяких країнах чи регіонах використання попередження про камери контролю швидкості заборонено законом. +\n +\nВам потрібно зробити вибір залежно від законодавства Вашої країни. +\n +\nВиберіть %1$s, і ви отримаєте сповіщення та попередження про камери швидкості. +\n +\nВиберіть %2$s, щоб видалити всі дані, пов\'язані з камерами контролю швидкості (повідомлення, попередження і POI), до повного перевстановлення OsmAnd.</string> + <string name="keep_active">Лишати ввімкненим</string> + <string name="shared_string_uninstall">Видалити</string> + <string name="speed_cameras_alert">Попередження про камери контролю швидкості в деяких країнах заборонено законом.</string> + <string name="shared_string_bearing">Орієнтація</string> + <string name="item_deleted">Видалено: %1$s</string> + <string name="speed_cameras_restart_descr">Перезапуск потрібен для повного видалення даних камер контролю швидкості.</string> + <string name="shared_string_uninstall_and_restart">Видалити та перезапустити</string> </resources> \ No newline at end of file From b313f7809ba6796d0c3897ef196bd7e04ccbfa07 Mon Sep 17 00:00:00 2001 From: Michael <quelbs@gmail.com> Date: Mon, 22 Jun 2020 11:01:15 +0000 Subject: [PATCH 165/300] Translated using Weblate (German) Currently translated at 99.9% (3401 of 3403 strings) --- OsmAnd/res/values-de/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index f0ba49e2d8..1359f25b32 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -3803,4 +3803,11 @@ <string name="item_deleted">%1$s gelöscht</string> <string name="speed_cameras_restart_descr">Ein Neustart ist erforderlich, um Blitzerdaten vollständig zu löschen.</string> <string name="shared_string_uninstall_and_restart">Deinstallieren und neu starten</string> + <string name="speed_cameras_legal_descr">In einigen Ländern oder Regionen ist die Verwendung von Anwendungen zum Warnen vor Blitzern gesetzlich verboten. +\n +\nEs muss anhand der Gesetzeslage des Landes entschieden werden. +\n +\nDie Wahl %1$s sendet Warnungen und Hinweise zu Blitzern. +\n +\nDie Wahl %2$s löscht alle Daten für Warnungen, Hinweise und POIs im Zusammenhang mit Blitzern, bis OsmAnd komplett neu installiert wird.</string> </resources> \ No newline at end of file From 4e5fa63971bac53efd8839a267107291fe9ee308 Mon Sep 17 00:00:00 2001 From: Athoss <athoss@citromail.hu> Date: Mon, 22 Jun 2020 16:13:07 +0000 Subject: [PATCH 166/300] Translated using Weblate (Hungarian) Currently translated at 97.9% (3333 of 3403 strings) --- OsmAnd/res/values-hu/strings.xml | 154 ++++++++++++++++--------------- 1 file changed, 79 insertions(+), 75 deletions(-) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 3879ab1306..c7406818d1 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -67,13 +67,13 @@ <string name="offline_edition_descr">Szerkesztés mindig offline módban.</string> <string name="update_poi_does_not_change_indexes">Az alkalmazáson belüli POI módosítások nincsenek hatással a letöltött térképre, a változtatásokat tartalmazó fájl ehelyett az eszközre lesz mentve.</string> <string name="local_openstreetmap_uploading">Feltöltés…</string> - <string name="local_openstreetmap_were_uploaded">{0} POI/Jegyzet feltöltve</string> + <string name="local_openstreetmap_were_uploaded">{0} POI/jegyzet feltöltve</string> <string name="local_openstreetmap_uploadall">Összes feltöltése</string> <string name="local_openstreetmap_upload">Szerkesztés feltöltése az OSM-re</string> <string name="local_openstreetmap_delete">Szerkesztés törlése</string> <string name="local_openstreetmap_descr_title">Aszinkron OSM szerkesztés:</string> - <string name="local_openstreetmap_settings">Eszközön tárolt OSM POI-k, Jegyzetek</string> - <string name="local_openstreetmap_settings_descr">Az eszköz adatbázisában tárolt OSM POI-k és Jegyzetek megjelenítése, kezelése.</string> + <string name="local_openstreetmap_settings">Eszközön tárolt OSM POI-k, jegyzetek</string> + <string name="local_openstreetmap_settings_descr">Az eszköz adatbázisában tárolt OSM POI-k és jegyzetek megjelenítése, kezelése.</string> <string name="live_monitoring_interval_descr">Online útvonalrögzítés sűrűségének megadása.</string> <string name="live_monitoring_interval">Online útvonalrögzítés sűrűsége</string> <string name="live_monitoring_url_descr">A webcímet a következő paraméterszintaxissal kell megadni: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string> @@ -113,13 +113,14 @@ <string name="general_settings_descr">A kijelző és az alkalmazás általános beállításai.</string> <string name="global_app_settings">Globális beállítások az alkalmazáshoz</string> <string name="user_name">OSM felhasználóneved</string> - <string name="open_street_map_login_descr">openstreetmap.org felé történő adatküldéshez szükséges.</string> + <string name="open_street_map_login_descr">Az openstreetmap.org felé történő adatküldéshez szükséges.</string> <string name="user_password">OSM jelszavad</string> <string name="osmand_service">Háttérmód</string> <string name="osmand_service_descr">Az OsmAnd háttérben fut kikapcsolt kijelzővel.</string> <string name="switch_to_raster_map_to_see">Erre a területre letölthet offline vektoros térképet a Beállításokban (Térképfájlok kezelése), vagy váltson át az Online térképek bővítményre.</string> <string name="download_files_not_enough_space">Nincs elég hely %1$s MB letöltéséhez (szabad %2$s).</string> - <string name="download_files_question_space">Letölt {0} fájlt\? Ehhez {1} MB-ra lesz szükség (a jelenlegi {2} MB-ból).</string> + <string name="download_files_question_space">Letölt {0} fájlt\? +\nEhhez {1} MB-ra lesz szükség (a jelenlegi {2} MB-ból).</string> <string name="use_transparent_map_theme">Átlátszó téma</string> <string name="native_library_not_supported">A natív megjelenítő nem támogatott ezen az eszközön.</string> <string name="init_native_library">Natív megjelenítő inicializálása…</string> @@ -491,11 +492,11 @@ <string name="search_offline_address">Offline</string> <string name="search_online_address">Online keresés</string> <string name="max_level_download_tile">Maximális online nagyítás</string> - <string name="max_level_download_tile_descr">Ne töltsön le online térképcsempéket ezen nagyítási szint felett.</string> + <string name="max_level_download_tile_descr">Ne töltsön le online térképeket ezen nagyítási szint felett.</string> <string name="route_general_information">Teljes távolság %1$s, utazási idő %2$d óra %3$d perc.</string> <string name="router_service_descr">Online vagy offline útvonaltervező szolgáltatás.</string> <string name="router_service">Útvonaltervező szolgáltatás</string> - <string name="sd_dir_not_accessible">Az adattárolási könyvtár nem érhető el a memóriakártyán!</string> + <string name="sd_dir_not_accessible">A tárolási könyvtár nem érhető el a memóriakártyán!</string> <string name="download_question">Letöltés {0} - {1} ?</string> <string name="download_question_exist">{0} régióhoz már le van töltve offline adat ({1}). Frissíted ({2})?</string> <string name="address">Cím</string> @@ -669,12 +670,12 @@ \n \nA csempés térképek beszerezhetők internetes forrásokból, vagy előkészíthetők kapcsolat nélküli használathoz (és kézzel átmásolva az OsmAnd adatmappájába) SQLite adatbázisként, amely különféle harmadik féltől származó térkép-előkészítő eszközökkel állítható elő.</string> <string name="osmand_background_plugin_description">Megjeleníti a háttérben futó nyomvonalrögzítés és navigáció beállításait, ami periodikusan felébreszti a GPS modult (kikapcsolt képernyőnél).</string> - <string name="osmand_accessibility_description">Ez a bővítmény elérhetővé teszi az eszköz akadálymentesítési lehetőségeit közvetlenül az OsmAnd programban. Ez megkönnyíti például a szövegfelolvasó (TTS) hangok beszédsebességének állítását, az irányító gombok képernyő navigációjának beállítását, egy görgető használatát a nagyítás vezérléséhez, vagy szövegfelolvasó visszajelzés használatát, például a pozíció automatikus bejelentésénél.</string> - <string name="osmand_development_plugin_description">Ez a bővítmény beállításokat jelenít meg olyan fejlesztői és hibakeresési szolgáltatásokhoz, mint például útvonaltervezés tesztelése vagy szimulálása, a megjelenítés teljesítménye vagy a hangutasítások. Ezeket a beállításokat fejlesztőknek szánják, és nem szükségesek az átlagos felhasználónak.</string> + <string name="osmand_accessibility_description">Elérhetővé teszi az eszköz akadálymentesítési lehetőségeit közvetlenül az OsmAndban. Ez megkönnyíti például a szövegfelolvasó (TTS) hangok beszédsebességének állítását, az irányító gombok képernyő navigációjának beállítását, egy görgető használatát a nagyítás vezérléséhez, vagy szövegfelolvasó visszajelzés használatát, például a pozíció automatikus bejelentésénél.</string> + <string name="osmand_development_plugin_description">Beállítások fejlesztői és hibakeresési szolgáltatásokhoz, mint például navigáció szimulálása, a megjelenítés teljesítménye vagy hangutasítások. Fejlesztőknek szánt funkciók, nem szükségesek a normál használathoz.</string> <string name="plugins_screen">Bővítmények</string> <string name="prefs_plugins_descr">A bővítmények speciális beállításokat és kiegészítő funkciókat aktiválnak.</string> <string name="prefs_plugins">Bővítmények</string> - <string name="osm_editing_plugin_description">Ezen bővítményen keresztül az OsmAnd használható OSM hozzájárulások beküldéséhez, mint például OSM POI objektumok létrehozása vagy módosítása, OSM Jegyzetek nyitása és hozzászólások írása, illetve a rögzített GPX fájlok közreadása. Az OSM egy közösségi, globális, közkincs térképező projekt. A részletekért nézd meg a https://openstreetmap.org oldalt. Értékelik az aktív részvételt, és a hozzájárulások közvetlenül az OsmAnd alkalmazásból is beküldhetők, ha az alkalmazásban megadod a személyes OSM hitelesítési adataid.</string> + <string name="osm_editing_plugin_description">OSM hozzájárulások beküldése, mint például OSM POI objektumok létrehozása vagy módosítása, OSM-jegyzetek nyitása vagy ezekhez hozzászólások beküldése, illetve a rögzített GPX fájlok közreadása az OsmAndon belül a felhasználóneve és jelszava megadásával. Az OpenStreetMap.org egy közösségi, globális, közkincs térképező projekt.</string> <string name="vector_maps_may_display_faster_on_some_devices">Vektoros térképek gyorsabban rajzolódnak. Nem minden eszközön működik.</string> <string name="play_commands_of_currently_selected_voice">Hang kijelölése és tesztelése bemondások lejátszásával:</string> <string name="debugging_and_development">OsmAnd fejlesztés</string> @@ -720,8 +721,8 @@ <string name="osmand_parking_pm">du.</string> <string name="osmand_parking_am">de.</string> <string name="osmand_parking_position_name">Parkolóhely</string> - <string name="osmand_parking_plugin_description">A parkolási hely bővítmény segít felvenni, hogy hol parkoltál le az autóval, és mennyi parkolási idő van még hátra (ha a parkolás időben korlátozott). -\nA parkolási hely és az idő is látható az OsmAnd vezérlőpultján, valamint a térképen egy widgetben. Értesítés adható hozzá az Android naptárhoz emlékeztetőként.</string> + <string name="osmand_parking_plugin_description">Lehetővé teszi az autója parkolási helyének rögzítését, beleértve a hátralévő parkolási időt. +\nA parkolási hely és idő egyaránt látható a vezérlőpulton, valamint egy térképwidgetben. Értesítés adható hozzá az Android naptárhoz.</string> <string name="osmand_parking_plugin_name">Parkolási pozíció</string> <string name="context_menu_item_add_parking_point">Megjelölés parkolási helyként</string> <string name="context_menu_item_delete_parking_point">Parkolásjelölő törlése</string> @@ -730,7 +731,7 @@ <string name="global_app_allocated_memory_descr">Lefoglalt memória %1$s MB (Android korlát %2$s MB, Dalvik %3$s MB).</string> <string name="global_app_allocated_memory">Lefoglalt memória</string> <string name="native_app_allocated_memory_descr">Alkalmazás által lefoglalt összes natív memória %1$s MB (Dalvik %2$s MB, egyéb %3$s MB). -Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</string> +\nProporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</string> <string name="native_app_allocated_memory">Összes natív memória</string> <string name="select_animate_speedup">Útvonalszimuláció sebessége:</string> <string name="osmand_parking_hours">Óra</string> @@ -788,7 +789,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str <string name="osmand_short_description_80_chars">Globális mobil térkép és navigáció, offline és online OSM-térképekkel</string> <string name="osmand_long_description_1000_chars">OsmAnd (OSM Automated Navigation Directions) \n -\n Az OsmAnd nyílt forráskódú navigációs alkalmazás, amely a globális OpenStreetMap (OSM) adatok széles skáláját használja. Az alkalmazás internetkapcsolat nélkül is használható, mert minden (vektoros és csempés) térképadat tárolható a telefon memóriájában. Az alkalmazás továbbá offline és online útvonaltervezést is tartalmaz, részletes, hangvezérléses navigációval. +\n Az OsmAnd nyílt forráskódú navigációs alkalmazás, amely a globális OSM adatok széles skáláját használja. Az alkalmazás internetkapcsolat nélkül is használható, mert minden (vektoros és csempés) térképadat tárolható a telefon memóriájában. Az alkalmazás továbbá offline és online útvonaltervezést is tartalmaz, részletes, hangvezérléses navigációval. \n \n Néhány fontos funkció: \n - Teljesen offline működés (letöltött vektoros és csempés térképek tárolása a készülék tárhelyén) @@ -797,14 +798,14 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str \n - Több térkép egymásra rétegezése, például állítható átlátszóságú GPX- vagy navigációs nyomvonalak, érdekes pontok, kedvence, szintvonalak, tömegközlekedési megállók és további térképek \n - Címek és helyek (érdekes pontok) offline keresése \n - Offline útvonaltervezés közepes távolságra -\n +\n \n- Autós, kerékpáros és gyalogos módok a következő beállításokkal: \n - éjszakai/nappali nézet automatikus átkapcsolása \n - sebességfüggő térképnagyítás \n - térképigazítás iránytű vagy mozgásirány szerint \n - sávnavigáció, sebességkorlátozás kijelzése, rögzített és hangfelolvasásos (TTS) hangok \n -\n +\n \n Az OsmAnd ezen ingyenes verziójának korlátozásai: \n - letölthető térképek számának korlátozása \n - wikipédia-POI offline elérés nélkül @@ -812,7 +813,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str \n Az OsmAndot aktívan fejlesztjük. Projektünk és a folyamatos előrelépés az új funkciók kifejlesztésére és tesztelésére kapott adományoktól függ. Kérjük, fontolja meg az OsmAnd+ megvásárlását vagy konkrét új funkciók finanszírozását vagy egy álalános adományt a https://osmand.net oldalon.</string> <string name="osmand_plus_long_description_1000_chars">OsmAnd+ (OSM Automated Navigation Directions) \n -\n Az OsmAnd+ nyílt forráskódú navigációs alkalmazás, amely a globális OpenStreetMap (OSM) adatok széles skáláját használja. Az alkalmazás internetkapcsolat nélkül is használható, mert minden (vektoros és csempés) térképadat tárolható a telefon memóriájában. Az alkalmazás továbbá offline és online útvonaltervezést is tartalmaz, részletes, hangvezérléses navigációval. +\n Az OsmAnd+ nyílt forráskódú navigációs alkalmazás, amely a globális OSM adatok széles skáláját használja. Az alkalmazás internetkapcsolat nélkül is használható, mert minden (vektoros és csempés) térképadat tárolható a telefon memóriájában. Az alkalmazás továbbá offline és online útvonaltervezést is tartalmaz, részletes, hangvezérléses navigációval. \n \n Az OsmAnd+ az alkalmazás fizetős verziója, megvásárlásával támogatja a projektet, új funkciók kifejlesztését finanszírozza és megkapja a legújabb frissítéseket. \n @@ -824,7 +825,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str \n - Több térkép egymásra rétegezése, például állítható átlátszóságú GPX- vagy navigációs nyomvonalak, érdekes pontok, kedvence, szintvonalak, tömegközlekedési megállók és további térképek \n - Címek és helyek (érdekes pontok) offline keresése \n - Offline útvonaltervezés közepes távolságra -\n +\n \n- Autós, kerékpáros és gyalogos módok a következő beállításokkal: \n - éjszakai/nappali nézet automatikus átkapcsolása \n - sebességfüggő térképnagyítás @@ -914,7 +915,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str <string name="map_widget_av_notes">hang/videojegyzetek</string> <string name="osmand_srtm_short_description_80_chars">OsmAnd-bővítmény offline szintvonalakhoz</string> <string name="map_widget_distancemeasurement">Távolságmérés</string> - <string name="audionotes_plugin_description">A hang- és videojegyzet bővítmény biztosítja az utazás közbeni hang-, fénykép- és videojegyzetek készítésének lehetőségét a térképem lévő gomb segítségével, vagy közvetlenül a térképen lévő bármely pozíció helyi menüjének használatával.</string> + <string name="audionotes_plugin_description">Készítsen hang/fénykép/videó jegyzeteket utazás közben egy térképen lévő gomb vagy egy pozíció helyi menüjének használatával.</string> <string name="av_def_action_video">Videofelvétel</string> <string name="av_def_action_audio">Hangfelvétel</string> <string name="av_video_format_descr">Kimeneti videoformátum:</string> @@ -932,10 +933,10 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str <string name="av_widget_action_descr">Alapértelmezett widgetművelet:</string> <string name="av_widget_action">Alapértelmezett widgetmód</string> <string name="recording_description">Felvétel %1$s %3$s %2$s</string> - <string name="srtm_paid_version_msg">Kérlek, fontold meg a „Szintvonalak” bővítmény megvásárlását a Play Store-ban, ezzel is támogatva a további fejlesztéseket.</string> + <string name="srtm_paid_version_msg">Kérem, fontolja meg a „Szintvonalak” bővítmény megvásárlását, ezzel is támogatva a további fejlesztéseket.</string> <string name="srtm_paid_version_title">Szintvonal bővítmény</string> <string name="intermediate_points_change_order">Más sorrend</string> - <string name="dropbox_plugin_description">A Dropbox-bővítmény lehetővé teszi a rögzített útvonalak és hang/videojegyzetek szinkronizálását a Dropbox fiókoddal.</string> + <string name="dropbox_plugin_description">Szinkronizálja a hang/videó jegyzeteket a Dropbox fiókjával</string> <string name="dropbox_plugin_name">Dropbox bővítmény</string> <string name="local_indexes_cat_av">Hang- és videofelvétel</string> <string name="stop_routing_confirm">Biztosan megszakítja a navigációt\?</string> @@ -997,7 +998,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str <string name="plugin_distance_point">Pont</string> <string name="gpx_file_name">GPX-fájlnév</string> <string name="gpx_saved_sucessfully">GPX fájl elmentve ide: {0}</string> - <string name="osmand_distance_planning_plugin_description">Ez a bővítmény lehetővé teszi útvonalak létrehozását a térképen való koppintással, vagy meglévő GPX fájlok használatát, módosítását egy út megtervezéséhez és a pontok közötti távolság méréséhez. Az eszközt a térkép képernyőn elhelyezett gombbal lehet indítani. Az eredmény elmenthető GPX fájlként, amely később használható a vezetéshez.</string> + <string name="osmand_distance_planning_plugin_description">Hozzon létre útvonalakat a térképen való koppintással, vagy meglévő GPX fájlok használatával, módosításával egy út megtervezéséhez és a pontok közötti távolság méréséhez. Az eredmény elmenthető GPX fájlként, amely később használható navigációhoz.</string> <string name="osmand_distance_planning_plugin_name">Távolságszámító és tervezőeszköz</string> <string name="use_distance_measurement_help">* Pont megjelöléséhez koppintson. \n * Az előző pont törléséhez nyomja meg hosszan a térképet. @@ -1057,16 +1058,16 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str <string name="about_version">Verzió:</string> <string name="shared_string_about">Névjegy</string> <string name="about_settings_descr">Verzióinfó, licencek, csapattagok</string> - <string name="local_index_tile_data_zooms">Letöltött zoomszintek: %1$s</string> - <string name="local_index_tile_data_expire">Lejárat (perc): %1$s</string> + <string name="local_index_tile_data_zooms">Letöltött nagyítási szintek: %1$s</string> + <string name="local_index_tile_data_expire">Lejárati idő (perc): %1$s</string> <string name="local_index_tile_data_downloadable">Letölthető: %1$s</string> <string name="local_index_tile_data_maxzoom">Maximális zoom: %1$s</string> <string name="local_index_tile_data_minzoom">Minimális zoom: %1$s</string> <string name="local_index_tile_data_name">Csempeadat: %1$s</string> <string name="edit_tilesource_successfully">%1$s csempeforrás elmentve</string> - <string name="edit_tilesource_elliptic_tile">Elliptikus Mercator</string> + <string name="edit_tilesource_elliptic_tile">Elliptikus Mercator vetület</string> <string name="edit_tilesource_maxzoom">Maximális zoom</string> - <string name="edit_tilesource_expiration_time">Lejárat (perc)</string> + <string name="edit_tilesource_expiration_time">Lejárati idő (perc)</string> <string name="edit_tilesource_minzoom">Minimális zoom</string> <string name="edit_tilesource_url_to_load">URL</string> <string name="edit_tilesource_choose_existing">Meglévő kijelölése…</string> @@ -1112,8 +1113,8 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str <string name="routing_attr_avoid_motorway_description">Elkerüli az autópályákat</string> <string name="routing_attr_weight_name">Súlykorlátozás</string> <string name="routing_attr_weight_description">Adja meg az útvonalakon a járművekre vonatkozó súlykorlátozást.</string> - <string name="android_19_location_disabled">Az Android 4.4 (KitKat) verziója óta a régi tárolási mappa (%s) elavult. Másoljuk az összes OsmAnd fájlt az új helyre\? -\n 1. megjegyzés: a régi fájlok érintetlenül maradnak (de kézzel törölhetők). + <string name="android_19_location_disabled">Az Android 4.4 (KitKat) verziója óta a régi tárolási mappa (%s) elavult. Másoljuk az összes OsmAnd fájlt az új helyre\? +\n 1. megjegyzés: a régi fájlok érintetlenül maradnak (de kézzel törölhetők). \n 2. megjegyzés: az új tárolóhelyen nem lehet fájlokat megosztani az OsmAnd és OsmAnd+ között.</string> <string name="copying_osmand_one_file_descr">%s fájl másolása az új helyre…</string> <string name="copying_osmand_files_descr">OsmAnd adatainak másolása az új helyre (%s)…</string> @@ -1433,15 +1434,15 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str <string name="version_settings">Összeállítások</string> <string name="plugin_ski_name">Sítérképnézet</string> <string name="plugin_nautical_name">Hajózásitérkép-nézet</string> - <string name="world_ski_missing">A sítérképek megjelenítése érdekében a speciális kapcsolat nélküli térkép letöltése szükséges</string> - <string name="nautical_maps_missing">A hajózási térképek megjelenítése érdekében a speciális kapcsolat nélküli térkép letöltése szükséges</string> + <string name="world_ski_missing">Töltse le a speciális offline térképet a sílétesítmények megjelenítéséhez.</string> + <string name="nautical_maps_missing">Töltse le a speciális offline térképet a hajózási részletek megjelenítéséhez.</string> <string name="device_memory">Eszköz memóriája</string> <string name="free">"%1$s szabad "</string> <string name="roads_only">Csak utak</string> <string name="rendering_attr_pisteRoutes_name">Sípályák</string> <string name="rendering_attr_pisteGrooming_name">Sípálya kezeltség</string> <string name="watch">Óra</string> - <string name="notes">Jegyzetek</string> + <string name="notes">Hang/videó jegyzetek</string> <string name="online_map">Online térkép</string> <string name="shared_string_audio">Hang</string> <string name="share_note">Megosztási megjegyzés</string> @@ -1787,7 +1788,7 @@ Hosszúság: %2$s</string> <string name="poi_context_menu_modify_osm_change">OSM-szerkesztés módosítása</string> <string name="shared_string_card_was_hidden">Kártya el lett rejtve</string> <string name="please_specify_poi_type_only_from_list">Kérjük, adja meg a helyes POI-típust, vagy hagyja ki ezt a lépést.</string> - <string name="access_from_map_description">A menü gomb a menü helyett a műszerfalat indítja</string> + <string name="access_from_map_description">A menü gomb a műszerfalat indítja a menü helyett</string> <string name="access_from_map">Elérés a térképről</string> <string name="copied_to_clipboard">Vágólapra másolva</string> <string name="use_dashboard_btn">Műszerfal használata</string> @@ -1838,7 +1839,7 @@ Hosszúság: %2$s</string> <string name="night">Éjjel</string> <string name="select_month_and_country">Hónap és ország:</string> <string name="shared_string_remove">Eltávolítás</string> - <string name="storage_directory_readonly_desc">Az alkalmazás átváltott belső memóriára, mert a kijelölt adattároló mappa csak olvasható. Kérjük, jelöljön ki egy írható tárolási mappát.</string> + <string name="storage_directory_readonly_desc">Az alkalmazás átváltott belső memóriára, mert a kijelölt adattároló mappa írásvédett. Kérjük, jelöljön ki egy írható tárolási mappát.</string> <string name="storage_directory_shared">Osztott memória</string> <string name="shared_string_topbar">Felső sáv</string> <string name="recalculate_route">Útvonal újraszámítása</string> @@ -1863,14 +1864,17 @@ Hosszúság: %2$s</string> <string name="osm_live_subscription_settings">Előfizetési beállítások</string> <string name="osm_live_ask_for_purchase">Először kérjük, vásároljon OsmAnd Live előfizetést</string> <string name="osm_live_header">Ez az előfizetés a világ bármely térképének óránkénti frissítését teszi lehetővé. -A bevételek egy része az OSM közösségnek jut vissza, és OSM szerkesztésenként kerül kifizetésre. -Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésüket, ez ennek a tökéletes módja.</string> +\nA bevételek egy része az OSM közösségnek jut vissza, és OSM szerkesztésenként kerül kifizetésre. +\nHa szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésüket, ez ennek a tökéletes módja.</string> <string name="select_map_marker">Térképjelölő kiválasztása</string> <string name="map_markers_other">Egyéb jelölők</string> <string name="upload_anonymously">Feltöltés névtelenül</string> <string name="show_transparency_seekbar">Átlátszóságcsúszka megjelenítése</string> - <string name="download_files_error_not_enough_space">Nincs elég hely! A művelethez ideiglenesen {3} MB, véglegesen pedig {1} MB hely szükséges. (Jelenleg csak {2} MB áll rendelkezésre.)</string> - <string name="download_files_question_space_with_temp">Letölt {0} fájlt\? Ehhez ideiglenesen {3} MB, véglegesen pedig {1} MB hely szükséges. (A jelenlegi {2} MB-ból.)</string> + <string name="download_files_error_not_enough_space">Nincs elég hely! +\nA művelethez ideiglenesen {3} MB, véglegesen pedig {1} MB hely szükséges. +\n(Jelenleg csak {2} MB áll rendelkezésre.)</string> + <string name="download_files_question_space_with_temp">Letölt {0} fájlt\? +\nEhhez ideiglenesen {3} MB, véglegesen pedig {1} MB hely szükséges. (A jelenlegi {2} MB-ból.)</string> <string name="upload_osm_note_description">Töltse fel OSM-jegyzetét névtelenül vagy OpenStreetMap.org-fiókjának használatával.</string> <string name="upload_osm_note">OSM Jegyzet feltöltése</string> <string name="map_marker_1st">Első térképjelölő</string> @@ -1919,7 +1923,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="finish_navigation">Navigáció befejezése</string> <string name="avoid_road">Út elkerülése</string> <string name="full_report">Részletes jelentés</string> - <string name="open_street_map_login_and_pass">OpenStreetMap felhasználónév és jelszó</string> + <string name="open_street_map_login_and_pass">OSM felhasználónév és jelszó</string> <string name="osm_live_email_desc">Ezzel kaphat friss tájékoztatást a szerkesztéseiről.</string> <string name="shared_string_undo_all">Minden visszavonása</string> <string name="file_name_containes_illegal_char">A fájlnév érvénytelen karaktereket tartalmaz</string> @@ -2006,9 +2010,9 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="first_usage_greeting">Navigálj és fedezz fel új helyeket internetkapcsolat nélkül</string> <string name="search_another_country">Másik régió kijelölése</string> <string name="skip_map_downloading_desc">Nincs telepítve offline térkép. Kijelölhet egy térképet a listából, vagy töltse le később innen: „Menü - %1$s”.</string> - <string name="osm_live_payment_desc">Az előfizetési díj havonta lesz felszámítva. Az előfizetést bármikor lemondhatod a Google Play-en.</string> - <string name="donation_to_osm">Adomány az OpenStreetMap közösségnek</string> - <string name="donation_to_osm_desc">Az adományod egy részét továbbítjuk azon OSM szerkesztőknek, akik módosításokat küldtek be OpenStreetMapre. Az előfizetési díj változatlan marad.</string> + <string name="osm_live_payment_desc">Az előfizetési díj a kiválasztott időnként lesz felszámítva. Az előfizetést bármikor lemondhatja a Google Play-en.</string> + <string name="donation_to_osm">Adomány az OSM közösségnek</string> + <string name="donation_to_osm_desc">Az adomány egy részét továbbítjuk az OSM szerkesztőknek. Az előfizetési díj változatlan marad.</string> <string name="osm_live_subscription_desc">Az előfizetés lehetővé teszi bármely térkép óránkénti, napi vagy heti frissítését, valamint korlátlan számú térkép letöltését globálisan.</string> <string name="get_it">Beszerzés</string> <string name="osm_live_banner_desc">Szerezzen korlátlan számú térképletöltést, valamint heti, napi vagy akár óránkénti térképfrissítést.</string> @@ -2241,8 +2245,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="quick_action_add_destination">Célpont megadása</string> <string name="quick_action_replace_destination">Célpont lecserélése</string> <string name="quick_action_add_first_intermediate">Hozzáadás első köztes célpontként</string> - <string name="quick_action_add_destination_desc">Gomb, amely beállítja a képernyő középpontját úti célnak. A korábban beállított célpont lesz az utolsó köztes célpont.</string> - <string name="quick_action_replace_destination_desc">A műveletgombra koppintás a képernyő középpontját beállítja új úti célként, lecserélve korábban kiválasztott célpontot (ha volt).</string> + <string name="quick_action_add_destination_desc">"Gomb, amely beállítja a képernyő középpontját úti célnak, a korábban beállított célpont utolsó köztes célpont lesz."</string> + <string name="quick_action_replace_destination_desc">Váltógomb, amely a képernyő középpontját beállítja új úti célként, lecserélve korábban kiválasztott célpontot (ha volt).</string> <string name="quick_action_add_first_intermediate_desc">Gomb, amely beállítja a képernyő közepét első köztes célpontnak.</string> <string name="no_overlay">Nincs rátétréteg</string> <string name="no_underlay">Nincs alátétréteg</string> @@ -2265,7 +2269,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="select_street">Utca kijelölése</string> <string name="shared_string_in_name">itt: %1$s</string> <string name="type_address">Cím megadása</string> - <string name="quick_action_showhide_osmbugs_title">OSM Jegyzetek ki/bekapcsolása</string> + <string name="quick_action_showhide_osmbugs_title">OSM-jegyzetek megjelenítése vagy elrejtése</string> <string name="quick_action_osmbugs_show">OSM-jegyzetek megjelenítése</string> <string name="quick_action_osmbugs_hide">OSM-jegyzetek elrejtése</string> <string name="quick_action_showhide_osmbugs_descr">Váltógomb, amely a térképen megjeleníti vagy elrejti az OSM-jegyzeteket.</string> @@ -2289,8 +2293,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="animate_my_location_desc">A saját pozíció animált térképcsúsztatásának bekapcsolása navigáció közben.</string> <string name="shared_string_overview">Áttekintés</string> <string name="route_is_too_long_v2">Hosszú távolságoknál: ha 10 percen belül nem kap eredményt, adjon hozzá köztes célpontokat.</string> - <string name="osmand_extended_description_part1">OsmAnd (OSM Automated Navigation Directions) egy térkép- és navigációs alkalmazás, amellyel hozzáférhetsz az ingyenes, globális és kiváló minőségű OpenStreetMap (OSM) adataihoz. -\n + <string name="osmand_extended_description_part1">OsmAnd (OSM Automated Navigation Directions) egy térkép- és navigációs alkalmazás, amellyel hozzáférhetsz az ingyenes, globális és kiváló minőségű OSM adataihoz. +\n \nÉlvezd a hangalapú és vizuális navigációs szolgáltatást, tekints meg érdekes helyeket (POI-kat), hozz létre és kezelj GPX nyomvonalakat, szintvonalak és magasságinformációk használatával (egy plugin segítségével), válassz az autós, kerékpáros és gyalogos üzemmód közül, szerkessz OSM-et és használd ki a számos egyéb lehetőséget.</string> <string name="save_poi_too_many_uppercase">A név túl sok nagybetűt tartalmaz. Folytatja\?</string> <string name="private_access_routing_req">A célpont korlátozott hozzáférésű területen található. Engedélyezed a magánutak használatát ennél az útvonaltervnél\?</string> @@ -2314,8 +2318,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="shared_string_install">Telepítés</string> <string name="open_mapillary">Mapillary megnyitása</string> <string name="mapillary_image">Mapillary-fénykép</string> - <string name="osmand_plus_extended_description_part8">"Hozzávetőleges lefedettség és térképminőség: -\n • Nyugat-Európa: **** + <string name="osmand_plus_extended_description_part8">"Hozzávetőleges lefedettség és térképminőség: +\n • Nyugat-Európa: **** \n • Kelet-Európa: *** \n • Oroszország: *** \n • Észak-Amerika: *** @@ -2325,7 +2329,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n • Közel-Kelet: ** \n • Afrika: ** \n • Antarktisz: * -\n A világ legtöbb országa letölthető. +\n A világ legtöbb országa letölthető. \n Afganisztántól Zimbabwéig, Ausztráliától az Egyesült Államokig. Magyarország, Szlovákia, Románia, Ausztria, Németország, Olaszország… \n"</string> <string name="distance_moving">Korrigált távolság</string> @@ -2357,7 +2361,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="quick_action_resume_pause_navigation_descr">Gomb a navigáció szüneteltetéséhez vagy folytatásához.</string> <string name="quick_action_show_navigation_finish_dialog">„Navigáció véget ért” panel megjelenítése</string> <string name="quick_action_start_stop_navigation">Navigáció indítása/megállítása</string> - <string name="quick_action_start_stop_navigation_descr">A navigáció elkezdéséhez vagy befejezéséhez koppintson erre a gombra.</string> + <string name="quick_action_start_stop_navigation_descr">Gomb a navigáció elkezdéséhez vagy befejezéséhez.</string> <string name="rendering_value_translucent_pink_name">Átlátszó rózsaszín</string> <string name="live_monitoring_max_interval_to_send">Online útvonalrögzítés időpuffere</string> <string name="live_monitoring_max_interval_to_send_desrc">Adja meg az időpuffert, ameddig az elküldendő helyadatok kapcsolat nélkül is megmaradnak</string> @@ -2472,7 +2476,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="one_tap_active">Aktiválás egy koppintással</string> <string name="empty_state_av_notes">Készítsen jegyzeteket!</string> <string name="empty_state_av_notes_desc">Hang-, video-, vagy fényképjegyzet hozzáadása a térkép bármely pontjához, widget vagy környezeti menü használatával.</string> - <string name="notes_by_date">OSM-jegyzetek dátum szerint</string> + <string name="notes_by_date">Hang/kép jegyzetek dátum szerint</string> <string name="by_date">Dátum szerint</string> <string name="by_type">Típus szerint</string> <string name="looking_for_tracks_with_waypoints">Útpontokat tartalmazó nyomvonalak keresése</string> @@ -2493,7 +2497,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="show_guide_line_descr">Irányjelző vonalat jelenít meg az aktuális pozíciódtól az aktív térképjelölőkig.</string> <string name="show_arrows_descr">Egy, vagy két nyilat jelenít meg, amik az aktív jelölők irányába mutatnak.</string> <string name="distance_indication_descr">Válaszd ki, hogyan jelenjen meg az aktív jelölők távolsága.</string> - <string name="active_markers_descr">Irányjelölők számának megadása:</string> + <string name="active_markers_descr">Adja meg az irányjelzők számát.</string> <string name="digits_quantity">Tizedesjegyek száma</string> <string name="shared_string_right">Jobb</string> <string name="shared_string_left">Bal</string> @@ -2822,25 +2826,25 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n • GPX nyomvonalak feltöltése az OSM-be, közvetlenül az alkalmazásból \n • POI-k hozzáadása, és közvetlen feltöltés az OSM-be (vagy később, ha offline vagy) \n</string> - <string name="osmand_extended_description_part8">Az OsmAnd egy aktívan fejlesztett nyílt forráskódú szoftver. Mindenki közreműködhet az alkalmazásban a hibák bejelentésével, a fordítások javításával vagy az új funkció programozásával. Továbbá a projekt az adományokra támaszkodik az új funkciók fejlesztésekor és azok tesztelésekor. -\n Közelítő térképlefedettsé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 és Korea: *** -\n • Közel-Kelet: ** -\n • Afrika: ** -\n • Antarktisz: * -\n A világ legtöbb országa elérhető letöltésre. -\n Szerezz egy megbízható navigátort az országodba – legyen az Franciaország, Németország, Mexikó, az Egyesült Királyság, Spanyolország, Hollandia, az Egyesült Államok, Oroszország, Brazília vagy bármely más.</string> - <string name="osmand_plus_extended_description_part1">Az OsmAnd+ (OSM Automated Navigation Directions) egy térkép és navigáció alkalmazás, amely hozzáférést nyújt az ingyenes, világszintű és magas minőségű OpenStreetMap (OSM) adatokhoz. -\n Élvezd a hang- és képalapú navigációt, a POI-k (érdekes helyek) megtekintését, hozz létre és kezelj GPX nyomvonalakat, használj domborzati ábrázolást és magassági adatokat, válassz a vezetési, kerékpározási és gyalogos módok között, szerkeszd az OSM-et, és még sok mást. -\n -\n Az OsmAnd+ az alkalmazás fizetős verziója. A megvásárlásával támogatod a projektet, finanszírozod az új funkciók fejlesztését, és megkapod a legújabb frissítéseket. -\n + <string name="osmand_extended_description_part8">Az OsmAnd egy aktívan fejlesztett nyílt forráskódú szoftver. Mindenki közreműködhet az alkalmazásban a hibák bejelentésével, a fordítások javításával vagy az új funkció programozásával. Továbbá a projekt az adományokra támaszkodik az új funkciók fejlesztésekor és azok tesztelésekor. +\n Közelítő térképlefedettsé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 és Korea: *** +\n • Közel-Kelet: ** +\n • Afrika: ** +\n • Antarktisz: * +\n A világ legtöbb országa elérhető letöltésre. +\n Szerezzen egy megbízható navigátort az országába – legyen az Franciaország, Németország, Mexikó, az Egyesült Királyság, Spanyolország, Hollandia, az Egyesült Államok, Oroszország, Brazília vagy bármely más.</string> + <string name="osmand_plus_extended_description_part1">Az OsmAnd+ (OSM Automated Navigation Directions) egy térkép és navigáció alkalmazás, amely hozzáférést nyújt az ingyenes, világszintű és magas minőségű OSM adatokhoz. +\n Élvezd a hang- és képalapú navigációt, a POI-k (érdekes helyek) megtekintését, hozz létre és kezelj GPX nyomvonalakat, használj domborzati ábrázolást és magassági adatokat, válassz a vezetési, kerékpározási és gyalogos módok között, szerkeszd az OSM-et, és még sok mást. +\n +\n Az OsmAnd+ az alkalmazás fizetős verziója. A megvásárlásával támogatod a projektet, finanszírozod az új funkciók fejlesztését, és megkapod a legújabb frissítéseket. +\n \n Néhány a főbb funkciókból:</string> <string name="osmand_plus_extended_description_part2">Navigáció \n • Online (gyorsabb) és offline (nincs roamingdíj külföldön) is működik @@ -3072,7 +3076,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="turn_screen_on_router">Bekapcsolás irányváltáskor</string> <string name="turn_screen_on_time_descr">A képernyő kikapcsolásáig hátralévő idő beállítása.</string> <string name="turn_screen_on_sensor">Közelségérzékelő használata</string> - <string name="turn_screen_on_sensor_descr">A navigáció közbeni bekapcsoláshoz lengesse meg kezét a képernyő felső része fölött.</string> + <string name="turn_screen_on_sensor_descr">Lengesse meg a kezét a képernyő fölött annak bekapcsolásához.</string> <string name="rendering_attr_tracktype_grade1_name">Szilárd (burkolt)</string> <string name="rendering_attr_tracktype_grade2_name">Szilárd (burkolatlan)</string> <string name="rendering_attr_tracktype_grade3_name">Jórészt szilárd</string> @@ -3414,7 +3418,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n • További hibajavítások \n \n</string> - <string name="quick_action_directions_from_desc">Gomb, amely beállítja a képernyő közepét kiindulási pontnak, és kiszámítja a célpontig vezető utat vagy megnyit egy párbeszédablakot a célpont kijelöléséhez, ha a célpontjelölő nincs a térképen.</string> + <string name="quick_action_directions_from_desc">Gomb, amely beállítja a képernyő közepét kiindulási pontnak. Ezután kérni fog egy célpontot vagy elindítja az útvonalszámítást.</string> <string name="reset_confirmation_descr">Minden módosítás elvész, ha erre koppint: %1$s.</string> <string name="reset_all_profile_settings_descr">Összes profilbeállítás visszaállítása az alapértelmezett állapotba.</string> <string name="reset_all_profile_settings">Összes profilbeállítást visszaállítja\?</string> @@ -3455,8 +3459,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük <string name="shared_string_available">Rendelkezésre áll</string> <string name="add_custom_category">Egyedi kategória hozzáadása</string> <string name="rendering_attr_streetLightingNight_name">Csak éjszaka jelenjék meg</string> - <string name="plugin_prefs_reset_successful">Minden bővítménybeállítás visszaállt az alapértelmezett helyzetbe.</string> - <string name="profile_prefs_reset_successful">Minden profilbeállítás visszaállt az alapértelmezett helyzetbe.</string> + <string name="plugin_prefs_reset_successful">Minden bővítménybeállítás visszaállt alapértelmezettre.</string> + <string name="profile_prefs_reset_successful">Minden profilbeállítás visszaállt alapértelmezettre.</string> <string name="sunset_at">Napnyugta: %1$s</string> <string name="sunrise_at">Napkelte: %1$s</string> <string name="shared_string_app_default_w_val">Alkalmazás alapértelmezett (%s)</string> From 3d66e6da32cd7be112c45a78bcb1ce1912d09424 Mon Sep 17 00:00:00 2001 From: ihor_ck <igor_ck@outlook.com> Date: Mon, 22 Jun 2020 18:46:26 +0000 Subject: [PATCH 167/300] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-uk/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 08a2939a46..f9829e7dc0 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -3796,6 +3796,6 @@ <string name="speed_cameras_alert">Попередження про камери контролю швидкості в деяких країнах заборонено законом.</string> <string name="shared_string_bearing">Орієнтація</string> <string name="item_deleted">Видалено: %1$s</string> - <string name="speed_cameras_restart_descr">Перезапуск потрібен для повного видалення даних камер контролю швидкості.</string> + <string name="speed_cameras_restart_descr">Потрібен перезапуск для повного видалення даних камер контролю швидкості.</string> <string name="shared_string_uninstall_and_restart">Видалити та перезапустити</string> </resources> \ No newline at end of file From 1514c9a8547fe4bb728c046cb44d841aa16da330 Mon Sep 17 00:00:00 2001 From: iman <iriman@chmail.ir> Date: Sun, 21 Jun 2020 18:38:46 +0000 Subject: [PATCH 168/300] Translated using Weblate (Persian) Currently translated at 99.7% (3396 of 3403 strings) --- OsmAnd/res/values-fa/strings.xml | 94 ++++++++++++++++---------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index d81e115a72..893b1b9a80 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -186,7 +186,7 @@ <string name="item_checked">انتخاب‌شده</string> <string name="item_unchecked">انتخاب‌نشده</string> <string name="prefer_in_routing_title">ترجیحِ…</string> - <string name="local_indexes_cat_av">داده‌های صوتی/تصویری</string> + <string name="local_indexes_cat_av">دادهٔ صوتی/تصویری</string> <string name="precise_routing_mode">مسیریابی دقیق (آلفا)</string> <string name="recording_photo_description">تصویر %1$s از %2$s</string> <string name="av_widget_action">کنش پیش‌فرض ابزارک</string> @@ -358,7 +358,7 @@ <string name="general_settings_descr">نما و تنظیمات عمومی برنامه را تنظیم کنید.</string> <string name="global_app_settings">تنظیمات کلی برنامه</string> <string name="user_name">نام کاربری OSM شما</string> - <string name="open_street_map_login_descr">برای ارسال داده‌ها به سایت openstreetmap.org لازم است.</string> + <string name="open_street_map_login_descr">برای ارسال داده به سایت openstreetmap.org لازم است.</string> <string name="user_password">گذرواژهٔ OSM شما</string> <string name="west_south_west">غرب-جنوب‌غرب</string> <string name="west">غرب</string> @@ -599,7 +599,7 @@ <string name="save_current_track_descr">رد جاری را همین حالا در قالب فایل GPX ذخیره کن.</string> <string name="save_current_track">ذخیرهٔ رد جاری</string> <string name="save_track_interval">بازهٔ زمانی ثبت هنگام ناوبری</string> - <string name="save_track_interval_descr">مشخص کنید برای ضبط رد در هنگام ناوبری، داده‌ها با چه فاصلهٔ زمانی از هم ثبت شوند</string> + <string name="save_track_interval_descr">مشخص کنید برای ضبط رد در هنگام ناوبری، فاصلهٔ زمانی ردنگاری چقدر باشد</string> <string name="save_track_to_gpx_descrp">هنگام ناوبری، یک رد GPX به‌صورت خودکار ضبط و در پوشهٔ ردها (tracks) ذخیره می‌شود.</string> <string name="osm_settings_descr">تنظیمات لازم برای ارتباط با (OpenStreetMap.org (OSM را مشخص کنید.</string> <string name="data_settings_descr">زبان را مشخص و داده‌ها را دانلود/مجدداً بار کنید.</string> @@ -660,7 +660,7 @@ <string name="transport_stops_to_pass">ایستگاه‌های مسیر</string> <string name="show_transport_over_map_description">ایستگاه‌های حمل‌ونقل عمومی را روی نقشه نشان بده.</string> <string name="show_transport_over_map">نشان‌دادن ایستگاه‌های حمل‌ونقل</string> - <string name="application_dir">پوشهٔ ذخیره‌سازی داده‌ها</string> + <string name="application_dir">پوشهٔ ذخیره‌سازی داده</string> <string name="map_orientation_portrait">عمودی</string> <string name="map_screen_orientation_descr">عمودی، افقی یا بر اساس دستگاه.</string> <string name="map_orientation_landscape">افقی</string> @@ -695,7 +695,7 @@ <string name="pref_raster_map">تنظیمات منبع نقشه</string> <string name="pref_vector_map">تنظیمات نقشهٔ بُرداری</string> <string name="poi_query_by_name_matches_categories">چندین دسته‌بندی POI مرتبط پیدا شد.</string> - <string name="data_to_search_poi_not_available">داده‌های آفلاین را برای جست‌وجوی POIها دانلود کنید.</string> + <string name="data_to_search_poi_not_available">برای جست‌وجوی POIها دادهٔ آفلاین را دانلود کنید.</string> <string name="old_poi_file_should_be_deleted">فایل دادهٔ POI،‏ «%1$s»، زائد است و می‌توانید آن را حذف کنید.</string> <string name="button_upgrade_osmandplus">ارتقا به OsmAnd+‎</string> <string name="shared_string_save_as_gpx">ذخیره به‌صورت فایل GPX جدید</string> @@ -711,9 +711,9 @@ <string name="favorite_delete_multiple">آیا از حذف %1$d علاقه‌مندی و %2$d گروه علاقه‌مندی مطمئن هستید؟</string> <string name="basemap_missing">نقشه پایهٔ جهان را دانلود کنید تا نمایی از سراسر جهان در زوم‌های کم داشته باشید.</string> <string name="local_index_installed">نسخهٔ محلی</string> - <string name="installing_new_resources">بازکردن داده‌های جدید…</string> + <string name="installing_new_resources">گشودن دادهٔ جدید…</string> <string name="internet_connection_required_for_online_route">ناوبری آنلاین به‌طور آفلاین کار نمی‌کند.</string> - <string name="tts_missing_language_data_title">داده‌ها وجود ندارد</string> + <string name="tts_missing_language_data_title">داده وجود ندارد</string> <string name="gpx_option_reverse_route">برعکس‌کردن جهت GPX</string> <string name="gpx_option_destination_point">از مقصد جاری استفاده کن</string> <string name="gpx_option_from_start_point">گذر از سرتاسر رد</string> @@ -767,13 +767,13 @@ <string name="download_hillshade_maps">سایه‌روشن‌ها</string> <string name="osmand_srtm_long_description_1000_chars">این افزونه دو لایهٔ منحنی‌های میزان و سایه‌روشن (پستی‌بلندی‌ها) را روی نقشه‌‌های استاندارد OsmAnd نمایش می‌دهد. \nورزشکاران، راه‌پیمایان، کوله‌گردان و همهٔ کسانی که به ساختار پستی‌وبلندی‌های زمین علاقه‌مند هستند از این ویژگی بهره می‌برند. -\nمبنای داده‌های جهانی یعنی بین ۷۰ درجهٔ شمالی و ۷۰ درجهٔ جنوبی اندازه‌گیری‌های SRTM (مأموریت توپوگرافی رادار شاتل) و ASTER (رادیومتر پیشرفتهٔ فضابرد بازتاب و گسیل حرارتی) است. +\nمبنای دادهٔ جهانی یعنی بین ۷۰ درجهٔ شمالی و ۷۰ درجهٔ جنوبی اندازه‌گیری‌های SRTM (مأموریت توپوگرافی رادار شاتل) و ASTER (رادیومتر پیشرفتهٔ فضابرد بازتاب و گسیل حرارتی) است. \n \nاَستِر یک ابزار تصویربرداری است که بر روی ماهوارهٔ Terra نصب است و تِرا ماهوار‌ه‌ای فوق‌پیشرفته برای سامانهٔ دیده‌بانی زمینِ ناساست. \nاَستِر محصول تلاش مشترک ناسا، وزارت اقتصاد، صنعت و تجارت ژاپن و سامانه‌های فضایی ژاپن است.</string> <string name="srtm_plugin_description">این افزونه دو لایهٔ منحنی‌های میزان و سایه‌روشن (پستی‌بلندی‌ها) را روی نقشه‌‌های استاندارد OsmAnd نمایش می‌دهد. \nورزشکاران، راه‌پیمایان، کوله‌گردان و همهٔ کسانی که به ساختار پستی‌وبلندی‌های زمین علاقه‌مند هستند از این ویژگی بهره می‌برند. -\nمبنای داده‌های جهانی یعنی بین ۷۰ درجهٔ شمالی و ۷۰ درجهٔ جنوبی اندازه‌گیری‌های SRTM (مأموریت توپوگرافی رادار شاتل) و ASTER (رادیومتر پیشرفتهٔ فضابرد بازتاب و گسیل حرارتی) است. +\nمبنای دادهٔ جهانی یعنی بین ۷۰ درجهٔ شمالی و ۷۰ درجهٔ جنوبی اندازه‌گیری‌های SRTM (مأموریت توپوگرافی رادار شاتل) و ASTER (رادیومتر پیشرفتهٔ فضابرد بازتاب و گسیل حرارتی) است. \n \nاَستِر یک ابزار تصویربرداری است که بر روی ماهوارهٔ Terra نصب است و تِرا ماهوار‌ه‌ای فوق‌پیشرفته برای سامانهٔ دیده‌بانی زمینِ ناساست. \nاَستِر محصول تلاش مشترک ناسا، وزارت اقتصاد، صنعت و تجارت ژاپن و سامانه‌های فضایی ژاپن است.</string> @@ -782,10 +782,10 @@ <string name="rendering_attr_noPolygons_name">چندضلعی‌ها</string> <string name="rendering_attr_appMode_name">حالت رندرگیری</string> <string name="rendering_attr_appMode_description">بهینه‌سازی نقشه برای</string> - <string name="rendering_attr_contourLines_description">از این زوم نمایان شود (نیازمند داده‌های منحنی میزان):</string> + <string name="rendering_attr_contourLines_description">از این زوم نمایان شود (نیازمند دادهٔ منحنی میزان):</string> <string name="rendering_attr_contourLines_name">نشان‌دادن منحنی‌های میزان</string> <string name="rendering_attr_hmRendered_description">جزئیات نقشه را افزایش دهید.</string> - <string name="local_index_routing_data">داده‌های مسیریابی</string> + <string name="local_index_routing_data">دادهٔ مسیریابی</string> <string name="route_via">گذر از:</string> <string name="route_from">از:</string> <string name="incremental_search_building">جست‌وجوی حرف‌به‌حرف نام ساختمان‌ها</string> @@ -807,18 +807,18 @@ <string name="max_level_download_tile_descr">نقشه‌های آنلاین برای زوم‌های فراتر از این مقدار کاوش نشوند.</string> <string name="search_osm_nominatim">جست‌وجوی آنلاین با استفاده از OSM Nominatim</string> <string name="uploading">در حال آپلود…</string> - <string name="uploading_data">در حال آپلود داده‌ها…</string> + <string name="uploading_data">در حال آپلود داده…</string> <string name="shared_string_clear_all">پاک‌کردن همه</string> <string name="favorite">علاقه‌مندی‌ها</string> <string name="search_history_building">ساختمان: {0}، {1}، {2}</string> <string name="search_history_street">خیابان: {0}، {1}</string> <string name="search_history_int_streets">تقاطع: {0} x {1} به {2}</string> <string name="search_history_city">شهر: {0}</string> - <string name="context_menu_item_update_map_confirm">داده‌های محلی از طریق اینترنت به‌روز شود؟</string> + <string name="context_menu_item_update_map_confirm">دادهٔ محلی از طریق اینترنت به‌روز شود؟</string> <string name="update_poi_error_loading">بارکردن داده از سرور ناموفق بود.</string> <string name="update_poi_no_offline_poi_index">برای این ناحیه هیچ POIای به‌صورت آفلاین موجود نیست</string> <string name="hello">نرم‌افزار ناوبری OsmAnd</string> - <string name="update_poi_success">داده‌های POI به‌روز شد ({0} مورد بار شد)</string> + <string name="update_poi_success">دادهٔ نقاط توجه روزآمد شد ({0} مورد بار شد)</string> <string name="update_poi_error_local">به‌روزرسانی لیست محلی POI ناموفق بود.</string> <string name="shared_string_ok">خُب</string> <string name="transport">حمل‌ونقل</string> @@ -837,7 +837,7 @@ <string name="menu_mute_off">صدا روشن است</string> <string name="menu_mute_on">صدا خاموش است</string> <string name="voice_provider_descr">راهنمای گفتاری را برای ناوبری انتخاب کنید.</string> - <string name="voice_data_initializing">در حال آماده‌سازی داده‌های گفتاری…</string> + <string name="voice_data_initializing">در حال آماده‌سازی دادهٔ گفتاری…</string> <string name="voice_data_not_supported">این نسخه از دادهٔ گفتاری پشتیبانی نمی‌شود</string> <string name="voice_data_corrupted">دادهٔ گفتاری انتخاب‌شده خراب است</string> <string name="voice_data_unavailable">بستهٔ گفتاری انتخاب‌شده موجود نیست</string> @@ -913,22 +913,22 @@ \n \nمسیریابی موقتاْ با سرویس آنلاین CloudMade انجام می‌شود.</string> <string name="specified_dir_doesnt_exist">پوشهٔ موردنظر پیدا نشد.</string> - <string name="osmand_net_previously_installed">همهٔ داده‌های آفلاین از نسخهٔ قدیمی، در نسخهٔ جدید پشتیبانی می‌شوند، به‌جز علاقه‌مندی‌ها که باید آن‌ها را از نسخهٔ قدیمی برون‌برد کنید و در نسخهٔ جدید درون‌برد نمایید.</string> + <string name="osmand_net_previously_installed">همهٔ دادهٔ آفلاین از نسخهٔ قدیمی، در نسخهٔ جدید پشتیبانی می‌شوند، به‌جز علاقه‌مندی‌ها که باید آن‌ها را از نسخهٔ قدیمی برون‌برد کنید و در نسخهٔ جدید درون‌برد نمایید.</string> <string name="build_installed">ساختِ {0} نصب شد ({1}).</string> <string name="km_h">km/h</string> <string name="old_map_index_is_not_supported">قالب دادهٔ «{0}» برای نقشه، ازرده‌خارج است و پشتیبانی نمی‌شود</string> <string name="context_menu_item_add_waypoint">افزودن نقطهٔ بین‌راهی GPX</string> <string name="mile_per_hour">mph</string> - <string name="first_time_msg">متشکریم که از OsmAnd استفاده می‌کنید. برای استفادهٔ آفلاین، داده‌های منطقه‌ای را از طریق «تنظیمات» ← «مدیریت فایل‌های نقشه» دانلود کنید. سپس می‌توانید نقشه‌ها را ببینید، نشانی‌ها را پیدا کنید، مکان‌ها را جست‌وجو کنید، مسیرهای حمل‌ونقل عمومی را بیابید و... .</string> + <string name="first_time_msg">متشکریم که از OsmAnd استفاده می‌کنید. برای استفادهٔ آفلاین، دادهٔ منطقه‌ای را از طریق «تنظیمات» ← «مدیریت فایل‌های نقشه» دانلود کنید. سپس می‌توانید نقشه‌ها را ببینید، نشانی‌ها را پیدا کنید، مکان‌ها را جست‌وجو کنید، مسیرهای حمل‌ونقل عمومی را بیابید و... .</string> <string name="rendering_out_of_memory">برای نشان‌دادن ناحیهٔ انتخابی حافظهٔ اجرایی کافی وجود ندارد</string> <string name="use_fluorescent_overlays">لایه‌های شب‌نما</string> <string name="local_openstreetmap_settings">یادداشت‌ها یا POIهای OSMای ذخیره‌شده روی دستگاه</string> <string name="local_openstreetmap_settings_descr">مشاهده و مدیریت POIها یا یادداشت‌های OSMای که روی دستگاه شما قرار دارند.</string> <string name="live_monitoring_interval_descr">بازهٔ زمانی ردیابی آنلاین را مشخص کنید.</string> <string name="live_monitoring_interval">بازهٔ زمانی ردیابی آنلاین</string> - <string name="osmand_long_description_1000_chars">برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار ناوبری متن‌باز است که به گسترهٔ وسیعی از داده‌های جهانی OSM دسترسی دارد. + <string name="osmand_long_description_1000_chars">برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار ناوبری متن‌باز است که به گسترهٔ وسیعی از دادهٔ جهانی OSM دسترسی دارد. \n -\nتمام داده‌های نقشه (بُرداری یا کاشی) را می‌توانید برای استفادهٔ آفلاین روی کارت حافظه ذخیره کنید. +\nتمام دادهٔ نقشه (بُرداری یا کاشی) را می‌توانید برای استفادهٔ آفلاین روی کارت حافظه ذخیره کنید. \nهمچنین OsmAnd می‌تواند به‌صورت آنلاین و آفلاین مسیریابی کند و با راهنمای گفتاری شما را گام‌به‌گام هدایت کند. \n \n* از ویژگی‌های مهم: @@ -951,9 +951,9 @@ \n* ما فعالانه در حال توسعهٔ OsmAnd هستیم و این پروژه و پیشرفت پیوستهٔ آن نیازمند کمک‌های مالی شماست تا برای توسعه و افزودن قابلیت‌های تازه هزینه کنیم. \n \n* لطفاً OsmAnd+‎ را بخرید یا برای ویژگی‌های تازه و خاص سرمایه‌گذاری کنید. همچنین می‌توانید از طریق سایت https://osmand.net مبلغی هدیه کنید.</string> - <string name="osmand_plus_long_description_1000_chars">برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار ناوبری متن‌باز است که به گسترهٔ وسیعی از داده‌های جهانی OSM دسترسی دارد. + <string name="osmand_plus_long_description_1000_chars">برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار ناوبری متن‌باز است که به گسترهٔ وسیعی از دادهٔ جهانی OSM دسترسی دارد. \n -\nتمام داده‌های نقشه (بُرداری یا کاشی) را می‌توانید برای استفادهٔ آفلاین روی کارت حافظه ذخیره کنید. +\nتمام داده‌ٔ نقشه (بُرداری یا کاشی) را می‌توانید برای استفادهٔ آفلاین روی کارت حافظه ذخیره کنید. \nهمچنین OsmAnd می‌تواند به‌صورت آنلاین و آفلاین مسیریابی کند و با راهنمای گفتاری شما را گام‌به‌گام هدایت کند. \n \n‏OsmAnd+‎ نسخهٔ پولی این برنامه است. با خریدن آن از این پروژه حمایت می‌کنید، سرمایه‌ای برای توسعهٔ قابلیت‌های جدید فراهم می‌کنید و آخرین به‌روزرسانی‌ها در اختیارتان قرار می‌گیرد. @@ -980,7 +980,7 @@ \n \nهرکدام از این نقشه‌ها هم به‌عنوان نقشهٔ پایه و هم به‌عنوان لایهٔ رویی یا زیری برای لایهٔ پایه (مثلاً نقشه‌های آفلاین OsmAnd) قابل‌تنظیم هستند. برای اینکه لایهٔ زیری را نمایان‌تر کنید می‌توانید اجزای خاصی را در نقشه‌های بُرداری OsmAnd از طریق منوی «پیکربندی نقشه» مخفی کنید. \n -\nنقشه‌های کاشی‌وار را مستقیماً به‌طور آنلاین دانلود کنید یا همچنین می‌توانید آن‌ها را به‌صورت پایگاه‌دادهٔ SQLite برای استفادهٔ آفلاین آماده کنید و سپس در پوشهٔ داده‌های OsmAnd قرار دهید. نرم‌افزارهای مختلفی برای انجام این کار وجود دارد.</string> +\nنقشه‌های کاشی‌وار را مستقیماً به‌طور آنلاین دانلود کنید یا همچنین می‌توانید آن‌ها را به‌صورت پایگاه‌دادهٔ SQLite برای استفادهٔ آفلاین آماده کنید و سپس در پوشهٔ دادهٔ OsmAnd قرار دهید. نرم‌افزارهای مختلفی برای انجام این کار وجود دارد.</string> <string name="osmand_accessibility_description">این افزونه امکانات قابلیت‌دسترسی (accessibility) در دستگاهتان را مستقیماً در OsmAnd به کار می‌گیرد و تسهیلاتی را در اختیارتان می‌گذارد؛ مانند تنظیم‌کردن سرعت گفتار موتور صوتی، تبدیل متن به گفتار (مثل اعلام موقعیت شما)، پیمایش صفحه به‌کمک صفحهٔ جهتی (D-pad) و استفاده از توپک (trackball) برای تنظیم زوم.</string> <string name="osm_editing_plugin_description">با ایجاد یا اصلاح نقاط توجه (POI)، ایجاد یادداشت‌های OSM یا نظردادن روی آن‌ها و بارگذاری فایل‌های GPXای که ضبط کرده‌اید در تکمیل نقشهٔ OSM مشارکت کنید. برای این منظور لازم است نام کاربری و گذرواژهٔ خود را در OsmAnd وارد کنید. OpenStreetMap.org یک پروژهٔ نقشه‌کشی جامعه‌محور، جهانی و در مالکیت عمومی است.</string> <string name="play_commands_of_currently_selected_voice">گفتاری را انتخاب کنید و با پخش پیام‌ها، آن را امتحان کنید:</string> @@ -1000,7 +1000,7 @@ <string name="update_poi_file_not_found">فایل محلی برای نگهداری تغییرات POI وجود ندارد و قابل‌ایجاد نیست.</string> <string name="map_version_changed_info">برای استفاده از فایل‌های جدید نقشه نسخهٔ جدید برنامه را دانلود کنید.</string> <string name="poi_filter_nominatim">‏Nominatim‏ آنلاین</string> - <string name="vector_data_missing">برای استفاده از نقشه‌های آفلاین، داده‌های «آفلاین» را دانلود کنید.</string> + <string name="vector_data_missing">برای استفاده از نقشه‌های آفلاین، دادهٔ «آفلاین» را دانلود کنید.</string> <string name="local_index_gpx_info_show">" \n \nبرای گزینه‌ها طولانی لمس کنید"</string> @@ -1302,7 +1302,7 @@ <string name="rendering_attr_subwayMode_name">مسیرهای مترو</string> <string name="map_preferred_locale_descr">زبانی که برای نمایش نام‌های روی نقشه می‌پسندید (اگر نام به این زبان موجود نباشد، به‌جایش نام انگلیسی یا محلی نشان داده می‌شود).</string> <string name="local_map_names">نام‌های محلی</string> - <string name="live_monitoring_m_descr">اگر ضبط GPX روشن باشد داده‌های ردیابی به سرویس اینترنتی مشخص‌شده ارسال می‌شود.</string> + <string name="live_monitoring_m_descr">اگر ضبط GPX روشن باشد دادهٔ ردیابی به سرویس اینترنتی مشخص‌شده ارسال می‌شود.</string> <string name="live_monitoring_m">ردیابی آنلاین (GPX لازم است)</string> <string name="live_monitoring_start">شروع ردیابی آنلاین</string> <string name="live_monitoring_stop">توقف ردیابی آنلاین</string> @@ -1463,7 +1463,7 @@ <string name="shared_string_disabled">غیرفعال</string> <string name="shared_string_export">برون‌برد</string> <string name="voices">پیام‌های گفتاری</string> - <string name="local_index_description">هر موردی را لمس کنید تا توضیحات بیشتری ببینید، برای غیرفعال یا پاک‌کردن لمس کنید و نگه دارید. داده‌های فعلی روی دستگاه (%1$s خالی):</string> + <string name="local_index_description">هر موردی را لمس کنید تا توضیحات بیشتری ببینید، برای غیرفعال یا پاک‌کردن لمس کنید و نگه دارید. دادهٔ فعلی روی دستگاه (%1$s خالی):</string> <string name="speed_limit_exceed_message">حاشیهٔ تاب‌آوری محدودیت سرعت را انتخاب کنید؛ با گذشتن از این مقدار، آوای هشدار پخش می‌شود.</string> <string name="fav_point_emoticons_message">نام علاقه‌مندی به %1$s تغییر کرد تا رشتهٔ حاوی شکلک در فایل ذخیره شود.</string> <string name="rendering_attr_hideHouseNumbers_name">پلاک خانه‌ها</string> @@ -1828,7 +1828,7 @@ <string name="altitude_range">دامنهٔ ارتفاع</string> <string name="average_altitude">میانگین ارتفاع</string> <string name="total_distance">مسافت کل</string> - <string name="routing_attr_height_obstacles_name">استفاده از داده‌های ارتفاعی</string> + <string name="routing_attr_height_obstacles_name">استفاده از دادهٔ ارتفاعی</string> <string name="routing_attr_height_obstacles_description">فاکتور ارتفاع‌دهی عارضه‌ها (با استفاده از داده‌های SRTM،‏ ASTER و EU-DEM).</string> <string name="rendering_attr_depthContours_description">نمایش نقاط و منحنی‌های میزان عمقی.</string> <string name="rendering_attr_depthContours_name">منحنی‌های میزان عمق دریا</string> @@ -2433,7 +2433,7 @@ <string name="plugin_ski_descr">با این افزونه اطلاعات جهانی سراشیبی‌های اسکی، مسابقات اسکی صحرایی، مسیرهای اسکی آلپاین، تله‌کابین‌ها و نقاله‌های اسکی کاملاً در اختیارتان است. مسیرها و پیست‌ها بر اساس دشواری رنگ‌بندی شده‌اند که در یک سبک زمستانی ارائه می‌شوند تا نمایی همگون با محیط زمستانی را برایتان ایجاد کند. \n \nبا فعال‌کردن این نما، سبک نقشه به «زمستان و اسکی» تغییر می‌کند که همهٔ خصوصیات زمین را با ظاهر زمستانی نشان می‌دهد. برای غیرفعال‌کردن این نما افزونه را غیرفعال کنید یا اینکه از طریق منو ← پیکربندی نقشه ← سبک نقشه، سبک دلخواهتان را انتخاب کنید.</string> - <string name="osmand_extended_description_part1">برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار نقشه و ناوبری است که به گسترهٔ وسیعی از داده‌های OSM دسترسی دارد. این داده‌های رایگان و جهانی با بالاترین کیفیت ارائه می‌شوند. + <string name="osmand_extended_description_part1">برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار نقشه و ناوبری است که به گسترهٔ وسیعی از دادهٔ OSM دسترسی دارد. این دادهٔ رایگان و جهانی با بالاترین کیفیت ارائه می‌شود. \n \nناوبری دیداری و شنیداری، مشاهدهٔ نقاط توجه (POIها یا Points of interest)، ایجاد و مدیریت ردهای GPX، استفاده از تصویرسازی منحنی‌های میزان و اطلاعات ارتفاع (با استفاده از افزونه)، انتخاب حالت‌های پیاده، دوچرخه، خودرو، امکان ویرایش مکان‌ها و... چیزهایی هستند که تجربهٔ مؤثر و لذت‌بخشی در کار با نقشه را برایتان به ارمغان می‌آورند.</string> <string name="osmand_extended_description_part2">ناوبری با GPS @@ -2477,7 +2477,7 @@ <string name="plan_route_no_markers_toast">برای استفاده از این قابلیت باید حداقل یک نشانه اضافه کنید.</string> <string name="shared_string_road">جاده</string> <string name="av_locations_descr">فایل GPX از موقعیت‌ها.</string> - <string name="osmand_plus_extended_description_part1">برنامهٔ OsmAnd+‎ (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار نقشه و ناوبری است که به گسترهٔ وسیعی از داده‌های OSM دسترسی دارد. این داده‌های رایگان و جهانی با بالاترین کیفیت ارائه می‌شوند. + <string name="osmand_plus_extended_description_part1">برنامهٔ OsmAnd+‎ (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار نقشه و ناوبری است که به گسترهٔ وسیعی از دادهٔ OSM دسترسی دارد. این دادهٔ رایگان و جهانی با بالاترین کیفیت ارائه می‌شود. \n \nراهبر دیداری و شنیداری، مشاهدهٔ نقاط توجه (POIها یا Points of interest)، ایجاد و مدیریت ردهای GPX، استفاده از تصویرسازی منحنی‌های میزان و اطلاعات ارتفاع، انتخاب حالت‌های پیاده، دوچرخه، خودرو، امکان ویرایش مکان‌ها و... چیزهایی هستند که تجربهٔ مؤثر و لذت‌بخشی را در کار با نقشه برایتان به ارمغان می‌آورد. \n @@ -2510,8 +2510,8 @@ \n • ناوبری GPS در حالت پیاده مسیرتان را بر اساس راه‌های پیاده محاسبه می‌کند \n • مسیرهای GPX را دانلود کنید و بپیمایید یا اینکه مسیر خودتان را ضبط و هم‌رسانی کنید \n</string> - <string name="osmand_extended_description_part7">مشارکت در نقشهٔ باز شهری (OSM) -\n • گزارش مشکل در داده‌ها + <string name="osmand_extended_description_part7">مشارکت در OSM +\n • گزارش مشکل داده \n • آپلود ردهای GPX به OSM مستقیماً از طریق برنامه \n • افزودن نقاط توجه (POI) و آپلود مستقیم آن‌ها در نقشه \n</string> @@ -2581,8 +2581,8 @@ \n • قابلیت ضبط سفر و ذخیره‌کردن مسیر در فایل GPX یا فرستادن به سرویس‌های آنلاین \n • قابلیت نمایش سرعت و ارتفاع \n • امکان نمایش منحنی‌های میزان و سایه‌روشن‌ها (با نصب افزونه)</string> - <string name="osmand_plus_extended_description_part7">مشارکت مستقیم در نقشهٔ باز شهری (OSM) -\n • گزارش مشکل در داده‌ها + <string name="osmand_plus_extended_description_part7">مشارکت مستقیم در OSM +\n • گزارش مشکل داده \n • آپلود ردهای GPX به OSM مستقیماً از طریق برنامه \n • افزودن نقاط توجه (POI) و آپلود مستقیم آن‌ها در نقشه \n • ضبط اختیاری سفر حتی در پس‌زمینه (هنگامی که دستگاه در حالت خواب است) @@ -2691,7 +2691,7 @@ <string name="osc_file">فایل OSC</string> <string name="choose_file_type">انتخاب قالب فایل</string> <string name="osm_edits_export_desc">برون‌برد در قالب یادداشت‌های OSM،‏ POIها یا هر دو.</string> - <string name="all_data">همهٔ داده‌ها</string> + <string name="all_data">همهٔ داده</string> <string name="osm_notes">یادداشت‌های OSM</string> <string name="tunnel_warning">تونل</string> <string name="show_tunnels">تونل‌ها</string> @@ -2767,7 +2767,7 @@ <string name="unlock_all_features">قفل‌گشایی از همهٔ قابلیت‌های OsmAnd</string> <string name="paid_app">برنامهٔ پولی</string> <string name="paid_plugin">افزونهٔ پولی</string> - <string name="travel_card_update_descr">داده‌های تازهٔ ویکی‌سفر منتشر شده. به‌روز کنید و لذت ببرید.</string> + <string name="travel_card_update_descr">دادهٔ تازهٔ ویکی‌سفر منتشر شده است. به‌روز کنید و لذت ببرید.</string> <string name="travel_card_download_descr">راهنمای مسافرت از ویکی‌سفر را دانلود کنید تا بدون نیاز به اینترنت دربارهٔ مناطق مختلف جهان مطالعه کنید.</string> <string name="update_is_available">به‌روزرسانی وجود دارد</string> <string name="download_file">دانلود فایل</string> @@ -3064,13 +3064,13 @@ <string name="rate_dialog_descr">لطفاً در گوگل‌پلی دربارهٔ کار ما نظر و امتیاز بدهید.</string> <string name="shared_string_privacy_policy">سیاست حریم خصوصی</string> <string name="help_us_make_osmand_better">یاری‌مان کنید تا OsmAnd را بهتر کنیم</string> - <string name="make_osmand_better_descr">به OsmAnd اجازه بدهید دربارهٔ نحوهٔ استفاده از برنامه داده‌های ناشناس جمع‌آوری و پردازش کند. دربارهٔ موقعیت شما یا جاهایی که روی نقشه می‌بینید داده‌ای جمع‌آوری نمی‌کنیم. -\n + <string name="make_osmand_better_descr">به OsmAnd اجازه بدهید دربارهٔ نحوهٔ استفاده از برنامه دادهٔ ناشناس جمع‌آوری و پردازش کند. دربارهٔ موقعیت شما یا جاهایی که روی نقشه می‌بینید داده‌ای جمع‌آوری نمی‌کنیم. +\n \nهمواره می‌توانید این تنظیم را از بخش «تنظیمات ← حریم خصوصی و امنیت» تغییر دهید.</string> - <string name="choose_data_to_share">چه نوع داده‌هایی را مایل هستید هم‌رسانی کنید:</string> + <string name="choose_data_to_share">انتخاب نوع داده‌ای که هم‌رسانی می‌کنید:</string> <string name="downloaded_maps">نقشه‌هایی که دانلود کرده‌اید</string> <string name="visited_screens">صفحه‌هایی که دیده‌اید</string> - <string name="collected_data_descr">مشخص کنید OsmAnd مجاز است چه داده‌هایی را هم‌رسانی کند.</string> + <string name="collected_data_descr">مشخص کنید OsmAnd مجاز است کدام داده را هم‌رسانی کند.</string> <string name="downloaded_maps_collect_descr">کمک می‌کند تا محبوبیت نقشه‌های کشوری و منطقه‌ای را بدانیم.</string> <string name="visited_screens_collect_descr">کمک می‌کند تا محبوبیت قابلیت‌های OsmAnd را بدانیم.</string> <string name="settings_privacy_and_security">حریم خصوصی و امنیت</string> @@ -3112,7 +3112,7 @@ <string name="process_downloading_service">سرویس دانلود OsmAnd</string> <string name="shared_string_color_magenta">ارغوانی</string> <string name="shared_string_icon">نماد</string> - <string name="collected_data">جمع‌آوری داده‌ها</string> + <string name="collected_data">جمع‌آوری داده</string> <string name="shared_string_min_speed">حداقل سرعت</string> <string name="shared_string_max_speed">حداکثر سرعت</string> <string name="default_speed_setting_title">سرعت پیشفرض</string> @@ -3152,7 +3152,7 @@ <string name="app_mode_monowheel">یکچرخه</string> <string name="app_mode_scooter">اسکوتر</string> <string name="privacy_and_security_change_descr">اگر %1$s ما را می‌پذیرید «اجازه می‌دهم» را برگزینید</string> - <string name="settings_privacy_and_security_desc">انتخاب داده‌هایی که هم‌رسانی می‌کنید</string> + <string name="settings_privacy_and_security_desc">انتخاب داده‌ای که هم‌رسانی می‌کنید</string> <string name="shared_string_allow">اجازه می‌دهم</string> <string name="osmand_routing_promo">می‌توانید نسخهٔ اصلاح‌شدهٔ خودتان از فایل routing.xml را در ‎..osmand/routing اضافه کنید</string> <string name="show_compass_ruler">با درجه‌بندی قطب‌نما</string> @@ -3311,8 +3311,8 @@ \n%1$s &gt; %2$s</string> <string name="enter_path_to_folder">مسیر پوشه را وارد کنید</string> <string name="shared_string_select_folder">پوشه…</string> - <string name="paste_Osmand_data_folder_path">مسیر پوشهٔ داده‌های OsmAnd را درج کنید</string> - <string name="change_osmand_data_folder_question">پوشهٔ داده‌های OsmAnd تغییر کند؟</string> + <string name="paste_Osmand_data_folder_path">مسیر پوشهٔ دادهٔ OsmAnd را بچسبانید</string> + <string name="change_osmand_data_folder_question">پوشهٔ دادهٔ OsmAnd تغییر کند؟</string> <string name="move_maps_to_new_destination">انتقال به مقصد جدید</string> <string name="internal_app_storage_description">ذخیره‌گاه داخلی OsmAnd (از دید کاربران و سایر برنامه‌ها پنهان است).</string> <string name="change_data_storage_folder">تغییر پوشهٔ ذخیره‌سازی</string> @@ -3397,9 +3397,9 @@ <string name="exported_osmand_profile">پروفایل OsmAnd:‏ %1$s</string> <string name="monthly_map_updates">به‌روزرسانی‌های ماهانهٔ نقشه</string> <string name="daily_map_updates">به‌روزرسانی‌های ساعتی نقشه</string> - <string name="send_search_query_description">عبارت جستجوی شما «%1$s» و همچنین مکان شما ارسال خواهد شد. -\n -\nاطلاعات خصوصی جمع‌آوری نمی‌شود. فقط داده‌های جست‌وجو برای بهبود الگوریتم جست‌وجو موردنیاز است.</string> + <string name="send_search_query_description">عبارت جستجوی شما «%1$s» و همچنین مکان شما ارسال خواهد شد. +\n +\nاطلاعات خصوصی جمع‌آوری نمی‌شود. فقط دادهٔ جست‌وجو برای بهبود الگوریتم جست‌وجو موردنیاز است.</string> <string name="export_profile">برون‌برد پروفایل</string> <string name="overwrite_profile_q">‏«%1$s» وجود دارد. بازنویسی شود؟</string> <string name="export_profile_failed">برون‌برد پروفایل ناموفق بود.</string> @@ -3826,13 +3826,13 @@ <string name="shared_string_bearing">سویه</string> <string name="item_deleted">‏%1$s حذف شد</string> <string name="speed_cameras_restart_descr">برای اینکه دادهٔ دوربین سرعت کاملاً حذف شود، یک بار برنامه را ببندید و باز کنید.</string> - <string name="speed_camera_pois">‏POIهای دوربین سرعت</string> + <string name="speed_camera_pois">نقاط توجه دوربین سرعت</string> <string name="speed_cameras_legal_descr">قانونِ برخی کشورها استفاده از نرم‌افزارهای هشداردهندهٔ دوربین سرعت را ممنوع کرده است. \n \nشما باید بر اساس قانون کشور خود تصمیم بگیرید. \n \nباانتخاب %1$s هشدارها و اخطارهای دوربین سرعت را دریافت می‌کنید. \n -\nباانتخاب %2$s تا زمانی که OsmAnd را دوباره نصب کنید، تمام دادهٔ مربوط به دوربین‌های سرعت (هشدارها، اعلان‌ها، نقاط توجه یا POIs) حذف می‌شود.</string> +\nبا انتخاب %2$s تا زمانی که OsmAnd را دوباره نصب کنید، تمام دادهٔ مربوط به دوربین‌های سرعت (هشدارها، اعلان‌ها، نقاط توجه) حذف می‌شود.</string> <string name="speed_cameras_alert">قانونِ برخی از کشورها استفاده از هشداردهندهٔ دوربین سرعت را ممنوع کرده است.</string> </resources> \ No newline at end of file From 14e9dac617fbe478735a6b4eb688561c5f8bac1a Mon Sep 17 00:00:00 2001 From: Roberto GEB <robertogeb@gmail.com> Date: Sun, 21 Jun 2020 20:01:09 +0000 Subject: [PATCH 169/300] Translated using Weblate (Spanish) Currently translated at 99.6% (3797 of 3809 strings) --- OsmAnd/res/values-es/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml index f30d5927ce..5c0238a49b 100644 --- a/OsmAnd/res/values-es/phrases.xml +++ b/OsmAnd/res/values-es/phrases.xml @@ -1986,7 +1986,7 @@ <string name="poi_refugee_no">Servicios para refugiados: no</string> <string name="poi_social_facility_group_home">Grupo residencial</string> <string name="poi_social_facility_assisted_living">Vida asistida</string> - <string name="poi_social_facility_outreach">Alcance</string> + <string name="poi_social_facility_outreach">Apoyo</string> <string name="poi_social_facility_food_bank">Banco de alimentos</string> <string name="poi_social_facility_shelter">Refugio</string> <string name="poi_social_facility_ambulatory_care">Asistencia sanitaria</string> From a68c798f49cdd17512b63cd809c8196064907a80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= <sv1@fellsnet.is> Date: Mon, 22 Jun 2020 08:56:49 +0000 Subject: [PATCH 170/300] Translated using Weblate (Icelandic) Currently translated at 99.9% (3402 of 3403 strings) --- OsmAnd/res/values-is/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index b5a8ca21b7..05205af693 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -3790,4 +3790,11 @@ <string name="speed_cameras_restart_descr">Endurræsing er nauðsynleg til að geta fjarlægt alveg gögn um hraðamyndavélar.</string> <string name="shared_string_uninstall_and_restart">Fjarlægja og endurræsa</string> <string name="shared_string_uninstall">Fjarlægja</string> + <string name="speed_cameras_legal_descr">Aðvaranir vegna hraðamyndavéla eru bannaðar með lögum í sumum löndum. +\n +\nÞú þarft að velja hvernig lagaleg staða er í landinu þínu. +\n +\nVeldu %1$s og þú munt fá aðvaranir og ábendingar um hraðamyndavélar. +\n +\nVeldu %2$s: öllum gögnum sem tengjast hraðamyndavélum; t.d. aðvaranir, tilkynningar, staðsetningar o.fl. verður eytt þar til OsmAnd er sett inn aftur frá grunni.</string> </resources> \ No newline at end of file From c952d50414c2715bbec3fec8b86a8885689b1587 Mon Sep 17 00:00:00 2001 From: Jeff Huang <s8321414@gmail.com> Date: Mon, 22 Jun 2020 00:48:36 +0000 Subject: [PATCH 171/300] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 467d9f339a..6c403756c4 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3781,4 +3781,21 @@ <string name="quick_action_mapillary_hide">隱藏 Mapillary</string> <string name="quick_action_mapillary_show">顯示 Mapillary</string> <string name="quick_action_showhide_mapillary_descr">在地圖上顯示或隱藏 Mapillary 圖層的開關。</string> + <string name="uninstall_speed_cameras">解除安裝測速照相</string> + <string name="shared_string_legal">法律</string> + <string name="speed_camera_pois">測速照相 POI 的</string> + <string name="speed_cameras_legal_descr">在某些國家或地區,法律禁止使用測速照相的警報應用程式。 +\n +\n您必須根據您所在國家的法律做出選擇。 +\n +\n選取 %1$s,您將會收到關於測速照相的警報與警告。 +\n +\n選取 %2$s。所有關於測速照相的:警報、通知與 POI 都將會被刪除,直到您完全重新安裝 OsmAnd 為止。</string> + <string name="keep_active">保持啟用</string> + <string name="shared_string_uninstall">解除安裝</string> + <string name="speed_cameras_alert">某些國家禁止使用測速照相的警報裝置。</string> + <string name="shared_string_bearing">方向</string> + <string name="item_deleted">%1$s 已刪除</string> + <string name="speed_cameras_restart_descr">必須重新啟動才能完全刪除測速照相的資料。</string> + <string name="shared_string_uninstall_and_restart">解除安裝並重新啟動</string> </resources> \ No newline at end of file From e6fbd2e0c94bbed3f5ccaeeed98a75d3efee352e Mon Sep 17 00:00:00 2001 From: ihor_ck <igor_ck@outlook.com> Date: Mon, 22 Jun 2020 18:47:35 +0000 Subject: [PATCH 172/300] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-uk/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index f9829e7dc0..56f0d63110 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -275,7 +275,7 @@ <string name="choose_audio_stream_descr">Виберіть канал для голосових вказівок.</string> <string name="voice_stream_voice_call">Голосовий канал (перервати звук з динаміків автомобіля)</string> <string name="voice_stream_notification">Повідомлення аудіо</string> - <string name="voice_stream_music">Медіа / Навігаційне аудіо</string> + <string name="voice_stream_music">Медіа/навігаційне аудіо</string> <string name="warning_tile_layer_not_downloadable">Застосунок не може завантажити шар мапи %1$s, спробуйте перевстановити його.</string> <string name="overlay_transparency_descr">Змінити прозорість мапи.</string> <string name="overlay_transparency">Прозорість</string> @@ -3784,18 +3784,18 @@ <string name="uninstall_speed_cameras">Видалити камери контролю швидкості</string> <string name="shared_string_legal">Законодавство</string> <string name="speed_camera_pois">POI камер контролю швидкості</string> - <string name="speed_cameras_legal_descr">У деяких країнах чи регіонах використання попередження про камери контролю швидкості заборонено законом. + <string name="speed_cameras_legal_descr">У деяких країнах чи регіонах користуватися попередженнями про камери контролю швидкості заборонено законом. \n -\nВам потрібно зробити вибір залежно від законодавства Вашої країни. +\nВам потрібно зробити вибір залежно від законодавства вашої країни. \n -\nВиберіть %1$s, і ви отримаєте сповіщення та попередження про камери швидкості. +\nВиберіть %1$s і ви отримуватимете сповіщення та попередження про камери контролю швидкості. \n \nВиберіть %2$s, щоб видалити всі дані, пов\'язані з камерами контролю швидкості (повідомлення, попередження і POI), до повного перевстановлення OsmAnd.</string> <string name="keep_active">Лишати ввімкненим</string> <string name="shared_string_uninstall">Видалити</string> <string name="speed_cameras_alert">Попередження про камери контролю швидкості в деяких країнах заборонено законом.</string> <string name="shared_string_bearing">Орієнтація</string> - <string name="item_deleted">Видалено: %1$s</string> + <string name="item_deleted">%1$s видалено</string> <string name="speed_cameras_restart_descr">Потрібен перезапуск для повного видалення даних камер контролю швидкості.</string> <string name="shared_string_uninstall_and_restart">Видалити та перезапустити</string> </resources> \ No newline at end of file From ec8f63a396f76fd89e46cffe67f70d9e6d71a0ab Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Tue, 23 Jun 2020 10:33:11 +0300 Subject: [PATCH 173/300] Fix EditText decimal format --- .../bottomsheets/VehicleParametersBottomSheet.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java index b0024483af..85a83399a3 100644 --- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java @@ -37,6 +37,7 @@ import net.osmand.util.Algorithms; import org.apache.commons.logging.Log; +import java.text.DecimalFormat; import java.util.Arrays; public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { @@ -76,6 +77,7 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { final TextView metric = mainView.findViewById(R.id.metric); metric.setText(app.getString(preference.getAssets().getMetricRes())); final RecyclerView recyclerView = mainView.findViewById(R.id.recycler_view); + final DecimalFormat df = new DecimalFormat("#.####"); text = mainView.findViewById(R.id.text_edit); try { currentValue = Float.parseFloat(preference.getValue()); @@ -83,8 +85,7 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { currentValue = 0.0f; } selectedItem = preference.getEntryFromValue(preference.getValue()); - - String currentValueStr = currentValue == 0.0f ? "" : String.valueOf(currentValue + 0.01f); + String currentValueStr = currentValue == 0.0f ? "" : String.valueOf(df.format(currentValue + 0.01f)); text.setText(currentValueStr); text.clearFocus(); text.setOnTouchListener(new View.OnTouchListener() { @@ -130,7 +131,8 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { public void onItemSelected(String item) { selectedItem = item; currentValue = preference.getValueFromEntries(selectedItem); - String currentValueStr = currentValue == 0.0f ? "" : String.valueOf(currentValue + 0.01f); + String currentValueStr = currentValue == 0.0f + ? "" : String.valueOf(df.format(currentValue + 0.01f)); text.setText(currentValueStr); if (text.hasFocus()) { text.setSelection(text.getText().length()); From 774a28ad991acd8ceb99774abc29187cb6ce7a0e Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Tue, 23 Jun 2020 12:11:33 +0300 Subject: [PATCH 174/300] process copied text in osmand --- OsmAnd/AndroidManifest.xml | 6 ++++++ .../osmand/plus/activities/MapActivity.java | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/OsmAnd/AndroidManifest.xml b/OsmAnd/AndroidManifest.xml index 95599f2c0e..4b8ed91a87 100644 --- a/OsmAnd/AndroidManifest.xml +++ b/OsmAnd/AndroidManifest.xml @@ -393,6 +393,12 @@ <category android:name="android.intent.category.DEFAULT" /> </intent-filter> + <intent-filter> + <action android:name="android.intent.action.PROCESS_TEXT" /> + <category android:name="android.intent.category.DEFAULT" /> + <data android:mimeType="text/plain" /> + </intent-filter> + </activity> <receiver android:name="net.osmand.plus.audionotes.MediaRemoteControlReceiver"> diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index e1b80ebf53..8cbe1e6ebf 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -389,6 +389,23 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven lockHelper.setLockUIAdapter(this); mIsDestroyed = false; + handleExtraTextIntent(); + } + + private void handleExtraTextIntent() { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { + CharSequence text = getIntent().getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT); + if (!Algorithms.isEmpty(text)) { + QuickSearchDialogFragment.showInstance( + this, + text.toString(), + null, + QuickSearchType.REGULAR, + QuickSearchTab.CATEGORIES, + null + ); + } + } } public void exitFromFullScreen(View view) { @@ -650,6 +667,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven protected void onNewIntent(final Intent intent) { super.onNewIntent(intent); setIntent(intent); + handleExtraTextIntent(); } @Override From b1145f12e1d2a1b23dd23a7bea96e85e6b398b92 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Tue, 23 Jun 2020 13:20:39 +0300 Subject: [PATCH 175/300] refactor pr --- .../osmand/plus/activities/MapActivity.java | 19 +--------------- .../net/osmand/plus/helpers/IntentHelper.java | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 8cbe1e6ebf..5b41e8c76c 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -389,23 +389,6 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven lockHelper.setLockUIAdapter(this); mIsDestroyed = false; - handleExtraTextIntent(); - } - - private void handleExtraTextIntent() { - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { - CharSequence text = getIntent().getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT); - if (!Algorithms.isEmpty(text)) { - QuickSearchDialogFragment.showInstance( - this, - text.toString(), - null, - QuickSearchType.REGULAR, - QuickSearchTab.CATEGORIES, - null - ); - } - } } public void exitFromFullScreen(View view) { @@ -667,7 +650,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven protected void onNewIntent(final Intent intent) { super.onNewIntent(intent); setIntent(intent); - handleExtraTextIntent(); + intentHelper.parseLaunchIntents(); } @Override diff --git a/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java b/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java index 9e589cbb13..6395a85a96 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java @@ -12,6 +12,7 @@ import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.map.TileSourceManager; import net.osmand.plus.mapsource.EditMapSourceDialogFragment; +import net.osmand.plus.search.QuickSearchDialogFragment; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.OsmandApplication; @@ -54,6 +55,9 @@ public class IntentHelper { if (!applied) { applied = parseOpenGpxIntent(); } + if (!applied) { + applied = parseExtraTextIntent(); + } return applied; } @@ -252,4 +256,22 @@ public class IntentHelper { intent.setAction(null); intent.setData(null); } + + private boolean parseExtraTextIntent() { + Intent intent = mapActivity.getIntent(); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M && intent != null) { + CharSequence text = intent.getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT); + if (!Algorithms.isEmpty(text)) { + return QuickSearchDialogFragment.showInstance( + mapActivity, + text.toString(), + null, + QuickSearchDialogFragment.QuickSearchType.REGULAR, + QuickSearchDialogFragment.QuickSearchTab.CATEGORIES, + null + ); + } + } + return false; + } } \ No newline at end of file From 3035239e24c2ded8c446936280021925bdba3126 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Tue, 23 Jun 2020 13:26:57 +0300 Subject: [PATCH 176/300] Fix constant --- OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java index d60c21cd16..ac05e6d746 100644 --- a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java @@ -59,6 +59,9 @@ public class PointImageDrawable extends Drawable { private int mapIconSize = 0; private int backSize = 0; + public static final int DEFAULT_SIZE_ON_MAP_DP = 16; + public static final int ICON_SIZE_VECTOR_PX = 12; + private PointImageDrawable(PointInfo pointInfo) { this.withShadow = pointInfo.withShadow; this.synced = pointInfo.synced; @@ -180,8 +183,6 @@ public class PointImageDrawable extends Drawable { private void setScale(float scale) { if (scale != this.scale || this.mapIconSize == 0) { - int DEFAULT_SIZE_ON_MAP_DP = 16; - int ICON_SIZE_VECTOR_PX = 12; this.scale = scale; int pixels = (int) (dp_12_px * DEFAULT_SIZE_ON_MAP_DP / 12.0); this.mapIconSize = Math.round((scale * pixels / ICON_SIZE_VECTOR_PX * ICON_SIZE_VECTOR_PX)); From 52e8a4124e352825a231289f10f2e04204baa0ac Mon Sep 17 00:00:00 2001 From: xmd5a <lornaderek@mail.ru> Date: Tue, 23 Jun 2020 14:04:43 +0300 Subject: [PATCH 177/300] Add strings --- OsmAnd/res/values/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 52b6b02f3a..276bde34ab 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -16,6 +16,8 @@ <string name="speed_cameras_restart_descr">Restart is needed to completely delete speed camera data.</string> <string name="item_deleted">%1$s deleted</string> <string name="shared_string_bearing">Bearing</string> + <string name="routing_attr_length_name">Length limit</string> + <string name="routing_attr_length_description">Specify vehicle length to be permitted on routes.</string> <string name="quick_action_showhide_mapillary_descr">A toggle to show or hide the Mapillary layer on the map.</string> <string name="quick_action_mapillary_show">Show Mapillary</string> <string name="quick_action_mapillary_hide">Hide Mapillary</string> @@ -516,7 +518,7 @@ <string name="map_during_navigation_info">Map during navigation</string> <string name="map_during_navigation">Map during navigation</string> <string name="shared_string_other">Other</string> - <string name="vehicle_parameters_descr">Weight, height, speed</string> + <string name="vehicle_parameters_descr">Weight, height, length, speed</string> <string name="vehicle_parameters">Vehicle parameters</string> <string name="voice_announces_info">Voice announcements only occur during navigation.</string> <string name="voice_announces_descr">Navigation instructions and announcements</string> From 89bef4e6153fd7a623b2f09163ef523c471b090d Mon Sep 17 00:00:00 2001 From: Denis Kolomiets <madwasp79@gmail.com> Date: Tue, 23 Jun 2020 14:31:38 +0300 Subject: [PATCH 178/300] remove logging --- .../main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index 65f86b3d88..3336dae1f6 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -348,7 +348,6 @@ public class BinaryMapRouteReaderAdapter { while (routeEncodingRules.size() <= id) { routeEncodingRules.add(null); } - /**TODO delete*/ System.out.println(String.format("initRouteIncodingRule=> id: %d, tag: %s, val: %s", id, tags, val)); routeEncodingRules.set(id, new RouteTypeRule(tags, val)); if (tags.equals("name")) { nameTypeRule = id; From c58eeb5a6bf3a224f54f0491a96de6f9d41bba5d Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Tue, 23 Jun 2020 14:46:06 +0300 Subject: [PATCH 179/300] Fix ripple --- OsmAnd/res/drawable/ripple_solid_dark_18dp.xml | 9 +++++++++ OsmAnd/res/drawable/ripple_solid_light_18dp.xml | 9 +++++++++ .../other/HorizontalSelectionAdapter.java | 15 +++++++++++---- 3 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 OsmAnd/res/drawable/ripple_solid_dark_18dp.xml create mode 100644 OsmAnd/res/drawable/ripple_solid_light_18dp.xml diff --git a/OsmAnd/res/drawable/ripple_solid_dark_18dp.xml b/OsmAnd/res/drawable/ripple_solid_dark_18dp.xml new file mode 100644 index 0000000000..a214350483 --- /dev/null +++ b/OsmAnd/res/drawable/ripple_solid_dark_18dp.xml @@ -0,0 +1,9 @@ +<ripple xmlns:android="http://schemas.android.com/apk/res/android" + android:color="@color/active_buttons_and_links_bg_pressed_dark"> + <item android:id="@android:id/mask"> + <shape android:shape="rectangle"> + <solid android:color="@color/active_color_primary_dark" /> + <corners android:radius="18dp" /> + </shape> + </item> +</ripple> \ No newline at end of file diff --git a/OsmAnd/res/drawable/ripple_solid_light_18dp.xml b/OsmAnd/res/drawable/ripple_solid_light_18dp.xml new file mode 100644 index 0000000000..f7b1e3f1ef --- /dev/null +++ b/OsmAnd/res/drawable/ripple_solid_light_18dp.xml @@ -0,0 +1,9 @@ +<ripple xmlns:android="http://schemas.android.com/apk/res/android" + android:color="@color/active_buttons_and_links_bg_pressed_light"> + <item android:id="@android:id/mask"> + <shape android:shape="rectangle"> + <solid android:color="@color/active_color_primary_light" /> + <corners android:radius="18dp" /> + </shape> + </item> +</ripple> \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java index 462142ae13..bf7844a0f4 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/HorizontalSelectionAdapter.java @@ -1,6 +1,7 @@ package net.osmand.plus.mapcontextmenu.other; import android.graphics.drawable.GradientDrawable; +import android.os.Build; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; @@ -43,7 +44,8 @@ public class HorizontalSelectionAdapter extends RecyclerView.Adapter<HorizontalS @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view; - view = UiUtilities.getInflater(parent.getContext(), nightMode).inflate(R.layout.point_editor_icon_category_item, parent, false); + view = UiUtilities.getInflater(parent.getContext(), nightMode).inflate(R.layout.point_editor_icon_category_item, + parent, false); return new ItemViewHolder(view); } @@ -53,8 +55,8 @@ public class HorizontalSelectionAdapter extends RecyclerView.Adapter<HorizontalS TextView textView = holder.buttonText; int activeColorResId = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light; if (item.equals(selectedItem)) { - AndroidUtils.setBackground(holder.button, app.getUIUtilities().getPaintedIcon(R.drawable.bg_select_icon_group_button, - ContextCompat.getColor(app, activeColorResId))); + AndroidUtils.setBackground(holder.button, app.getUIUtilities().getPaintedIcon( + R.drawable.bg_select_icon_group_button, ContextCompat.getColor(app, activeColorResId))); textView.setTextColor(ContextCompat.getColor(app, R.color.color_white)); } else { textView.setTextColor(ContextCompat.getColor(app, @@ -78,6 +80,11 @@ public class HorizontalSelectionAdapter extends RecyclerView.Adapter<HorizontalS } } }); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + View buttonContainer = holder.button.findViewById(R.id.button_container); + AndroidUtils.setBackground(app, buttonContainer, nightMode, R.drawable.ripple_solid_light_18dp, + R.drawable.ripple_solid_dark_18dp); + } } @Override @@ -110,7 +117,7 @@ public class HorizontalSelectionAdapter extends RecyclerView.Adapter<HorizontalS ItemViewHolder(@NonNull View itemView) { super(itemView); buttonText = itemView.findViewById(R.id.button_text); - button = itemView.findViewById(R.id.button_container); + button = itemView.findViewById(R.id.button); } } } From 613fed62e7611f44013b93750c8e25e773155969 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Tue, 23 Jun 2020 15:55:46 +0300 Subject: [PATCH 180/300] refactoring --- .../java/net/osmand/router/GeneralRouter.java | 64 +++++++++---------- .../java/net/osmand/router/VehicleRouter.java | 5 -- 2 files changed, 30 insertions(+), 39 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java index bf77ed698d..51e5ae79fb 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java @@ -355,7 +355,7 @@ public class GeneralRouter implements VehicleRouter { @Override public float defineObstacle(RouteDataObject road, int point, boolean dir) { - int[] pointTypes = filterRulesByDirection(road.getPointTypes(point), dir, road); + int[] pointTypes = road.getPointTypes(point); if(pointTypes != null) { Float obst = getCache(RouteDataObjectAttribute.OBSTACLES, road.region, pointTypes); if(obst == null) { @@ -367,9 +367,37 @@ public class GeneralRouter implements VehicleRouter { return 0; } + boolean foundDirRule = false; + TIntArrayList filteredRules = new TIntArrayList(); + @Override public float defineRoutingObstacle(RouteDataObject road, int point, boolean dir) { - int[] pointTypes = filterRulesByDirection(road.getPointTypes(point), dir, road); + int[] pointTypes = road.getPointTypes(point); +// if (pointTypes != null) { +// filteredRules.clear(); +// for (int i = 0; i < pointTypes.length; i++) { +// foundDirRule = false; +// if (road.region.isTrafficSignalsRule(pointTypes[i])) { +// for (int rid : pointTypes) { +// if (rid != pointTypes[i]) { +// int trafficSignalDir = road.region.getTrafficSignalDirection(rid); +// if (trafficSignalDir != 0) { +// if ((dir && trafficSignalDir > 0) || (!dir && trafficSignalDir < 0)) { +// filteredRules.add(pointTypes[i]); +// } +// foundDirRule = true; +// } +// } +// } +// if (!foundDirRule) { +// filteredRules.add(pointTypes[i]); +// } +// } else if (road.region.getTrafficSignalDirection(pointTypes[i]) == 0){ +// filteredRules.add(pointTypes[i]); +// } +// } +// pointTypes = filteredRules.size() > 0 ? filteredRules.toArray() : null; +// } if(pointTypes != null) { Float obst = getCache(RouteDataObjectAttribute.ROUTING_OBSTACLES, road.region, pointTypes); if(obst == null) { @@ -381,38 +409,6 @@ public class GeneralRouter implements VehicleRouter { return 0; } - @Override - public int[] filterRulesByDirection(int[] pointRules, boolean direction, RouteDataObject route) { - if (pointRules != null) { - TIntArrayList filteredRules = new TIntArrayList(); - boolean foundDirRule = false; - for (int i = 0; i < pointRules.length; i++) { - foundDirRule = false; - if (route.region.isTrafficSignalsRule(pointRules[i])) { - for (int rid : pointRules) { - if (rid != pointRules[i]) { - //possible error if we have two different directions on one point? - int trafficSignalDir = route.region.getTrafficSignalDirection(rid); - if (trafficSignalDir != 0) { - if ((direction && trafficSignalDir > 0) || (!direction && trafficSignalDir < 0)) { - filteredRules.add(pointRules[i]); - } - foundDirRule = true; - } - } - } - if (!foundDirRule) { - filteredRules.add(pointRules[i]); - } - } else if (route.region.getTrafficSignalDirection(pointRules[i]) == 0){ - filteredRules.add(pointRules[i]); - } - } - return filteredRules.size() > 0 ? filteredRules.toArray() : null; - } - return pointRules; - } - @Override public double defineHeightObstacle(RouteDataObject road, short startIndex, short endIndex) { if(!heightObstacles) { diff --git a/OsmAnd-java/src/main/java/net/osmand/router/VehicleRouter.java b/OsmAnd-java/src/main/java/net/osmand/router/VehicleRouter.java index 6047e5f561..e8757b1486 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/VehicleRouter.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/VehicleRouter.java @@ -47,11 +47,6 @@ public interface VehicleRouter { */ public float defineRoutingSpeed(RouteDataObject road); - /** - * Define if rule should be applied based on movement direction; - */ - public int[] filterRulesByDirection(int[] pointRules, boolean direction, RouteDataObject road); - /** * return real speed in m/s for vehicle for specified road */ From a4f6d5298fd78df657598e8fcb66fdb4d6498df2 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Tue, 23 Jun 2020 16:10:59 +0300 Subject: [PATCH 181/300] Fix localization --- .../plus/settings/fragments/VehicleParametersFragment.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java index 9125ce36ea..aa9fee8058 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java @@ -88,6 +88,7 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O ? ROUTING_PARAMETER_NUMERIC_DEFAULT : ROUTING_PARAMETER_SYMBOLIC_DEFAULT; OsmandSettings.StringPreference pref = (OsmandSettings.StringPreference) app.getSettings() .getCustomRoutingProperty(parameterId, defValue); + VehicleSizeAssets assets = VehicleSizeAssets.getAssets(parameterId, routerProfile); Object[] values = parameter.getPossibleValues(); String[] valuesStr = new String[values.length]; for (int i = 0; i < values.length; i++) { @@ -98,7 +99,7 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O for (int i = 1; i < entriesStr.length; i++) { int firstCharIndex = Algorithms.findFirstNumberEndIndex(entriesStr[i]); entriesStr[i] = String.format(app.getString(R.string.ltr_or_rtl_combine_via_space), - entriesStr[i].substring(0, firstCharIndex), entriesStr[i].substring(firstCharIndex)); + entriesStr[i].substring(0, firstCharIndex), getString(assets.getMetricShortRes())); } Context ctx = getContext(); @@ -107,7 +108,7 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O } SizePreference vehicleSizePref = new SizePreference(ctx); vehicleSizePref.setKey(pref.getId()); - vehicleSizePref.setAssets(VehicleSizeAssets.getAssets(parameterId, routerProfile)); + vehicleSizePref.setAssets(assets); vehicleSizePref.setDefaultValue(defValue); vehicleSizePref.setTitle(title); vehicleSizePref.setEntries(entriesStr); From f67b1b347a26bffd00f758019c98d420265fe097 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Tue, 23 Jun 2020 16:32:47 +0300 Subject: [PATCH 182/300] refactoring --- .../binary/BinaryMapRouteReaderAdapter.java | 36 ++++++++----- .../java/net/osmand/router/GeneralRouter.java | 50 +++++++++---------- 2 files changed, 49 insertions(+), 37 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index 3336dae1f6..a397b548e8 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -286,8 +286,6 @@ public class BinaryMapRouteReaderAdapter { if (i > 0) { intValue = Integer.parseInt(v.substring(0, i)); } - } else if (t.endsWith("direction") && v != null) { - type = TRAFFIC_SIGNALS; } } } @@ -301,6 +299,11 @@ public class BinaryMapRouteReaderAdapter { TIntObjectHashMap<Integer> trafficSignalsDir = new TIntObjectHashMap<Integer>(); List<Integer> trafficSignalsTags = new ArrayList<>(); + int directionForward = -1; + int directionBackward = -1; + int directionTrafficSignalsForward = -1; + int directionTrafficSignalsBackward = -1; + int nameTypeRule = -1; int refTypeRule = -1; int destinationTypeRule = -1; @@ -357,14 +360,20 @@ public class BinaryMapRouteReaderAdapter { destinationTypeRule = id; } else if (tags.equals("destination:ref") || tags.equals("destination:ref:forward") || tags.equals("destination:ref:backward")) { destinationRefTypeRule = id; - } else if (tags.endsWith("direction")) { - if (val.equals("forward")) { - trafficSignalsDir.put(id, 1); - } else if (val.equals("backward")) { - trafficSignalsDir.put(id, -1); - } } else if (tags.equals("highway") && (val.equals("traffic_signals") || val.equals("stop") || val.equals("give_way"))){ trafficSignalsTags.add(id); + } else if (tags.equals("traffic_signals:direction")){ + if (val.equals("forward")) { + directionTrafficSignalsForward = id; + } else if (val.equals("backward")) { + directionTrafficSignalsBackward = id; + } + } else if (tags.equals("direction")) { + if (val.equals("forward")) { + directionForward = id; + } else if (val.equals("backward")) { + directionBackward = id; + } } } @@ -373,12 +382,15 @@ public class BinaryMapRouteReaderAdapter { } public int getTrafficSignalDirection(int ruleId) { - if (trafficSignalsDir.get(ruleId) != null) { - return trafficSignalsDir.get(ruleId); + if (ruleId == directionForward || ruleId == directionTrafficSignalsForward) { + return 1; + } else if (ruleId == directionBackward || ruleId == directionTrafficSignalsBackward) { + return -1; + } else { + return 0; } - return 0; } - + public void completeRouteEncodingRules() { for(int i = 0; i < routeEncodingRules.size(); i++) { RouteTypeRule rtr = routeEncodingRules.get(i); diff --git a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java index 51e5ae79fb..d65ec8f8ee 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java @@ -373,31 +373,31 @@ public class GeneralRouter implements VehicleRouter { @Override public float defineRoutingObstacle(RouteDataObject road, int point, boolean dir) { int[] pointTypes = road.getPointTypes(point); -// if (pointTypes != null) { -// filteredRules.clear(); -// for (int i = 0; i < pointTypes.length; i++) { -// foundDirRule = false; -// if (road.region.isTrafficSignalsRule(pointTypes[i])) { -// for (int rid : pointTypes) { -// if (rid != pointTypes[i]) { -// int trafficSignalDir = road.region.getTrafficSignalDirection(rid); -// if (trafficSignalDir != 0) { -// if ((dir && trafficSignalDir > 0) || (!dir && trafficSignalDir < 0)) { -// filteredRules.add(pointTypes[i]); -// } -// foundDirRule = true; -// } -// } -// } -// if (!foundDirRule) { -// filteredRules.add(pointTypes[i]); -// } -// } else if (road.region.getTrafficSignalDirection(pointTypes[i]) == 0){ -// filteredRules.add(pointTypes[i]); -// } -// } -// pointTypes = filteredRules.size() > 0 ? filteredRules.toArray() : null; -// } + if (pointTypes != null) { + filteredRules.clear(); + for (int i = 0; i < pointTypes.length; i++) { + foundDirRule = false; + if (road.region.isTrafficSignalsRule(pointTypes[i])) { + for (int rid : pointTypes) { + if (rid != pointTypes[i]) { + int trafficSignalDir = road.region.getTrafficSignalDirection(rid); + if (trafficSignalDir != 0) { + if ((dir && trafficSignalDir > 0) || (!dir && trafficSignalDir < 0)) { + filteredRules.add(pointTypes[i]); + } + foundDirRule = true; + } + } + } + if (!foundDirRule) { + filteredRules.add(pointTypes[i]); + } + } else if (road.region.getTrafficSignalDirection(pointTypes[i]) == 0) { + filteredRules.add(pointTypes[i]); + } + } + pointTypes = filteredRules.size() > 0 ? filteredRules.toArray() : null; + } if(pointTypes != null) { Float obst = getCache(RouteDataObjectAttribute.ROUTING_OBSTACLES, road.region, pointTypes); if(obst == null) { From bfab856efbc2961edf8d46a86295811956943633 Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Tue, 23 Jun 2020 17:20:15 +0300 Subject: [PATCH 183/300] Fix renaming selected gpx --- OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java | 8 +++++++- .../net/osmand/plus/myplaces/AvailableGPXFragment.java | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java index 2de7234303..f750056bd3 100644 --- a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java +++ b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java @@ -22,11 +22,11 @@ import net.osmand.PlatformUtil; import net.osmand.data.LatLon; import net.osmand.plus.GPXDatabase.GpxDataItem; import net.osmand.plus.MapMarkersHelper.MapMarkersGroup; -import net.osmand.plus.settings.backend.OsmandSettings.MetricsConstants; import net.osmand.plus.activities.SavingTrackHelper; import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.helpers.GpxUiHelper.GPXDataSetAxisType; import net.osmand.plus.helpers.GpxUiHelper.GPXDataSetType; +import net.osmand.plus.settings.backend.OsmandSettings.MetricsConstants; import net.osmand.util.Algorithms; import org.apache.commons.logging.Log; @@ -639,6 +639,12 @@ public class GpxSelectionHelper { selectedGPXFiles = newSelectedGPXFiles; } + public void updateSelectedGpxFile(SelectedGpxFile selectedGpxFile) { + if (selectedGPXFiles.contains(selectedGpxFile)) { + saveCurrentSelections(); + } + } + public SelectedGpxFile selectGpxFile(GPXFile gpx, boolean show, boolean notShowNavigationDialog) { return selectGpxFile(gpx, show, notShowNavigationDialog, true, true, true); } diff --git a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java index fb317dc696..44d2c259eb 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java @@ -68,7 +68,6 @@ import net.osmand.plus.OsmAndConstants; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; @@ -82,6 +81,7 @@ import net.osmand.plus.helpers.GpxUiHelper.GPXDataSetType; import net.osmand.plus.mapmarkers.CoordinateInputDialogFragment; import net.osmand.plus.monitoring.OsmandMonitoringPlugin; import net.osmand.plus.osmedit.OsmEditingPlugin; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.util.Algorithms; import java.io.File; @@ -1482,11 +1482,16 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { + final SelectedGpxFile selectedGpxFile = selectedGpxHelper.getSelectedFileByPath(gpxInfo.file.getPath()); FileUtils.renameFile(getActivity(), gpxInfo.file, new RenameCallback() { @Override public void renamedTo(File file) { asyncLoader = new LoadGpxTask(); asyncLoader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, getActivity()); + if (selectedGpxFile != null && selectedGpxFile.getGpxFile() != null) { + selectedGpxFile.getGpxFile().path = file.getPath(); + selectedGpxHelper.updateSelectedGpxFile(selectedGpxFile); + } } }); return true; From d3e513af38b0e0da364dbef91f08478bfed2d3e8 Mon Sep 17 00:00:00 2001 From: Philippe de FRANCLIEU <philippedefranclieu@gmail.com> Date: Tue, 23 Jun 2020 14:41:42 +0000 Subject: [PATCH 184/300] Translated using Weblate (French) Currently translated at 100.0% (3403 of 3403 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 0bbbc5a2c2..29972b7119 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3383,7 +3383,7 @@ <string name="save_heading">Inclure la direction</string> <string name="save_heading_descr">Inclure la direction de chaque point lors de l\'enregistrement d\'une trace.</string> <string name="rendering_attr_showCycleNodeNetworkRoutes_name">Afficher les pistes cyclables</string> - <string name="rendering_value_walkingRoutesOSMCNodes_name">Réseaux</string> + <string name="rendering_value_walkingRoutesOSMCNodes_name">Nœuds</string> <string name="personal_category_name">Personnel</string> <string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string> <string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string> From 5c62c30321c54b930e5d94e6aed329d6146b0d8a Mon Sep 17 00:00:00 2001 From: Julien BRONDINO <dev@brondino.fr> Date: Tue, 23 Jun 2020 14:42:59 +0000 Subject: [PATCH 185/300] Translated using Weblate (French) Currently translated at 100.0% (3403 of 3403 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 29972b7119..73080ab966 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3383,7 +3383,7 @@ <string name="save_heading">Inclure la direction</string> <string name="save_heading_descr">Inclure la direction de chaque point lors de l\'enregistrement d\'une trace.</string> <string name="rendering_attr_showCycleNodeNetworkRoutes_name">Afficher les pistes cyclables</string> - <string name="rendering_value_walkingRoutesOSMCNodes_name">Nœuds</string> + <string name="rendering_value_walkingRoutesOSMCNodes_name">Nœuds de transport</string> <string name="personal_category_name">Personnel</string> <string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string> <string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string> From 936762d8e8bb7ced2d0561ecb649e79de91e1ea2 Mon Sep 17 00:00:00 2001 From: Softmap <skdhd5@gmail.com> Date: Tue, 23 Jun 2020 13:17:53 +0000 Subject: [PATCH 186/300] Translated using Weblate (Arabic) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-ar/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 4026f6025d..3534026275 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -1898,7 +1898,7 @@ <string name="disable_complex_routing_descr">تعطيل 2-مرحلة التوجيه للملاحة بالسيارة.</string> <string name="rendering_attr_alpineHiking_name">مقياس التنزه في جبال الألب (SAC)</string> <string name="rendering_attr_alpineHiking_description">تقديم المسارات وفقاً لمقياس SAC.</string> - <string name="rendering_attr_hikingRoutesOSMC_name">تراكب رمز التسلق</string> + <string name="rendering_attr_hikingRoutesOSMC_name">طبقة رمز التسلق</string> <string name="rendering_attr_hikingRoutesOSMC_description">تقديم المسارات وفقاً لآثار OSMC.</string> <string name="local_index_description">انقر فوق أي عنصر لمعرفة المزيد من التفاصيل، اضغط وواصل الضغط للتعطيل أو الحذف. البيانات الحالية على الجهاز (%1$s متاح):</string> <string name="keep_informing_descr">إعادة إعلان تعليمات الملاحة في فترات منتظمة.</string> From 2c0f86eb5c07626cf0f61f67c8abdf32495e1ab4 Mon Sep 17 00:00:00 2001 From: iman <iriman@chmail.ir> Date: Tue, 23 Jun 2020 14:12:13 +0000 Subject: [PATCH 187/300] Translated using Weblate (Persian) Currently translated at 99.7% (3396 of 3403 strings) --- OsmAnd/res/values-fa/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 893b1b9a80..26b0b78063 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -539,7 +539,7 @@ <string name="use_magnetic_sensor_descr">برای مقدار قطب‌نما به‌جای حسگر جهتی از حسگر مغناطیسی استفاده می‌کند.</string> <string name="show_poi_over_map">نشان‌دادن لایهٔ POIها</string> <string name="show_poi_over_map_description">آخرین لایهٔ مورداستفاده از POIها را نشان بده.</string> - <string name="data_settings">داده‌ها</string> + <string name="data_settings">داده</string> <string name="shared_string_settings">تنظیمات</string> <string name="additional_settings">تنظیمات دیگر</string> <string name="update_tile">به‌روزرسانی نقشه</string> @@ -602,7 +602,7 @@ <string name="save_track_interval_descr">مشخص کنید برای ضبط رد در هنگام ناوبری، فاصلهٔ زمانی ردنگاری چقدر باشد</string> <string name="save_track_to_gpx_descrp">هنگام ناوبری، یک رد GPX به‌صورت خودکار ضبط و در پوشهٔ ردها (tracks) ذخیره می‌شود.</string> <string name="osm_settings_descr">تنظیمات لازم برای ارتباط با (OpenStreetMap.org (OSM را مشخص کنید.</string> - <string name="data_settings_descr">زبان را مشخص و داده‌ها را دانلود/مجدداً بار کنید.</string> + <string name="data_settings_descr">زبان را مشخص و داده را دانلود/دوباره بار کنید.</string> <string name="av_photo_play_sound">پخش صدای شاتر دوربین</string> <string name="intermediate_items_sort_by_distance">مرتب‌کردن پشت سر هم</string> <string name="local_osm_changes_backup_successful">فایل تغییرات OSM ایجاد شد %1$s</string> @@ -800,7 +800,7 @@ <string name="opening_changeset">بازکردن بستهٔ تغییرات…</string> <string name="list_index_files_was_not_loaded">دریافت لیست مناطق از https://osmand.net ناموفق بود.</string> <string name="downloading_list_indexes">در حال دانلود لیست مناطق موجود…</string> - <string name="download_question_exist">داده‌های آفلاین برای {0} از قبل وجود دارد ({1}). آن را به‌روز می‌کنید ({2})؟</string> + <string name="download_question_exist">دادهٔ آفلاینِ {0} از قبل وجود دارد ({1}). آن را روزآمد می‌کنید ({2})؟</string> <string name="router_service">سرویس مسیریابی</string> <string name="sd_dir_not_accessible">پوشهٔ ذخیره‌سازی روی کارت حافظه قابل‌دسترسی نیست!</string> <string name="router_service_descr">سرویس مسیریابی آنلاین یا آفلاین.</string> @@ -2779,7 +2779,7 @@ <string name="welcome_to_open_beta">به ارزیابی همگانی نسخهٔ بتا خوش آمدید</string> <string name="contour_lines_hillshade_maps">منحنی‌های میزان و نقشه‌های سایه‌روشن</string> <string name="download_wikipedia_description">مقاله‌های ویکی‌سفر %1$s را دانلود کنید تا آن‌ها را آفلاین بخوانید.</string> - <string name="download_wikipedia_label">دانلود داده‌های ویکی‌پدیا</string> + <string name="download_wikipedia_label">دانلود دادهٔ ویکی‌پدیا</string> <string name="open_in_browser_wiki">بازکردن مقالهٔ آنلاین</string> <string name="open_in_browser_wiki_description">این مقاله را در مرورگر اینترنت مشاهده کنید.</string> <string name="download_wiki_region_placeholder">این منطقه</string> From 7fd69af0cb5cc1f713cc39b114d3da063bf1648c Mon Sep 17 00:00:00 2001 From: ace shadow <acelists@atlas.sk> Date: Tue, 23 Jun 2020 09:16:36 +0000 Subject: [PATCH 188/300] Translated using Weblate (Slovak) Currently translated at 92.7% (3533 of 3809 strings) --- OsmAnd/res/values-sk/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sk/phrases.xml b/OsmAnd/res/values-sk/phrases.xml index 8293003701..6ffca753c4 100644 --- a/OsmAnd/res/values-sk/phrases.xml +++ b/OsmAnd/res/values-sk/phrases.xml @@ -1170,7 +1170,7 @@ <string name="poi_tactile_paving_yes">Áno</string> <string name="poi_tactile_paving_no">Bez značenia pre slepých</string> <string name="poi_traffic_signals_sound_yes">Áno</string> - <string name="poi_traffic_signals_sound_no">Nie</string> + <string name="poi_traffic_signals_sound_no">Zvuk: nie</string> <string name="poi_traffic_signals_sound_walk">Len keď je prechod povolený</string> <string name="poi_rescue_station">Záchranná stanica</string> <string name="poi_doors">Dvere</string> From fdee12ac516d92c0716b6cc6a5949ad3d846470d Mon Sep 17 00:00:00 2001 From: Verdulo <tomek@disroot.org> Date: Mon, 22 Jun 2020 21:01:06 +0000 Subject: [PATCH 189/300] Translated using Weblate (Esperanto) Currently translated at 100.0% (3403 of 3403 strings) --- OsmAnd/res/values-eo/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 5edcaebcde..e8678ba68c 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -419,7 +419,7 @@ <string name="filter_poi_hint">Filtri laŭ nomo</string> <string name="search_poi_category_hint">Entajpu ion por serĉi</string> <string name="agps_info">A-GPS informoj</string> - <string name="rendering_attr_OSMMapperAssistant_name">OSM-mapiga helpilo</string> + <string name="rendering_attr_OSMMapperAssistant_name">Etikedoj “riparu min!”</string> <string name="shared_string_manage">Administri</string> <string name="agps_data_last_downloaded">A-GPS-datumoj elŝutitaj je %1$s</string> <string name="confirm_usage_speed_cameras">En multaj landoj (Germanujo, Francujo, Italujo kaj aliaj) uzado de sciigoj pri rapid-kontroliloj estas kontraŭleĝa. OsmAnd ne respondumos, se vi rompos leĝon. Bonvolu elekti “jes” nur se vi estas permesata por uzi tiun ĉi eblon.</string> @@ -3202,7 +3202,7 @@ <string name="app_mode_camper">Kampad‑postveturilo</string> <string name="app_mode_campervan">Kampad‑veturilo</string> <string name="rendering_attr_showLez_description">Montri zonojn nur por malalte aer‑malpurigantaj veturiloj. Ne influas al difinado de kurso.</string> - <string name="rendering_attr_showLez_name">Montri zonojn de restrikta emisio (LEZ)</string> + <string name="rendering_attr_showLez_name">Zonoj de restrikta emisio (LEZ)</string> <string name="temporary_conditional_routing">Konsideri portempajn limigojn</string> <string name="shared_string_default">Implicita</string> <string name="new_route_calculated_dist_dbg">Kurso: distanco %s, tempo: %s From 04b9a02ccf06c9fdf73644664a54ccc0f5bb653b Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Tue, 23 Jun 2020 17:44:25 +0300 Subject: [PATCH 190/300] refactor RearrangePoiFiltersFragment --- .../plus/poi/RearrangePoiFiltersFragment.java | 84 ++++++++++--------- 1 file changed, 44 insertions(+), 40 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java index e9077bb143..e495170e10 100644 --- a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java +++ b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java @@ -106,7 +106,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { final OsmandApplication app = requireMyApplication(); - boolean nightMode = isNightMode(app, usedOnMap); + final boolean nightMode = isNightMode(app, usedOnMap); View mainView = UiUtilities.getInflater(app, nightMode).inflate(R.layout.edit_arrangement_list_fragment, container, false); createToolbar(mainView, nightMode); @@ -158,6 +158,38 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec updateItems(); } } + + @Override + public void onDeleteClicked(final int position) { + final ListItem item = items.get(position); + if (item.value instanceof PoiUIFilterDataObject) { + PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; + final PoiUIFilter filter = app.getPoiFilters().getFilterById(poiInfo.filterId); + if (filter != null && app.getPoiFilters().removePoiFilter(filter)) { + filter.setDeleted(true); + filterDeleted = true; + } + items.remove(item); + adapter.notifyDataSetChanged(); + Snackbar snackbar = Snackbar.make(requireView(), + getString(R.string.item_deleted, poiInfo.name), Snackbar.LENGTH_LONG) + .setAction(R.string.shared_string_undo, new View.OnClickListener() { + @Override + public void onClick(View view) { + items.add(position, item); + adapter.notifyDataSetChanged(); + if (filter != null) { + filter.setDeleted(false); + app.getPoiFilters().createPoiFilter(filter, false); + } + } + }); + ViewCompat.setElevation(snackbar.getView(), 0f); + snackbar.setAnchorView(buttonsContainer); + UiUtilities.setupSnackbar(snackbar, nightMode); + snackbar.show(); + } + } }); recyclerView.setAdapter(adapter); @@ -577,13 +609,13 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec @SuppressLint("ClickableViewAccessibility") @Override - public void onBindViewHolder(final @NonNull RecyclerView.ViewHolder holder, final int position) { - final ListItem item = items.get(position); - final boolean nightMode = isNightMode(app, usedOnMap); + public void onBindViewHolder(final @NonNull RecyclerView.ViewHolder holder, int position) { + ListItem item = items.get(position); + boolean nightMode = isNightMode(app, usedOnMap); int activeColorResId = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light; if (holder instanceof PoiViewHolder) { PoiViewHolder h = (PoiViewHolder) holder; - final PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; + PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; int osmandOrangeColorResId = nightMode ? R.color.osmand_orange_dark : R.color.osmand_orange; h.title.setText(poiInfo.name); boolean userFilter = poiInfo.filterId.startsWith(USER_PREFIX); @@ -618,40 +650,10 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec h.actionDelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - Snackbar snackbar = Snackbar.make(requireView(), - getString(R.string.item_deleted, poiInfo.name), Snackbar.LENGTH_LONG) - .setAction(R.string.shared_string_undo, new View.OnClickListener() { - @Override - public void onClick(View view) { - items.add(position, item); - notifyDataSetChanged(); - } - }) - .addCallback(new Snackbar.Callback() { - @Override - public void onShown(Snackbar sb) { - super.onShown(sb); - items.remove(item); - notifyDataSetChanged(); - } - - @Override - public void onDismissed(Snackbar transientBottomBar, int event) { - super.onDismissed(transientBottomBar, event); - if (DISMISS_EVENT_ACTION != event) { - PoiUIFilter filter = poiHelper.getFilterById(poiInfo.filterId); - if (filter != null && poiHelper.removePoiFilter(filter)) { - availableFiltersKeys.remove(poiInfo.filterId); - filter.setDeleted(true); - filterDeleted = true; - } - } - } - }); - ViewCompat.setElevation(snackbar.getView(), 0f); - snackbar.setAnchorView(buttonsContainer); - UiUtilities.setupSnackbar(snackbar, nightMode); - snackbar.show(); + int pos = holder.getAdapterPosition(); + if (listener != null && pos != RecyclerView.NO_POSITION) { + listener.onDeleteClicked(pos); + } } }); } else if (holder instanceof SpaceViewHolder) { @@ -864,7 +866,9 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec void onDragOrSwipeEnded(RecyclerView.ViewHolder holder); - void onButtonClicked(int view); + void onButtonClicked(int position); + + void onDeleteClicked(int position); } public interface OnApplyPoiFiltersState { From 2f9d0485be3947d5d3c40fbd01cbdde962aedb86 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmailcom> Date: Tue, 23 Jun 2020 19:09:58 +0300 Subject: [PATCH 191/300] Mo-Fr by default in edit poi osm --- .../src/main/java/net/osmand/util/OpeningHoursParser.java | 6 ++++++ .../src/net/osmand/plus/osmedit/BasicEditPoiFragment.java | 1 + 2 files changed, 7 insertions(+) diff --git a/OsmAnd-java/src/main/java/net/osmand/util/OpeningHoursParser.java b/OsmAnd-java/src/main/java/net/osmand/util/OpeningHoursParser.java index 780713b3c3..01fee5cd9e 100644 --- a/OsmAnd-java/src/main/java/net/osmand/util/OpeningHoursParser.java +++ b/OsmAnd-java/src/main/java/net/osmand/util/OpeningHoursParser.java @@ -886,6 +886,12 @@ public class OpeningHoursParser { return new TIntArrayList(endTimes); } + public void setDays(boolean[] days) { + if (this.days.length == days.length) { + this.days = days; + } + } + /** * Check if the weekday of time "cal" is part of this rule * diff --git a/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java index dcf4846f7f..d2d34785e0 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java @@ -118,6 +118,7 @@ public class BasicEditPoiFragment extends BaseOsmAndFragment BasicOpeningHourRule rule = new BasicOpeningHourRule(); rule.setStartTime(9 * 60); rule.setEndTime(18 * 60); + rule.setDays(new boolean[]{true, true, true, true, true, false, false}); OpeningHoursDaysDialogFragment fragment = OpeningHoursDaysDialogFragment.createInstance(rule, -1); fragment.show(getChildFragmentManager(), "OpenTimeDialogFragment"); } From bf4cd427f6a1fabab0d9793b4c31f1e21663e4d7 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Tue, 23 Jun 2020 21:23:56 +0300 Subject: [PATCH 192/300] quick fix for null --- OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java index cf9def40cf..20812ad931 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java @@ -87,7 +87,7 @@ public class OsmMapUtils { } public static LatLon getComplexPolyCenter(Collection<Node> outer, List<List<Node>> inner) { - if (outer.size() <= 5 && inner == null) { + if (outer != null && outer.size() <= 5 && inner == null) { List<Node> sub = new ArrayList<>(outer); return getWeightCenterForNodes(sub.subList(0, sub.size()-1)); From 29d4379b844715e72dfb38ba5a55c7019f1ec453 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Tue, 23 Jun 2020 21:25:20 +0300 Subject: [PATCH 193/300] fix --- OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java index 20812ad931..be12ef4d82 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java @@ -87,9 +87,8 @@ public class OsmMapUtils { } public static LatLon getComplexPolyCenter(Collection<Node> outer, List<List<Node>> inner) { - if (outer != null && outer.size() <= 5 && inner == null) { + if (!Algorithms.isEmpty(outer) && outer.size() <= 5 && inner == null) { List<Node> sub = new ArrayList<>(outer); - return getWeightCenterForNodes(sub.subList(0, sub.size()-1)); } From ab603663f18e19f52e554e4a006d7ef91b0a4f34 Mon Sep 17 00:00:00 2001 From: Denis Kolomiets <madwasp79@gmail.com> Date: Tue, 23 Jun 2020 21:57:50 +0300 Subject: [PATCH 194/300] quick fix for polygon center point --- OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java index be12ef4d82..0189ff0a97 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java @@ -87,7 +87,7 @@ public class OsmMapUtils { } public static LatLon getComplexPolyCenter(Collection<Node> outer, List<List<Node>> inner) { - if (!Algorithms.isEmpty(outer) && outer.size() <= 5 && inner == null) { + if (outer.size() > 3 && outer.size() <= 5 && inner == null) { List<Node> sub = new ArrayList<>(outer); return getWeightCenterForNodes(sub.subList(0, sub.size()-1)); } From ad9a6715db01a64d44fb20eb7beb192dc0eaa244 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Tue, 23 Jun 2020 23:33:03 +0300 Subject: [PATCH 195/300] Fix size when keyboard open --- ...ttom_sheet_item_edit_with_recyclerview.xml | 5 +++- .../VehicleParametersBottomSheet.java | 29 +++++++++++++++---- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml b/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml index a03fa1879d..df28c0a05e 100644 --- a/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml +++ b/OsmAnd/res/layout/bottom_sheet_item_edit_with_recyclerview.xml @@ -19,7 +19,10 @@ android:paddingRight="@dimen/content_padding" android:paddingTop="@dimen/content_padding_small" android:paddingBottom="@dimen/content_padding_small" - android:textAppearance="@style/TextAppearance.ListItemCategoryTitle" + android:letterSpacing="@dimen/text_button_letter_spacing" + android:textColor="?android:textColorPrimary" + android:textSize="@dimen/default_list_text_size" + osmand:typeface="@string/font_roboto_medium" tools:text="Some Title" android:paddingStart="@dimen/content_padding" android:paddingEnd="@dimen/content_padding" /> diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java index 85a83399a3..e2274568c2 100644 --- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/VehicleParametersBottomSheet.java @@ -1,6 +1,7 @@ package net.osmand.plus.settings.bottomsheets; import android.annotation.SuppressLint; +import android.app.Activity; import android.graphics.Rect; import android.os.Build; import android.os.Bundle; @@ -22,12 +23,12 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.recyclerview.widget.RecyclerView; -import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; +import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.mapcontextmenu.other.HorizontalSelectionAdapter; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.settings.fragments.ApplyQueryType; @@ -157,21 +158,21 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { private ViewTreeObserver.OnGlobalLayoutListener getOnGlobalLayoutListener() { final int buttonsHeight = getResources().getDimensionPixelSize(R.dimen.dialog_button_ex_height); - final int shadowHeight = AndroidUtils.dpToPx(getContext(), 8); - final int statusBarHeight = AndroidUtils.getStatusBarHeight(getContext()); return new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect visibleDisplayFrame = new Rect(); final ScrollView scrollView = getView().findViewById(R.id.scroll_view); scrollView.getWindowVisibleDisplayFrame(visibleDisplayFrame); - int contentHeight = visibleDisplayFrame.bottom - visibleDisplayFrame.top - buttonsHeight - - shadowHeight - statusBarHeight; + boolean showTopShadow; + int contentHeight = visibleDisplayFrame.bottom - visibleDisplayFrame.top - buttonsHeight; if (contentHeightPrevious != contentHeight) { if (scrollView.getHeight() > contentHeight) { scrollView.getLayoutParams().height = contentHeight; + showTopShadow = false; } else { scrollView.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT; + showTopShadow = true; } scrollView.requestLayout(); int delay = Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP ? 300 : 1000; @@ -181,6 +182,24 @@ public class VehicleParametersBottomSheet extends BasePreferenceBottomSheet { } }, delay); contentHeightPrevious = contentHeight; + drawTopShadow(showTopShadow); + } + } + + private void drawTopShadow(boolean showTopShadow) { + final Activity activity = getActivity(); + View mainView = getView(); + if (activity == null || mainView == null) { + return; + } + if (AndroidUiHelper.isOrientationPortrait(activity)) { + mainView.setBackgroundResource(showTopShadow ? getPortraitBgResId() : getBgColorId()); + if (!showTopShadow) { + mainView.setPadding(0, 0, 0, 0); + } + } else { + mainView.setBackgroundResource(showTopShadow + ? getLandscapeTopsidesBgResId() : getLandscapeSidesBgResId()); } } }; From 22eedcc9c754fa4fd09ea0b26e9b7fd7e82a33cd Mon Sep 17 00:00:00 2001 From: Ldm Public <ldmpub@gmail.com> Date: Tue, 23 Jun 2020 16:01:58 +0000 Subject: [PATCH 196/300] Translated using Weblate (French) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-fr/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 73080ab966..43b2712984 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3237,7 +3237,7 @@ <string name="map_during_navigation_info">Carte pendant la navigation</string> <string name="map_during_navigation">Carte pendant la navigation</string> <string name="shared_string_other">Autre</string> - <string name="vehicle_parameters_descr">Poids, hauteur, vitesse</string> + <string name="vehicle_parameters_descr">Poids, hauteur, longueur, vitesse</string> <string name="vehicle_parameters">Caractéristiques du véhicule</string> <string name="voice_announces_info">Les annonces vocales n\'ont lieu que pendant la navigation.</string> <string name="voice_announces_descr">Instructions de navigation et annonces</string> @@ -3785,4 +3785,8 @@ <string name="shared_string_bearing">Direction</string> <string name="item_deleted">%1$s supprimé</string> <string name="shared_string_uninstall_and_restart">Désinstaller et redémarrer</string> + <string name="routing_attr_length_description">Indiquez la longueur du véhicule autorisée sur les routes.</string> + <string name="routing_attr_length_name">Limite de longueur</string> + <string name="speed_cameras_removed_descr">Cet appareil n\'a pas de radars.</string> + <string name="app_mode_inline_skates">Patins à roulettes en ligne</string> </resources> \ No newline at end of file From 4fcec39a57318044b1d2c3eb1b782f09f04e94b0 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" <j.lavoie@net-c.ca> Date: Wed, 24 Jun 2020 00:35:07 +0000 Subject: [PATCH 197/300] Translated using Weblate (French) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-fr/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 43b2712984..99b89ace9c 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -1273,7 +1273,7 @@ <string name="rendering_attr_showSurfaces_name">Afficher la surface des routes</string> <string name="rendering_attr_showCycleRoutes_name">Afficher les pistes cyclables</string> <string name="lang_fa">Persan</string> - <string name="lang_al">albanais</string> + <string name="lang_al">Albanais</string> <string name="lang_ar">Arabe</string> <string name="lang_sc">Sarde</string> <string name="lang_sr">Serbe (cyrillique)</string> @@ -3307,10 +3307,10 @@ <string name="data_storage_preference_summary">%1$s • %2$s</string> <string name="data_storage_space_description">%1$s Go libre (sur %2$s Go)</string> <string name="track_storage_directory">Dossier de stockage des traces</string> - <string name="shared_string_memory_used_tb_desc">%1$s TB utilisés</string> - <string name="shared_string_memory_used_gb_desc">%1$s GB utilisés</string> + <string name="shared_string_memory_used_tb_desc">%1$s To utilisés</string> + <string name="shared_string_memory_used_gb_desc">%1$s Go utilisés</string> <string name="shared_string_memory_used_mb_desc">%1$s Mo utilisés</string> - <string name="shared_string_memory_used_kb_desc">%1$s kB utilisés</string> + <string name="shared_string_memory_used_kb_desc">%1$s ko utilisés</string> <string name="contour_lines_and_hillshade">Courbes de niveaux et Ombrage du relief</string> <string name="routing_attr_prefer_unpaved_name">Privilégier les routes non revêtues</string> <string name="routing_attr_prefer_unpaved_description">Privilégier les routes non revêtues.</string> From 5c274a05c12b3b11173d48521520ec17743608f1 Mon Sep 17 00:00:00 2001 From: Philippe de FRANCLIEU <philippedefranclieu@gmail.com> Date: Wed, 24 Jun 2020 00:41:41 +0000 Subject: [PATCH 198/300] Translated using Weblate (French) Currently translated at 100.0% (3407 of 3407 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 99b89ace9c..827b6f6e6b 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3382,7 +3382,7 @@ <string name="add_new_profile_q">Ajouter le profil \'%1$s\' \?</string> <string name="save_heading">Inclure la direction</string> <string name="save_heading_descr">Inclure la direction de chaque point lors de l\'enregistrement d\'une trace.</string> - <string name="rendering_attr_showCycleNodeNetworkRoutes_name">Afficher les pistes cyclables</string> + <string name="rendering_attr_showCycleNodeNetworkRoutes_name">Afficher nœuds du réseau de pistes cyclables</string> <string name="rendering_value_walkingRoutesOSMCNodes_name">Nœuds de transport</string> <string name="personal_category_name">Personnel</string> <string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string> From 9cc092e5f48134b0a1eda9a5075ee8ed0d751de3 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" <j.lavoie@net-c.ca> Date: Wed, 24 Jun 2020 00:42:19 +0000 Subject: [PATCH 199/300] Translated using Weblate (French) Currently translated at 100.0% (3407 of 3407 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 827b6f6e6b..2c218a9ad0 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3382,7 +3382,7 @@ <string name="add_new_profile_q">Ajouter le profil \'%1$s\' \?</string> <string name="save_heading">Inclure la direction</string> <string name="save_heading_descr">Inclure la direction de chaque point lors de l\'enregistrement d\'une trace.</string> - <string name="rendering_attr_showCycleNodeNetworkRoutes_name">Afficher nœuds du réseau de pistes cyclables</string> + <string name="rendering_attr_showCycleNodeNetworkRoutes_name">Afficher le réseau de nœuds de pistes cyclables</string> <string name="rendering_value_walkingRoutesOSMCNodes_name">Nœuds de transport</string> <string name="personal_category_name">Personnel</string> <string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string> From 1cb98e83d812ed4db8b3ed7dc9c40f4462423dcb Mon Sep 17 00:00:00 2001 From: Artem <KovalevArtem.ru@gmail.com> Date: Tue, 23 Jun 2020 20:14:21 +0000 Subject: [PATCH 200/300] Translated using Weblate (Russian) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-ru/strings.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index fc8bd14280..1e8b821529 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -1322,7 +1322,7 @@ <string name="driving_region">Регион вождения</string> <string name="driving_region_japan">Япония</string> <string name="driving_region_us">США</string> - <string name="driving_region_europe_asia">Европа, Азия, Латинская Америка и т.п.</string> + <string name="driving_region_europe_asia">Европа, Азия, Латинская Америка и тому подобное</string> <string name="driving_region_uk">Великобритания, Индия и др.</string> <string name="context_menu_item_directions_to">Проложить маршрут</string> <string name="context_menu_item_directions_from">Пункт отправления</string> @@ -3251,7 +3251,7 @@ <string name="turn_screen_on">Включить экран</string> <string name="map_during_navigation_info">Карта во время навигации</string> <string name="map_during_navigation">Карта во время навигации</string> - <string name="vehicle_parameters_descr">Вес, высота, скорость</string> + <string name="vehicle_parameters_descr">Вес, высота, длина, скорость</string> <string name="vehicle_parameters">Параметры транспортного средства</string> <string name="voice_announces_info">Голосовые оповещения происходят только во время навигации.</string> <string name="voice_announces_descr">Навигационные инструкции и объявления</string> @@ -3802,4 +3802,8 @@ <string name="speed_cameras_restart_descr">Перезапуск необходим для полного удаления данных камер контроля скорости.</string> <string name="shared_string_uninstall_and_restart">Удалить и перезапустить</string> <string name="shared_string_uninstall">Удалить</string> + <string name="routing_attr_length_description">Укажите длину транспортного средства, разрешенную для движения по маршрутам.</string> + <string name="routing_attr_length_name">Предельная длина</string> + <string name="speed_cameras_removed_descr">В этом устройстве нет камер контроля скорости.</string> + <string name="app_mode_inline_skates">Роликовые коньки</string> </resources> \ No newline at end of file From bf845e906b4611d70f3e90006b6eeeb2fc19d871 Mon Sep 17 00:00:00 2001 From: Athoss <athoss@citromail.hu> Date: Tue, 23 Jun 2020 15:21:29 +0000 Subject: [PATCH 201/300] Translated using Weblate (Hungarian) Currently translated at 98.0% (3340 of 3407 strings) --- OsmAnd/res/values-hu/strings.xml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index c7406818d1..b96f7cfbaf 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -664,11 +664,11 @@ <string name="map_online_data_descr">Online térképek használata (csempék letöltése és tárolása memóriakártyán).</string> <string name="shared_string_online_maps">Online térképek</string> <string name="online_map_settings_descr">Online vagy gyorsítótárazott csempés térképek forrásainak kijelölése.</string> - <string name="osmand_rastermaps_plugin_description">Ezzel a bővítménnyel az online (úgynevezett csempés vagy raszteres) térképek több típusához is hozzáférhet előre meghatározott OpenStreetMap-csempéktől kezdve (mint például a Mapnik) műholdképekig és speciális célú rétegekig (pl. időjárási térképek, éghajlati térképek, földtani térképek, domborzatárnyékolási rétegek stb.). + <string name="osmand_rastermaps_plugin_description">Hozzáférhet többféle online (úgynevezett csempés vagy raszteres) térképhez az előre meghatározott OSM-csempéktől kezdve (mint például a Mapnik) műholdképekig és speciális célú rétegekig (pl. időjárási térképek, éghajlati térképek, földtani térképek, domborzatárnyékolási rétegek stb.). \n -\nEzek a térképek egyaránt használhatók az OsmAnd-térkép képernyőjén megjelenítendő fő (alap) térképként, illetve egy másik alaptérkép fedvényeként vagy alátétjeként (mint például az OsmAnd normál offline térképei). Az alátéttérkép láthatóbbá tétele érdekében az OsmAnd vektoros térképeinek bizonyos elemei igény szerint könnyedén elrejthetők a „Térkép beállítása” menün keresztül. +\nEzek a térképek egyaránt használhatók fő (alap) térképként, illetve egy másik alaptérkép fedvényeként vagy alátétjeként (mint például az OsmAnd normál offline térképei). Az OsmAnd vektoros térképeinek bizonyos elemei elrejthetők a „Térkép beállítása” menün keresztül. \n -\nA csempés térképek beszerezhetők internetes forrásokból, vagy előkészíthetők kapcsolat nélküli használathoz (és kézzel átmásolva az OsmAnd adatmappájába) SQLite adatbázisként, amely különféle harmadik féltől származó térkép-előkészítő eszközökkel állítható elő.</string> +\nA csempés térképek letölthetők internetes forrásokból, vagy előkészíthetők kapcsolat nélküli használathoz (kézzel átmásolva az OsmAnd adatmappájába) SQLite adatbázisként, amely különféle harmadik féltől származó térkép-előkészítő eszközökkel állítható elő.</string> <string name="osmand_background_plugin_description">Megjeleníti a háttérben futó nyomvonalrögzítés és navigáció beállításait, ami periodikusan felébreszti a GPS modult (kikapcsolt képernyőnél).</string> <string name="osmand_accessibility_description">Elérhetővé teszi az eszköz akadálymentesítési lehetőségeit közvetlenül az OsmAndban. Ez megkönnyíti például a szövegfelolvasó (TTS) hangok beszédsebességének állítását, az irányító gombok képernyő navigációjának beállítását, egy görgető használatát a nagyítás vezérléséhez, vagy szövegfelolvasó visszajelzés használatát, például a pozíció automatikus bejelentésénél.</string> <string name="osmand_development_plugin_description">Beállítások fejlesztői és hibakeresési szolgáltatásokhoz, mint például navigáció szimulálása, a megjelenítés teljesítménye vagy hangutasítások. Fejlesztőknek szánt funkciók, nem szükségesek a normál használathoz.</string> @@ -927,7 +927,7 @@ <string name="recording_error">A felvétel nem sikerült</string> <string name="recording_camera_not_available">A kamera nem érhető el</string> <string name="shared_string_control_stop">Leállítás</string> - <string name="osmand_srtm_long_description_1000_chars">Ez a bővítmény egy szintvonal fedvényt és egy domborzatárnyékolás réteget biztosít, amelyek az OsmAnd normál térképein jelennek meg. Ezt a funkcionalitást nagyon fogják értékelni a sportolók, túrázók, utazók és mindenki, akiket a táj domborzati szerkezete érdekel. + <string name="osmand_srtm_long_description_1000_chars">Ez a bővítmény egy szintvonal fedvényt és egy domborzatárnyékolás réteget biztosít, amelyek az OsmAnd normál térképein jelennek meg. Ezt a funkcionalitást nagyon fogják értékelni a sportolók, túrázók, utazók és mindenki, akiket a táj domborzati szerkezete érdekel. \n \nA globális adatok (az északi 70° és déli 70° szélesség között) az SRTM (Shuttle Radar Topography Mission) és az ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer) mérésein alapulnak, amely a NASA Earsh Observing System zászlóshajójának, a Terra műholdnak a képalkotó berendezése. Az ASTER a NASA, a Japán Gazdasági, Kereskedelmi és Ipari Minisztérium (METI), valamint a Japán Űrügynökség (J-spacesystems) közös projektje.</string> <string name="av_widget_action_descr">Alapértelmezett widgetművelet:</string> @@ -1308,7 +1308,7 @@ <string name="rendering_value_car_name">Autó</string> <string name="rendering_value_bicycle_name">Kerékpár</string> <string name="rendering_value_pedestrian_name">Gyalogos</string> - <string name="record_plugin_description">Ez a bővítmény aktiválja a nyomvonalak rögzítésének és mentésének lehetőségét, ha megnyomja a GPX naplózó gombot a térképképernyőn, valamint képes minden navigációs útvonalat automatikusan egy GPX-fájlba naplózni. + <string name="record_plugin_description">Ez a bővítmény aktiválja a nyomvonalak rögzítésének és mentésének lehetőségét, ha megnyomja a GPX naplózó gombot a térképképernyőn, valamint képes minden navigációs útvonalat automatikusan egy GPX-fájlba naplózni. \n \nA rögzített nyomvonalak megoszthatók az ismerősökkel, vagy használhatók az OSM hozzájárulásoknál. A sportolók a rögzített nyomvonalakat az edzéseik megfigyeléséhez használhatják. Néhány alapvető nyomvonalelemzés közvetlenül az OsmAnd programon belül is végrehajtható, mint például köridők, átlagsebesség stb., és természetesen a nyomvonalak később harmadik féltől származó elemzőeszközökkel is elemezhetők.</string> <string name="record_plugin_name">Útvonalrögzítés</string> @@ -3150,7 +3150,7 @@ Hosszúság: %2$s</string> <string name="map_during_navigation_info">Térkép navigáció közben</string> <string name="map_during_navigation">Térkép navigáció közben</string> <string name="shared_string_other">Egyéb</string> - <string name="vehicle_parameters_descr">Tömeg, magasság, sebesség</string> + <string name="vehicle_parameters_descr">Tömeg, magasság, hossz, sebesség</string> <string name="vehicle_parameters">Jármű paraméterek</string> <string name="voice_announces_info">A hangbemondások csak navigáció közben kerülnek lejátszásra.</string> <string name="voice_announces_descr">Navigációs utasítások és bejelentések</string> @@ -3198,7 +3198,7 @@ Hosszúság: %2$s</string> <string name="shared_string_memory_mb_desc">%1$s MB</string> <string name="shared_string_memory_kb_desc">%1$s kB</string> <string name="update_all_maps">Összes térkép frissítése</string> - <string name="update_all_maps_q">Biztos, hogy az összes (%1$d) térképet frissíted\?</string> + <string name="update_all_maps_q">Biztos, hogy az összes (%1$d) térképet frissíti\?</string> <string name="quick_action_contour_lines_show">Szintvonalak megjelenítése</string> <string name="quick_action_contour_lines_hide">Szintvonalak elrejtése</string> <string name="quick_action_show_hide_contour_lines">Szintvonalak megjelenítése/elrejtése</string> @@ -3729,4 +3729,7 @@ Hosszúság: %2$s</string> <string name="item_deleted">%1$s törölve</string> <string name="speed_cameras_restart_descr">A traffipax adatok végleges eltávolításához újraindítás szükséges.</string> <string name="shared_string_uninstall_and_restart">Eltávolítás és Újraindítás</string> + <string name="routing_attr_length_description">Adja meg az útvonalakon a járművekre vonatkozó hosszkorlátozást.</string> + <string name="routing_attr_length_name">Hosszkorlátozás</string> + <string name="speed_cameras_removed_descr">Az eszköz nem tartalmaz traffipax adatokat.</string> </resources> \ No newline at end of file From 0624dc319e4c3874f49ccef7c339166e89a01882 Mon Sep 17 00:00:00 2001 From: Ahmad Alfrhood <rlo927@gmail.com> Date: Tue, 23 Jun 2020 16:48:51 +0000 Subject: [PATCH 202/300] Translated using Weblate (Arabic) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-ar/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 3534026275..bf0a05f3ff 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -3793,4 +3793,8 @@ \nحدد %1$s وستتلقى تنبيهات وتحذيرات حول كاميرات السرعة. \n \nحدد %2$s. جميع البيانات المتعلقة كاميرات السرعة: التنبيهات، والإخطارات، سيتم حذف نقاط الاهتمام حتى يتم إعادة تثبيت أوسماند تماما.</string> + <string name="routing_attr_length_description">تحديد الارتفاع الأعلى المسموح به على الطرق.</string> + <string name="routing_attr_length_name">طول الحد</string> + <string name="speed_cameras_removed_descr">هذا الجهاز لا يملك كاميرات السرعة.</string> + <string name="app_mode_inline_skates">أحذية تزلج</string> </resources> \ No newline at end of file From aa386898b265181bec05c8e6e386090dd82c2b0a Mon Sep 17 00:00:00 2001 From: Verdulo <tomek@disroot.org> Date: Tue, 23 Jun 2020 20:45:36 +0000 Subject: [PATCH 203/300] Translated using Weblate (Esperanto) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-eo/strings.xml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index e8678ba68c..6a0538c76a 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -814,9 +814,9 @@ <string name="routing_attr_avoid_borders_name">Sen landlimaj trairejoj</string> <string name="routing_attr_avoid_borders_description">Eviti landlimajn trairejojn</string> <string name="routing_attr_weight_name">Limigo de pezo</string> - <string name="routing_attr_weight_description">Agordi maksimuman permesatan pezon de veturilo.</string> + <string name="routing_attr_weight_description">Difini permesatan pezon de veturilo.</string> <string name="routing_attr_height_name">Limigo de alto</string> - <string name="routing_attr_height_description">Agordi maksimuman permesan alton de veturilo.</string> + <string name="routing_attr_height_description">Difini permesatan alton de veturilo.</string> <string name="android_19_location_disabled">Ekde la versio 4.4 (KitKat) de Android, la antaŭa dosierujo (%s) estas evitinda. Ĉu kopii ĉiujn dosierojn de OsmAnd al la nova dosierujo\? \n Rimarko 1: viaj malnovaj dosieroj ne estos ŝanĝitaj (tamen vi povos forigi ilin permane). \n Rimarko 2: dosieroj en la nova loko ne povos esti uzataj ambaŭ fare de OsmAnd kaj OsmAnd+.</string> @@ -3267,7 +3267,7 @@ <string name="map_during_navigation_info">Mapo dum navigi</string> <string name="map_during_navigation">Mapo dum navigi</string> <string name="shared_string_other">Aliaj</string> - <string name="vehicle_parameters_descr">Pezo, alto, rapido</string> + <string name="vehicle_parameters_descr">Pezo, alto, longo, rapido</string> <string name="vehicle_parameters">Parametroj de veturilo</string> <string name="voice_announces_info">Voĉaj anoncoj estas ludataj nur dum navigi.</string> <string name="voice_announces_descr">Navigaj gvidiloj kaj anoncoj</string> @@ -3308,7 +3308,7 @@ <string name="rendering_attr_piste_difficulty_undefined_name">nedifinita</string> <string name="routeInfo_piste_difficulty_name">Facilo de skivojo</string> <string name="routing_attr_width_name">Limigo de larĝo</string> - <string name="routing_attr_width_description">Difini permesatan limigon de larĝo de veturilo.</string> + <string name="routing_attr_width_description">Difini permesatan larĝon de veturilo.</string> <string name="avoid_in_routing_descr_">Eviti difinitajn kursojn kaj specojn de vojoj</string> <string name="app_mode_utv">Ĉiuteren‑veturilo (UTV)</string> <string name="rendering_attr_piste_difficulty_aerialway_name">kablovojo</string> @@ -3803,4 +3803,8 @@ <string name="item_deleted">%1$s forigita</string> <string name="speed_cameras_restart_descr">Restarto estas necesa por tute forigi datumojn pri rapidkontroliloj.</string> <string name="shared_string_uninstall_and_restart">Malinstali kaj restartigi</string> + <string name="routing_attr_length_description">Difini permesatan longon de veturilo.</string> + <string name="routing_attr_length_name">Limigo de longo</string> + <string name="speed_cameras_removed_descr">Tiu ĉi aplikaĵo ne liveras informojn pri rapidkontrolliloj.</string> + <string name="app_mode_inline_skates">Rulglitiloj</string> </resources> \ No newline at end of file From 13910d284daa12f39f7ad85ae565d3481da2d572 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Wed, 24 Jun 2020 10:38:32 +0300 Subject: [PATCH 204/300] cleaning --- .../main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index a397b548e8..b99f51b751 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -296,7 +296,6 @@ public class BinaryMapRouteReaderAdapter { public Map<String, Integer> decodingRules = null; List<RouteSubregion> subregions = new ArrayList<RouteSubregion>(); List<RouteSubregion> basesubregions = new ArrayList<RouteSubregion>(); - TIntObjectHashMap<Integer> trafficSignalsDir = new TIntObjectHashMap<Integer>(); List<Integer> trafficSignalsTags = new ArrayList<>(); int directionForward = -1; From 3030c73f8af55eae3387c8f498496e254b93d320 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Wed, 24 Jun 2020 11:14:45 +0200 Subject: [PATCH 205/300] Fix routing --- .../binary/BinaryMapRouteReaderAdapter.java | 34 +++--- .../java/net/osmand/router/GeneralRouter.java | 107 +++++++++++------- OsmAnd-java/src/test/resources/.gitignore | 3 +- 3 files changed, 82 insertions(+), 62 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index b99f51b751..59afdedb9a 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -28,6 +28,7 @@ import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.TreeSet; import gnu.trove.iterator.TLongObjectIterator; import gnu.trove.list.array.TIntArrayList; @@ -296,12 +297,14 @@ public class BinaryMapRouteReaderAdapter { public Map<String, Integer> decodingRules = null; List<RouteSubregion> subregions = new ArrayList<RouteSubregion>(); List<RouteSubregion> basesubregions = new ArrayList<RouteSubregion>(); - List<Integer> trafficSignalsTags = new ArrayList<>(); - int directionForward = -1; - int directionBackward = -1; - int directionTrafficSignalsForward = -1; - int directionTrafficSignalsBackward = -1; + public int directionForward = -1; + public int directionBackward = -1; + public int directionTrafficSignalsForward = -1; + public int directionTrafficSignalsBackward = -1; + public int trafficSignals = -1; + public int stopSign = -1; + public int giveWaySign = -1; int nameTypeRule = -1; int refTypeRule = -1; @@ -359,8 +362,12 @@ public class BinaryMapRouteReaderAdapter { destinationTypeRule = id; } else if (tags.equals("destination:ref") || tags.equals("destination:ref:forward") || tags.equals("destination:ref:backward")) { destinationRefTypeRule = id; - } else if (tags.equals("highway") && (val.equals("traffic_signals") || val.equals("stop") || val.equals("give_way"))){ - trafficSignalsTags.add(id); + } else if (tags.equals("highway") && val.equals("traffic_signals")){ + trafficSignals = id; + } else if (tags.equals("highway") && val.equals("stop")){ + stopSign = id; + } else if (tags.equals("highway") && val.equals("give_way")){ + giveWaySign = id; } else if (tags.equals("traffic_signals:direction")){ if (val.equals("forward")) { directionTrafficSignalsForward = id; @@ -376,20 +383,7 @@ public class BinaryMapRouteReaderAdapter { } } - public boolean isTrafficSignalsRule(int ruleId) { - return trafficSignalsTags.contains(ruleId); - } - public int getTrafficSignalDirection(int ruleId) { - if (ruleId == directionForward || ruleId == directionTrafficSignalsForward) { - return 1; - } else if (ruleId == directionBackward || ruleId == directionTrafficSignalsBackward) { - return -1; - } else { - return 0; - } - } - public void completeRouteEncodingRules() { for(int i = 0; i < routeEncodingRules.size(); i++) { RouteTypeRule rtr = routeEncodingRules.get(i); diff --git a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java index d65ec8f8ee..da56471f6b 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java @@ -357,58 +357,71 @@ public class GeneralRouter implements VehicleRouter { public float defineObstacle(RouteDataObject road, int point, boolean dir) { int[] pointTypes = road.getPointTypes(point); if(pointTypes != null) { - Float obst = getCache(RouteDataObjectAttribute.OBSTACLES, road.region, pointTypes); + Float obst = getCache(RouteDataObjectAttribute.OBSTACLES, road.region, pointTypes, dir); if(obst == null) { - obst = getObjContext(RouteDataObjectAttribute.OBSTACLES).evaluateFloat(road.region, pointTypes, 0); - putCache(RouteDataObjectAttribute.OBSTACLES, road.region, pointTypes, obst); + int[] filteredPointTypes = filterDirectionTags(road, pointTypes, dir); + obst = getObjContext(RouteDataObjectAttribute.OBSTACLES).evaluateFloat(road.region, filteredPointTypes, 0); + putCache(RouteDataObjectAttribute.OBSTACLES, road.region, pointTypes, obst, dir); } return obst; } return 0; } - boolean foundDirRule = false; TIntArrayList filteredRules = new TIntArrayList(); @Override public float defineRoutingObstacle(RouteDataObject road, int point, boolean dir) { int[] pointTypes = road.getPointTypes(point); if (pointTypes != null) { - filteredRules.clear(); - for (int i = 0; i < pointTypes.length; i++) { - foundDirRule = false; - if (road.region.isTrafficSignalsRule(pointTypes[i])) { - for (int rid : pointTypes) { - if (rid != pointTypes[i]) { - int trafficSignalDir = road.region.getTrafficSignalDirection(rid); - if (trafficSignalDir != 0) { - if ((dir && trafficSignalDir > 0) || (!dir && trafficSignalDir < 0)) { - filteredRules.add(pointTypes[i]); - } - foundDirRule = true; - } - } - } - if (!foundDirRule) { - filteredRules.add(pointTypes[i]); - } - } else if (road.region.getTrafficSignalDirection(pointTypes[i]) == 0) { - filteredRules.add(pointTypes[i]); - } - } - pointTypes = filteredRules.size() > 0 ? filteredRules.toArray() : null; + } if(pointTypes != null) { - Float obst = getCache(RouteDataObjectAttribute.ROUTING_OBSTACLES, road.region, pointTypes); + Float obst = getCache(RouteDataObjectAttribute.ROUTING_OBSTACLES, road.region, pointTypes, dir); if(obst == null) { - obst = getObjContext(RouteDataObjectAttribute.ROUTING_OBSTACLES).evaluateFloat(road.region, pointTypes, 0); - putCache(RouteDataObjectAttribute.ROUTING_OBSTACLES, road.region, pointTypes, obst); + int[] filteredPointTypes = filterDirectionTags(road, pointTypes, dir ); + obst = getObjContext(RouteDataObjectAttribute.ROUTING_OBSTACLES).evaluateFloat(road.region, filteredPointTypes, 0); + putCache(RouteDataObjectAttribute.ROUTING_OBSTACLES, road.region, pointTypes, obst, dir); } return obst; } return 0; } + private int[] filterDirectionTags(RouteDataObject road, int[] pointTypes, boolean dir) { + int wayOppositeDirection = dir ? -1 : 1; + int direction = 0; + int tdirection = 0; + for (int i = 0; i < pointTypes.length; i++) { + if (pointTypes[i] == road.region.directionBackward) { + direction = -1; + } else if(pointTypes[i] == road.region.directionForward) { + direction = 1; + } else if (pointTypes[i] == road.region.directionTrafficSignalsBackward) { + tdirection = -1; + } else if(pointTypes[i] == road.region.directionTrafficSignalsForward) { + tdirection = 1; + } + } + if (direction != 0 || tdirection != 0) { + TIntArrayList filteredRules = new TIntArrayList(); + for (int i = 0; i < pointTypes.length; i++) { + boolean skip = false; + if ((pointTypes[i] == road.region.stopSign || pointTypes[i] == road.region.giveWaySign) + && direction == wayOppositeDirection) { + skip = true; + } else if (pointTypes[i] == road.region.trafficSignals && direction == wayOppositeDirection) { + skip = true; + } + if (!skip) { + filteredRules.add(pointTypes[i]); + } + } + return filteredRules.toArray(); + } + return pointTypes; + } + @Override public double defineHeightObstacle(RouteDataObject road, short startIndex, short endIndex) { if(!heightObstacles) { @@ -492,16 +505,20 @@ public class GeneralRouter implements VehicleRouter { Float sp = getCache(RouteDataObjectAttribute.ROAD_PRIORITIES, road); if(sp == null) { sp = getObjContext(RouteDataObjectAttribute.ROAD_PRIORITIES).evaluateFloat(road, 1f); - putCache(RouteDataObjectAttribute.ROAD_PRIORITIES, road, sp); + putCache(RouteDataObjectAttribute.ROAD_PRIORITIES, road, sp, false); } return sp; } private void putCache(RouteDataObjectAttribute attr, RouteDataObject road, Float val) { - putCache(attr, road.region, road.types, val); + putCache(attr, road.region, road.types, val, false); } - private void putCache(RouteDataObjectAttribute attr, RouteRegion reg, int[] types, Float val) { + private void putCache(RouteDataObjectAttribute attr, RouteDataObject road, Float val, boolean extra) { + putCache(attr, road.region, road.types, val, extra); + } + + private void putCache(RouteDataObjectAttribute attr, RouteRegion reg, int[] types, Float val, boolean extra) { Map<RouteRegion, Map<IntHolder, Float>> ch = evalCache[attr.ordinal()]; if (USE_CACHE) { Map<IntHolder, Float> rM = ch.get(reg); @@ -509,40 +526,48 @@ public class GeneralRouter implements VehicleRouter { rM = new HashMap<IntHolder, Float>(); ch.put(reg, rM); } - rM.put(new IntHolder(types), val); + rM.put(new IntHolder(types, extra), val); } TIMER += System.nanoTime(); } class IntHolder { private final int[] array; - IntHolder(int[] ts) { array = ts; } - @Override public int hashCode() { return Arrays.hashCode(array); } + private final boolean extra; + + IntHolder(int[] ts, boolean extra) { + array = ts; + this.extra = extra; + } + @Override public int hashCode() { return Arrays.hashCode(array) + (extra ? 1 : 0) ; } @Override public boolean equals(Object other) { if (array == other) { return true; } if (! (other instanceof IntHolder) ) { return false; } + if (((IntHolder) other).extra != this.extra) { + return false; + } //noinspection unchecked return Arrays.equals(array, ((IntHolder) other).array); } } private Float getCache(RouteDataObjectAttribute attr, RouteDataObject road) { - return getCache(attr, road.region, road.types); + return getCache(attr, road.region, road.types, false); } - private Float getCache(RouteDataObjectAttribute attr, RouteRegion reg, int[] types) { + private Float getCache(RouteDataObjectAttribute attr, RouteRegion reg, int[] types, boolean extra) { Map<RouteRegion, Map<IntHolder, Float>> ch = evalCache[attr.ordinal()]; - TIMER -= System.nanoTime(); +// TIMER -= System.nanoTime(); if (USE_CACHE) { Map<IntHolder, Float> rM = ch.get(reg); if (rM == null) { return null; } - Float vl = rM.get(new IntHolder(types)); + Float vl = rM.get(new IntHolder(types, extra)); if(vl != null) { - TIMER += System.nanoTime(); +// TIMER += System.nanoTime(); return vl; } } diff --git a/OsmAnd-java/src/test/resources/.gitignore b/OsmAnd-java/src/test/resources/.gitignore index 079e13cfb2..25b6999248 100644 --- a/OsmAnd-java/src/test/resources/.gitignore +++ b/OsmAnd-java/src/test/resources/.gitignore @@ -2,4 +2,5 @@ /osm_live/*.json *.obf *.osm -phrases.xml \ No newline at end of file +phrases.xml +*.obf.gz From c820fa3033f2e5bb5496633ff890aaf88aa92745 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Wed, 24 Jun 2020 11:16:19 +0200 Subject: [PATCH 206/300] Fix routing --- .../binary/BinaryMapRouteReaderAdapter.java | 34 +++++++++---------- .../java/net/osmand/router/GeneralRouter.java | 28 +++++++++------ 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index 59afdedb9a..64d6f7cdf7 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -1,9 +1,25 @@ package net.osmand.binary; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.apache.commons.logging.Log; + import com.google.protobuf.CodedInputStream; import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.WireFormat; +import gnu.trove.iterator.TLongObjectIterator; +import gnu.trove.list.array.TIntArrayList; +import gnu.trove.list.array.TLongArrayList; +import gnu.trove.map.hash.TIntObjectHashMap; +import gnu.trove.map.hash.TLongObjectHashMap; import net.osmand.PlatformUtil; import net.osmand.ResultMatcher; import net.osmand.binary.BinaryMapIndexReader.SearchRequest; @@ -18,24 +34,6 @@ import net.osmand.util.Algorithms; import net.osmand.util.MapUtils; import net.osmand.util.OpeningHoursParser; -import org.apache.commons.logging.Log; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collections; -import java.util.Comparator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.TreeSet; - -import gnu.trove.iterator.TLongObjectIterator; -import gnu.trove.list.array.TIntArrayList; -import gnu.trove.list.array.TLongArrayList; -import gnu.trove.map.hash.TIntObjectHashMap; -import gnu.trove.map.hash.TLongObjectHashMap; - public class BinaryMapRouteReaderAdapter { protected static final Log LOG = PlatformUtil.getLog(BinaryMapRouteReaderAdapter.class); private static final int SHIFT_COORDINATES = 4; diff --git a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java index da56471f6b..be42f432d6 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java @@ -532,25 +532,33 @@ public class GeneralRouter implements VehicleRouter { } class IntHolder { - private final int[] array; + private final int[] array; private final boolean extra; IntHolder(int[] ts, boolean extra) { array = ts; this.extra = extra; } - @Override public int hashCode() { return Arrays.hashCode(array) + (extra ? 1 : 0) ; } - @Override public boolean equals(Object other) { - if (array == other) { return true; } - if (! (other instanceof IntHolder) ) { - return false; - } + + @Override + public int hashCode() { + return Arrays.hashCode(array) + (extra ? 1 : 0); + } + + @Override + public boolean equals(Object other) { + if (array == other) { + return true; + } + if (!(other instanceof IntHolder)) { + return false; + } if (((IntHolder) other).extra != this.extra) { return false; } - //noinspection unchecked - return Arrays.equals(array, ((IntHolder) other).array); - } + // noinspection unchecked + return Arrays.equals(array, ((IntHolder) other).array); + } } private Float getCache(RouteDataObjectAttribute attr, RouteDataObject road) { From b7961d07d5eadbaafbdadd655b62f25bf8efa39a Mon Sep 17 00:00:00 2001 From: Dmitry <dmpr0.ua@gmail.com> Date: Wed, 24 Jun 2020 12:19:17 +0300 Subject: [PATCH 207/300] Added icons: altitude range, analyze --- .../res/drawable/ic_action_altitude_range.xml | 45 +++++++++++++++++++ .../drawable/ic_action_analyze_intervals.xml | 39 ++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 OsmAnd/res/drawable/ic_action_altitude_range.xml create mode 100644 OsmAnd/res/drawable/ic_action_analyze_intervals.xml diff --git a/OsmAnd/res/drawable/ic_action_altitude_range.xml b/OsmAnd/res/drawable/ic_action_altitude_range.xml new file mode 100644 index 0000000000..0df55f2ca1 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_altitude_range.xml @@ -0,0 +1,45 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:pathData="M20,2H12V4H20V2Z" + android:fillColor="#ffffff"/> + <path + android:pathData="M12,20H4V22H12V20Z" + android:fillColor="#ffffff"/> + <path + android:pathData="M15,9.4142L12.7071,11.7071L11.2929,10.2929L16,5.5858L20.7071,10.2929L19.2929,11.7071L17,9.4142L17,19L15,19L15,9.4142Z" + android:fillType="evenOdd"> + <aapt:attr name="android:fillColor"> + <gradient + android:startY="6.00001" + android:startX="16" + android:endY="20" + android:endX="16" + android:type="linear"> + <item android:offset="0" android:color="#FFFFFFFF"/> + <item android:offset="0.5" android:color="#C5FFFFFF"/> + <item android:offset="1" android:color="#00FFFFFF"/> + </gradient> + </aapt:attr> + </path> + <path + android:pathData="M7,14.5858L4.7071,12.2929L3.2929,13.7071L8,18.4142L12.7071,13.7071L11.2929,12.2929L9,14.5858L9,5L7,5L7,14.5858Z" + android:fillType="evenOdd"> + <aapt:attr name="android:fillColor"> + <gradient + android:startY="18" + android:startX="8.00001" + android:endY="4.99998" + android:endX="8.00001" + android:type="linear"> + <item android:offset="0" android:color="#FFFFFFFF"/> + <item android:offset="0.520833" android:color="#9FFFFFFF"/> + <item android:offset="1" android:color="#00FFFFFF"/> + </gradient> + </aapt:attr> + </path> +</vector> diff --git a/OsmAnd/res/drawable/ic_action_analyze_intervals.xml b/OsmAnd/res/drawable/ic_action_analyze_intervals.xml new file mode 100644 index 0000000000..9d7567b31a --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_analyze_intervals.xml @@ -0,0 +1,39 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:pathData="M22,18H2V16H22V18Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> + <path + android:pathData="M4,18H2V20H4V18Z" + android:strokeAlpha="0.7" + android:fillColor="#ffffff" + android:fillAlpha="0.7"/> + <path + android:pathData="M10,18H8V20H10V18Z" + android:strokeAlpha="0.7" + android:fillColor="#ffffff" + android:fillAlpha="0.7"/> + <path + android:pathData="M14,18H16V20H14V18Z" + android:strokeAlpha="0.7" + android:fillColor="#ffffff" + android:fillAlpha="0.7"/> + <path + android:pathData="M22,18H20V20H22V18Z" + android:strokeAlpha="0.7" + android:fillColor="#ffffff" + android:fillAlpha="0.7"/> + <path + android:pathData="M2,4H22V16H2V4Z" + android:strokeAlpha="0.2" + android:fillColor="#ffffff" + android:fillAlpha="0.2"/> + <path + android:pathData="M2,12.4142V9.5858L8,3.5858L16,11.5858L22,5.5858V8.4142L16,14.4142L8,6.4142L2,12.4142Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> +</vector> From 578835df550cc5ff6a9991e26abc64d8a0cd0ac2 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Wed, 24 Jun 2020 13:29:14 +0300 Subject: [PATCH 208/300] quick fix --- .../src/main/java/net/osmand/router/GeneralRouter.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java index be42f432d6..0032fb200c 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java @@ -373,13 +373,10 @@ public class GeneralRouter implements VehicleRouter { @Override public float defineRoutingObstacle(RouteDataObject road, int point, boolean dir) { int[] pointTypes = road.getPointTypes(point); - if (pointTypes != null) { - - } if(pointTypes != null) { Float obst = getCache(RouteDataObjectAttribute.ROUTING_OBSTACLES, road.region, pointTypes, dir); if(obst == null) { - int[] filteredPointTypes = filterDirectionTags(road, pointTypes, dir ); + int[] filteredPointTypes = filterDirectionTags(road, pointTypes, dir); obst = getObjContext(RouteDataObjectAttribute.ROUTING_OBSTACLES).evaluateFloat(road.region, filteredPointTypes, 0); putCache(RouteDataObjectAttribute.ROUTING_OBSTACLES, road.region, pointTypes, obst, dir); } @@ -410,7 +407,7 @@ public class GeneralRouter implements VehicleRouter { if ((pointTypes[i] == road.region.stopSign || pointTypes[i] == road.region.giveWaySign) && direction == wayOppositeDirection) { skip = true; - } else if (pointTypes[i] == road.region.trafficSignals && direction == wayOppositeDirection) { + } else if (pointTypes[i] == road.region.trafficSignals && tdirection == wayOppositeDirection) { skip = true; } if (!skip) { From a361a32234ea9e73093cbf262082cb198c0409ac Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail,com> Date: Wed, 24 Jun 2020 14:18:44 +0300 Subject: [PATCH 209/300] handle share text intent --- OsmAnd/AndroidManifest.xml | 2 +- .../net/osmand/plus/helpers/IntentHelper.java | 39 ++++++++++++------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/OsmAnd/AndroidManifest.xml b/OsmAnd/AndroidManifest.xml index 4b8ed91a87..5a0082b792 100644 --- a/OsmAnd/AndroidManifest.xml +++ b/OsmAnd/AndroidManifest.xml @@ -394,7 +394,7 @@ </intent-filter> <intent-filter> - <action android:name="android.intent.action.PROCESS_TEXT" /> + <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter> diff --git a/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java b/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java index 6395a85a96..d58271a27c 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java @@ -56,7 +56,7 @@ public class IntentHelper { applied = parseOpenGpxIntent(); } if (!applied) { - applied = parseExtraTextIntent(); + applied = parseSendIntent(); } return applied; } @@ -257,21 +257,32 @@ public class IntentHelper { intent.setData(null); } - private boolean parseExtraTextIntent() { + private boolean parseSendIntent() { Intent intent = mapActivity.getIntent(); - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M && intent != null) { - CharSequence text = intent.getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT); - if (!Algorithms.isEmpty(text)) { - return QuickSearchDialogFragment.showInstance( - mapActivity, - text.toString(), - null, - QuickSearchDialogFragment.QuickSearchType.REGULAR, - QuickSearchDialogFragment.QuickSearchTab.CATEGORIES, - null - ); + if (intent != null) { + String action = intent.getAction(); + String type = intent.getType(); + if (Intent.ACTION_SEND.equals(action) && type != null) { + if ("text/plain".equals(type)) { + return handleSendText(intent); + } } } return false; } -} \ No newline at end of file + + private boolean handleSendText(Intent intent) { + String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT); + if (!Algorithms.isEmpty(sharedText)) { + return QuickSearchDialogFragment.showInstance( + mapActivity, + sharedText, + null, + QuickSearchDialogFragment.QuickSearchType.REGULAR, + QuickSearchDialogFragment.QuickSearchTab.CATEGORIES, + null + ); + } + return false; + } +} From cfa98dcba7c79e6cbb8d2cb202ee7b47ba09e778 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Wed, 24 Jun 2020 16:53:09 +0300 Subject: [PATCH 210/300] add OSM notes shape and fix tap shape --- OsmAnd/res/drawable-hdpi/ic_shield_tap.png | Bin 1492 -> 0 bytes .../res/drawable-hdpi/ic_shield_tap_small.png | Bin 1235 -> 0 bytes OsmAnd/res/drawable-mdpi/ic_shield_tap.png | Bin 1309 -> 0 bytes .../res/drawable-mdpi/ic_shield_tap_small.png | Bin 1182 -> 0 bytes OsmAnd/res/drawable-xhdpi/ic_shield_tap.png | Bin 1686 -> 0 bytes .../drawable-xhdpi/ic_shield_tap_small.png | Bin 1855 -> 0 bytes OsmAnd/res/drawable-xxhdpi/ic_shield_tap.png | Bin 2172 -> 0 bytes .../drawable-xxhdpi/ic_shield_tap_small.png | Bin 1474 -> 0 bytes OsmAnd/res/drawable/bg_point_comment.xml | 9 +++ .../src/net/osmand/data/FavouritePoint.java | 4 +- .../editors/PointEditorFragmentNew.java | 5 +- .../net/osmand/plus/osmedit/OsmBugsLayer.java | 4 +- .../osmand/plus/osmedit/OsmEditsLayer.java | 3 +- .../osmand/plus/views/ContextMenuLayer.java | 53 +++++++++++++----- 14 files changed, 59 insertions(+), 19 deletions(-) delete mode 100644 OsmAnd/res/drawable-hdpi/ic_shield_tap.png delete mode 100644 OsmAnd/res/drawable-hdpi/ic_shield_tap_small.png delete mode 100644 OsmAnd/res/drawable-mdpi/ic_shield_tap.png delete mode 100644 OsmAnd/res/drawable-mdpi/ic_shield_tap_small.png delete mode 100644 OsmAnd/res/drawable-xhdpi/ic_shield_tap.png delete mode 100644 OsmAnd/res/drawable-xhdpi/ic_shield_tap_small.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/ic_shield_tap.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/ic_shield_tap_small.png create mode 100644 OsmAnd/res/drawable/bg_point_comment.xml diff --git a/OsmAnd/res/drawable-hdpi/ic_shield_tap.png b/OsmAnd/res/drawable-hdpi/ic_shield_tap.png deleted file mode 100644 index af3bb145ff814b358c594889f89e7195f690e661..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1492 zcmbVMdr%a096#pJlq4B20|s+jrOa_}ckftkce_)LyF<=8Vi1#5vc28k!3Mi~?ycTQ zfC-+~aN3oxXeLBv8pBLy)bi1&jg4~F2&ICLv|&WS8uD?z;E%LD<fuOw|7d4+f3MHy z^Zow5kNv2yU~XbUdV)ryNp$4fiqw&czT?KK-(YHeKpoN)dx<h%aw|SY1{w<|xd7x4 zm@-fV7;fdVQ^2IrXjkyXB}$3&4Vsk%9TUaq{DMbiYc!@geh<S|00nY^GF~*px4u6H zLp*1O7ZOg)>9K-xKEFx^^Q#Jq*{TYb;@~;6A(Nk01q7flkYA`2y|mv959!kCJi3j- z&=5qaFvCxrDsdJ<R!IgBq02^C9LFIerNar*peJTQdJHE}j6!h?!EhSKXgvlEKd@>| z=G=6VEpOPCx-!G%isGSB)aUc*d<LB)m!UXCQ7EQI^?F1_Al{Xt!uS!<J1wSQ1723< zJqj<0P*jm|Ny`;8ta|$73WCS!91#}1!+}ymhWZ%~it8{`5Tf@QLVJ}W@UI)AqP@i{ zJpe5NUTL|^s`+qFi;>mXJ>5_gsCq-cDf4Plm`a<(E*F5PIBaHEJ<)MIN0TIm83=+z zaFWCk0?Wb?7sX~HWHtxfn4Y3oj*01v#<v<tTb|uY*$G=Nj@yY`gAub+7BZJI=4BBU zTa4=vy$U0;AZD9aZ4YzFr*dhl3>Za{izTTtRt1ISk|KG_B@bk^4rLvhv5*%z$>)7F znx-eWwgH)60k}L_5}=_t)BGqtxG|O>2p5T9faDN^F^fSc+zk+da{+^qRpXIOz{7m* z|HcnhokF9<@}J^~ZK)L*osP7Ex)^CDAgUcCtF7|$okeDiChnfYW-0bx>i=Al>ae7f zt#Mhi%CA;$uYKH+{m^xIT%#qk>mB)Jcbc5B>JnS?=_|OUyY`ogJ^SZXObM25?4BC7 zR^?CpW6SZK+Ig+to!_uNr6=vtb9c7aNjJ_6xR#`DyKP*&U|L|O>4*AYu<yo)%N})- z)}^KO@y))TNd<p32P}n$?i?LoxioZpN9LmYp@O8#ao-3zxlKZFhxXo-vYyh?_7#bP zYd^3)Xg9|H%_p21pBxb@n1RObnzKjS9I44&=Ic|xomj$V9LYI3FkOh7T`%HI1utz5 zWbA5q-&)gsu6e8Wev32f#6fy>@T(X0HD`Xgw<TwHM)=2t{QmczO<Q)jfA!|BBd6(b zAawCuOCmQjUTzNr8_#AgzI*jEZDai2O&+N1I8=7Iccx=kZ+b%g1S)jq=ryP5T0`T( z=~ql#U>+07d?o@<h#X%%YmH@cMtCC@PC0OBOI_rX&Lx({r0}lO)sY$Tkqcv!-`XU% z#ocXoUvDTnTr+0P^O>*L9emJVb?f|ZCNg2rnby&2Cv%#nXif8fcctW)PkwFPpBLNo zO*fMxxL8Yuwx#z#TfcDj1q&BcFN*K<KhEn+?Ms=v;q-|^n|o&tnzftOO$t^&Y}=Q2 z<l{c{!ml^OJAZonz{9Tfj@n~iue%p|QTALJld7qkvu9O@p|vXdpLN&^Y`b&ct@{Us Ci6|KW diff --git a/OsmAnd/res/drawable-hdpi/ic_shield_tap_small.png b/OsmAnd/res/drawable-hdpi/ic_shield_tap_small.png deleted file mode 100644 index e089b51a75beffbc5daccd01ce0b8b8885320669..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235 zcmbVLTWB0r7#@?F#DrEW7)&%W%vz{4b2+;^o0)0W+RSX)#ctg0Zf&3yoSiw@ohEbX z%-QTDA~dZJDyXeUT0ulwB7Lw4K8R7FO?|KlqE?7S1#LmGFWp9I@u8H&Gn?J$L+FD8 zGv_kj_y6C2do4Y%Yh!C?D?tz&le?7+UY`iwmL~k&&P|`jO9x5}qO3iH%Bl;Aow}We zWYSa%FauS6?C=8YC5XmRBR7Z!Q+p)MHW@X*Fuv(vHbM06@EuhfhKS6=f?>s}r7tc} zq@l;D{d|f`IWjC7yT@Ia9UsVP<HMS$Q#+m}dwmHTFd<S&-yE?#$&XW2yAs|9*DOU= zA!s;Gt%@2<rAgU#A;~i_S_1%(Jt6~mArj`h$uI|amJ?aP(HxKfCxtn(_E6ZHs}D&T zrN8D2pW;*zAxC1_a=FZuBaH19SRjfb%Z1r+n8pa&8?%t=)0P*iTTq~<xrT!b+ad#t zYThoPIE9t2hG06W)S6+-t0fAjjP+HA1q{cUW)N2u?V$|(SH`+%FE{2uHUmAo<Z8Gc zL!mku=kDH)0w7i+J?9#@DC&q}Yb6s}D5=CL{D;vET@nP2i}1Wa13>^Z&qV>97qu8I z#B?~sg+)=*)w-Sa_;MeJB@`i%h{^o`BzS=r6}c~hOCoa#S&r7ZNy|g3rNO#y1N*LV zm3wj}*@Y^y-JETY)Vm;Ew2|!<ZHJWQYSqcD`wdIC%idE#nO37#plggmz2CJ>vYKbf zSVw~%?!j#nfi$1bi?k4p;?N<`=x9$A=seHG_!vjk`1=3NAB#n?L9_g)dFofVBZKYQ zDB#1|FhL7Xkc&s<#(Xvyvs+1JXU_lm#^m0%W8_1ZylCqrd*=K~bNBP<mySPBdF3(1 z7#*KJxoMd_x_tBY%=@RVi`zriPszg*EA5||=@zxCY2Vq0uXh#>9dAgTedB=H)PCh6 z{o`Ec<zKS%&5QYl@2_><e)8t;ZHtwOmkW<KeB%ss9b!6KUifm$Bi(=Q(av1_WYe*! zum8I5)BeodgI{esuy<}tX!e66w-(=er|rGFGiZVj$=SKrH-EJCT2IJ7ePq{%l`FID z3kT`O*-}So>0IpHzc*k0bzkMg)djtG!!ylS-<&FL_`Ea)y5^TIy?sjg*gr9O?z=~S jxO1>lx&Mz>XNX4Pw{M@_CaffugZPt)0cE=H#iRcKF(;zt diff --git a/OsmAnd/res/drawable-mdpi/ic_shield_tap.png b/OsmAnd/res/drawable-mdpi/ic_shield_tap.png deleted file mode 100644 index def29aa671a94cde98afe73da6aaeea3f17fdd49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1309 zcmbVMZ)_7~96nJ%k>QX)V%e6<jUd9Vch~mXyK}eF^}4OF&ZX<J5)JNp_qM%ky{mV( zwwn^O%`79!rc{ZQ5+mx=1X-+!@q>wsAVa3^1JeYJCSpPqH$(~FjOg30oqkyO;3aqO zzvp>=zxVg&j&^pmR&BCuLJ*|N-zEg%xV!k?zX5*V<FC)a;StjpHoLT_nHF_`cw{XC zP=7*<fglj&!DlXkMg+MxrG&y}IMB{XTEZ$8G1g2X3E2qJ=*}cXsSlWF1jH1T$8LUd z7DE-8$9m`h8Ay6TTxlE9LDx`6NE+&sSQ&FSp^X_13M7CjqM1a$YH%4IE9r7@Ufd=y zv;;Bxcx=U~aG(?QYC1q^s}q+fib7qim7*EDjc!0~Bt;V>OHd?EQXEBcHWDpA7__F# zQ7$O7lx@KkkHt+h$q__4owla!R!xr)6w9&%X(Mbl93pUIP&LI2t{U|f1pye6t|U!G zQ_-TL7|{ky9)q5)Tp^JR1XhJrqZ}w0G9n`;3Cc<miA3>UCA47%!M|>-i8exmNk9aF zp$+H~%ty4oLWZ%syP+Zwdc!@TD=;Zyzo1D2380#Ofydy9RaRt<VMx+W(+o~A429FA zgTf=M<ir`L45FlsWhGgx=&Z%}`j}>K3(5Lup_!t5H0xj(pNn+37}m?QFl>eER}E8C zB~Y=gK-*<5b5}0s)q!YgdPvjyD^<`L*G$cbYf04WEoB|u)1#=emNp(MrfKEY0??Hd zkXv*uftKRTDQox;B_*1sBMeRgM#k+fhlsOO6yUTR0d|)J<Kd*SGGG3`@gty9M6p=@ zQ#_R|Sdqo)YAe9SYBK>9c90HRrT5~3iXiv!e!&yUe7BtYV#^3w?NcV>`?q~>Uj6&| z{DaQy@8d5bhhILFYrBr(XXf%Jj~{!zspj$VPj9|eU4JLy-naXO-Xjm~Lf1d}!G>(p z(roQh`>QOyC;!S{6be88xbdao?Zz#9&+Kb&pP9HZd;)ds%8g!rC--LehsQ?li%ry? zTe$V@%&gMhZmD~trp<S|9dKVtvAsrktIZ;1bB?b*55BVCc{G*#V=15AK6&BcZBrj7 z;|JHbHXMq7bhrn<IzC-@$I>-*Wp4D!SpAM?t0&mV<<Z<`&rkNn!s(;u&6+}fV_|3O z@~@ud`K_n<@o#DhV`~23^fWaY;eW8bdVu=+{a@xU44&%lQyNm#jj`XZZOJapFNTNl zT1`2%lw*#&-<>;`+PgUQ+`ykZ%=0^M?^}14=x)CB^m6R8x^<fok7Mcq_mSFb#UGa6 L*CEU__m2Dni{-?s diff --git a/OsmAnd/res/drawable-mdpi/ic_shield_tap_small.png b/OsmAnd/res/drawable-mdpi/ic_shield_tap_small.png deleted file mode 100644 index eabca2da746e2a13923919954ad376eaa40e8b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1182 zcmbVMTWAzl7@k-S5}IB@NNH+hIzehRb2)R{nQ7KkcQ(4Tn}p3m0={&1=4^JlnK|Rk ziL=R5P+Ex^3Z+#M>03n~Qd%$2D(Y(KLmLWhX~9a{P_Wd8LIqzc7VMc#HuWL+;K0l| zXXg9<|NCz<H!`%ly{)^AqNw)V9<xB!&g9<MN}ls`J?&(95ogEoC@SOF3L&-AK_y7% zJZl0Lpyf>O`x^FB)KmN2;y519ziHUW<E#Y3)x3bPDXM><7Fc!_V!8w;TtChHefb(g zyH1)JQ}RMS$iRxbXC{QBGebptrfTaBGq8j1uNlOE2eC!hyh%SYYH6ln*C6}kHP6ru z2(G4?Wl`h#5julHNGqJm+5iALrE@^hBvI+3MFA+hpz}ar1z-Td5CwYWVu-iUDH{cI zaK#rnrI`xGfx+`}9CNY6p>To+x~}tr$crLN5NtH<W2?scQE$_N2_rjn1MDK7PApm_ zG=<X)QMw$07v%G+hW%(IQ6y!2%?fzH3B2beaW&8pF2Mg~tci|_(*fiQFhWzIP3lqZ zZIVgu9`7gt5;ewf=#rvXlP0pKJm}+`nP$ir&T$<>(*!|M6paO%23SRq0b9~-mDN-S zmIYDQZO3ZbS&MJVa#q?UrLt;f5P+<rr&LK(^=uYs0LY5a<mUVcTfPmOzFp#bg{wZ6 zYh*%bVH6e-nrwE#NCjaORZu`@GL5R!TgP1AL2>kIQl{moO&GfSp)(jFk8b4IaM#e_ zh$+%G5@eN9NoO@#CZR)MvvNuXj-m*vqLLVv`OcH(k0+w|q*)$mp5`mkk;!&-6v$z9 zn4nK4C?unj|7uYtV|F!X?kv`B-TvVEGdJj`-yJJ|e)QmPT}uyt#;N!wC!IfbJ9Tb- zTZgaSfA-gJUbyu`hZM8l;`s&rZl_^(Ub=FJ={CET)bE*-*$1x(eJ}N#;=h|4+;Z@E zW!=Bj(Vn}XR!?tg1>D$|n^W5_K0on({oZ@?;+d%9&bIE?DzEQtxv;SGa<#s&?w=oL z-`EiRG%IcP&fdRysPz}n^0E3(?}@h$4?p<mi?a{oBOh*67C-x=Ua23J?=Aj5(Dm2e a*%s>0K6%rD`g2k8$H--e%ujZ`b>Kf4XM`UB diff --git a/OsmAnd/res/drawable-xhdpi/ic_shield_tap.png b/OsmAnd/res/drawable-xhdpi/ic_shield_tap.png deleted file mode 100644 index 7b85789e814929261a466d38506be14de77262bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1686 zcmbVLYfuwc6kbAz0-{(^5ZiH$N)<_VH(?<O1R)PFlJF8F4tC6DcLOPGHr*@`uvDZ) zM=DxIOQE)wX{u8cXnZlg30SPQb)=)Vs6dC}w1Z+nt)){P?FPa2hvSdlnce$3-#Op? z&N<sM(o%u~!UF&R2-2<6WO1|J`%M>c|8G9ZT)|EAS*?*>LtEHVj3I#}f;N+&j>7WE zED|Hi-nvM}1AuRdHQUG<4SEGmQ)0|(BX&}D4h;bDE1h->FC<yeOy*l{O5y0K4k2hI zl)_xp02}OTvcS5koFUhgr)A^ig}9s$u1o;qoeItYMY0&^q>5|~g;Ob<@T=g~-eX7z zPMENTO5rn7MneXurWq1M#W5lrK@c!jE=Ew9RDwo<5*R@tSPmhu2u2hLtdPLq<PdVv z7{a2+(j-sD;&w`50n6GI5L8-PDlV0ZX(k^+<Z?L#OCX6v#94?OWi}RbifoR>Qyw&= z181yu)=JwzuSd*G7qdzs$Mo3~D7(S%+_B9uDHJCe<izX{B8DM~^1f@r+QDX#|I&D& zwIjRCPC{9vgDz%pE+3Y~Q(#WJmk071a%>dojFn3YR-~cvVv4k}I*n4u-G~V*p^(X7 zSc;-D5h9ZzA{35BL}oc2Ba+1sqy?79<v4*&`FRmum7E+cS0P$0s!<_`7L}=!)GAaJ zBh$!bF-cn06jo<*u$T=er(#>V*ppbzOR)+yLt-q=WYcufR25_t&@AmJpzWYqJ&|>A zS+3Pa(4~&$-ZVXXwT5J@B_xr|&=feKv%>lU4i*?kQPeCG!K923Nn@iiksPs*B9t(b z(pa3+BL)>t;)(yOAH<P@yv6dL;+Z<)D$=`r-U{62c{7nVu7en^RdPlZZ2-V)*J+Zn zoi|24sYvgFgU_F`$r53{=9QuGr{?gWv(<nkxOZe}zH0mGQ~m8{`*!uMBo^JJ?>@Xv zQQ0BYrr}fxPjKE77Uqkaq6EpVTYY|+A=k=|lt*T5pV^+Wx9`HMLrvzd%v<XQM{g;9 zOLZLy?cw=?>bbt}<!Aw_)m)u;h9|I}j}#Y%w=RqvnEm+`&)<;|eAh+d>Y3)=<ANFc z2aeSotY;o%br&`^-w?nTGNplQO~#O48-`l=g3z>_?NJV1;9SVl6=8xuwjue~mtCNC zM()VjoT=Yq?EbXdeKvPEuBh-}+6J@w<jjUYLT*Oh<jot5*1uMMSa;}B<^s?D`t);8 zPY)ion$&^0>N&OUS+ziFPyUIv#<Y8zdA+q`uBau4pkur{_`c52ApHaPa`(2e^j#+_ zABMLmqNz7G76S_cH=+9l^Wtuw&@&Fb|Hy%wxRS)Wo|gV$-h$~*(I#Gm((q@;(oH&_ zD8BJV#WkOL0l(!t&-ZMSPs^NO_e?+c642!D=l&qUSU01^&$Oty38<gOkIFZRfH*#X zWR*|R!eF=3&;3TCCt-d=V|$3_aAhSK;<=yLWUXjyEnNST4{+tSOYGj)^SJ6VwzcC6 zzTgQlgt%*WOp{jBzdat-Q1Y|BlH41y$@Na-+7$!we9P6>*O}WM9W}QZ9FE5F-XmkK zsycjwrr*<4j*J7n>vw<o_3qZ=T_wA#&$;Jy*;5TUrl!!8GwZfcp$1>y(#K2s4p<WN z79Na0mR;e``~9!Z*#&V$cMg5~S;lF!O3;^=pp*s}!GR~^(#vClH5+3a_C|L85L4v; zV?fG>bMhL}yZ78mt=Wk!YaV?!0X$$^-T%wg2ltzHc0^se>>|wf9%V{Q)B0qqw`l40 k^TXcXjKC9>mO7kT=>v4#AIzI2?KA=0&}q{&Z7NgMKm5dNy8r+H diff --git a/OsmAnd/res/drawable-xhdpi/ic_shield_tap_small.png b/OsmAnd/res/drawable-xhdpi/ic_shield_tap_small.png deleted file mode 100644 index 1b4bd21bf561482dc74d42e1f0e250eecb13dfe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1855 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 HZz=c(6gt)v diff --git a/OsmAnd/res/drawable-xxhdpi/ic_shield_tap.png b/OsmAnd/res/drawable-xxhdpi/ic_shield_tap.png deleted file mode 100644 index 0f7657642adc01191c3fdb8fc0592d6cdd1e3a29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2172 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 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_shield_tap_small.png b/OsmAnd/res/drawable-xxhdpi/ic_shield_tap_small.png deleted file mode 100644 index c3b83581c110ba7f4bfbd50984573a1051668d59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1474 zcmbVMdrT8|94`YLlBo=45KQE_E^I`u_n_CuNkM3-G+7Z#6?_D_-u+5%(7SRypfFf~ zF)|70f*DTt$g+_*vPr~6#pq%onTzxJhrHY$HfHg)O>oi3495Kml<g1VAG`eSey{K6 z^L^jGlHx6^;#1>QD%C1mk;MV$obVgB0)CmfDH%>FN@2NDD!G*gRtBnkUUC7%=4GpZ z1F(E!?L`0)(e;9}Tq(D|!*G&U!-i!v0k03DAz5C)$8yy`L0q6p5KZXx+4CqO@Fuj3 zwi9-r8F+-ECK;4A6+5}6YR<@`dAUeVfPn;Fps+~5TO<0JfC-)FW#Bq|jHAfBh*E7r z7mO;mmmp?I1_-UuVH`=4h~B6nX+t(eXCV|p(l}wnNdhBCh9nq@Ko%bqYLj_4<FHs4 zb-|qp^(cyu!SRNM22De@Mv|*=(r7f|1cg%+1|=|mqo}X}O!TWG3>M($WWlEhl8A&E zS(j9&m{4fxf(u@s-M&OD`WFKQLxu-fA5Llr-0KbdH81T~9N=FwmX-E98+`zG0KZfx zb1)xnbp#A!_i{yHL1+!LRTf}U*cyw()p>!a*eoU#-e`D%XAA~{$fjunMj8wxMiW{R za~U}uX3+7#O;AQ7$FmWh<?sdh=0bwf>k4&dD@hj82EA2RNLjM2wADgW1}cKJiGGC@ zIS|n;K;4U2`lVRLECW`NWTzz6M5>^~BPo*KBl!@sc|PmN+hu~tOAY?aaGDmpwg6eE z2fS65yvTf<8DSY4cuEh;CL3V1%Voq2S}k-PkQ}DfYe}A_2_3B?&_z7|f8&QkqwsLC z{HJ&#N3bHp%cWL;o26y~BJ3a;whH#Odq|~<x^1)MI|DcWI3iV#5(yU$-fVYn`tV}q z`!BAY%AcxylGZ-<aQ_#Vley~N3i*epL37KtGjp1W48e7FFq?C@tr@X9Di=rb(R0&1 z<GXIHEA`nX+Fcb%Em5aKNwaae*T;6YRCS+v+9L+zPR8U7zxheW%E{Ked#632m9wv( z3!abJk*51T>ih@S65BS;B;~Kk>^L^EJ2Tj~Ir;MRXPv>b38Cw!wWEXTU~1RU>K5mT z&68C#S+~EXzWG!aOY}X;87X0oPHt=at_aNSZY&#WeJed>LrI0Yea%c4dyo8b-`?8j zyW019(YuE~-#8<;rrh}W#ElGHrR~Sx$1;*b13woa<6Y7(QG4Pm?)2?3Wo^$g?TK5V zF|_(eg2q>m|2DmM%Cx!vO84K-LK)kWSBG{GzDrTfiLW)^R^`U8$dy%TG0|zmO~Y%S z&7F8mysJ)_9Iy`tho7h4pWM2|>x#bcm(cM<ytK0W!O4lF{K-!J)x+c7uXd??e;y3n zI`ddpE9mbWxI*v$DcT)4q^eJLu<60s&gR%@_2|P)_n}v2<DVxEoLk?uR-5&pGoU(7 z-ug9d_E_K}^_ummO_mLf!(*P+C+GTKG}hd&=udm}MtR%Xg<&|78@o=`GtygnbyM8V P@L$zdSZo<AsBHfSjf)W? diff --git a/OsmAnd/res/drawable/bg_point_comment.xml b/OsmAnd/res/drawable/bg_point_comment.xml new file mode 100644 index 0000000000..bfdad36f89 --- /dev/null +++ b/OsmAnd/res/drawable/bg_point_comment.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="36dp" + android:height="36dp" + android:viewportWidth="36" + android:viewportHeight="36"> + <path + android:pathData="M5,2L31,2A3,3 0,0 1,34 5L34,31A3,3 0,0 5,31 34L5,34A3,3 0,0 1,2 31L2,5A3,3 0,0 1,5 2z" + android:fillColor="#727272" /> +</vector> diff --git a/OsmAnd/src/net/osmand/data/FavouritePoint.java b/OsmAnd/src/net/osmand/data/FavouritePoint.java index 3f7d74b412..6ac048315d 100644 --- a/OsmAnd/src/net/osmand/data/FavouritePoint.java +++ b/OsmAnd/src/net/osmand/data/FavouritePoint.java @@ -310,8 +310,8 @@ public class FavouritePoint implements Serializable, LocationPoint { public enum BackgroundType { CIRCLE("circle", R.string.shared_string_circle, R.drawable.bg_point_circle), OCTAGON("octagon", R.string.shared_string_octagon, R.drawable.bg_point_octagon), - SQUARE("square", R.string.shared_string_square, R.drawable.bg_point_square); - + SQUARE("square", R.string.shared_string_square, R.drawable.bg_point_square), + COMMENT("comment", -1, R.drawable.bg_point_comment); private String typeName; @StringRes private int nameId; diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java index 38ac1d2dce..700d87908f 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java @@ -380,7 +380,10 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { private void createShapeSelector() { FlowLayout selectShape = view.findViewById(R.id.select_shape); for (BackgroundType backgroundType : BackgroundType.values()) { - selectShape.addView(createShapeItemView(backgroundType, selectShape), new FlowLayout.LayoutParams(0, 0)); + if (backgroundType.getNameId() != -1) { + selectShape.addView(createShapeItemView(backgroundType, selectShape), + new FlowLayout.LayoutParams(0, 0)); + } } } diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java index 9ea08e353a..ff288cba84 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java @@ -16,6 +16,7 @@ import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; +import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -155,7 +156,8 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider backgroundColorRes = R.color.osm_bug_resolved_icon_color; } PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, - ContextCompat.getColor(activity, backgroundColorRes), true, iconId); + ContextCompat.getColor(activity, backgroundColorRes), true, false, iconId, + FavouritePoint.BackgroundType.COMMENT); pointImageDrawable.drawPoint(canvas, x, y, textScale, false); } this.fullObjectsLatLon = fullObjectsLatLon; diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java index 8363891600..1ee7eca977 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java @@ -78,9 +78,10 @@ public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IC private void drawPoint(Canvas canvas, OsmPoint o, float x, float y) { float textScale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); + int iconId = R.drawable.mx_special_information; PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, ContextCompat.getColor(activity, R.color.created_poi_icon_color), true, - R.drawable.mx_special_information); + iconId); pointImageDrawable.setAlpha(0.8f); pointImageDrawable.drawPoint(canvas, x, y, textScale, false); } diff --git a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java index ecc71dcfe2..e7e1338362 100644 --- a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java @@ -2,6 +2,7 @@ package net.osmand.plus.views; import android.Manifest; import android.content.Context; +import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; @@ -24,6 +25,7 @@ import androidx.appcompat.content.res.AppCompatResources; import net.osmand.AndroidUtils; import net.osmand.CallbackWithObject; +import net.osmand.GPXUtilities; import net.osmand.NativeLibrary.RenderedObject; import net.osmand.RenderingContext; import net.osmand.aidl.AidlMapPointWrapper; @@ -40,8 +42,10 @@ import net.osmand.core.jni.ObfMapObject; import net.osmand.core.jni.PointI; import net.osmand.core.jni.QStringList; import net.osmand.core.jni.QStringStringHash; +import net.osmand.core.jni.ResourcesManager; import net.osmand.core.jni.Utilities; import net.osmand.data.Amenity; +import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.RotatedTileBox; @@ -58,6 +62,7 @@ import net.osmand.plus.activities.MapActivityActions; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.plus.mapcontextmenu.controllers.TransportStopController; import net.osmand.plus.mapcontextmenu.other.MapMultiSelectionMenu; +import net.osmand.plus.osmedit.OsmBugsLayer; import net.osmand.plus.render.MapRenderRepositories; import net.osmand.plus.render.NativeOsmandLibrary; import net.osmand.plus.routepreparationmenu.ChooseRouteFragment; @@ -78,6 +83,7 @@ import java.util.Set; import gnu.trove.list.array.TIntArrayList; import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_CHANGE_MARKER_POSITION; +import static net.osmand.data.FavouritePoint.DEFAULT_BACKGROUND_TYPE; public class ContextMenuLayer extends OsmandMapLayer { //private static final Log LOG = PlatformUtil.getLog(ContextMenuLayer.class); @@ -95,10 +101,8 @@ public class ContextMenuLayer extends OsmandMapLayer { private ImageView contextMarker; private Paint paint; private Paint outlinePaint; - private Bitmap pressedBitmap; - private Bitmap pressedBitmapSmall; - private List<LatLon> pressedLatLonFull = new ArrayList<>(); - private List<LatLon> pressedLatLonSmall = new ArrayList<>(); + private Map<LatLon, FavouritePoint.BackgroundType> pressedLatLonFull = new HashMap<>(); + private Map<LatLon, FavouritePoint.BackgroundType> pressedLatLonSmall = new HashMap<>(); private GestureDetector movementListener; @@ -146,8 +150,7 @@ public class ContextMenuLayer extends OsmandMapLayer { contextMarker.layout(0, 0, minw, minh); paint = new Paint(); - pressedBitmap = BitmapFactory.decodeResource(view.getResources(), R.drawable.ic_shield_tap); - pressedBitmapSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.ic_shield_tap_small); + paint.setColor(0x7f000000); outlinePaint = new Paint(); outlinePaint.setStyle(Paint.Style.STROKE); @@ -226,15 +229,17 @@ public class ContextMenuLayer extends OsmandMapLayer { if (!pressedLatLonSmall.isEmpty() || !pressedLatLonFull.isEmpty()) { scale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); } - for (LatLon latLon : pressedLatLonSmall) { + for (LatLon latLon : pressedLatLonSmall.keySet()) { int x = (int) box.getPixXFromLatLon(latLon.getLatitude(), latLon.getLongitude()); int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude()); + Bitmap pressedBitmapSmall = getBackground(pressedLatLonSmall.get(latLon), true); Rect destRect = getIconDestinationRect(x, y, pressedBitmapSmall.getWidth(), pressedBitmapSmall.getHeight(), scale); canvas.drawBitmap(pressedBitmapSmall, null, destRect, paint); } - for (LatLon latLon : pressedLatLonFull) { + for (LatLon latLon : pressedLatLonFull.keySet()) { int x = (int) box.getPixXFromLatLon(latLon.getLatitude(), latLon.getLongitude()); int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude()); + Bitmap pressedBitmap = getBackground(pressedLatLonFull.get(latLon), false); Rect destRect = getIconDestinationRect(x, y, pressedBitmap.getWidth(), pressedBitmap.getHeight(), scale); canvas.drawBitmap(pressedBitmap, null, destRect, paint); } @@ -261,6 +266,15 @@ public class ContextMenuLayer extends OsmandMapLayer { } } + private Bitmap getBackground(FavouritePoint.BackgroundType backgroundType, boolean isSmall) { + Context ctx = view.getContext(); + Resources res = view.getResources(); + String iconName = res.getResourceEntryName(backgroundType.getIconId()); + String suffix = isSmall ? "_small" : ""; + return BitmapFactory.decodeResource(res, res.getIdentifier("ic_" + iconName + "_center" + suffix, + "drawable", ctx.getPackageName())); + } + public void setSelectOnMap(CallbackWithObject<LatLon> selectOnMap) { this.selectOnMap = selectOnMap; } @@ -884,8 +898,8 @@ public class ContextMenuLayer extends OsmandMapLayer { private Map<Object, IContextMenuProvider> selectObjectsForContextMenu(RotatedTileBox tileBox, PointF point, boolean acquireObjLatLon, boolean unknownLocation) { - List<LatLon> pressedLatLonFull = new ArrayList<>(); - List<LatLon> pressedLatLonSmall = new ArrayList<>(); + Map<LatLon, FavouritePoint.BackgroundType> pressedLatLonFull = new HashMap<>(); + Map<LatLon, FavouritePoint.BackgroundType> pressedLatLonSmall = new HashMap<>(); Map<Object, IContextMenuProvider> selectedObjects = new HashMap<>(); List<Object> s = new ArrayList<>(); for (OsmandMapLayer lt : view.getLayers()) { @@ -897,10 +911,21 @@ public class ContextMenuLayer extends OsmandMapLayer { selectedObjects.put(o, l); if (acquireObjLatLon && l.isObjectClickable(o)) { LatLon latLon = l.getObjectLocation(o); - if (lt.isPresentInFullObjects(latLon) && !pressedLatLonFull.contains(latLon)) { - pressedLatLonFull.add(latLon); - } else if (lt.isPresentInSmallObjects(latLon) && !pressedLatLonSmall.contains(latLon)) { - pressedLatLonSmall.add(latLon); + FavouritePoint.BackgroundType backgroundType = DEFAULT_BACKGROUND_TYPE; + if (o instanceof OsmBugsLayer.OpenStreetNote) { + backgroundType = FavouritePoint.BackgroundType.COMMENT; + } + if (o instanceof FavouritePoint) { + backgroundType = ((FavouritePoint) o).getBackgroundType(); + } + if (o instanceof GPXUtilities.WptPt) { + backgroundType = FavouritePoint.BackgroundType.getByTypeName( + ((GPXUtilities.WptPt) o).getBackgroundType(), DEFAULT_BACKGROUND_TYPE); + } + if (lt.isPresentInFullObjects(latLon) && !pressedLatLonFull.keySet().contains(latLon)) { + pressedLatLonFull.put(latLon, backgroundType); + } else if (lt.isPresentInSmallObjects(latLon) && !pressedLatLonSmall.keySet().contains(latLon)) { + pressedLatLonSmall.put(latLon, backgroundType); } } } From 1cce2705ee48fa2e03603854efdca3ba98e107fa Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Wed, 24 Jun 2020 18:07:05 +0300 Subject: [PATCH 211/300] Add my location projection to analyze gpx screen --- .../builders/SelectedGpxMenuBuilder.java | 2 +- .../SelectedGpxMenuController.java | 2 +- .../other/TrackDetailsMenu.java | 37 +++++++++++- .../other/TrackDetailsMenuFragment.java | 57 ++++++++++++++----- .../src/net/osmand/plus/views/GPXLayer.java | 52 ++++++++++------- 5 files changed, 110 insertions(+), 40 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java index 9b97c41ed3..8fa994a81a 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/builders/SelectedGpxMenuBuilder.java @@ -100,7 +100,7 @@ public class SelectedGpxMenuBuilder extends MenuBuilder { String min = OsmAndFormatter.getFormattedAlt(analysis.minElevation, app); String max = OsmAndFormatter.getFormattedAlt(analysis.maxElevation, app); - buildRow(view, getThemedIcon(R.drawable.ic_action_altitude_range_16), null, app.getString(R.string.altitude_range), + buildRow(view, getThemedIcon(R.drawable.ic_action_altitude_range), null, app.getString(R.string.altitude_range), min + " - " + max, 0, null, false, null, false, 0, false, false, false, null, false); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java index e6e48ac725..b9b89b5a36 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java @@ -57,7 +57,7 @@ public class SelectedGpxMenuController extends MenuController { } }; rightTitleButtonController.caption = mapActivity.getString(R.string.analyze_on_map); - rightTitleButtonController.startIconId = R.drawable.ic_action_track_16; + rightTitleButtonController.startIconId = R.drawable.ic_action_analyze_intervals; } private static class OpenGpxDetailsTask extends AsyncTask<Void, Void, GpxSelectionHelper.GpxDisplayItem> { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java index 98991fc351..ec8c78e7e6 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java @@ -26,6 +26,7 @@ import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.GPXTrackAnalysis; import net.osmand.GPXUtilities.TrkSegment; import net.osmand.GPXUtilities.WptPt; +import net.osmand.Location; import net.osmand.data.LatLon; import net.osmand.data.QuadRect; import net.osmand.data.RotatedTileBox; @@ -39,6 +40,7 @@ import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.helpers.GpxUiHelper.GPXDataSetAxisType; import net.osmand.plus.helpers.GpxUiHelper.GPXDataSetType; import net.osmand.plus.helpers.GpxUiHelper.OrderedLineDataSet; +import net.osmand.plus.views.GPXLayer; import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory; import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarController; @@ -51,6 +53,8 @@ import static net.osmand.plus.SimplePopUpMenuItemAdapter.SimplePopUpMenuItem; public class TrackDetailsMenu { + private static final int MAX_DISTANCE_LOCATION_PROJECTION = 20; // in meters + @Nullable private MapActivity mapActivity; @Nullable @@ -66,9 +70,7 @@ public class TrackDetailsMenu { private int topMarginPx; private boolean visible; private boolean hidding; - - public TrackDetailsMenu() { - } + private Location myLocation; @Nullable public MapActivity getMapActivity() { @@ -123,6 +125,35 @@ public class TrackDetailsMenu { } } + public void updateMyLocation(View mainView, Location location) { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null) { + LineChart chart = mainView.findViewById(R.id.chart); + GpxDisplayItem gpxItem = getGpxItem(); + TrkSegment segment = getTrackSegment(chart); + LineData lineData = chart.getLineData(); + List<ILineDataSet> ds = lineData != null ? lineData.getDataSets() : null; + if (ds != null && ds.size() > 0 && gpxItem != null && segment != null) { + RotatedTileBox tb = mapActivity.getMapView().getCurrentRotatedTileBox(); + int mx = (int) tb.getPixXFromLatLon(location.getLatitude(), location.getLongitude()); + int my = (int) tb.getPixYFromLatLon(location.getLatitude(), location.getLongitude()); + int r = (int) (MAX_DISTANCE_LOCATION_PROJECTION * tb.getPixDensity()); + WptPt point = GPXLayer.findPointNearSegment(tb, segment.points, r, mx, my); + if (point != null) { + int index = segment.points.indexOf(point); + gpxItem.locationOnMap = GPXLayer.createProjectionPoint(segment.points.get(index - 1), point, tb.getLatLonFromPixel(mx, my)); + gpxItem.chartHighlightPos = (float) (gpxItem.locationOnMap.distance / ((OrderedLineDataSet) ds.get(0)).getDivX()); + chart.highlightValue(gpxItem.chartHighlightPos, 0); + } + myLocation = location; + } + } + } + + public Location getMyLocation() { + return myLocation; + } + public void update() { TrackDetailsMenuFragment fragment = getMenuFragment(); if (fragment != null) { diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java index 7c63f9497e..6097f111e5 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenuFragment.java @@ -14,25 +14,31 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.view.ContextThemeWrapper; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import net.osmand.AndroidUtils; +import net.osmand.Location; +import net.osmand.plus.OsmAndLocationProvider.OsmAndLocationListener; +import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.base.BaseOsmAndFragment; import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.mapcontextmenu.MapContextMenu; +import net.osmand.util.MapUtils; + +public class TrackDetailsMenuFragment extends BaseOsmAndFragment implements OsmAndLocationListener { -public class TrackDetailsMenuFragment extends BaseOsmAndFragment { public static final String TAG = "TrackDetailsMenuFragment"; private TrackDetailsMenu menu; private View mainView; - private boolean paused = true; private boolean nightMode; + private boolean locationUpdateStarted; + @Nullable private MapActivity getMapActivity() { return (MapActivity) getActivity(); @@ -49,9 +55,7 @@ public class TrackDetailsMenuFragment extends BaseOsmAndFragment { MapActivity mapActivity = requireMapActivity(); menu = mapActivity.getTrackDetailsMenu(); nightMode = mapActivity.getMyApplication().getDaynightHelper().isNightModeForMapControls(); - ContextThemeWrapper context = - new ContextThemeWrapper(mapActivity, !nightMode ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme); - View view = LayoutInflater.from(context).inflate(R.layout.track_details, container, false); + View view = UiUtilities.getInflater(mapActivity, nightMode).inflate(R.layout.track_details, container, false); if (!AndroidUiHelper.isOrientationPortrait(mapActivity)) { AndroidUtils.addStatusBarPadding21v(mapActivity, view); } @@ -129,13 +133,44 @@ public class TrackDetailsMenuFragment extends BaseOsmAndFragment { } else { menu.onShow(); } - paused = false; + startLocationUpdate(); } @Override public void onPause() { super.onPause(); - paused = true; + stopLocationUpdate(); + } + + private void startLocationUpdate() { + OsmandApplication app = getMyApplication(); + if (app != null && !locationUpdateStarted) { + locationUpdateStarted = true; + app.getLocationProvider().addLocationListener(this); + } + } + + private void stopLocationUpdate() { + OsmandApplication app = getMyApplication(); + if (app != null && locationUpdateStarted) { + locationUpdateStarted = false; + app.getLocationProvider().removeLocationListener(this); + } + } + + @Override + public void updateLocation(final Location location) { + if (location != null && !MapUtils.areLatLonEqual(menu.getMyLocation(), location)) { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null && mapActivity.getMapViewTrackingUtilities().isMapLinkedToLocation()) { + mapActivity.getMyApplication().runInUIThread(new Runnable() { + @Override + public void run() { + menu.updateMyLocation(mainView, location); + } + }); + } + } } @Override @@ -151,10 +186,6 @@ public class TrackDetailsMenuFragment extends BaseOsmAndFragment { return R.color.status_bar_transparent_gradient; } - public boolean isPaused() { - return paused; - } - public int getHeight() { if (mainView != null) { return mainView.getHeight(); @@ -243,4 +274,4 @@ public class TrackDetailsMenuFragment extends BaseOsmAndFragment { return false; } } -} +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index f61d0e56b7..803710c9b9 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -40,7 +40,6 @@ import net.osmand.plus.MapMarkersHelper.MapMarker; import net.osmand.plus.MapMarkersHelper.MapMarkersGroup; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; - import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.mapcontextmenu.controllers.SelectedGpxMenuController.SelectedGpxPoint; import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu.TrackChartPoints; @@ -603,8 +602,11 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM for (TrkSegment segment : segments) { QuadRect trackBounds = GPXUtilities.calculateBounds(segment.points); if (QuadRect.trivialOverlap(tb.getLatLonBounds(), trackBounds)) { - SelectedGpxPoint selectedGpxPoint = findPointNearSegment(tb, selectedGpxFile, segment.points, r, mx, my); - if (selectedGpxPoint != null) { + WptPt nextPoint = findPointNearSegment(tb, segment.points, r, mx, my); + if (nextPoint != null) { + int index = segment.points.indexOf(nextPoint); + WptPt prevPoint = segment.points.get(index - 1); + SelectedGpxPoint selectedGpxPoint = createSelectedGpxPoint(selectedGpxFile, prevPoint, nextPoint, tb.getLatLonFromPixel(mx, my)); res.add(selectedGpxPoint); break; } @@ -613,7 +615,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM } } - private SelectedGpxPoint findPointNearSegment(RotatedTileBox tb, SelectedGpxFile selectedGpxFile, List<WptPt> points, int r, int mx, int my) { + public static WptPt findPointNearSegment(RotatedTileBox tb, List<WptPt> points, int r, int mx, int my) { WptPt firstPoint = points.get(0); int ppx = (int) tb.getPixXFromLatLon(firstPoint.lat, firstPoint.lon); int ppy = (int) tb.getPixYFromLatLon(firstPoint.lat, firstPoint.lon); @@ -625,7 +627,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM int py = (int) tb.getPixYFromLatLon(point.lat, point.lon); int cross = placeInBbox(px, py, mx, my, r, r); if (cross == 0) { - return createProjectionPoint(selectedGpxFile, points.get(i - 1), point, tb.getLatLonFromPixel(mx, my)); + return point; } if ((pcross & cross) == 0) { int mpx = px; @@ -636,7 +638,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM int mpynew = mpy / 2 + ppy / 2; int mcrossnew = placeInBbox(mpxnew, mpynew, mx, my, r, r); if (mcrossnew == 0) { - return createProjectionPoint(selectedGpxFile, points.get(i - 1), point, tb.getLatLonFromPixel(mx, my)); + return point; } if ((mcrossnew & mcross) != 0) { mpx = mpxnew; @@ -659,19 +661,8 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM return null; } - private SelectedGpxPoint createProjectionPoint(SelectedGpxFile selectedGpxFile, WptPt prevPoint, WptPt nextPoint, LatLon latLon) { - LatLon projection = MapUtils.getProjection(latLon.getLatitude(), latLon.getLongitude(), prevPoint.lat, prevPoint.lon, nextPoint.lat, nextPoint.lon); - - WptPt projectionPoint = new WptPt(); - projectionPoint.lat = projection.getLatitude(); - projectionPoint.lon = projection.getLongitude(); - projectionPoint.heading = prevPoint.heading; - projectionPoint.distance = prevPoint.distance + MapUtils.getDistance(projection, prevPoint.lat, prevPoint.lon); - projectionPoint.ele = getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.ele, nextPoint.distance, nextPoint.ele); - projectionPoint.speed = getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.speed, nextPoint.distance, nextPoint.speed); - if (prevPoint.time != 0 && nextPoint.time != 0) { - projectionPoint.time = (long) getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.time, nextPoint.distance, nextPoint.time); - } + private SelectedGpxPoint createSelectedGpxPoint(SelectedGpxFile selectedGpxFile, WptPt prevPoint, WptPt nextPoint, LatLon latLon) { + WptPt projectionPoint = createProjectionPoint(prevPoint, nextPoint, latLon); Location prevPointLocation = new Location(""); prevPointLocation.setLatitude(prevPoint.lat); @@ -686,11 +677,28 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM return new SelectedGpxPoint(selectedGpxFile, projectionPoint, prevPointLocation); } - private double getValueByDistInterpolation(double projectionDist, double prevDist, double prevVal, double nextDist, double nextVal) { + public static WptPt createProjectionPoint(WptPt prevPoint, WptPt nextPoint, LatLon latLon) { + LatLon projection = MapUtils.getProjection(latLon.getLatitude(), latLon.getLongitude(), prevPoint.lat, prevPoint.lon, nextPoint.lat, nextPoint.lon); + + WptPt projectionPoint = new WptPt(); + projectionPoint.lat = projection.getLatitude(); + projectionPoint.lon = projection.getLongitude(); + projectionPoint.heading = prevPoint.heading; + projectionPoint.distance = prevPoint.distance + MapUtils.getDistance(projection, prevPoint.lat, prevPoint.lon); + projectionPoint.ele = getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.ele, nextPoint.distance, nextPoint.ele); + projectionPoint.speed = getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.speed, nextPoint.distance, nextPoint.speed); + if (prevPoint.time != 0 && nextPoint.time != 0) { + projectionPoint.time = (long) getValueByDistInterpolation(projectionPoint.distance, prevPoint.distance, prevPoint.time, nextPoint.distance, nextPoint.time); + } + + return projectionPoint; + } + + private static double getValueByDistInterpolation(double projectionDist, double prevDist, double prevVal, double nextDist, double nextVal) { return prevVal + (projectionDist - prevDist) * ((nextVal - prevVal) / (nextDist - prevDist)); } - int placeInBbox(int x, int y, int mx, int my, int halfw, int halfh) { + private static int placeInBbox(int x, int y, int mx, int my, int halfw, int halfh) { int cross = 0; cross |= (x < mx - halfw ? 1 : 0); cross |= (x > mx + halfw ? 2 : 0); @@ -841,7 +849,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM private void syncGpx(GPXFile gpxFile) { MapMarkersGroup group = view.getApplication().getMapMarkersHelper().getMarkersGroup(gpxFile); if (group != null) { - mapMarkersHelper.runSynchronization(group); + mapMarkersHelper.runSynchronization(group); } } From a974a48240e6247ab5237447d7d71e81bbdebf30 Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Wed, 24 Jun 2020 18:15:35 +0300 Subject: [PATCH 212/300] Move TrackChartPoints from TrackDetailsMenu --- .../other/TrackChartPoints.java | 46 +++++++++++++++++++ .../other/TrackDetailsMenu.java | 41 +---------------- .../src/net/osmand/plus/views/GPXLayer.java | 2 +- .../net/osmand/plus/views/MapInfoLayer.java | 2 +- .../src/net/osmand/plus/views/RouteLayer.java | 5 +- 5 files changed, 51 insertions(+), 45 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackChartPoints.java diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackChartPoints.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackChartPoints.java new file mode 100644 index 0000000000..1ffc7087da --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackChartPoints.java @@ -0,0 +1,46 @@ +package net.osmand.plus.mapcontextmenu.other; + +import net.osmand.GPXUtilities.GPXFile; +import net.osmand.data.LatLon; + +import java.util.List; + +public class TrackChartPoints { + + private List<LatLon> xAxisPoints; + private LatLon highlightedPoint; + private int segmentColor; + private GPXFile gpx; + + public List<LatLon> getXAxisPoints() { + return xAxisPoints; + } + + public LatLon getHighlightedPoint() { + return highlightedPoint; + } + + public int getSegmentColor() { + return segmentColor; + } + + public GPXFile getGpx() { + return gpx; + } + + public void setXAxisPoints(List<LatLon> xAxisPoints) { + this.xAxisPoints = xAxisPoints; + } + + public void setHighlightedPoint(LatLon highlightedPoint) { + this.highlightedPoint = highlightedPoint; + } + + public void setSegmentColor(int segmentColor) { + this.segmentColor = segmentColor; + } + + public void setGpx(GPXFile gpx) { + this.gpx = gpx; + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java index ec8c78e7e6..4600f92bf9 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java @@ -806,43 +806,4 @@ public class TrackDetailsMenu { return NO_COLOR; } } - - public static class TrackChartPoints { - private List<LatLon> xAxisPoints; - private LatLon highlightedPoint; - private int segmentColor; - private GPXFile gpx; - - public List<LatLon> getXAxisPoints() { - return xAxisPoints; - } - - public LatLon getHighlightedPoint() { - return highlightedPoint; - } - - public int getSegmentColor() { - return segmentColor; - } - - public GPXFile getGpx() { - return gpx; - } - - public void setXAxisPoints(List<LatLon> xAxisPoints) { - this.xAxisPoints = xAxisPoints; - } - - public void setHighlightedPoint(LatLon highlightedPoint) { - this.highlightedPoint = highlightedPoint; - } - - public void setSegmentColor(int segmentColor) { - this.segmentColor = segmentColor; - } - - public void setGpx(GPXFile gpx) { - this.gpx = gpx; - } - } -} +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 803710c9b9..fdc9ab950e 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -42,7 +42,7 @@ import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.base.PointImageDrawable; import net.osmand.plus.mapcontextmenu.controllers.SelectedGpxMenuController.SelectedGpxPoint; -import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu.TrackChartPoints; +import net.osmand.plus.mapcontextmenu.other.TrackChartPoints; import net.osmand.plus.render.OsmandRenderer; import net.osmand.plus.render.OsmandRenderer.RenderingContext; import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; diff --git a/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java b/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java index f77a57e550..2f38894268 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java @@ -17,7 +17,7 @@ import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.helpers.AndroidUiHelper; -import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu.TrackChartPoints; +import net.osmand.plus.mapcontextmenu.other.TrackChartPoints; import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory; import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.CompassRulerControlWidgetState; import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopCoordinatesView; diff --git a/OsmAnd/src/net/osmand/plus/views/RouteLayer.java b/OsmAnd/src/net/osmand/plus/views/RouteLayer.java index c00b0e1d56..b6e31416ab 100644 --- a/OsmAnd/src/net/osmand/plus/views/RouteLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/RouteLayer.java @@ -36,8 +36,7 @@ import net.osmand.osm.edit.Way; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; -import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu; -import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu.TrackChartPoints; +import net.osmand.plus.mapcontextmenu.other.TrackChartPoints; import net.osmand.plus.profiles.LocationIcon; import net.osmand.plus.render.RenderingIcons; import net.osmand.plus.routing.RouteCalculationResult; @@ -104,7 +103,7 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont this.transportHelper = helper.getTransportRoutingHelper(); } - public void setTrackChartPoints(TrackDetailsMenu.TrackChartPoints trackChartPoints) { + public void setTrackChartPoints(TrackChartPoints trackChartPoints) { this.trackChartPoints = trackChartPoints; } From c8cbedce6af356da5511d60beedcbe673ae7a151 Mon Sep 17 00:00:00 2001 From: Dmitry <dmpr0.ua@gmail.com> Date: Wed, 24 Jun 2020 18:18:34 +0300 Subject: [PATCH 213/300] added icons for OSM Notes --- OsmAnd/res/drawable/ic_action_osm_note.xml | 9 +++++++++ OsmAnd/res/drawable/ic_action_osm_note_resolved.xml | 10 ++++++++++ OsmAnd/res/drawable/ic_action_osm_note_unresolved.xml | 10 ++++++++++ 3 files changed, 29 insertions(+) create mode 100644 OsmAnd/res/drawable/ic_action_osm_note.xml create mode 100644 OsmAnd/res/drawable/ic_action_osm_note_resolved.xml create mode 100644 OsmAnd/res/drawable/ic_action_osm_note_unresolved.xml diff --git a/OsmAnd/res/drawable/ic_action_osm_note.xml b/OsmAnd/res/drawable/ic_action_osm_note.xml new file mode 100644 index 0000000000..1383ea2d4a --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_osm_note.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:pathData="M4,3C2.8954,3 2,3.8954 2,5V17C2,18.1046 2.8954,19 4,19H9L12,22L15,19H20C21.1046,19 22,18.1046 22,17V5C22,3.8954 21.1046,3 20,3H4Z" + android:fillColor="#ffffff"/> +</vector> diff --git a/OsmAnd/res/drawable/ic_action_osm_note_resolved.xml b/OsmAnd/res/drawable/ic_action_osm_note_resolved.xml new file mode 100644 index 0000000000..55005f950a --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_osm_note_resolved.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:pathData="M2,5C2,3.8954 2.8954,3 4,3H20C21.1046,3 22,3.8954 22,5V17C22,18.1046 21.1046,19 20,19H15L12,22L9,19H4C2.8954,19 2,18.1046 2,17V5ZM17.2929,6.2929L11,12.5858L7.7071,9.2929L6.2929,10.7071L11,15.4142L18.7071,7.7071L17.2929,6.2929Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> +</vector> diff --git a/OsmAnd/res/drawable/ic_action_osm_note_unresolved.xml b/OsmAnd/res/drawable/ic_action_osm_note_unresolved.xml new file mode 100644 index 0000000000..da16955a0f --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_osm_note_unresolved.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:pathData="M2,5C2,3.8954 2.8954,3 4,3H20C21.1046,3 22,3.8954 22,5V17C22,18.1046 21.1046,19 20,19H15L12,22L9,19H4C2.8954,19 2,18.1046 2,17V5ZM7.2929,7.7071L10.5858,11L7.2929,14.2929L8.7071,15.7071L12,12.4142L15.2929,15.7071L16.7071,14.2929L13.4142,11L16.7071,7.7071L15.2929,6.2929L12,9.5858L8.7071,6.2929L7.2929,7.7071Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> +</vector> From 10e01ea2e3546d576e758e6d26123e9a0c97dd09 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail,com> Date: Wed, 24 Jun 2020 19:14:53 +0300 Subject: [PATCH 214/300] keep list position on delete item --- .../net/osmand/plus/osmedit/OsmEditsFragment.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java index 5d4dcff60f..b76cd47f8d 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java @@ -667,10 +667,19 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo recreateAdapterData(); } + private int getFirstVisible() { + return getListView().getFirstVisiblePosition(); + } + private void notifyDataSetChanged() { listAdapter.notifyDataSetChanged(); } + private void notifyDataSetChangedWithSelection(int firstVisible) { + listAdapter.notifyDataSetChanged(); + getListView().setSelection(firstVisible); + } + public static class DeleteOsmEditsConfirmDialogFragment extends DialogFragment { public static final String TAG = "DeleteOsmEditsConfirmDialogFragment"; private static final String POINTS_LIST = "points_list"; @@ -698,6 +707,7 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo builder.setPositiveButton(R.string.shared_string_delete, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { + int firstVisible = parentFragment.getFirstVisible(); Iterator<OsmPoint> it = points.iterator(); while (it.hasNext()) { OsmPoint osmPoint = it.next(); @@ -710,8 +720,7 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo it.remove(); parentFragment.deletePoint(osmPoint); } - parentFragment.notifyDataSetChanged(); - + parentFragment.notifyDataSetChangedWithSelection(firstVisible); } }); builder.setNegativeButton(R.string.shared_string_cancel, null); From ab9a1e88a900d8f33c945a24d7da0866d7f314f8 Mon Sep 17 00:00:00 2001 From: Vitaliy <chumva.forever@gmail.com> Date: Wed, 24 Jun 2020 23:49:54 +0300 Subject: [PATCH 215/300] Fix chart drag without offsets --- .../other/TrackDetailsMenu.java | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java index 4600f92bf9..1f3a8443d6 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/TrackDetailsMenu.java @@ -1,7 +1,9 @@ package net.osmand.plus.mapcontextmenu.other; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Matrix; +import android.graphics.PointF; import android.view.MotionEvent; import android.view.View; import android.widget.AdapterView; @@ -16,6 +18,7 @@ import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.LineData; import com.github.mikephil.charting.highlight.Highlight; import com.github.mikephil.charting.interfaces.datasets.ILineDataSet; +import com.github.mikephil.charting.listener.BarLineChartTouchListener; import com.github.mikephil.charting.listener.ChartTouchListener.ChartGesture; import com.github.mikephil.charting.listener.OnChartGestureListener; import com.github.mikephil.charting.listener.OnChartValueSelectedListener; @@ -150,7 +153,7 @@ public class TrackDetailsMenu { } } - public Location getMyLocation() { + protected Location getMyLocation() { return myLocation; } @@ -547,6 +550,39 @@ public class TrackDetailsMenu { } }); + final float minDragTriggerDist = AndroidUtils.dpToPx(app, 3); + chart.setOnTouchListener(new BarLineChartTouchListener(chart, chart.getViewPortHandler().getMatrixTouch(), 3f) { + private PointF touchStartPoint = new PointF(); + + @SuppressLint("ClickableViewAccessibility") + @Override + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction() & MotionEvent.ACTION_MASK) { + case MotionEvent.ACTION_DOWN: + saveTouchStart(event); + break; + case MotionEvent.ACTION_POINTER_DOWN: + if (event.getPointerCount() >= 2) { + saveTouchStart(event); + } + break; + case MotionEvent.ACTION_MOVE: + if (mTouchMode == NONE && mChart.hasNoDragOffset()) { + float touchDistance = distance(event.getX(), touchStartPoint.x, event.getY(), touchStartPoint.y); + if (Math.abs(touchDistance) > minDragTriggerDist) { + mTouchMode = DRAG; + } + } + break; + } + return super.onTouch(v, event); + } + + private void saveTouchStart(MotionEvent event) { + touchStartPoint.x = event.getX(); + touchStartPoint.y = event.getY(); + } + }); chart.setOnChartGestureListener(new OnChartGestureListener() { boolean hasTranslated = false; float highlightDrawX = -1; From 4bd2135d7598f6005890511b7a3b99a145862b49 Mon Sep 17 00:00:00 2001 From: MadWasp79 <madwasp79@gmail.com> Date: Thu, 25 Jun 2020 08:53:20 +0300 Subject: [PATCH 216/300] quick fix for npe --- .../java/net/osmand/binary/BinaryMapRouteReaderAdapter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java index 64d6f7cdf7..c98ec6396f 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapRouteReaderAdapter.java @@ -366,13 +366,13 @@ public class BinaryMapRouteReaderAdapter { stopSign = id; } else if (tags.equals("highway") && val.equals("give_way")){ giveWaySign = id; - } else if (tags.equals("traffic_signals:direction")){ + } else if (tags.equals("traffic_signals:direction") && val != null){ if (val.equals("forward")) { directionTrafficSignalsForward = id; } else if (val.equals("backward")) { directionTrafficSignalsBackward = id; } - } else if (tags.equals("direction")) { + } else if (tags.equals("direction") && val != null) { if (val.equals("forward")) { directionForward = id; } else if (val.equals("backward")) { From bcb6890e35122aa20aff5f999edd24102ce33f6d Mon Sep 17 00:00:00 2001 From: xmd5a <lornaderek@mail.ru> Date: Thu, 25 Jun 2020 09:31:50 +0300 Subject: [PATCH 217/300] Add phrase --- OsmAnd/res/values/phrases.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values/phrases.xml b/OsmAnd/res/values/phrases.xml index 3e75ab4935..d4dffcaa9b 100644 --- a/OsmAnd/res/values/phrases.xml +++ b/OsmAnd/res/values/phrases.xml @@ -4235,4 +4235,6 @@ <string name="poi_traffic_signals_vibration_yes">Yes</string> <string name="poi_traffic_signals_arrow_yes">Yes</string> + <string name="poi_give_box">Give box</string> + </resources> \ No newline at end of file From c8a85306ee1bd4844ff233f3ca20a9295e69a83f Mon Sep 17 00:00:00 2001 From: solokot <solokot@gmail.com> Date: Wed, 24 Jun 2020 07:14:02 +0000 Subject: [PATCH 218/300] Translated using Weblate (Russian) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 1e8b821529..1048b0b22c 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -3802,7 +3802,7 @@ <string name="speed_cameras_restart_descr">Перезапуск необходим для полного удаления данных камер контроля скорости.</string> <string name="shared_string_uninstall_and_restart">Удалить и перезапустить</string> <string name="shared_string_uninstall">Удалить</string> - <string name="routing_attr_length_description">Укажите длину транспортного средства, разрешенную для движения по маршрутам.</string> + <string name="routing_attr_length_description">Укажите длину транспортного средства, разрешённую для движения по маршрутам.</string> <string name="routing_attr_length_name">Предельная длина</string> <string name="speed_cameras_removed_descr">В этом устройстве нет камер контроля скорости.</string> <string name="app_mode_inline_skates">Роликовые коньки</string> From 1470dbb105dd91b0f76b633c18a0240d2660942d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= <oguzersen@protonmail.com> Date: Wed, 24 Jun 2020 10:16:20 +0000 Subject: [PATCH 219/300] Translated using Weblate (Turkish) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-tr/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index f731b7ddd3..d01696294a 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -2720,7 +2720,7 @@ <string name="map_during_navigation_info">Navigasyon sırasında harita</string> <string name="map_during_navigation">Navigasyon sırasında harita</string> <string name="shared_string_other">Diğer</string> - <string name="vehicle_parameters_descr">Ağırlık, yükseklik, hız</string> + <string name="vehicle_parameters_descr">Ağırlık, yükseklik, uzunluk, hız</string> <string name="vehicle_parameters">Araç parametreleri</string> <string name="voice_announces_info">Sesli duyurular sadece navigasyon sırasında gerçekleşir.</string> <string name="voice_announces_descr">Navigasyon talimatları ve duyurular</string> @@ -3758,4 +3758,8 @@ <string name="item_deleted">%1$s silindi</string> <string name="speed_cameras_restart_descr">Hız kamerası verilerini tamamen silmek için yeniden başlatma gerekmektedir.</string> <string name="shared_string_uninstall_and_restart">Kaldır ve Yeniden Başlat</string> + <string name="speed_cameras_removed_descr">Bu aygıtta hız kameraları yok.</string> + <string name="app_mode_inline_skates">Paten</string> + <string name="routing_attr_length_description">Rotalarda izin verilecek araç uzunluğunu belirtin.</string> + <string name="routing_attr_length_name">Uzunluk sınırı</string> </resources> \ No newline at end of file From eeb67ef12e444829ff8ddfafe93b75689efbe68c Mon Sep 17 00:00:00 2001 From: ihor_ck <igor_ck@outlook.com> Date: Wed, 24 Jun 2020 06:36:48 +0000 Subject: [PATCH 220/300] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-uk/strings.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 56f0d63110..bc7c0887b1 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -236,7 +236,7 @@ <string name="vector_data_missing">Завантажити (\'офлайн\') дані для автономного використання мап.</string> <string name="local_index_gpx_info_show">" \n -\nДовго утримуйте для виклику налаштувань"</string> +\nУтримуйте для виклику налаштувань"</string> <string name="local_index_installed">Локальна версія</string> <string name="local_index_items_backuped">%1$d з %2$d об’єктів знедіяно.</string> <string name="local_index_items_deleted">%1$d з %2$d об’єктів вилучено.</string> @@ -3255,7 +3255,7 @@ <string name="map_during_navigation_info">Мапа під час навігації</string> <string name="map_during_navigation">Мапа під час навігації</string> <string name="shared_string_other">Інше</string> - <string name="vehicle_parameters_descr">Вага, висота, швидкість</string> + <string name="vehicle_parameters_descr">Вага, висота, довжина, швидкість</string> <string name="vehicle_parameters">Параметри транспортного засобу</string> <string name="voice_announces_info">Голосові повідомлення відтворюються лише під час навігації.</string> <string name="voice_announces">Навігаційні оголошення</string> @@ -3798,4 +3798,8 @@ <string name="item_deleted">%1$s видалено</string> <string name="speed_cameras_restart_descr">Потрібен перезапуск для повного видалення даних камер контролю швидкості.</string> <string name="shared_string_uninstall_and_restart">Видалити та перезапустити</string> + <string name="routing_attr_length_description">Вкажіть довжину транспортного засобу для розрахунку маршрутів.</string> + <string name="routing_attr_length_name">Обмеження довжини</string> + <string name="speed_cameras_removed_descr">На цьому пристрої немає камер контролю швидкості.</string> + <string name="app_mode_inline_skates">Роликові ковзани</string> </resources> \ No newline at end of file From 97d80579448b617e12640d9a1834fbffa4572f11 Mon Sep 17 00:00:00 2001 From: ace shadow <acelists@atlas.sk> Date: Wed, 24 Jun 2020 09:49:55 +0000 Subject: [PATCH 221/300] Translated using Weblate (Slovak) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-sk/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index 121395e59c..bdbceb9033 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -3263,7 +3263,7 @@ <string name="map_during_navigation_info">Mapa počas navigácie</string> <string name="map_during_navigation">Mapa počas navigácie</string> <string name="shared_string_other">Iné</string> - <string name="vehicle_parameters_descr">Hmotnosť, výška, rýchlosť</string> + <string name="vehicle_parameters_descr">Hmotnosť, výška, dĺžka, rýchlosť</string> <string name="vehicle_parameters">Parametre vozidla</string> <string name="voice_announces_info">Hlasové oznámenia sú prehrávané počas navigácie.</string> <string name="voice_announces_descr">Navigačné pokyny a oznámenia</string> @@ -3801,4 +3801,8 @@ <string name="speed_cameras_restart_descr">Pre úplné odstránenie údajov o rýchlostných radaroch je potrebný reštart.</string> <string name="shared_string_uninstall_and_restart">Odinštalovať a reštartovať</string> <string name="shared_string_uninstall">Odinštalovať</string> + <string name="routing_attr_length_description">Zadajte aká dĺžka vozidla musí byť povolená na trase.</string> + <string name="routing_attr_length_name">Limit dĺžky</string> + <string name="speed_cameras_removed_descr">Toto zariadenie neobsahuje rýchlostné radary.</string> + <string name="app_mode_inline_skates">Kolieskové korčule</string> </resources> \ No newline at end of file From 917ed27ba4f1e18454ff0e28c8a53b0384c1529e Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani <sh.yaron@gmail.com> Date: Wed, 24 Jun 2020 07:04:21 +0000 Subject: [PATCH 222/300] Translated using Weblate (Hebrew) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-he/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index da02a51e16..14cd11b21e 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -3243,7 +3243,7 @@ <string name="map_during_navigation_info">מפה במהלך ניווט</string> <string name="map_during_navigation">מפה במהלך ניווט</string> <string name="shared_string_other">אחר</string> - <string name="vehicle_parameters_descr">רוחב, גובה, מהירות</string> + <string name="vehicle_parameters_descr">רוחב, גובה, אורך, מהירות</string> <string name="vehicle_parameters">מאפייני כלי הרכב</string> <string name="voice_announces_info">הכרזות קוליות מושמעות רק במהלך הניווט.</string> <string name="voice_announces_descr">הנחיות והכרזות ניווט</string> @@ -3811,4 +3811,8 @@ \nבחירה באפשרות %1$s תוביל לכך שתישלחנה אליך התרעות על מצלמות מהירות. \n \nבחירה באפשרות %2$s תוביל לכך שנתונים שקשורים במצלמות מהירות: אזהרות, התרעות ונקודות עניין תימחקנה עד להתקנה מחדש של OsmAnd.</string> + <string name="app_mode_inline_skates">רולרבליידס</string> + <string name="routing_attr_length_description">נא לציין את אורך כלי הרכב כדי לבדוק מסלולים מורשים.</string> + <string name="routing_attr_length_name">מגבלת אורך</string> + <string name="speed_cameras_removed_descr">למכשיר הזה אין מצלמות מהירות.</string> </resources> \ No newline at end of file From f8c58742d149d96bb1aed7ceb097efc6a4561317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= <ivanrsm1997@gmail.com> Date: Wed, 24 Jun 2020 22:52:10 +0000 Subject: [PATCH 223/300] Translated using Weblate (Galician) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-gl/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index d2cbc58e59..0758e924f2 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -3290,7 +3290,7 @@ Lon %2$s</string> <string name="map_during_navigation_info">Mapa durante a navegación</string> <string name="map_during_navigation">Mapa durante a navegación</string> <string name="shared_string_other">Outros</string> - <string name="vehicle_parameters_descr">Peso, altura, velocidade</string> + <string name="vehicle_parameters_descr">Peso, altura, lonxitude, velocidade</string> <string name="vehicle_parameters">Parámetros do vehículo</string> <string name="voice_announces_info">Os anuncios de voz só son reproducidos durante a navegación.</string> <string name="voice_announces_descr">Instrucións de navegación e anuncios</string> @@ -3830,4 +3830,8 @@ Lon %2$s</string> <string name="shared_string_bearing">Levando</string> <string name="item_deleted">%1$s eliminado</string> <string name="shared_string_uninstall_and_restart">Desinstalar e reiniciar</string> + <string name="routing_attr_length_description">Especifica a lonxitude do vehículo para ser permitido nas rutas.</string> + <string name="routing_attr_length_name">Límite de lonxitude</string> + <string name="speed_cameras_removed_descr">Este dispositivo non ten radares de velocidade.</string> + <string name="app_mode_inline_skates">Patíns en liña</string> </resources> \ No newline at end of file From 82dc97076e9c0e6fdf55776ddb7c964966bdfac4 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira <duduaddad@gmail.com> Date: Wed, 24 Jun 2020 17:35:01 +0000 Subject: [PATCH 224/300] Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.9% (3406 of 3407 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 7c733a3be1..353195ce51 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3221,7 +3221,7 @@ Pôr do Sol: %2$s</string> <string name="shared_string_example">Exemplo</string> <string name="change_default_settings">Alterar configuração</string> <string name="discard_changes">Descartar alteração</string> - <string name="vehicle_parameters_descr">Peso, altura, velocidade</string> + <string name="vehicle_parameters_descr">Peso, altura, comprimento, velocidade</string> <string name="vehicle_parameters">Parâmetros do veículo</string> <string name="screen_alerts">Alertas de tela</string> <string name="configure_profile_info">Configurações para o perfil:</string> @@ -3790,4 +3790,7 @@ Pôr do Sol: %2$s</string> <string name="item_deleted">%1$s excluído</string> <string name="speed_cameras_restart_descr">É necessário reiniciar para excluir completamente os dados da câmera de velocidade.</string> <string name="shared_string_uninstall_and_restart">Desinstalar e reiniciar</string> + <string name="routing_attr_length_description">Especifique o comprimento do veículo a ser permitido nas rotas.</string> + <string name="routing_attr_length_name">Limite de comprimento</string> + <string name="speed_cameras_removed_descr">Este dispositivo não possui câmeras de velocidade.</string> </resources> \ No newline at end of file From 01e50ae2abe2b506ab2ecc75ac40d2812799abe6 Mon Sep 17 00:00:00 2001 From: Jeff Huang <s8321414@gmail.com> Date: Wed, 24 Jun 2020 01:16:49 +0000 Subject: [PATCH 225/300] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 6c403756c4..b8e97f4c3d 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3263,7 +3263,7 @@ <string name="map_during_navigation_info">導航時的地圖</string> <string name="map_during_navigation">導航時的地圖</string> <string name="shared_string_other">其他</string> - <string name="vehicle_parameters_descr">重量、高度、速度</string> + <string name="vehicle_parameters_descr">重量、高度、長度、速度</string> <string name="vehicle_parameters">車輛參數</string> <string name="voice_announces_info">僅在導航時播放語音通知。</string> <string name="voice_announces_descr">導航指示與通知</string> @@ -3798,4 +3798,8 @@ <string name="item_deleted">%1$s 已刪除</string> <string name="speed_cameras_restart_descr">必須重新啟動才能完全刪除測速照相的資料。</string> <string name="shared_string_uninstall_and_restart">解除安裝並重新啟動</string> + <string name="routing_attr_length_description">指定路線上允許的車輛長度。</string> + <string name="routing_attr_length_name">長度限制</string> + <string name="speed_cameras_removed_descr">此裝置沒有測速照相機。</string> + <string name="app_mode_inline_skates">直排輪鞋</string> </resources> \ No newline at end of file From 914fb888696d45f49118b5e03accf0047bcb0894 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Thu, 25 Jun 2020 11:07:36 +0300 Subject: [PATCH 226/300] add OSM edit/note icons --- OsmAnd/res/drawable/bg_point_comment.xml | 4 +- .../osmand/plus/osmedit/OsmEditsLayer.java | 37 ++++++++++++++++++- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/drawable/bg_point_comment.xml b/OsmAnd/res/drawable/bg_point_comment.xml index bfdad36f89..0ededd23e1 100644 --- a/OsmAnd/res/drawable/bg_point_comment.xml +++ b/OsmAnd/res/drawable/bg_point_comment.xml @@ -4,6 +4,6 @@ android:viewportWidth="36" android:viewportHeight="36"> <path - android:pathData="M5,2L31,2A3,3 0,0 1,34 5L34,31A3,3 0,0 5,31 34L5,34A3,3 0,0 1,2 31L2,5A3,3 0,0 1,5 2z" - android:fillColor="#727272" /> + android:pathData="m8,2h20c2,0 3,1 3,3v16c0,2 -1,3 -3,3h-5l-5,4 -5,-4H8C6,24 5,23 5,21V5C5,3 6,2 8,2Z" + android:fillColor="#727272"/> </vector> diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java index 1ee7eca977..59b172b500 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java @@ -12,16 +12,19 @@ import androidx.core.content.ContextCompat; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.RotatedTileBox; +import net.osmand.osm.PoiType; import net.osmand.osm.edit.Entity; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.base.PointImageDrawable; +import net.osmand.plus.render.RenderingIcons; import net.osmand.plus.views.ContextMenuLayer; import net.osmand.plus.views.OsmandMapLayer; import net.osmand.plus.views.OsmandMapTileView; import java.util.ArrayList; import java.util.List; +import java.util.Map; public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider, ContextMenuLayer.IMoveObjectProvider { @@ -78,7 +81,7 @@ public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IC private void drawPoint(Canvas canvas, OsmPoint o, float x, float y) { float textScale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); - int iconId = R.drawable.mx_special_information; + int iconId = getIconId(o); PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, ContextCompat.getColor(activity, R.color.created_poi_icon_color), true, iconId); @@ -86,6 +89,38 @@ public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IC pointImageDrawable.drawPoint(canvas, x, y, textScale, false); } + + public int getIconId(OsmPoint osmPoint) { + if (osmPoint.getGroup() == OsmPoint.Group.POI) { + OpenstreetmapPoint osmP = (OpenstreetmapPoint) osmPoint; + int iconResId = 0; + String poiTranslation = osmP.getEntity().getTag(EditPoiData.POI_TYPE_TAG); + if (poiTranslation != null && activity != null) { + Map<String, PoiType> poiTypeMap = activity.getMyApplication().getPoiTypes().getAllTranslatedNames(false); + PoiType poiType = poiTypeMap.get(poiTranslation.toLowerCase()); + if (poiType != null) { + String id = null; + if (RenderingIcons.containsBigIcon(poiType.getIconKeyName())) { + id = poiType.getIconKeyName(); + } else if (RenderingIcons.containsBigIcon(poiType.getOsmTag() + "_" + poiType.getOsmValue())) { + id = poiType.getOsmTag() + "_" + poiType.getOsmValue(); + } + if (id != null) { + iconResId = RenderingIcons.getBigIconResourceId(id); + } + } + } + if (iconResId == 0) { + iconResId = R.drawable.ic_action_info_dark; + } + return iconResId; + } else if (osmPoint.getGroup() == OsmPoint.Group.BUG) { + return R.drawable.ic_action_bug_dark; + } else { + return 0; + } + } + @Override public void destroyLayer() { } From 0499cbfd1939018119c3b00b5688d88a2e25728f Mon Sep 17 00:00:00 2001 From: Dmitry <dmpr0.ua@gmail.com> Date: Thu, 25 Jun 2020 11:27:33 +0300 Subject: [PATCH 227/300] Added icons for OSM Note --- OsmAnd/res/drawable/ic_action_osm_note_add.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 OsmAnd/res/drawable/ic_action_osm_note_add.xml diff --git a/OsmAnd/res/drawable/ic_action_osm_note_add.xml b/OsmAnd/res/drawable/ic_action_osm_note_add.xml new file mode 100644 index 0000000000..882367bafa --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_osm_note_add.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:pathData="M2,5C2,3.8954 2.8954,3 4,3H20C21.1046,3 22,3.8954 22,5V17C22,18.1046 21.1046,19 20,19H15L12,22L9,19H4C2.8954,19 2,18.1046 2,17V5ZM10.9999,6L11,9.9999L6.9999,9.9999V11.9999L11,11.9999L11.0001,16L13.0001,16L13,11.9999L16.9999,11.9999L16.9999,9.9999L13,9.9999L12.9999,5.9999L10.9999,6Z" + android:fillColor="#ffffff" + android:fillType="evenOdd"/> +</vector> From d3f299e774b6d8c821d5d373341f58f8a7c22192 Mon Sep 17 00:00:00 2001 From: Dmitry <dmpr0.ua@gmail.com> Date: Thu, 25 Jun 2020 11:49:05 +0300 Subject: [PATCH 228/300] Update all limit icons, added icons and image for length limit --- .../res/drawable/ic_action_height_limit.xml | 2 +- .../res/drawable/ic_action_length_limit.xml | 15 +++++++++ .../res/drawable/ic_action_weight_limit.xml | 4 +-- OsmAnd/res/drawable/ic_action_width_limit.xml | 4 +-- .../drawable/img_help_height_limit_day.xml | 8 ++--- .../drawable/img_help_height_limit_night.xml | 8 ++--- .../drawable/img_help_length_limit_day.xml | 31 +++++++++++++++++++ .../drawable/img_help_length_limit_night.xml | 31 +++++++++++++++++++ .../drawable/img_help_weight_limit_day.xml | 17 +++++++--- .../drawable/img_help_weight_limit_night.xml | 17 +++++++--- .../res/drawable/img_help_width_limit_day.xml | 14 ++++----- .../drawable/img_help_width_limit_night.xml | 12 +++---- 12 files changed, 129 insertions(+), 34 deletions(-) create mode 100644 OsmAnd/res/drawable/ic_action_length_limit.xml create mode 100644 OsmAnd/res/drawable/img_help_length_limit_day.xml create mode 100644 OsmAnd/res/drawable/img_help_length_limit_night.xml diff --git a/OsmAnd/res/drawable/ic_action_height_limit.xml b/OsmAnd/res/drawable/ic_action_height_limit.xml index f364b4e0ee..fb32da1462 100644 --- a/OsmAnd/res/drawable/ic_action_height_limit.xml +++ b/OsmAnd/res/drawable/ic_action_height_limit.xml @@ -7,7 +7,7 @@ android:pathData="M6,2L12,6L18,2H6Z" android:fillColor="#ffffff"/> <path - android:pathData="M10,8V11H14V8H16V16H14V13H10L10,16H8V8H10Z" + android:pathData="M10,7L10,11H14V7H16V17H14V13H10L10,17H8V7H10Z" android:fillColor="#ffffff"/> <path android:pathData="M12,18L6,22H18L12,18Z" diff --git a/OsmAnd/res/drawable/ic_action_length_limit.xml b/OsmAnd/res/drawable/ic_action_length_limit.xml new file mode 100644 index 0000000000..5540a97b66 --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_length_limit.xml @@ -0,0 +1,15 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:pathData="M2,18L6,12L2,6V18Z" + android:fillColor="#ffffff"/> + <path + android:pathData="M18,12L22,6V18L18,12Z" + android:fillColor="#ffffff"/> + <path + android:pathData="M12,7V15H16V17H10V7H12Z" + android:fillColor="#ffffff"/> +</vector> diff --git a/OsmAnd/res/drawable/ic_action_weight_limit.xml b/OsmAnd/res/drawable/ic_action_weight_limit.xml index 89626d51c5..dee87a7368 100644 --- a/OsmAnd/res/drawable/ic_action_weight_limit.xml +++ b/OsmAnd/res/drawable/ic_action_weight_limit.xml @@ -4,12 +4,12 @@ android:viewportWidth="24" android:viewportHeight="24"> <path - android:pathData="M6,16h12v2h-12z" + android:pathData="M6,16H18V18H6V16Z" android:strokeAlpha="0.7" android:fillColor="#ffffff" android:fillAlpha="0.7"/> <path - android:pathData="M8,4H16V6H13V13H11L11,6H8V4Z" + android:pathData="M8,3H16V5H13V13H11L11,5H8V3Z" android:fillColor="#ffffff"/> <path android:pathData="M5,14C4.4477,14 4,14.4477 4,15V19C4,19.5523 4.4477,20 5,20H6C6.5523,20 7,19.5523 7,19V15C7,14.4477 6.5523,14 6,14H5Z" diff --git a/OsmAnd/res/drawable/ic_action_width_limit.xml b/OsmAnd/res/drawable/ic_action_width_limit.xml index c46203c241..aa0bf717b6 100644 --- a/OsmAnd/res/drawable/ic_action_width_limit.xml +++ b/OsmAnd/res/drawable/ic_action_width_limit.xml @@ -7,9 +7,9 @@ android:pathData="M2,18L6,12L2,6V18Z" android:fillColor="#ffffff"/> <path - android:pathData="M10,12L9,8H7L9,16H11L12,12L13,16H15L17,8H15L14,12L13,8H11L10,12Z" + android:pathData="M22,18L18,12L22,6V18Z" android:fillColor="#ffffff"/> <path - android:pathData="M18,12L22,18V6L18,12Z" + android:pathData="M9,7L10,12L11,7H13L14,12L15,7H17L15,17H13L12,12L11,17H9L7,7H9Z" android:fillColor="#ffffff"/> </vector> diff --git a/OsmAnd/res/drawable/img_help_height_limit_day.xml b/OsmAnd/res/drawable/img_help_height_limit_day.xml index 0942266946..7ebcfcdf23 100644 --- a/OsmAnd/res/drawable/img_help_height_limit_day.xml +++ b/OsmAnd/res/drawable/img_help_height_limit_day.xml @@ -46,11 +46,11 @@ android:fillType="evenOdd"/> <path android:pathData="M38,22L50,30L62,22H38Z" - android:fillColor="#000000"/> + android:fillColor="#212121"/> <path - android:pathData="M46,34V40H54V34H58V50H54V44H46L46,50H42V34H46Z" - android:fillColor="#000000"/> + android:pathData="M46,32L46,40H54V32H58V52H54V44H46L46,52H42V32H46Z" + android:fillColor="#212121"/> <path android:pathData="M50,54L38,62H62L50,54Z" - android:fillColor="#000000"/> + android:fillColor="#212121"/> </vector> diff --git a/OsmAnd/res/drawable/img_help_height_limit_night.xml b/OsmAnd/res/drawable/img_help_height_limit_night.xml index 158ba010c0..e309d4d370 100644 --- a/OsmAnd/res/drawable/img_help_height_limit_night.xml +++ b/OsmAnd/res/drawable/img_help_height_limit_night.xml @@ -46,11 +46,11 @@ android:fillType="evenOdd"/> <path android:pathData="M38,22L50,30L62,22H38Z" - android:fillColor="#000000"/> + android:fillColor="#212121"/> <path - android:pathData="M46,34V40H54V34H58V50H54V44H46L46,50H42V34H46Z" - android:fillColor="#000000"/> + android:pathData="M46,32L46,40H54V32H58V52H54V44H46L46,52H42V32H46Z" + android:fillColor="#212121"/> <path android:pathData="M50,54L38,62H62L50,54Z" - android:fillColor="#000000"/> + android:fillColor="#212121"/> </vector> diff --git a/OsmAnd/res/drawable/img_help_length_limit_day.xml b/OsmAnd/res/drawable/img_help_length_limit_day.xml new file mode 100644 index 0000000000..bf1d51b975 --- /dev/null +++ b/OsmAnd/res/drawable/img_help_length_limit_day.xml @@ -0,0 +1,31 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="360dp" + android:height="90dp" + android:viewportWidth="360" + android:viewportHeight="90"> + <path + android:pathData="M0,0h360v90h-360z" + android:fillColor="#F5F5F5"/> + <path + android:pathData="M16,82h328v8h-328z" + android:fillColor="#D7D8DB"/> + <path + android:pathData="M47,89L53,83L47,77V89ZM164,89L158,83L164,77V89ZM56,83C56,83.552 56.448,84 57,84H64C64.552,84 65,83.552 65,83C65,82.448 64.552,82 64,82H57C56.448,82 56,82.448 56,83ZM86,83C86,83.552 86.448,84 87,84H94C94.552,84 95,83.552 95,83C95,82.448 94.552,82 94,82H87C86.448,82 86,82.448 86,83ZM72,84C71.448,84 71,83.552 71,83C71,82.448 71.448,82 72,82L79,82C79.552,82 80,82.448 80,83C80,83.552 79.552,84 79,84L72,84ZM101,83C101,83.552 101.448,84 102,84H109C109.552,84 110,83.552 110,83C110,82.448 109.552,82 109,82H102C101.448,82 101,82.448 101,83ZM117,84C116.448,84 116,83.552 116,83C116,82.448 116.448,82 117,82H124C124.552,82 125,82.448 125,83C125,83.552 124.552,84 124,84H117ZM131,83C131,83.552 131.448,84 132,84H139C139.552,84 140,83.552 140,83C140,82.448 139.552,82 139,82H132C131.448,82 131,82.448 131,83ZM147,84C146.448,84 146,83.552 146,83C146,82.448 146.448,82 147,82H154C154.552,82 155,82.448 155,83C155,83.552 154.552,84 154,84H147Z" + android:fillColor="#EE5622" + android:fillType="evenOdd"/> + <path + android:pathData="M59,32C57.343,32 56,33.343 56,35V66H54V74H63.062C63.554,77.946 66.92,81 71,81C75.08,81 78.446,77.946 78.938,74H122H128H131H133H136.062C136.554,77.946 139.92,81 144,81C148.08,81 151.446,77.946 151.938,74H157V55L150,40H131V70H128V32H59ZM71,76C69.343,76 68,74.657 68,73C68,71.343 69.343,70 71,70C72.657,70 74,71.343 74,73C74,74.657 72.657,76 71,76ZM141.171,74C141.583,75.165 142.694,76 144,76C145.306,76 146.417,75.165 146.829,74C146.94,73.687 147,73.351 147,73C147,71.343 145.657,70 144,70C142.343,70 141,71.343 141,73C141,73.351 141.06,73.687 141.171,74ZM147.253,44L152,55H135V44H147.253Z" + android:fillColor="#237BFF" + android:fillType="evenOdd"/> + <path + android:pathData="M312,42C312,59.673 297.673,74 280,74C262.327,74 248,59.673 248,42C248,24.327 262.327,10 280,10C297.673,10 312,24.327 312,42Z" + android:fillColor="#ffffff"/> + <path + android:pathData="M280,68C294.359,68 306,56.359 306,42C306,27.641 294.359,16 280,16C265.641,16 254,27.641 254,42C254,56.359 265.641,68 280,68ZM280,74C297.673,74 312,59.673 312,42C312,24.327 297.673,10 280,10C262.327,10 248,24.327 248,42C248,59.673 262.327,74 280,74Z" + android:fillColor="#EE5622" + android:fillType="evenOdd"/> + <path + android:pathData="M260,54L268,42L260,30L260,54ZM292,42L300,30V54L292,42ZM280,32V48H288V52H276V50V48V32H280Z" + android:fillColor="#212121" + android:fillType="evenOdd"/> +</vector> diff --git a/OsmAnd/res/drawable/img_help_length_limit_night.xml b/OsmAnd/res/drawable/img_help_length_limit_night.xml new file mode 100644 index 0000000000..2537c47fa5 --- /dev/null +++ b/OsmAnd/res/drawable/img_help_length_limit_night.xml @@ -0,0 +1,31 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="360dp" + android:height="90dp" + android:viewportWidth="360" + android:viewportHeight="90"> + <path + android:pathData="M0,0h360v90h-360z" + android:fillColor="#28292A"/> + <path + android:pathData="M16,82h328v8h-328z" + android:fillColor="#4B4C4E"/> + <path + android:pathData="M47,89L53,83L47,77V89ZM164,89L158,83L164,77V89ZM56,83C56,83.552 56.448,84 57,84H64C64.552,84 65,83.552 65,83C65,82.448 64.552,82 64,82H57C56.448,82 56,82.448 56,83ZM86,83C86,83.552 86.448,84 87,84H94C94.552,84 95,83.552 95,83C95,82.448 94.552,82 94,82H87C86.448,82 86,82.448 86,83ZM72,84C71.448,84 71,83.552 71,83C71,82.448 71.448,82 72,82L79,82C79.552,82 80,82.448 80,83C80,83.552 79.552,84 79,84L72,84ZM101,83C101,83.552 101.448,84 102,84H109C109.552,84 110,83.552 110,83C110,82.448 109.552,82 109,82H102C101.448,82 101,82.448 101,83ZM117,84C116.448,84 116,83.552 116,83C116,82.448 116.448,82 117,82H124C124.552,82 125,82.448 125,83C125,83.552 124.552,84 124,84H117ZM131,83C131,83.552 131.448,84 132,84H139C139.552,84 140,83.552 140,83C140,82.448 139.552,82 139,82H132C131.448,82 131,82.448 131,83ZM147,84C146.448,84 146,83.552 146,83C146,82.448 146.448,82 147,82H154C154.552,82 155,82.448 155,83C155,83.552 154.552,84 154,84H147Z" + android:fillColor="#EE5622" + android:fillType="evenOdd"/> + <path + android:pathData="M59,32C57.343,32 56,33.343 56,35V66H54V74H63.062C63.554,77.946 66.92,81 71,81C75.08,81 78.446,77.946 78.938,74H122H128H131H133H136.062C136.554,77.946 139.92,81 144,81C148.08,81 151.446,77.946 151.938,74H157V55L150,40H131V70H128V32H59ZM71,76C69.343,76 68,74.657 68,73C68,71.343 69.343,70 71,70C72.657,70 74,71.343 74,73C74,74.657 72.657,76 71,76ZM141.171,74C141.583,75.165 142.694,76 144,76C145.306,76 146.417,75.165 146.829,74C146.94,73.687 147,73.351 147,73C147,71.343 145.657,70 144,70C142.343,70 141,71.343 141,73C141,73.351 141.06,73.687 141.171,74ZM147.253,44L152,55H135V44H147.253Z" + android:fillColor="#237BFF" + android:fillType="evenOdd"/> + <path + android:pathData="M312,42C312,59.673 297.673,74 280,74C262.327,74 248,59.673 248,42C248,24.327 262.327,10 280,10C297.673,10 312,24.327 312,42Z" + android:fillColor="#ffffff"/> + <path + android:pathData="M280,68C294.359,68 306,56.359 306,42C306,27.641 294.359,16 280,16C265.641,16 254,27.641 254,42C254,56.359 265.641,68 280,68ZM280,74C297.673,74 312,59.673 312,42C312,24.327 297.673,10 280,10C262.327,10 248,24.327 248,42C248,59.673 262.327,74 280,74Z" + android:fillColor="#EE5622" + android:fillType="evenOdd"/> + <path + android:pathData="M260,54L268,42L260,30V54ZM292,42L300,30V54L292,42ZM280,32V48H288V52H276V50V48V32H280Z" + android:fillColor="#212121" + android:fillType="evenOdd"/> +</vector> diff --git a/OsmAnd/res/drawable/img_help_weight_limit_day.xml b/OsmAnd/res/drawable/img_help_weight_limit_day.xml index 0c69c5b2ec..a9d50aa338 100644 --- a/OsmAnd/res/drawable/img_help_weight_limit_day.xml +++ b/OsmAnd/res/drawable/img_help_weight_limit_day.xml @@ -27,9 +27,18 @@ android:fillColor="#EE5622" android:fillType="evenOdd"/> <path - android:pathData="M282,30L282,44H278V30H272V26H288V30H282Z" - android:fillColor="#000000"/> + android:pathData="M264,48C264,46.895 264.895,46 266,46H268C269.105,46 270,46.895 270,48V56C270,57.105 269.105,58 268,58H266C264.895,58 264,57.105 264,56V48Z" + android:fillColor="#212121"/> <path - android:pathData="M264,48C264,46.895 264.895,46 266,46H268C269.105,46 270,46.895 270,48V50H278C278,48.895 278.895,48 280,48C281.105,48 282,48.895 282,50H290V48C290,46.895 290.895,46 292,46H294C295.105,46 296,46.895 296,48V56C296,57.105 295.105,58 294,58H292C290.895,58 290,57.105 290,56V54L282,54C282,55.105 281.105,56 280,56C278.895,56 278,55.105 278,54H270V56C270,57.105 269.105,58 268,58H266C264.895,58 264,57.105 264,56V48Z" - android:fillColor="#000000"/> + android:pathData="M278,49C278,48.448 278.448,48 279,48H281C281.552,48 282,48.448 282,49V55C282,55.552 281.552,56 281,56H279C278.448,56 278,55.552 278,55V49Z" + android:fillColor="#212121"/> + <path + android:pathData="M292,46C290.895,46 290,46.895 290,48V56C290,57.105 290.895,58 292,58H294C295.105,58 296,57.105 296,56V48C296,46.895 295.105,46 294,46H292Z" + android:fillColor="#212121"/> + <path + android:pathData="M268,50H292V54H268V50Z" + android:fillColor="#212121"/> + <path + android:pathData="M288,24H272V28H278L278,44H282V28H288V24Z" + android:fillColor="#212121"/> </vector> diff --git a/OsmAnd/res/drawable/img_help_weight_limit_night.xml b/OsmAnd/res/drawable/img_help_weight_limit_night.xml index d055d5802c..49eba6ebcb 100644 --- a/OsmAnd/res/drawable/img_help_weight_limit_night.xml +++ b/OsmAnd/res/drawable/img_help_weight_limit_night.xml @@ -27,9 +27,18 @@ android:fillColor="#EE5622" android:fillType="evenOdd"/> <path - android:pathData="M282,30L282,44H278V30H272V26H288V30H282Z" - android:fillColor="#000000"/> + android:pathData="M264,48C264,46.895 264.895,46 266,46H268C269.105,46 270,46.895 270,48V56C270,57.105 269.105,58 268,58H266C264.895,58 264,57.105 264,56V48Z" + android:fillColor="#212121"/> <path - android:pathData="M264,48C264,46.895 264.895,46 266,46H268C269.105,46 270,46.895 270,48V50H278C278,48.895 278.895,48 280,48C281.105,48 282,48.895 282,50H290V48C290,46.895 290.895,46 292,46H294C295.105,46 296,46.895 296,48V56C296,57.105 295.105,58 294,58H292C290.895,58 290,57.105 290,56V54L282,54C282,55.105 281.105,56 280,56C278.895,56 278,55.105 278,54H270V56C270,57.105 269.105,58 268,58H266C264.895,58 264,57.105 264,56V48Z" - android:fillColor="#000000"/> + android:pathData="M278,49C278,48.448 278.448,48 279,48H281C281.552,48 282,48.448 282,49V55C282,55.552 281.552,56 281,56H279C278.448,56 278,55.552 278,55V49Z" + android:fillColor="#212121"/> + <path + android:pathData="M292,46C290.895,46 290,46.895 290,48V56C290,57.105 290.895,58 292,58H294C295.105,58 296,57.105 296,56V48C296,46.895 295.105,46 294,46H292Z" + android:fillColor="#212121"/> + <path + android:pathData="M268,50H292V54H268V50Z" + android:fillColor="#212121"/> + <path + android:pathData="M288,24H272V28H278L278,44H282V28H288V24Z" + android:fillColor="#212121"/> </vector> diff --git a/OsmAnd/res/drawable/img_help_width_limit_day.xml b/OsmAnd/res/drawable/img_help_width_limit_day.xml index a33a1fb476..0beda557d7 100644 --- a/OsmAnd/res/drawable/img_help_width_limit_day.xml +++ b/OsmAnd/res/drawable/img_help_width_limit_day.xml @@ -32,7 +32,7 @@ android:fillColor="#237BFF" android:fillType="evenOdd"/> <path - android:pathData="M152,53.5C152,51.015 154.015,49 156.5,49V49C158.985,49 161,51.015 161,53.5V53.5C161,55.985 158.985,58 156.5,58V58C154.015,58 152,55.985 152,53.5V53.5Z" + android:pathData="M152,53.5C152,51.015 154.015,49 156.5,49C158.985,49 161,51.015 161,53.5C161,55.985 158.985,58 156.5,58C154.015,58 152,55.985 152,53.5Z" android:strokeAlpha="0.5" android:fillColor="#237BFF" android:fillAlpha="0.5"/> @@ -44,12 +44,12 @@ android:fillColor="#EE5622" android:fillType="evenOdd"/> <path - android:pathData="M260.002,54L268.002,42L260.002,30V54Z" - android:fillColor="#000000"/> + android:pathData="M260,54L268,42L260,30V54Z" + android:fillColor="#212121"/> <path - android:pathData="M276.002,42.004L274.002,34H270.002L274.002,50H278.003L280.002,42.004L282.002,50H286.002L290.002,34H286.002L284.002,42L282.002,34.004L282.003,34H278.002L278.002,34.004L276.002,42.004Z" - android:fillColor="#000000"/> + android:pathData="M300,54L292,42L300,30V54Z" + android:fillColor="#212121"/> <path - android:pathData="M292.003,42L300.003,54V30L292.003,42Z" - android:fillColor="#000000"/> + android:pathData="M274,32L276,42L278,32H282L284,42L286,32H290L286,52H282L280,42L278,52H274L270,32H274Z" + android:fillColor="#212121"/> </vector> diff --git a/OsmAnd/res/drawable/img_help_width_limit_night.xml b/OsmAnd/res/drawable/img_help_width_limit_night.xml index 223a83ab78..2fa1992913 100644 --- a/OsmAnd/res/drawable/img_help_width_limit_night.xml +++ b/OsmAnd/res/drawable/img_help_width_limit_night.xml @@ -44,12 +44,12 @@ android:fillColor="#EE5622" android:fillType="evenOdd"/> <path - android:pathData="M260.002,54L268.002,42L260.002,30V54Z" - android:fillColor="#000000"/> + android:pathData="M260,54L268,42L260,30V54Z" + android:fillColor="#212121"/> <path - android:pathData="M276.002,42.004L274.002,34H270.002L274.002,50H278.003L280.002,42.004L282.002,50H286.002L290.002,34H286.002L284.002,42L282.002,34.004L282.003,34H278.002L278.002,34.004L276.002,42.004Z" - android:fillColor="#000000"/> + android:pathData="M300,54L292,42L300,30V54Z" + android:fillColor="#212121"/> <path - android:pathData="M292.003,42L300.003,54V30L292.003,42Z" - android:fillColor="#000000"/> + android:pathData="M274,32L276,42L278,32H282L284,42L286,32H290L286,52H282L280,42L278,52H274L270,32H274Z" + android:fillColor="#212121"/> </vector> From 58c9cb75e7e391794a83aa9030e8c19d5094feae Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail,com> Date: Thu, 25 Jun 2020 12:29:17 +0300 Subject: [PATCH 229/300] update ogg js file on new version --- OsmAnd/src/net/osmand/plus/resources/ResourceManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java index 07f0d4a9e3..924476c9c2 100644 --- a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java +++ b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java @@ -459,7 +459,7 @@ public class ResourceManager { if (entry.getValue().contains("-tts") && entry.getValue() .endsWith(IndexConstants.TTSVOICE_INDEX_EXT_JS)) { File oggFile = new File(appPath, entry.getValue().replace("-tts", "")); - if (oggFile.getParentFile().exists() && !oggFile.exists()) { + if (oggFile.getParentFile().exists()) { copyAssets(context.getAssets(), entry.getKey(), oggFile); } } From 0c0233fc6348e1ee6b665fddbc7cb1b50515046c Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Thu, 25 Jun 2020 12:53:34 +0300 Subject: [PATCH 230/300] Add preference and UI --- OsmAnd/res/values/strings.xml | 2 ++ OsmAnd/res/xml/general_profile_settings.xml | 8 ++++++++ .../net/osmand/plus/settings/backend/OsmandSettings.java | 1 + .../fragments/GeneralProfileSettingsFragment.java | 9 +++++++++ 4 files changed, 20 insertions(+) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 096d691d91..6eacd5c202 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,8 @@ Thx - Hardy --> + <string name="use_volume_buttons_as_zoom">Volume buttons as zoom</string> + <string name="use_volume_buttons_as_zoom_descr">Enable to control the map zoom level with device volume buttons.</string> <string name="app_mode_inline_skates">Inline skates</string> <string name="speed_cameras_removed_descr">This device doesn\'t have speed cameras.</string> <string name="shared_string_uninstall_and_restart">Uninstall and Restart</string> diff --git a/OsmAnd/res/xml/general_profile_settings.xml b/OsmAnd/res/xml/general_profile_settings.xml index e0c7ec3fa7..6a4148647e 100644 --- a/OsmAnd/res/xml/general_profile_settings.xml +++ b/OsmAnd/res/xml/general_profile_settings.xml @@ -82,6 +82,14 @@ android:layout="@layout/preference_category_with_descr" android:title="@string/shared_string_other" /> + <net.osmand.plus.settings.preferences.SwitchPreferenceEx + android:key="use_volume_buttons_as_zoom" + android:layout="@layout/preference_with_descr_dialog_and_switch" + android:summaryOff="@string/shared_string_disabled" + android:summaryOn="@string/shared_string_enabled" + android:title="@string/use_volume_buttons_as_zoom" + tools:icon="@drawable/ic_action_zoom_volume_buttons" /> + <net.osmand.plus.settings.preferences.SwitchPreferenceEx android:key="use_kalman_filter_compass" android:layout="@layout/preference_with_descr_dialog_and_switch" diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java index 07a4ebbfed..eb9308efa2 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java @@ -1884,6 +1884,7 @@ public class OsmandSettings { // magnetic field doesn'torkmost of the time on some phones public final OsmandPreference<Boolean> USE_MAGNETIC_FIELD_SENSOR_COMPASS = new BooleanPreference("use_magnetic_field_sensor_compass", false).makeProfile().cache(); public final OsmandPreference<Boolean> USE_KALMAN_FILTER_FOR_COMPASS = new BooleanPreference("use_kalman_filter_compass", true).makeProfile().cache(); + public final OsmandPreference<Boolean> USE_VOLUME_BUTTONS_AS_ZOOM = new BooleanPreference("use_volume_buttons_as_zoom", false).makeProfile().cache(); public final OsmandPreference<Boolean> DO_NOT_SHOW_STARTUP_MESSAGES = new BooleanPreference("do_not_show_startup_messages", false).makeGlobal().cache(); public final OsmandPreference<Boolean> SHOW_DOWNLOAD_MAP_DIALOG = new BooleanPreference("show_download_map_dialog", true).makeGlobal().cache(); diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java index 4ac4d78d32..80488797ec 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java @@ -54,6 +54,7 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme setupAngularUnitsPref(); setupSpeedSystemPref(); + setupVolumeButtonsAsZoom(); setupKalmanFilterPref(); setupMagneticFieldSensorPref(); setupMapEmptyStateAllowedPref(); @@ -224,6 +225,14 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme speedSystem.setIcon(getActiveIcon(R.drawable.ic_action_speed)); } + private void setupVolumeButtonsAsZoom() { + SwitchPreferenceEx volumeButtonsPref = (SwitchPreferenceEx) findPreference(settings.USE_VOLUME_BUTTONS_AS_ZOOM.getId()); + volumeButtonsPref.setTitle(getString(R.string.use_volume_buttons_as_zoom)); + volumeButtonsPref.setDescription(getString(R.string.use_volume_buttons_as_zoom_descr)); + Drawable icon = getPersistentPrefIcon(R.drawable.ic_action_zoom_volume_buttons); + volumeButtonsPref.setIcon(icon); + } + private void setupKalmanFilterPref() { SwitchPreferenceEx kalmanFilterPref = (SwitchPreferenceEx) findPreference(settings.USE_KALMAN_FILTER_FOR_COMPASS.getId()); kalmanFilterPref.setTitle(getString(R.string.use_kalman_filter_compass)); From cf67a55b36e4c2c2037827f70b374b6b537eeaca Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Thu, 25 Jun 2020 12:41:30 +0200 Subject: [PATCH 231/300] Fix transport reader --- .../main/java/net/osmand/binary/BinaryMapIndexReader.java | 6 ++++-- .../net/osmand/binary/BinaryMapTransportReaderAdapter.java | 4 +--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java index 0c496cfb00..86fce4f208 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java @@ -2660,8 +2660,10 @@ public class BinaryMapIndexReader { incompleteTransportRoutes = new TLongObjectHashMap<>(); for (TransportIndex ti : transportIndexes) { if (ti.incompleteRoutesLength > 0) { - transportAdapter.readIncompleteRoutesList(incompleteTransportRoutes, ti.incompleteRoutesLength, - ti.incompleteRoutesOffset); + codedIS.seek(ti.incompleteRoutesOffset); + int oldLimit = codedIS.pushLimit(ti.incompleteRoutesLength); + transportAdapter.readIncompleteRoutesList(incompleteTransportRoutes); + codedIS.popLimit(oldLimit); } } } diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapTransportReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapTransportReaderAdapter.java index 049fc161eb..358e908dbd 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapTransportReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapTransportReaderAdapter.java @@ -251,9 +251,7 @@ public class BinaryMapTransportReaderAdapter { return ((char) i)+""; } - public void readIncompleteRoutesList(TLongObjectHashMap<net.osmand.data.IncompleteTransportRoute> incompleteRoutes, - int length, int offset) throws IOException { - codedIS.seek(offset); + public void readIncompleteRoutesList(TLongObjectHashMap<net.osmand.data.IncompleteTransportRoute> incompleteRoutes) throws IOException { boolean end = false; while (!end) { int t = codedIS.readTag(); From ec9f46f23379b85bba8eb766ebc6d23c8b8ec222 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Thu, 25 Jun 2020 14:16:39 +0300 Subject: [PATCH 232/300] Add offset to shape --- .../net/osmand/plus/osmedit/OsmBugsLayer.java | 9 +++--- .../osmand/plus/views/ContextMenuLayer.java | 29 +++++++++++-------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java index ff288cba84..9421acb84d 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java @@ -16,7 +16,7 @@ import androidx.core.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; -import net.osmand.data.FavouritePoint; +import net.osmand.data.FavouritePoint.BackgroundType; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.QuadRect; @@ -157,8 +157,9 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider } PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, ContextCompat.getColor(activity, backgroundColorRes), true, false, iconId, - FavouritePoint.BackgroundType.COMMENT); - pointImageDrawable.drawPoint(canvas, x, y, textScale, false); + BackgroundType.COMMENT); + int offsetY = pointImageDrawable.getIntrinsicHeight() / 2; + pointImageDrawable.drawPoint(canvas, x, y - offsetY, textScale, false); } this.fullObjectsLatLon = fullObjectsLatLon; this.smallObjectsLatLon = smallObjectsLatLon; @@ -201,7 +202,7 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider int ex = (int) point.x; int ey = (int) point.y; final int rad = getScaledTouchRadius(activity.getMyApplication(), getRadiusBug(tb)); - int radius = rad * 3 / 2; + int radius = rad * 3; int small = rad * 3 / 4; boolean showClosed = activity.getMyApplication().getSettings().SHOW_CLOSED_OSM_BUGS.get(); try { diff --git a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java index e7e1338362..64e6073dc3 100644 --- a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java @@ -42,10 +42,10 @@ import net.osmand.core.jni.ObfMapObject; import net.osmand.core.jni.PointI; import net.osmand.core.jni.QStringList; import net.osmand.core.jni.QStringStringHash; -import net.osmand.core.jni.ResourcesManager; import net.osmand.core.jni.Utilities; import net.osmand.data.Amenity; import net.osmand.data.FavouritePoint; +import net.osmand.data.FavouritePoint.BackgroundType; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.RotatedTileBox; @@ -101,8 +101,8 @@ public class ContextMenuLayer extends OsmandMapLayer { private ImageView contextMarker; private Paint paint; private Paint outlinePaint; - private Map<LatLon, FavouritePoint.BackgroundType> pressedLatLonFull = new HashMap<>(); - private Map<LatLon, FavouritePoint.BackgroundType> pressedLatLonSmall = new HashMap<>(); + private Map<LatLon, BackgroundType> pressedLatLonFull = new HashMap<>(); + private Map<LatLon, BackgroundType> pressedLatLonSmall = new HashMap<>(); private GestureDetector movementListener; @@ -233,14 +233,19 @@ public class ContextMenuLayer extends OsmandMapLayer { int x = (int) box.getPixXFromLatLon(latLon.getLatitude(), latLon.getLongitude()); int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude()); Bitmap pressedBitmapSmall = getBackground(pressedLatLonSmall.get(latLon), true); - Rect destRect = getIconDestinationRect(x, y, pressedBitmapSmall.getWidth(), pressedBitmapSmall.getHeight(), scale); + Rect destRect = getIconDestinationRect( + x, y, pressedBitmapSmall.getWidth(), pressedBitmapSmall.getHeight(), scale); canvas.drawBitmap(pressedBitmapSmall, null, destRect, paint); } for (LatLon latLon : pressedLatLonFull.keySet()) { int x = (int) box.getPixXFromLatLon(latLon.getLatitude(), latLon.getLongitude()); int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude()); - Bitmap pressedBitmap = getBackground(pressedLatLonFull.get(latLon), false); - Rect destRect = getIconDestinationRect(x, y, pressedBitmap.getWidth(), pressedBitmap.getHeight(), scale); + + BackgroundType background = pressedLatLonFull.get(latLon); + Bitmap pressedBitmap = getBackground(background, false); + int offsetY = BackgroundType.COMMENT.equals(background) ? pressedBitmap.getHeight() / 2 : 0; + Rect destRect = getIconDestinationRect( + x, y - offsetY, pressedBitmap.getWidth(), pressedBitmap.getHeight(), scale); canvas.drawBitmap(pressedBitmap, null, destRect, paint); } @@ -266,7 +271,7 @@ public class ContextMenuLayer extends OsmandMapLayer { } } - private Bitmap getBackground(FavouritePoint.BackgroundType backgroundType, boolean isSmall) { + private Bitmap getBackground(BackgroundType backgroundType, boolean isSmall) { Context ctx = view.getContext(); Resources res = view.getResources(); String iconName = res.getResourceEntryName(backgroundType.getIconId()); @@ -898,8 +903,8 @@ public class ContextMenuLayer extends OsmandMapLayer { private Map<Object, IContextMenuProvider> selectObjectsForContextMenu(RotatedTileBox tileBox, PointF point, boolean acquireObjLatLon, boolean unknownLocation) { - Map<LatLon, FavouritePoint.BackgroundType> pressedLatLonFull = new HashMap<>(); - Map<LatLon, FavouritePoint.BackgroundType> pressedLatLonSmall = new HashMap<>(); + Map<LatLon, BackgroundType> pressedLatLonFull = new HashMap<>(); + Map<LatLon, BackgroundType> pressedLatLonSmall = new HashMap<>(); Map<Object, IContextMenuProvider> selectedObjects = new HashMap<>(); List<Object> s = new ArrayList<>(); for (OsmandMapLayer lt : view.getLayers()) { @@ -911,15 +916,15 @@ public class ContextMenuLayer extends OsmandMapLayer { selectedObjects.put(o, l); if (acquireObjLatLon && l.isObjectClickable(o)) { LatLon latLon = l.getObjectLocation(o); - FavouritePoint.BackgroundType backgroundType = DEFAULT_BACKGROUND_TYPE; + BackgroundType backgroundType = DEFAULT_BACKGROUND_TYPE; if (o instanceof OsmBugsLayer.OpenStreetNote) { - backgroundType = FavouritePoint.BackgroundType.COMMENT; + backgroundType = BackgroundType.COMMENT; } if (o instanceof FavouritePoint) { backgroundType = ((FavouritePoint) o).getBackgroundType(); } if (o instanceof GPXUtilities.WptPt) { - backgroundType = FavouritePoint.BackgroundType.getByTypeName( + backgroundType = BackgroundType.getByTypeName( ((GPXUtilities.WptPt) o).getBackgroundType(), DEFAULT_BACKGROUND_TYPE); } if (lt.isPresentInFullObjects(latLon) && !pressedLatLonFull.keySet().contains(latLon)) { From f472026c8a0cc43e9b5f19c389907b6c61ff570b Mon Sep 17 00:00:00 2001 From: Jwtiyar Nariman <jwtiyar@gmail.com> Date: Thu, 25 Jun 2020 11:22:42 +0000 Subject: [PATCH 233/300] Added translation using Weblate (Central Kurdish) --- OsmAnd/res/values-ckb/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 OsmAnd/res/values-ckb/strings.xml diff --git a/OsmAnd/res/values-ckb/strings.xml b/OsmAnd/res/values-ckb/strings.xml new file mode 100644 index 0000000000..a6b3daec93 --- /dev/null +++ b/OsmAnd/res/values-ckb/strings.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources></resources> \ No newline at end of file From e5bbcbada458e2e834ade1e5a80d13f7a467f90b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= <ivanrsm1997@gmail.com> Date: Thu, 25 Jun 2020 10:24:01 +0000 Subject: [PATCH 234/300] Translated using Weblate (Galician) Currently translated at 100.0% (3810 of 3810 strings) --- OsmAnd/res/values-gl/phrases.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-gl/phrases.xml b/OsmAnd/res/values-gl/phrases.xml index 2e2fbe9291..6f15e30f7e 100644 --- a/OsmAnd/res/values-gl/phrases.xml +++ b/OsmAnd/res/values-gl/phrases.xml @@ -2480,7 +2480,7 @@ <string name="poi_social_facility_food_bank">Banco de alimentos</string> <string name="poi_social_facility_shelter">Abeiro</string> <string name="poi_social_facility_ambulatory_care">Asistencia sanitaria</string> - <string name="poi_social_facility_workshop">Taller</string> + <string name="poi_social_facility_workshop">Traballo social</string> <string name="poi_social_facility_day_care">Asistencia de día</string> <string name="poi_social_facility_for_child">Crianzas</string> <string name="poi_social_facility_for_orphan">Orfos</string> @@ -2814,7 +2814,7 @@ <string name="poi_service_vehicle_electrical_yes">Eléctrico</string> <string name="poi_service_vehicle_wheels_yes">Rodas</string> <string name="poi_service_vehicle_glass_yes">Vidro</string> - <string name="poi_service_vehicle_truck_repair_yes">Taller mecánico para camións</string> + <string name="poi_service_vehicle_truck_repair_yes">Taller de camións</string> <string name="poi_service_vehicle_muffler_yes">Silenciador</string> <string name="poi_service_vehicle_alignment_yes">Aliñamento</string> <string name="poi_service_vehicle_transmission_repair_yes">Arranxo da transmisión</string> @@ -3822,4 +3822,5 @@ <string name="poi_traffic_signals_vibration_no">Vibración: non</string> <string name="poi_traffic_signals_arrow">Frecha</string> <string name="poi_traffic_signals_vibration">Vibración</string> + <string name="poi_give_box">Caixa de distribución</string> </resources> \ No newline at end of file From 9cbb11493d1821b0dae85aede8432313ea90f7e9 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Thu, 25 Jun 2020 16:39:47 +0300 Subject: [PATCH 235/300] Add keycode --- OsmAnd/src/net/osmand/plus/activities/MapActivity.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 5b41e8c76c..c077006585 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -1546,6 +1546,14 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven uiHandler.sendMessageDelayed(msg, LONG_KEYPRESS_DELAY); } return true; + } else if (settings.USE_VOLUME_BUTTONS_AS_ZOOM.get()) { + if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { + changeZoom(-1); + return true; + } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { + changeZoom(1); + return true; + } } else if (mapScrollHelper.isScrollingDirectionKeyCode(keyCode)) { return mapScrollHelper.onKeyDown(keyCode, event); } From 5183da21b6c5f7403b98527e4660c72beeed9caa Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail,com> Date: Thu, 25 Jun 2020 17:05:09 +0300 Subject: [PATCH 236/300] update ogg js file on new version --- .../plus/resources/ResourceManager.java | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java index 924476c9c2..185f43483c 100644 --- a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java +++ b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java @@ -47,7 +47,6 @@ import net.osmand.plus.resources.AsyncLoadingThread.OnMapLoadedListener; import net.osmand.plus.resources.AsyncLoadingThread.TileLoadDownloadRequest; import net.osmand.plus.srtmplugin.SRTMPlugin; import net.osmand.plus.views.OsmandMapLayer.DrawSettings; -import net.osmand.router.TransportRoutePlanner.TransportRoutingContext; import net.osmand.router.TransportStopsRouteReader; import net.osmand.util.Algorithms; import net.osmand.util.MapUtils; @@ -76,8 +75,8 @@ import java.util.Map.Entry; import java.util.TreeMap; import java.util.concurrent.ConcurrentHashMap; -import gnu.trove.map.hash.TLongObjectHashMap; +import static net.osmand.IndexConstants.VOICE_INDEX_DIR; import static net.osmand.plus.download.DownloadOsmandIndexesHelper.assetMapping; /** @@ -405,8 +404,8 @@ public class ResourceManager { } - public List<String> indexVoiceFiles(IProgress progress){ - File file = context.getAppPath(IndexConstants.VOICE_INDEX_DIR); + public List<String> indexVoiceFiles(IProgress progress) { + File file = context.getAppPath(VOICE_INDEX_DIR); file.mkdirs(); List<String> warnings = new ArrayList<String>(); if (file.exists() && file.canRead()) { @@ -459,7 +458,7 @@ public class ResourceManager { if (entry.getValue().contains("-tts") && entry.getValue() .endsWith(IndexConstants.TTSVOICE_INDEX_EXT_JS)) { File oggFile = new File(appPath, entry.getValue().replace("-tts", "")); - if (oggFile.getParentFile().exists()) { + if (oggFile.getParentFile().exists() && !oggFile.exists()) { copyAssets(context.getAssets(), entry.getKey(), oggFile); } } @@ -570,22 +569,31 @@ public class ResourceManager { else log.error("Mode '" + mode + "' is unknown"); } - + final File destinationFile = new File(appDataDir, destination); - + boolean unconditional = false; - if(installMode != null) + if (installMode != null) unconditional = unconditional || (ASSET_INSTALL_MODE__alwaysCopyOnFirstInstall.equals(installMode) && isFirstInstall); - if(copyMode == null) + if (copyMode == null) log.error("No copy mode was defined for " + source); unconditional = unconditional || ASSET_COPY_MODE__alwaysOverwriteOrCopy.equals(copyMode); - + boolean shouldCopy = unconditional; shouldCopy = shouldCopy || (ASSET_COPY_MODE__overwriteOnlyIfExists.equals(copyMode) && destinationFile.exists()); shouldCopy = shouldCopy || (ASSET_COPY_MODE__copyOnlyIfDoesNotExist.equals(copyMode) && !destinationFile.exists()); - - if(shouldCopy) + + if (shouldCopy) { copyAssets(assetManager, source, destinationFile); + } + if (source.contains("-tts") && source.endsWith(IndexConstants.TTSVOICE_INDEX_EXT_JS)) { + File oggFile = new File(appDataDir + VOICE_INDEX_DIR, source.replace("-tts", "")); + if (oggFile.getParentFile().exists() + && oggFile.exists() + && ASSET_COPY_MODE__overwriteOnlyIfExists.equals(copyMode)) { + copyAssets(assetManager, source, oggFile); + } + } } } From ca67fb4b8a8559e09669f0217214cdf161eaf233 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Thu, 25 Jun 2020 21:56:06 +0300 Subject: [PATCH 237/300] Map activity refactoring --- .../osmand/plus/activities/MapActivity.java | 88 ++--------- .../activities/MapActivityKeyListener.java | 137 ++++++++++++++++++ 2 files changed, 147 insertions(+), 78 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/activities/MapActivityKeyListener.java diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index c077006585..e31a4c1b98 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -17,8 +17,6 @@ import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.os.Environment; -import android.os.Handler; -import android.os.Message; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.KeyEvent; @@ -173,9 +171,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import static net.osmand.aidlapi.OsmAndCustomizationConstants.DRAWER_SETTINGS_ID; -import static net.osmand.plus.settings.backend.OsmandSettings.GENERIC_EXTERNAL_DEVICE; -import static net.osmand.plus.settings.backend.OsmandSettings.PARROT_EXTERNAL_DEVICE; -import static net.osmand.plus.settings.backend.OsmandSettings.WUNDERLINQ_EXTERNAL_DEVICE; public class MapActivity extends OsmandActionBarActivity implements DownloadEvents, OnRequestPermissionsResultCallback, IRouteInformationListener, AMapPointUpdateListener, @@ -187,8 +182,6 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven public static final String INTENT_PARAMS = "intent_prarams"; private static final int SHOW_POSITION_MSG_ID = OsmAndConstants.UI_HANDLER_MAP_VIEW + 1; - private static final int LONG_KEYPRESS_MSG_ID = OsmAndConstants.UI_HANDLER_MAP_VIEW + 2; - private static final int LONG_KEYPRESS_DELAY = 500; private static final int ZOOM_LABEL_DISPLAY = 16; private static final int MIN_ZOOM_LABEL_DISPLAY = 12; private static final int SECOND_SPLASH_TIME_OUT = 8000; @@ -217,8 +210,6 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven private MapActivityActions mapActions; private MapActivityLayers mapLayers; - // handler to show/hide trackball position and to link map with delay - private Handler uiHandler = new Handler(); // App variables private OsmandApplication app; private OsmandSettings settings; @@ -265,6 +256,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven changeKeyguardFlags(); } }; + private MapActivityKeyListener mapActivityKeyListener; @Override public void onCreate(Bundle savedInstanceState) { @@ -387,7 +379,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven app.getAidlApi().onCreateMapActivity(this); lockHelper.setLockUIAdapter(this); - + mapActivityKeyListener = new MapActivityKeyListener(this); mIsDestroyed = false; } @@ -1532,86 +1524,26 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven } + public ScrollHelper getMapScrollHelper() { + return mapScrollHelper; + } + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER && app.accessibilityEnabled()) { - if (!uiHandler.hasMessages(LONG_KEYPRESS_MSG_ID)) { - Message msg = Message.obtain(uiHandler, new Runnable() { - @Override - public void run() { - app.getLocationProvider().emitNavigationHint(); - } - }); - msg.what = LONG_KEYPRESS_MSG_ID; - uiHandler.sendMessageDelayed(msg, LONG_KEYPRESS_DELAY); - } - return true; - } else if (settings.USE_VOLUME_BUTTONS_AS_ZOOM.get()) { - if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { - changeZoom(-1); - return true; - } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { - changeZoom(1); + if (mapActivityKeyListener != null) { + if (mapActivityKeyListener.onKeyDown(keyCode, event)) { return true; } - } else if (mapScrollHelper.isScrollingDirectionKeyCode(keyCode)) { - return mapScrollHelper.onKeyDown(keyCode, event); } return super.onKeyDown(keyCode, event); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { - if (!app.accessibilityEnabled()) { - mapActions.contextMenuPoint(mapView.getLatitude(), mapView.getLongitude()); - } else if (uiHandler.hasMessages(LONG_KEYPRESS_MSG_ID)) { - uiHandler.removeMessages(LONG_KEYPRESS_MSG_ID); - mapActions.contextMenuPoint(mapView.getLatitude(), mapView.getLongitude()); - } - return true; - } else if (keyCode == KeyEvent.KEYCODE_MENU /*&& event.getRepeatCount() == 0*/) { - // repeat count 0 doesn't work for samsung, 1 doesn't work for lg - toggleDrawer(); - return true; - } else if (keyCode == KeyEvent.KEYCODE_C) { - mapViewTrackingUtilities.backToLocationImpl(); - } else if (settings.EXTERNAL_INPUT_DEVICE.get() == PARROT_EXTERNAL_DEVICE) { - // Parrot device has only dpad left and right - if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { - changeZoom(-1); - return true; - } else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { - changeZoom(1); + if (mapActivityKeyListener != null) { + if (mapActivityKeyListener.onKeyUp(keyCode, event)) { return true; } - } else if (settings.EXTERNAL_INPUT_DEVICE.get() == WUNDERLINQ_EXTERNAL_DEVICE) { - // WunderLINQ device, motorcycle smart phone control - if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { - changeZoom(-1); - return true; - } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { - changeZoom(1); - return true; - } else if (keyCode == KeyEvent.KEYCODE_ESCAPE) { - String callingApp = "wunderlinq://datagrid"; - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setData(Uri.parse(callingApp)); - startActivity(intent); - return true; - } - } else if (mapScrollHelper.isScrollingDirectionKeyCode(keyCode)) { - return mapScrollHelper.onKeyUp(keyCode, event); - } else if (settings.EXTERNAL_INPUT_DEVICE.get() == GENERIC_EXTERNAL_DEVICE) { - if (keyCode == KeyEvent.KEYCODE_MINUS) { - changeZoom(-1); - return true; - } else if (keyCode == KeyEvent.KEYCODE_PLUS) { - changeZoom(1); - return true; - } - } else if (OsmandPlugin.onMapActivityKeyUp(this, keyCode)) { - return true; } return super.onKeyUp(keyCode, event); } diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityKeyListener.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityKeyListener.java new file mode 100644 index 0000000000..be642ff80d --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityKeyListener.java @@ -0,0 +1,137 @@ +package net.osmand.plus.activities; + +import android.content.Intent; +import android.net.Uri; +import android.os.Handler; +import android.os.Message; +import android.view.KeyEvent; + +import net.osmand.plus.OsmAndConstants; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.OsmandPlugin; +import net.osmand.plus.helpers.ScrollHelper; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.views.OsmandMapTileView; + +import static net.osmand.plus.settings.backend.OsmandSettings.GENERIC_EXTERNAL_DEVICE; +import static net.osmand.plus.settings.backend.OsmandSettings.PARROT_EXTERNAL_DEVICE; +import static net.osmand.plus.settings.backend.OsmandSettings.WUNDERLINQ_EXTERNAL_DEVICE; + +public class MapActivityKeyListener implements KeyEvent.Callback { + + public static final int LONG_KEYPRESS_MSG_ID = OsmAndConstants.UI_HANDLER_MAP_VIEW + 2; + public static final int LONG_KEYPRESS_DELAY = 500; + + private MapActivity mapActivity; + private OsmandApplication app; + private MapActivityActions mapActions; + private OsmandSettings settings; + // handler to show/hide trackball position and to link map with delay + private Handler uiHandler = new Handler(); + private ScrollHelper mapScrollHelper; + + public MapActivityKeyListener(MapActivity mapActivity) { + this.mapActivity = mapActivity; + app = mapActivity.getMyApplication(); + mapActions = mapActivity.getMapActions(); + settings = app.getSettings(); + mapScrollHelper = mapActivity.getMapScrollHelper(); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER && app.accessibilityEnabled()) { + if (!uiHandler.hasMessages(LONG_KEYPRESS_MSG_ID)) { + Message msg = Message.obtain(uiHandler, new Runnable() { + @Override + public void run() { + app.getLocationProvider().emitNavigationHint(); + } + }); + msg.what = LONG_KEYPRESS_MSG_ID; + uiHandler.sendMessageDelayed(msg, LONG_KEYPRESS_DELAY); + } + return true; + } else if (settings.USE_VOLUME_BUTTONS_AS_ZOOM.get()) { + if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { + mapActivity.changeZoom(-1); + return true; + } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { + mapActivity.changeZoom(1); + return true; + } + } else if (mapScrollHelper.isScrollingDirectionKeyCode(keyCode)) { + return mapScrollHelper.onKeyDown(keyCode, event); + } + return false; + } + + @Override + public boolean onKeyLongPress(int keyCode, KeyEvent event) { + return false; + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { + OsmandMapTileView mapView = mapActivity.getMapView(); + + if (!app.accessibilityEnabled()) { + mapActions.contextMenuPoint(mapView.getLatitude(), mapView.getLongitude()); + } else if (uiHandler.hasMessages(LONG_KEYPRESS_MSG_ID)) { + uiHandler.removeMessages(LONG_KEYPRESS_MSG_ID); + mapActions.contextMenuPoint(mapView.getLatitude(), mapView.getLongitude()); + } + return true; + } else if (keyCode == KeyEvent.KEYCODE_MENU /*&& event.getRepeatCount() == 0*/) { + // repeat count 0 doesn't work for samsung, 1 doesn't work for lg + mapActivity.toggleDrawer(); + return true; + } else if (keyCode == KeyEvent.KEYCODE_C) { + mapActivity.getMapViewTrackingUtilities().backToLocationImpl(); + } else if (settings.EXTERNAL_INPUT_DEVICE.get() == PARROT_EXTERNAL_DEVICE) { + // Parrot device has only dpad left and right + if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { + mapActivity.changeZoom(-1); + return true; + } else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { + mapActivity.changeZoom(1); + return true; + } + } else if (settings.EXTERNAL_INPUT_DEVICE.get() == WUNDERLINQ_EXTERNAL_DEVICE) { + // WunderLINQ device, motorcycle smart phone control + if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { + mapActivity.changeZoom(-1); + return true; + } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { + mapActivity.changeZoom(1); + return true; + } else if (keyCode == KeyEvent.KEYCODE_ESCAPE) { + String callingApp = "wunderlinq://datagrid"; + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setData(Uri.parse(callingApp)); + mapActivity.startActivity(intent); + return true; + } + } else if (mapScrollHelper.isScrollingDirectionKeyCode(keyCode)) { + return mapScrollHelper.onKeyUp(keyCode, event); + } else if (settings.EXTERNAL_INPUT_DEVICE.get() == GENERIC_EXTERNAL_DEVICE) { + if (keyCode == KeyEvent.KEYCODE_MINUS) { + mapActivity.changeZoom(-1); + return true; + } else if (keyCode == KeyEvent.KEYCODE_PLUS) { + mapActivity.changeZoom(1); + return true; + } + } else { + return OsmandPlugin.onMapActivityKeyUp(mapActivity, keyCode); + } + return false; + } + + @Override + public boolean onKeyMultiple(int keyCode, int count, KeyEvent event) { + return false; + } +} + From e85866bb22e86a4668aa0700d6752a598e6fb817 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail,com> Date: Fri, 26 Jun 2020 13:41:15 +0300 Subject: [PATCH 238/300] add js files to non-tts folders --- OsmAnd/assets/bundled_assets.xml | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/OsmAnd/assets/bundled_assets.xml b/OsmAnd/assets/bundled_assets.xml index e27ff76cd7..30d1422d0f 100644 --- a/OsmAnd/assets/bundled_assets.xml +++ b/OsmAnd/assets/bundled_assets.xml @@ -50,6 +50,48 @@ <asset source="voice/zh-hk/zh-hk_tts.js" destination="voice/zh-hk-tts/zh-hk_tts.js" mode="overwriteOnlyIfExists" /> <asset source="voice/zh-tw/zh-tw_tts.js" destination="voice/zh-tw-tts/zh-tw_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/ar/ar_tts.js" destination="voice/ar/ar_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/be/be_tts.js" destination="voice/be/be_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/cs/cs_tts.js" destination="voice/cs/cs_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/da/da_tts.js" destination="voice/da/da_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/de/de_tts.js" destination="voice/de/de_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/el/el_tts.js" destination="voice/el/el_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/en/en_tts.js" destination="voice/en/en_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/en-gb/en-gb_tts.js" destination="voice/en-gb/en-gb_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/es/es_tts.js" destination="voice/es/es_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/es-ar/es-ar_tts.js" destination="voice/es-ar/es-ar_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/et/et_tts.js" destination="voice/et/et_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/fa/fa_tts.js" destination="voice/fa/fa_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/fi/fi_tts.js" destination="voice/fi/fi_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/fr/fr_tts.js" destination="voice/fr/fr_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/gn-py/gn-py_tts.js" destination="voice/gn-py/gn-py_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/nb/nb_tts.js" destination="voice/nb/nb_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/hi/hi_tts.js" destination="voice/hi/hi_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/hr/hr_tts.js" destination="voice/hr/hr_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/hu/hu_tts.js" destination="voice/hu/hu_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/hu-formal/hu-formal_tts.js" destination="voice/hu-formal/hu-formal_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/it/it_tts.js" destination="voice/it/it_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/ja/ja_tts.js" destination="voice/ja/ja_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/ko/ko_tts.js" destination="voice/ko/ko_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/lv/lv_tts.js" destination="voice/lv/lv_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/nl/nl_tts.js" destination="voice/nl/nl_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/pl/pl_tts.js" destination="voice/pl/pl_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/pt/pt_tts.js" destination="voice/pt/pt_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/pt-br/pt-br_tts.js" destination="voice/pt-br/pt-br_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/ro/ro_tts.js" destination="voice/ro/ro_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/ru/ru_tts.js" destination="voice/ru/ru_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/sc/sc_tts.js" destination="voice/sc/sc_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/sk/sk_tts.js" destination="voice/sk/sk_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/sl/sl_tts.js" destination="voice/sl/sl_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/sr/sr_tts.js" destination="voice/sr/sr_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/sv/sv_tts.js" destination="voice/sv/sv_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/sw/sw_tts.js" destination="voice/sw/sw_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/tr/tr_tts.js" destination="voice/tr/tr_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/uk/uk_tts.js" destination="voice/uk/uk_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/zh/zh_tts.js" destination="voice/zh/zh_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/zh-hk/zh-hk_tts.js" destination="voice/zh-hk/zh-hk_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="voice/zh-tw/zh-tw_tts.js" destination="voice/zh-tw/zh-tw_tts.js" mode="overwriteOnlyIfExists" /> + <asset source="fonts/05_NotoSans-Regular.ttf" destination="fonts/05_NotoSans-Regular.ttf" mode="alwaysOverwriteOrCopy" /> <asset source="fonts/10_NotoSans-Bold.ttf" destination="fonts/10_NotoSans-Bold.ttf" mode="alwaysOverwriteOrCopy" /> <asset source="fonts/15_NotoSans-Italic.ttf" destination="fonts/15_NotoSans-Italic.ttf" mode="alwaysOverwriteOrCopy" /> From a7ae12628157480ca0e2db23fc7036ebf2852da2 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail,com> Date: Fri, 26 Jun 2020 13:49:03 +0300 Subject: [PATCH 239/300] refactor way of reading bundled_assets.xml --- .../download/DownloadOsmandIndexesHelper.java | 37 ++++--- .../plus/resources/ResourceManager.java | 101 +++++++----------- 2 files changed, 64 insertions(+), 74 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadOsmandIndexesHelper.java b/OsmAnd/src/net/osmand/plus/download/DownloadOsmandIndexesHelper.java index 4256dfce0f..47b3015d56 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadOsmandIndexesHelper.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadOsmandIndexesHelper.java @@ -123,24 +123,25 @@ public class DownloadOsmandIndexesHelper { listVoiceAssets(result, amanager, pm, app.getSettings()); return result; } - - public static Map<String, String> assetMapping(AssetManager assetManager) throws XmlPullParserException, IOException { - XmlPullParser xmlParser = XmlPullParserFactory.newInstance().newPullParser(); + + public static List<AssetEntry> getBundledAssets(AssetManager assetManager) throws XmlPullParserException, IOException { + XmlPullParser xmlParser = XmlPullParserFactory.newInstance().newPullParser(); InputStream isBundledAssetsXml = assetManager.open("bundled_assets.xml"); xmlParser.setInput(isBundledAssetsXml, "UTF-8"); - Map<String, String> assets = new HashMap<String, String>(); + List<AssetEntry> assets = new ArrayList<>(); int next = 0; while ((next = xmlParser.next()) != XmlPullParser.END_DOCUMENT) { if (next == XmlPullParser.START_TAG && xmlParser.getName().equals("asset")) { final String source = xmlParser.getAttributeValue(null, "source"); final String destination = xmlParser.getAttributeValue(null, "destination"); - assets.put(source, destination); + final String combinedMode = xmlParser.getAttributeValue(null, "mode"); + assets.add(new AssetEntry(source, destination, combinedMode)); } } isBundledAssetsXml.close(); return assets; } - + private static void listVoiceAssets(IndexFileList result, AssetManager amanager, PackageManager pm, OsmandSettings settings) { try { @@ -155,15 +156,15 @@ public class DownloadOsmandIndexesHelper { } catch (NameNotFoundException e) { //do nothing... } - Map<String, String> mapping = assetMapping(amanager); - for (String key : mapping.keySet()) { - String target = mapping.get(key); - if (target.endsWith(IndexConstants.TTSVOICE_INDEX_EXT_JS) && target.startsWith("voice/")) { + List<AssetEntry> mapping = getBundledAssets(amanager); + for (AssetEntry asset : mapping) { + String target = asset.destination; + if (target.endsWith(IndexConstants.TTSVOICE_INDEX_EXT_JS) && target.startsWith("voice/") && target.contains("-tts")) { String lang = target.substring("voice/".length(), target.indexOf("-tts")); File destFile = new File(voicePath, target.substring("voice/".length(), target.indexOf("/", "voice/".length())) + "/" + lang + "_tts.js"); result.add(new AssetIndexItem(lang + "_" + IndexConstants.TTSVOICE_INDEX_EXT_JS, - "voice", date, dateModified, "0.1", destFile.length(), key, + "voice", date, dateModified, "0.1", destFile.length(), asset.source, destFile.getPath(), DownloadActivityType.VOICE_FILE)); } } @@ -262,6 +263,16 @@ public class DownloadOsmandIndexesHelper { return destFile; } } - - + + public static class AssetEntry { + public final String source; + public final String destination; + public final String combinedMode; + + public AssetEntry(String source, String destination, String combinedMode) { + this.source = source; + this.destination = destination; + this.combinedMode = combinedMode; + } + } } diff --git a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java index 185f43483c..220bfe767a 100644 --- a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java +++ b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java @@ -39,6 +39,8 @@ import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; import net.osmand.plus.Version; +import net.osmand.plus.download.DownloadOsmandIndexesHelper; +import net.osmand.plus.download.DownloadOsmandIndexesHelper.AssetEntry; import net.osmand.plus.inapp.InAppPurchaseHelper; import net.osmand.plus.render.MapRenderRepositories; import net.osmand.plus.render.NativeOsmandLibrary; @@ -52,9 +54,7 @@ import net.osmand.util.Algorithms; import net.osmand.util.MapUtils; import org.apache.commons.logging.Log; -import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; -import org.xmlpull.v1.XmlPullParserFactory; import java.io.File; import java.io.FileFilter; @@ -77,7 +77,6 @@ import java.util.concurrent.ConcurrentHashMap; import static net.osmand.IndexConstants.VOICE_INDEX_DIR; -import static net.osmand.plus.download.DownloadOsmandIndexesHelper.assetMapping; /** * Resource manager is responsible to work with all resources @@ -450,20 +449,20 @@ public class ResourceManager { public void copyMissingJSAssets() { try { - Map<String, String> mapping = assetMapping(context.getAssets()); + List<AssetEntry> assets = DownloadOsmandIndexesHelper.getBundledAssets(context.getAssets()); File appPath = context.getAppPath(null); if (appPath.canWrite()) { - for (Entry<String,String> entry : mapping.entrySet()) { - File jsFile = new File(appPath, entry.getValue()); - if (entry.getValue().contains("-tts") && entry.getValue() + for (AssetEntry asset : assets) { + File jsFile = new File(appPath, asset.destination); + if (asset.destination.contains("-tts") && asset.destination .endsWith(IndexConstants.TTSVOICE_INDEX_EXT_JS)) { - File oggFile = new File(appPath, entry.getValue().replace("-tts", "")); + File oggFile = new File(appPath, asset.destination.replace("-tts", "")); if (oggFile.getParentFile().exists() && !oggFile.exists()) { - copyAssets(context.getAssets(), entry.getKey(), oggFile); + copyAssets(context.getAssets(), asset.source, oggFile); } } if (jsFile.getParentFile().exists() && !jsFile.exists()) { - copyAssets(context.getAssets(), entry.getKey(), jsFile); + copyAssets(context.getAssets(), asset.source, jsFile); } } } @@ -541,63 +540,43 @@ public class ResourceManager { private final static String ASSET_COPY_MODE__alwaysOverwriteOrCopy = "alwaysOverwriteOrCopy"; private final static String ASSET_COPY_MODE__copyOnlyIfDoesNotExist = "copyOnlyIfDoesNotExist"; private void unpackBundledAssets(AssetManager assetManager, File appDataDir, IProgress progress, boolean isFirstInstall) throws IOException, XmlPullParserException { - XmlPullParser xmlParser = XmlPullParserFactory.newInstance().newPullParser(); - InputStream isBundledAssetsXml = assetManager.open("bundled_assets.xml"); - xmlParser.setInput(isBundledAssetsXml, "UTF-8"); - - int next = 0; - while ((next = xmlParser.next()) != XmlPullParser.END_DOCUMENT) { - if (next == XmlPullParser.START_TAG && xmlParser.getName().equals("asset")) { - final String source = xmlParser.getAttributeValue(null, "source"); - final String destination = xmlParser.getAttributeValue(null, "destination"); - final String combinedMode = xmlParser.getAttributeValue(null, "mode"); - - final String[] modes = combinedMode.split("\\|"); - if(modes.length == 0) { - log.error("Mode '" + combinedMode + "' is not valid"); - continue; - } - String installMode = null; - String copyMode = null; - for(String mode : modes) { - if(ASSET_INSTALL_MODE__alwaysCopyOnFirstInstall.equals(mode)) - installMode = mode; - else if(ASSET_COPY_MODE__overwriteOnlyIfExists.equals(mode) || - ASSET_COPY_MODE__alwaysOverwriteOrCopy.equals(mode) || - ASSET_COPY_MODE__copyOnlyIfDoesNotExist.equals(mode)) - copyMode = mode; - else - log.error("Mode '" + mode + "' is unknown"); - } + List<AssetEntry> assetEntries = DownloadOsmandIndexesHelper.getBundledAssets(assetManager); + for (AssetEntry asset : assetEntries) { + final String[] modes = asset.combinedMode.split("\\|"); + if (modes.length == 0) { + log.error("Mode '" + asset.combinedMode + "' is not valid"); + continue; + } + String installMode = null; + String copyMode = null; + for (String mode : modes) { + if (ASSET_INSTALL_MODE__alwaysCopyOnFirstInstall.equals(mode)) + installMode = mode; + else if (ASSET_COPY_MODE__overwriteOnlyIfExists.equals(mode) || + ASSET_COPY_MODE__alwaysOverwriteOrCopy.equals(mode) || + ASSET_COPY_MODE__copyOnlyIfDoesNotExist.equals(mode)) + copyMode = mode; + else + log.error("Mode '" + mode + "' is unknown"); + } - final File destinationFile = new File(appDataDir, destination); + final File destinationFile = new File(appDataDir, asset.destination); - boolean unconditional = false; - if (installMode != null) - unconditional = unconditional || (ASSET_INSTALL_MODE__alwaysCopyOnFirstInstall.equals(installMode) && isFirstInstall); - if (copyMode == null) - log.error("No copy mode was defined for " + source); - unconditional = unconditional || ASSET_COPY_MODE__alwaysOverwriteOrCopy.equals(copyMode); + boolean unconditional = false; + if (installMode != null) + unconditional = unconditional || (ASSET_INSTALL_MODE__alwaysCopyOnFirstInstall.equals(installMode) && isFirstInstall); + if (copyMode == null) + log.error("No copy mode was defined for " + asset.source); + unconditional = unconditional || ASSET_COPY_MODE__alwaysOverwriteOrCopy.equals(copyMode); - boolean shouldCopy = unconditional; - shouldCopy = shouldCopy || (ASSET_COPY_MODE__overwriteOnlyIfExists.equals(copyMode) && destinationFile.exists()); - shouldCopy = shouldCopy || (ASSET_COPY_MODE__copyOnlyIfDoesNotExist.equals(copyMode) && !destinationFile.exists()); + boolean shouldCopy = unconditional; + shouldCopy = shouldCopy || (ASSET_COPY_MODE__overwriteOnlyIfExists.equals(copyMode) && destinationFile.exists()); + shouldCopy = shouldCopy || (ASSET_COPY_MODE__copyOnlyIfDoesNotExist.equals(copyMode) && !destinationFile.exists()); - if (shouldCopy) { - copyAssets(assetManager, source, destinationFile); - } - if (source.contains("-tts") && source.endsWith(IndexConstants.TTSVOICE_INDEX_EXT_JS)) { - File oggFile = new File(appDataDir + VOICE_INDEX_DIR, source.replace("-tts", "")); - if (oggFile.getParentFile().exists() - && oggFile.exists() - && ASSET_COPY_MODE__overwriteOnlyIfExists.equals(copyMode)) { - copyAssets(assetManager, source, oggFile); - } - } + if (shouldCopy) { + copyAssets(assetManager, asset.source, destinationFile); } } - - isBundledAssetsXml.close(); } public static void copyAssets(AssetManager assetManager, String assetName, File file) throws IOException { From 4a9c73a5e27dd57269541e9bf78680a025fb8cc5 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail,com> Date: Fri, 26 Jun 2020 15:19:51 +0300 Subject: [PATCH 240/300] add padding to title on inActive poi --- .../net/osmand/plus/poi/RearrangePoiFiltersFragment.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java index e495170e10..0ad4b2ea05 100644 --- a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java +++ b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java @@ -617,11 +617,15 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec PoiViewHolder h = (PoiViewHolder) holder; PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; int osmandOrangeColorResId = nightMode ? R.color.osmand_orange_dark : R.color.osmand_orange; + boolean isActive = poiInfo.isActive; h.title.setText(poiInfo.name); + int padding = (int) getResources().getDimension(R.dimen.content_padding); + int paddingSmall = (int) getResources().getDimension(R.dimen.content_padding_small); + h.title.setPadding(isActive ? 0 : padding, paddingSmall, paddingSmall, padding); boolean userFilter = poiInfo.filterId.startsWith(USER_PREFIX); int iconRes = QuickSearchListItem.getCustomFilterIconRes(poiHelper.getFilterById(poiInfo.filterId)); h.icon.setImageDrawable(uiUtilities.getIcon(userFilter ? iconRes : poiInfo.iconRes, osmandOrangeColorResId)); - h.moveIcon.setVisibility(poiInfo.isActive ? View.VISIBLE : View.GONE); + h.moveIcon.setVisibility(isActive ? View.VISIBLE : View.GONE); h.actionIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -631,7 +635,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec } } }); - if (poiInfo.isActive) { + if (isActive) { h.actionIcon.setImageDrawable(uiUtilities.getIcon(R.drawable.ic_action_remove, R.color.color_osm_edit_delete)); h.moveIcon.setOnTouchListener(new View.OnTouchListener() { @Override From 0e7e543bbed62152bbc9592fccfe913d57fa6d00 Mon Sep 17 00:00:00 2001 From: Dima-1 <softmail32@gmail.com> Date: Fri, 26 Jun 2020 15:33:35 +0300 Subject: [PATCH 241/300] BackgroundType refactor --- OsmAnd/res/values/sizes.xml | 1 + .../src/net/osmand/data/FavouritePoint.java | 26 ++++++++++++- .../osmand/plus/base/PointImageDrawable.java | 37 ++++++------------- .../editors/PointEditorFragmentNew.java | 2 +- .../net/osmand/plus/osmedit/OsmBugsLayer.java | 5 ++- .../osmand/plus/views/ContextMenuLayer.java | 30 +++++---------- 6 files changed, 52 insertions(+), 49 deletions(-) diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml index 087d69932b..42b38e8c4b 100644 --- a/OsmAnd/res/values/sizes.xml +++ b/OsmAnd/res/values/sizes.xml @@ -84,6 +84,7 @@ <dimen name="favorites_select_group_button_width">142dp</dimen> <dimen name="favorites_icon_top_margin">13dp</dimen> <dimen name="favorites_select_icon_button_right_padding">9dp</dimen> + <dimen name="point_background_comment_offset_y">14dp</dimen> <dimen name="local_index_check_right_margin">10dp</dimen> <dimen name="dialog_elements_vertical_margin">16dp</dimen> diff --git a/OsmAnd/src/net/osmand/data/FavouritePoint.java b/OsmAnd/src/net/osmand/data/FavouritePoint.java index 6ac048315d..052949a28f 100644 --- a/OsmAnd/src/net/osmand/data/FavouritePoint.java +++ b/OsmAnd/src/net/osmand/data/FavouritePoint.java @@ -1,6 +1,9 @@ package net.osmand.data; import android.content.Context; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; @@ -311,7 +314,7 @@ public class FavouritePoint implements Serializable, LocationPoint { CIRCLE("circle", R.string.shared_string_circle, R.drawable.bg_point_circle), OCTAGON("octagon", R.string.shared_string_octagon, R.drawable.bg_point_octagon), SQUARE("square", R.string.shared_string_square, R.drawable.bg_point_square), - COMMENT("comment", -1, R.drawable.bg_point_comment); + COMMENT("comment", R.string.poi_dialog_comment, R.drawable.bg_point_comment); private String typeName; @StringRes private int nameId; @@ -344,6 +347,27 @@ public class FavouritePoint implements Serializable, LocationPoint { } return defaultValue; } + + public boolean isSelected() { + return this != COMMENT; + } + + public int getOffsetY(Context ctx, float textScale) { + return this == COMMENT ? Math.round(ctx.getResources() + .getDimensionPixelSize(R.dimen.point_background_comment_offset_y) * textScale) : 0; + } + + public Bitmap getTouchBackground(Context ctx, boolean isSmall) { + return getMapBackgroundIconId(ctx, "center", isSmall); + } + + public Bitmap getMapBackgroundIconId(Context ctx, String layer, boolean isSmall) { + Resources res = ctx.getResources(); + String iconName = res.getResourceEntryName(getIconId()); + String suffix = isSmall ? "_small" : ""; + return BitmapFactory.decodeResource(res, res.getIdentifier("ic_" + iconName + "_" + layer + suffix, + "drawable", ctx.getPackageName())); + } } public static FavouritePoint fromWpt(@NonNull WptPt pt, @NonNull Context ctx) { diff --git a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java index ac05e6d746..d5e3450415 100644 --- a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java @@ -65,28 +65,24 @@ public class PointImageDrawable extends Drawable { private PointImageDrawable(PointInfo pointInfo) { this.withShadow = pointInfo.withShadow; this.synced = pointInfo.synced; - Resources res = pointInfo.ctx.getResources(); - UiUtilities uiUtilities = ((OsmandApplication) pointInfo.ctx.getApplicationContext()).getUIUtilities(); + Context ctx = pointInfo.ctx; + Resources res = ctx.getResources(); + UiUtilities uiUtilities = ((OsmandApplication) ctx.getApplicationContext()).getUIUtilities(); int overlayIconId = pointInfo.overlayIconId; int uiIconId; - mapIcon = uiUtilities.getIcon(getMapIconId(pointInfo.ctx, overlayIconId), R.color.color_white); + mapIcon = uiUtilities.getIcon(getMapIconId(ctx, overlayIconId), R.color.color_white); uiIconId = overlayIconId; int col = pointInfo.color == 0 ? res.getColor(R.color.color_favorite) : pointInfo.color; uiListIcon = uiUtilities.getIcon(uiIconId, R.color.color_white); - int uiBackgroundIconId = pointInfo.backgroundType.getIconId(); + BackgroundType backgroundType = pointInfo.backgroundType; + int uiBackgroundIconId = backgroundType.getIconId(); uiBackgroundIcon = uiUtilities.getPaintedIcon(uiBackgroundIconId, col); - int mapBackgroundIconIdTop = getMapBackgroundIconId(pointInfo, "top", false); - int mapBackgroundIconIdCenter = getMapBackgroundIconId(pointInfo, "center", false); - int mapBackgroundIconIdBottom = getMapBackgroundIconId(pointInfo, "bottom", false); - mapIconBackgroundTop = BitmapFactory.decodeResource(res, mapBackgroundIconIdTop); - mapIconBackgroundCenter = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenter); - mapIconBackgroundBottom = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottom); - int mapBackgroundIconIdTopSmall = getMapBackgroundIconId(pointInfo, "top", true); - int mapBackgroundIconIdCenterSmall = getMapBackgroundIconId(pointInfo, "center", true); - int mapBackgroundIconIdBottomSmall = getMapBackgroundIconId(pointInfo, "bottom", true); - mapIconBackgroundTopSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdTopSmall); - mapIconBackgroundCenterSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenterSmall); - mapIconBackgroundBottomSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottomSmall); + mapIconBackgroundTop = backgroundType.getMapBackgroundIconId(ctx, "top", false); + mapIconBackgroundCenter = backgroundType.getMapBackgroundIconId(ctx, "center", false); + mapIconBackgroundBottom = backgroundType.getMapBackgroundIconId(ctx, "bottom", false); + mapIconBackgroundTopSmall = backgroundType.getMapBackgroundIconId(ctx, "top", true); + mapIconBackgroundCenterSmall = backgroundType.getMapBackgroundIconId(ctx, "center", true); + mapIconBackgroundBottomSmall = backgroundType.getMapBackgroundIconId(ctx, "bottom", true); syncedStroke = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_stroke); syncedColor = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_color); syncedShadow = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_shadow); @@ -102,15 +98,6 @@ public class PointImageDrawable extends Drawable { .replaceFirst("mx_", "mm_"), "drawable", ctx.getPackageName()); } - private int getMapBackgroundIconId(PointInfo pointInfo, String layer, boolean isSmall) { - Context ctx = pointInfo.ctx; - int iconId = pointInfo.backgroundType.getIconId(); - String iconName = ctx.getResources().getResourceEntryName(iconId); - String suffix = isSmall ? "_small" : ""; - return ctx.getResources().getIdentifier("ic_" + iconName + "_" + layer + suffix, - "drawable", ctx.getPackageName()); - } - @Override protected void onBoundsChange(Rect bounds) { super.onBoundsChange(bounds); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java index 700d87908f..565331bd05 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java @@ -380,7 +380,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { private void createShapeSelector() { FlowLayout selectShape = view.findViewById(R.id.select_shape); for (BackgroundType backgroundType : BackgroundType.values()) { - if (backgroundType.getNameId() != -1) { + if (backgroundType.isSelected()) { selectShape.addView(createShapeItemView(backgroundType, selectShape), new FlowLayout.LayoutParams(0, 0)); } diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java index 9421acb84d..5c76f40431 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java @@ -155,10 +155,11 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider iconId = R.drawable.mx_special_symbol_check_mark; backgroundColorRes = R.color.osm_bug_resolved_icon_color; } + BackgroundType backgroundType = BackgroundType.COMMENT; PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, ContextCompat.getColor(activity, backgroundColorRes), true, false, iconId, - BackgroundType.COMMENT); - int offsetY = pointImageDrawable.getIntrinsicHeight() / 2; + backgroundType); + int offsetY = backgroundType.getOffsetY(activity, textScale); pointImageDrawable.drawPoint(canvas, x, y - offsetY, textScale, false); } this.fullObjectsLatLon = fullObjectsLatLon; diff --git a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java index 64e6073dc3..ea5cf50027 100644 --- a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java @@ -2,9 +2,7 @@ package net.osmand.plus.views; import android.Manifest; import android.content.Context; -import android.content.res.Resources; import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PointF; @@ -225,16 +223,17 @@ public class ContextMenuLayer extends OsmandMapLayer { } } } - float scale = 1f; + float textScale = 1f; if (!pressedLatLonSmall.isEmpty() || !pressedLatLonFull.isEmpty()) { - scale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); + textScale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); } for (LatLon latLon : pressedLatLonSmall.keySet()) { int x = (int) box.getPixXFromLatLon(latLon.getLatitude(), latLon.getLongitude()); int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude()); - Bitmap pressedBitmapSmall = getBackground(pressedLatLonSmall.get(latLon), true); + BackgroundType background = pressedLatLonSmall.get(latLon); + Bitmap pressedBitmapSmall = background.getTouchBackground(activity, true); Rect destRect = getIconDestinationRect( - x, y, pressedBitmapSmall.getWidth(), pressedBitmapSmall.getHeight(), scale); + x, y, pressedBitmapSmall.getWidth(), pressedBitmapSmall.getHeight(), textScale); canvas.drawBitmap(pressedBitmapSmall, null, destRect, paint); } for (LatLon latLon : pressedLatLonFull.keySet()) { @@ -242,10 +241,10 @@ public class ContextMenuLayer extends OsmandMapLayer { int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude()); BackgroundType background = pressedLatLonFull.get(latLon); - Bitmap pressedBitmap = getBackground(background, false); - int offsetY = BackgroundType.COMMENT.equals(background) ? pressedBitmap.getHeight() / 2 : 0; + Bitmap pressedBitmap = background.getTouchBackground(activity, false); + int offsetY = background.getOffsetY(activity, textScale); Rect destRect = getIconDestinationRect( - x, y - offsetY, pressedBitmap.getWidth(), pressedBitmap.getHeight(), scale); + x, y - offsetY, pressedBitmap.getWidth(), pressedBitmap.getHeight(), textScale); canvas.drawBitmap(pressedBitmap, null, destRect, paint); } @@ -271,15 +270,6 @@ public class ContextMenuLayer extends OsmandMapLayer { } } - private Bitmap getBackground(BackgroundType backgroundType, boolean isSmall) { - Context ctx = view.getContext(); - Resources res = view.getResources(); - String iconName = res.getResourceEntryName(backgroundType.getIconId()); - String suffix = isSmall ? "_small" : ""; - return BitmapFactory.decodeResource(res, res.getIdentifier("ic_" + iconName + "_center" + suffix, - "drawable", ctx.getPackageName())); - } - public void setSelectOnMap(CallbackWithObject<LatLon> selectOnMap) { this.selectOnMap = selectOnMap; } @@ -927,9 +917,9 @@ public class ContextMenuLayer extends OsmandMapLayer { backgroundType = BackgroundType.getByTypeName( ((GPXUtilities.WptPt) o).getBackgroundType(), DEFAULT_BACKGROUND_TYPE); } - if (lt.isPresentInFullObjects(latLon) && !pressedLatLonFull.keySet().contains(latLon)) { + if (lt.isPresentInFullObjects(latLon) && !pressedLatLonFull.containsKey(latLon)) { pressedLatLonFull.put(latLon, backgroundType); - } else if (lt.isPresentInSmallObjects(latLon) && !pressedLatLonSmall.keySet().contains(latLon)) { + } else if (lt.isPresentInSmallObjects(latLon) && !pressedLatLonSmall.containsKey(latLon)) { pressedLatLonSmall.put(latLon, backgroundType); } } From ef4bf971f0ac22686acc69622bcdc837b363d9d3 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail,com> Date: Fri, 26 Jun 2020 16:40:58 +0300 Subject: [PATCH 242/300] set to snackbar fade animation --- OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java index 0ad4b2ea05..97ad08899d 100644 --- a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java +++ b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java @@ -30,6 +30,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.snackbar.BaseTransientBottomBar; import com.google.android.material.snackbar.Snackbar; import net.osmand.AndroidUtils; @@ -186,6 +187,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec }); ViewCompat.setElevation(snackbar.getView(), 0f); snackbar.setAnchorView(buttonsContainer); + snackbar.setAnimationMode(BaseTransientBottomBar.ANIMATION_MODE_FADE); UiUtilities.setupSnackbar(snackbar, nightMode); snackbar.show(); } From 928c9e60bd48dd704ae4b46ad2bd4b0b610f7fe3 Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail,com> Date: Fri, 26 Jun 2020 17:30:58 +0300 Subject: [PATCH 243/300] set Mo-Fr by default if no opening hours --- OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java index d2d34785e0..cace1be261 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java @@ -118,7 +118,9 @@ public class BasicEditPoiFragment extends BaseOsmAndFragment BasicOpeningHourRule rule = new BasicOpeningHourRule(); rule.setStartTime(9 * 60); rule.setEndTime(18 * 60); - rule.setDays(new boolean[]{true, true, true, true, true, false, false}); + if (mOpeningHoursAdapter.openingHours.getRules().isEmpty()){ + rule.setDays(new boolean[]{true, true, true, true, true, false, false}); + } OpeningHoursDaysDialogFragment fragment = OpeningHoursDaysDialogFragment.createInstance(rule, -1); fragment.show(getChildFragmentManager(), "OpenTimeDialogFragment"); } From 90b2814faa702fdbfa87ff6f9c8703c6b78ae8a0 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Fri, 26 Jun 2020 19:26:44 +0200 Subject: [PATCH 244/300] Add gpx approximation --- .../osmand/router/RoutePlannerFrontEnd.java | 110 +++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java index e8f2fe3707..7bd0795fde 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java @@ -29,6 +29,10 @@ public class RoutePlannerFrontEnd { // Check issue #8649 protected static final double GPS_POSSIBLE_ERROR = 7; public boolean useSmartRouteRecalculation = true; + + public static double AVERAGE_SPLIT_DISTANCE_GPX = 500; + public static double MINIMUM_SPLIT_DISTANCE_GPX = 100; + public static double DISTANCE_APPROXIMATE_THRESHOLD = 50; public RoutePlannerFrontEnd() { @@ -146,7 +150,111 @@ public class RoutePlannerFrontEnd { public void setUseFastRecalculation(boolean use) { useSmartRouteRecalculation = use; } + + private static class GpxApproximateContext { + int routeCalculations = 0; + double routeDistCalculations = 0; + } + + private static class GpxPoint { + public int ind; + public LatLon loc; + public double cumDist; + public RouteSegmentPoint pnt; + public List<RouteSegmentResult> routeToTarget; + public int targetInd = -1; + } + + public List<RouteSegmentResult> searchGpxRoute(final RoutingContext ctx, List<LatLon> points) throws IOException, InterruptedException { + GpxApproximateContext gctx = new GpxApproximateContext(); + List<GpxPoint> gpxPoints = new ArrayList<>(points.size()); + GpxPoint prev = null; + int firstInd = gpxPoints.size(); + for(int i = 0; i < points.size(); i++) { + GpxPoint p = new GpxPoint(); + p.ind = i; + p.loc = points.get(i); + if (prev != null) { + p.cumDist = MapUtils.getDistance(p.loc, prev.loc) + prev.cumDist; + } + if (firstInd == gpxPoints.size()) { + p.pnt = findRouteSegment(p.loc.getLatitude(), p.loc.getLongitude(), ctx, null, false); + if(p.pnt != null) { + firstInd = i; + } + } + gpxPoints.add(p); + prev = p; + } + while (firstInd < gpxPoints.size() - 1) { + int nextInd = findGpxRouteFromPoint(ctx, gctx, gpxPoints, firstInd); + if(nextInd == -1) { + firstInd++; + } else { + firstInd = nextInd; + } + } + List<RouteSegmentResult> res = new ArrayList<RouteSegmentResult>(); + for (int i = 0; i < gpxPoints.size() - 1; i++) { + GpxPoint pnt = gpxPoints.get(i); + if (pnt.routeToTarget != null && !pnt.routeToTarget.isEmpty()) { + res.addAll(pnt.routeToTarget); + i = pnt.targetInd; + } else { + // TODO add straight line from i -> i+1 +// res.add(new RouteSegmentResult(new RouteDataObject(null))); + } + } + if (!res.isEmpty()) { + System.out.println(String.format("GPX route approximations was found by %d of %f m route calculations for %f distance", + gctx.routeCalculations, gctx.routeDistCalculations, gpxPoints.get(gpxPoints.size() - 1).cumDist)); + new RouteResultPreparation().printResults(ctx, points.get(0), points.get(points.size() - 1), res); + } + return res; + } + + private int findGpxRouteFromPoint(final RoutingContext ctx, GpxApproximateContext gctx, List<GpxPoint> gpxPoints, + int pointFrom) throws IOException, InterruptedException { + GpxPoint start = gpxPoints.get(pointFrom); + for (int targetInd = gpxPoints.size() - 1; targetInd > pointFrom; targetInd--) { + GpxPoint target = gpxPoints.get(targetInd); + if (target.cumDist - start.cumDist < AVERAGE_SPLIT_DISTANCE_GPX) { + target.pnt = findRouteSegment(target.loc.getLatitude(), target.loc.getLongitude(), ctx, null, false); + List<RouteSegmentResult> res = null; + if (target.pnt != null) { + gctx.routeDistCalculations += (target.cumDist - start.cumDist); + gctx.routeCalculations++; + res = searchRouteInternalPrepare(ctx, start.pnt, target.pnt, null); + } else if (target.cumDist - start.cumDist < MINIMUM_SPLIT_DISTANCE_GPX) { + // distance too short, so break here and leave non-built + return targetInd; + } + boolean routeIsCorrect = res != null && res.isEmpty(); + for (int k = pointFrom + 1; k < targetInd; k++) { + GpxPoint ipoint = gpxPoints.get(k); + if (dist(ipoint, res) > DISTANCE_APPROXIMATE_THRESHOLD) { + routeIsCorrect = false; + targetInd = k; + break; + } + } + + if (routeIsCorrect) { + start.routeToTarget = res; + start.targetInd = target.ind; + makeStartEndPointsPrecise(res, start.pnt.getPreciseLatLon(), target.pnt.getPreciseLatLon(), null); + return targetInd; + } + } + } + return -1; + } + + private double dist(GpxPoint ipoint, List<RouteSegmentResult> res) { + // TODO Auto-generated method stub + return 0; + } private boolean needRequestPrivateAccessRouting(RoutingContext ctx, List<LatLon> points) throws IOException { boolean res = false; @@ -510,7 +618,7 @@ public class RoutePlannerFrontEnd { ctx.relaxedSegments += local.relaxedSegments; ctx.routingTime += local.routingTime; - local.unloadAllData(ctx); +// local.unloadAllData(ctx); if (restPartRecalculatedRoute != null) { results.addAll(restPartRecalculatedRoute); break; From c7885ec472aed9724a4d44082c5baa7e455f670f Mon Sep 17 00:00:00 2001 From: Everton Hermann <everton.hermann@gmail.com> Date: Sat, 27 Jun 2020 10:39:53 +0200 Subject: [PATCH 245/300] FIX: rescale arrow if stroke is too large 2.25 is the ratio of the stroke size compared to the image size. --- OsmAnd/src/net/osmand/plus/views/RouteLayer.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/views/RouteLayer.java b/OsmAnd/src/net/osmand/plus/views/RouteLayer.java index b6e31416ab..129830c827 100644 --- a/OsmAnd/src/net/osmand/plus/views/RouteLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/RouteLayer.java @@ -294,10 +294,17 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont // int len = (int) (distSegment / pxStep); float pdx = x - px; float pdy = y - py; + float scale=attrs.paint3.getStrokeWidth()/(actionArrow.getWidth()/2.25f); + float scaledWidth=actionArrow.getWidth(); matrix.reset(); matrix.postTranslate(0, -actionArrow.getHeight() / 2f); matrix.postRotate((float) angle, actionArrow.getWidth() / 2f, 0); - matrix.postTranslate(px + pdx - actionArrow.getWidth() / 2f, py + pdy); + if(scale>=1.0f) + { + matrix.postScale(scale,scale); + scaledWidth*=scale; + } + matrix.postTranslate(px + pdx - scaledWidth/ 2f, py + pdy); canvas.drawBitmap(actionArrow, matrix, paintIconAction); } else { px = x; From b35d617544aa66af8fa66a9c62f43548a5a479da Mon Sep 17 00:00:00 2001 From: Athoss <athoss@citromail.hu> Date: Thu, 25 Jun 2020 16:24:24 +0000 Subject: [PATCH 246/300] Translated using Weblate (Hungarian) Currently translated at 98.5% (3357 of 3407 strings) --- OsmAnd/res/values-hu/strings.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index b96f7cfbaf..c194539419 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3732,4 +3732,25 @@ Hosszúság: %2$s</string> <string name="routing_attr_length_description">Adja meg az útvonalakon a járművekre vonatkozó hosszkorlátozást.</string> <string name="routing_attr_length_name">Hosszkorlátozás</string> <string name="speed_cameras_removed_descr">Az eszköz nem tartalmaz traffipax adatokat.</string> + <string name="replace_all_desc">Az jelenlegi elemek lecserélésre kerülnek a fájlban lévőkre</string> + <string name="keep_both_desc">Az importál elemek előtaggal kerünek hozzáadásra</string> + <string name="import_duplicates_description">Az OsmAnd már tartalmaz az importárttal megegyező nevű elemeket. +\n +\nVálasszon egy műveletet.</string> + <string name="import_duplicates_title">Néhány elem már létezik</string> + <string name="plugin_disabled_descr">Ez a bővítmény egy különálló alkalmazás, külön el kell távolítania, amennyiben a továbbiakban nem tervezi használni. +\n +\nA bővítmény a készüléken marad az OsmAnd eltávolítása után.</string> + <string name="routing_profile_direct_to">Légvonalban</string> + <string name="reset_to_default_category_button_promo">Az alapértelmezés visszaállítása a sorrendet visszaállítja a telepítés utáni alapértelmezett állapotba.</string> + <string name="accessibility_mode_disabled">A kisegítő lehetőségek a készülékén az Android rendszerben ki vannak kapcsolva.</string> + <string name="live_monitoring_time_buffer">Idő puffer</string> + <string name="live_monitoring_tracking_interval">Naplózási időköz</string> + <string name="live_monitoring_adress">Webcím</string> + <string name="live_monitoring_adress_descr">Adja meg a webcímet a következő paraméter szintaxissal: szélesség={0}, hosszúság={1}, időbélyeg={2}, pontosság={3}, magasság={4}, sebesség={5}, irány={6}.</string> + <string name="monitoring_notification">Értesítés</string> + <string name="monitoring_min_speed">Legkisebb sebesség</string> + <string name="monitoring_min_accuracy">Legkisebb pontosság</string> + <string name="monitoring_min_distance">Legkisebb elmozdulás</string> + <string name="reset_plugin_to_default">Bővítménybeállítások visszaállítása alapértelmezettre</string> </resources> \ No newline at end of file From 770d9e365f2285d99ea2a7bf11e7750f84dd7a5f Mon Sep 17 00:00:00 2001 From: jan madsen <jsm@janz.dk> Date: Fri, 26 Jun 2020 12:27:47 +0000 Subject: [PATCH 247/300] Translated using Weblate (Danish) Currently translated at 94.1% (3206 of 3407 strings) --- OsmAnd/res/values-da/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 4284a8caaf..c473817c2c 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -3700,4 +3700,7 @@ Repræsenterer område: %1$s x %2$s</string> <string name="shared_string_delete_all_q">Slet alt\?</string> <string name="shared_string_tones">toner</string> <string name="shared_string_meters">meter</string> + <string name="item_deleted">%1$s slettet</string> + <string name="shared_string_uninstall_and_restart">Afinstaller og genstart</string> + <string name="app_mode_inline_skates">Inline-rulleskøjter</string> </resources> \ No newline at end of file From 314510efb932b5c0c14f6ec18dd489320bd203f3 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf <lmelonimamo@yahoo.it> Date: Fri, 26 Jun 2020 19:00:19 +0000 Subject: [PATCH 248/300] Translated using Weblate (Sardinian) Currently translated at 99.6% (3395 of 3407 strings) --- OsmAnd/res/values-sc/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index b42ad0c9df..c19f11f663 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3271,7 +3271,7 @@ <string name="copy_from_other_profile">Còpia dae un\'àteru profilu</string> <string name="map_during_navigation_info">Mapa durante sa navigatzione</string> <string name="map_during_navigation">Mapa durante sa navigatzione</string> - <string name="vehicle_parameters_descr">Pesu, artària, lestresa</string> + <string name="vehicle_parameters_descr">Pesu, artària, longària, lestresa</string> <string name="vehicle_parameters">Paràmetros de su veìculu</string> <string name="voice_announces_info">Sos annùntzios vocales benint riproduidos petzi durante sa navigatzione.</string> <string name="voice_announces_descr">Istrutziones e annùntzios de navigatzione</string> @@ -3805,4 +3805,8 @@ <string name="item_deleted">%1$s iscantzelladu</string> <string name="speed_cameras_restart_descr">Depes torrare a allùghere pro iscantzellare de su totu sos datos de sos autovelox.</string> <string name="shared_string_uninstall_and_restart">Disinstalla e torra a allùghere</string> + <string name="routing_attr_length_description">Dillinda sa longària de su veìculu pro tènnere su permissu pro sas àndalas.</string> + <string name="routing_attr_length_name">Lìmite de longària</string> + <string name="speed_cameras_removed_descr">Custu dispositivu non tenet autovelox.</string> + <string name="app_mode_inline_skates">Pàtinos in lìnia</string> </resources> \ No newline at end of file From bc18add4b1613d9061f63647ddf5c2ca1e7f76d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1ns?= <ivanrsm1997@gmail.com> Date: Fri, 26 Jun 2020 23:46:12 +0000 Subject: [PATCH 249/300] Translated using Weblate (Galician) Currently translated at 100.0% (3407 of 3407 strings) --- OsmAnd/res/values-gl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 0758e924f2..80c079348d 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -2399,7 +2399,7 @@ Lon %2$s</string> <string name="context_menu_read_full_article">Ler o artigo completo</string> <string name="context_menu_read_article">Ler o artigo</string> <string name="context_menu_points_of_group">Tódolos puntos do grupo</string> - <string name="open_from">Aberto a partires das</string> + <string name="open_from">Aberto dende as</string> <string name="open_till">Aberto até as</string> <string name="will_close_at">Pecha ás</string> <string name="will_open_at">Abre ás</string> From 80a8f088cbedb4b708dd48f162daa8402a524506 Mon Sep 17 00:00:00 2001 From: jan madsen <jsm@janz.dk> Date: Fri, 26 Jun 2020 12:25:25 +0000 Subject: [PATCH 250/300] Translated using Weblate (Danish) Currently translated at 99.4% (3790 of 3810 strings) --- OsmAnd/res/values-da/phrases.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml index 09a2605ce2..15ef06fab4 100644 --- a/OsmAnd/res/values-da/phrases.xml +++ b/OsmAnd/res/values-da/phrases.xml @@ -3832,4 +3832,9 @@ <string name="poi_fire_hydrant_type_pipe">Rør</string> <string name="poi_fire_hydrant_pressure_filter">Lufttryk</string> <string name="poi_pump_status_missing_beam">Pumpens tilstand: ingen håndtag</string> + <string name="poi_traffic_signals_arrow_yes">Ja</string> + <string name="poi_traffic_signals_vibration_yes">Ja</string> + <string name="poi_traffic_signals_vibration_no">Vibration: nej</string> + <string name="poi_traffic_signals_arrow">Pil</string> + <string name="poi_traffic_signals_vibration">Vibration</string> </resources> \ No newline at end of file From 3f774b8af3f14d968192d830f3165b33a670b7a0 Mon Sep 17 00:00:00 2001 From: Michael <quelbs@gmail.com> Date: Fri, 26 Jun 2020 06:45:30 +0000 Subject: [PATCH 251/300] Translated using Weblate (German) Currently translated at 100.0% (3810 of 3810 strings) --- OsmAnd/res/values-de/phrases.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 437bb5d33a..533c0c2c7c 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -3832,4 +3832,5 @@ <string name="poi_traffic_signals_vibration_no">kein Vibrieren</string> <string name="poi_traffic_signals_arrow">Pfeil</string> <string name="poi_traffic_signals_vibration">Vibrieren</string> + <string name="poi_give_box">Give box</string> </resources> \ No newline at end of file From 19f4739f0fdbd52e972e9fb9c3db7c16f7efd085 Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf <lmelonimamo@yahoo.it> Date: Fri, 26 Jun 2020 18:46:03 +0000 Subject: [PATCH 252/300] Translated using Weblate (Sardinian) Currently translated at 99.5% (3791 of 3810 strings) --- OsmAnd/res/values-sc/phrases.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-sc/phrases.xml b/OsmAnd/res/values-sc/phrases.xml index e6d16782c5..3fde39d219 100644 --- a/OsmAnd/res/values-sc/phrases.xml +++ b/OsmAnd/res/values-sc/phrases.xml @@ -3825,4 +3825,5 @@ <string name="poi_traffic_signals_vibration_no">Vibratzione: nono</string> <string name="poi_traffic_signals_arrow">Fritza</string> <string name="poi_traffic_signals_vibration">Vibratzione</string> + <string name="poi_give_box">Iscàtula pro donos (give box)</string> </resources> \ No newline at end of file From 300d71b584827a5eb046420b56e995d60bebc75e Mon Sep 17 00:00:00 2001 From: Kars de Jong <jongk@linux-m68k.org> Date: Sat, 27 Jun 2020 10:47:06 +0000 Subject: [PATCH 253/300] Translated using Weblate (Dutch) Currently translated at 90.4% (3083 of 3407 strings) --- OsmAnd/res/values-nl/strings.xml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 844e106bd4..1467b57408 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -3437,4 +3437,28 @@ voor Gebied: %1$s x %2$s</string> <string name="osmand_purchases_item">OsmAnd aankopen</string> <string name="legend_item_description">De gids voor de kaartsymbolen</string> <string name="navigation_profiles_item">Navigatieprofielen</string> + <string name="vessel_width_limit_description">Stel de breedte van het vaartuig in om smalle bruggen te vermijden</string> + <string name="vessel_height_limit_description">Stel de hoogte van het vaartuig in om lage bruggen te vermijden. Let op, als de brug beweegbaar is, gebruiken we de hoogte in geopende toestand.</string> + <string name="screen_timeout_descr">Als \"%1$s\" is geactiveerd, is de actieve tijd hiervan afhankelijk.</string> + <string name="default_screen_timeout">Standaard schermtimeout</string> + <string name="shared_string_tones">tonen</string> + <string name="shared_string_meters">meter</string> + <string name="details_dialog_decr">Toon/verberg extra kaartdetails</string> + <string name="shared_string_night_map">Nachtkaart</string> + <string name="add_online_source">Voeg online bron toe</string> + <string name="clear_tiles_warning">Het toepassen van deze wijzigingen wist de cache van deze tile-bron</string> + <string name="vessel_height_warning_link">Stel hoogte van het vaartuig in</string> + <string name="vessel_height_warning">Stel de hoogte van het vaartuig in om lage bruggen te vermijden. Let op, als de brug beweegbaar is, gebruiken we de hoogte in geopende toestand.</string> + <string name="quick_action_showhide_mapillary_title">Toon/verberg Mapillary</string> + <string name="quick_action_mapillary_hide">Verberg Mapillary</string> + <string name="quick_action_mapillary_show">Toon Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Toon/verberg de Mapillary-laag op de kaart.</string> + <string name="routing_attr_length_description">Geef de toegestane voertuiglengte op voor routes.</string> + <string name="routing_attr_length_name">Maximale lengte</string> + <string name="shared_string_bearing">Richting</string> + <string name="item_deleted">%1$s verwijderd</string> + <string name="speed_cameras_restart_descr">Een herstart is noodzakelijk om de gegevens van snelheidscamera’s volledig te verwijderen.</string> + <string name="shared_string_uninstall_and_restart">Verwijderen en Herstarten</string> + <string name="speed_cameras_removed_descr">Dit apparaat bevat geen informatie over snelheidscamera’s.</string> + <string name="app_mode_inline_skates">Inline skates</string> </resources> \ No newline at end of file From fde9aa6445659f5f8ac36e57bbbc588fbf6c0818 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Sat, 27 Jun 2020 13:10:26 +0200 Subject: [PATCH 254/300] Add gpx route approximation --- .../osmand/router/RoutePlannerFrontEnd.java | 196 +++++++++++++----- .../osmand/router/RouteResultPreparation.java | 15 +- 2 files changed, 150 insertions(+), 61 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java index 7bd0795fde..2d3cf7b580 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java @@ -23,6 +23,8 @@ import net.osmand.util.MapUtils; import org.apache.commons.logging.Log; +import gnu.trove.list.array.TIntArrayList; + public class RoutePlannerFrontEnd { protected static final Log log = PlatformUtil.getLog(RoutePlannerFrontEnd.class); @@ -31,7 +33,7 @@ public class RoutePlannerFrontEnd { public boolean useSmartRouteRecalculation = true; public static double AVERAGE_SPLIT_DISTANCE_GPX = 500; - public static double MINIMUM_SPLIT_DISTANCE_GPX = 100; + public static double MINIMUM_SPLIT_DISTANCE_GPX = 30; public static double DISTANCE_APPROXIMATE_THRESHOLD = 50; @@ -151,9 +153,18 @@ public class RoutePlannerFrontEnd { useSmartRouteRecalculation = use; } - private static class GpxApproximateContext { - int routeCalculations = 0; - double routeDistCalculations = 0; + public static class GpxApproximationResult { + public int routeCalculations = 0; + public double routeDistCalculations = 0; + public List<RouteSegmentResult> res = new ArrayList<RouteSegmentResult>(); + public double routeDistance; + public double routeDistanceDisconnected; + + @Override + public String toString() { + return String.format("GPX approximation (%d of %f m route calcs) for %f m: %f m disconnected", + routeCalculations, routeDistCalculations, routeDistance, routeDistanceDisconnected); + } } private static class GpxPoint { @@ -166,11 +177,10 @@ public class RoutePlannerFrontEnd { } - public List<RouteSegmentResult> searchGpxRoute(final RoutingContext ctx, List<LatLon> points) throws IOException, InterruptedException { - GpxApproximateContext gctx = new GpxApproximateContext(); + public GpxApproximationResult searchGpxRoute(final RoutingContext ctx, List<LatLon> points) throws IOException, InterruptedException { + GpxApproximationResult gctx = new GpxApproximationResult(); List<GpxPoint> gpxPoints = new ArrayList<>(points.size()); GpxPoint prev = null; - int firstInd = gpxPoints.size(); for(int i = 0; i < points.size(); i++) { GpxPoint p = new GpxPoint(); p.ind = i; @@ -178,15 +188,11 @@ public class RoutePlannerFrontEnd { if (prev != null) { p.cumDist = MapUtils.getDistance(p.loc, prev.loc) + prev.cumDist; } - if (firstInd == gpxPoints.size()) { - p.pnt = findRouteSegment(p.loc.getLatitude(), p.loc.getLongitude(), ctx, null, false); - if(p.pnt != null) { - firstInd = i; - } - } gpxPoints.add(p); + gctx.routeDistance = p.cumDist; prev = p; } + int firstInd = 0; while (firstInd < gpxPoints.size() - 1) { int nextInd = findGpxRouteFromPoint(ctx, gctx, gpxPoints, firstInd); if(nextInd == -1) { @@ -195,65 +201,143 @@ public class RoutePlannerFrontEnd { firstInd = nextInd; } } - List<RouteSegmentResult> res = new ArrayList<RouteSegmentResult>(); - for (int i = 0; i < gpxPoints.size() - 1; i++) { + TIntArrayList lastStraightLine = null; + for (int i = 0; i < gpxPoints.size() - 1; ) { GpxPoint pnt = gpxPoints.get(i); if (pnt.routeToTarget != null && !pnt.routeToTarget.isEmpty()) { - res.addAll(pnt.routeToTarget); + if (lastStraightLine != null) { + addStraightLine(gctx.res, lastStraightLine); + lastStraightLine = null; + } + pnt.routeToTarget.get(0).setTurnType(null); + RouteSegmentResult last = pnt.routeToTarget.get(pnt.routeToTarget.size() - 1); + last.setTurnType(null); + gctx.res.addAll(pnt.routeToTarget); i = pnt.targetInd; } else { - // TODO add straight line from i -> i+1 -// res.add(new RouteSegmentResult(new RouteDataObject(null))); + // add straight line from i -> i+1 + if (lastStraightLine == null) { + lastStraightLine = new TIntArrayList(); + lastStraightLine.add(MapUtils.get31TileNumberX(pnt.loc.getLongitude())); + lastStraightLine.add(MapUtils.get31TileNumberY(pnt.loc.getLatitude())); + } + GpxPoint nxt = gpxPoints.get(i + 1); + lastStraightLine.add(MapUtils.get31TileNumberX(nxt.loc.getLongitude())); + lastStraightLine.add(MapUtils.get31TileNumberY(nxt.loc.getLatitude())); + gctx.routeDistanceDisconnected += (nxt.cumDist - pnt.cumDist); + i++; } } - if (!res.isEmpty()) { - System.out.println(String.format("GPX route approximations was found by %d of %f m route calculations for %f distance", - gctx.routeCalculations, gctx.routeDistCalculations, gpxPoints.get(gpxPoints.size() - 1).cumDist)); - new RouteResultPreparation().printResults(ctx, points.get(0), points.get(points.size() - 1), res); + if (lastStraightLine != null) { + addStraightLine(gctx.res, lastStraightLine); + lastStraightLine = null; } - return res; + // clean turns to recaculate them + RouteResultPreparation preparation = new RouteResultPreparation(); + for (RouteSegmentResult r : gctx.res) { + r.setTurnType(null); + r.setDescription(""); + } + preparation.prepareTurnResults(ctx, gctx.res); + + if (!gctx.res.isEmpty()) { + preparation.printResults(ctx, points.get(0), points.get(points.size() - 1), gctx.res); + System.out.println(gctx); + } + return gctx; } - private int findGpxRouteFromPoint(final RoutingContext ctx, GpxApproximateContext gctx, List<GpxPoint> gpxPoints, - int pointFrom) throws IOException, InterruptedException { - GpxPoint start = gpxPoints.get(pointFrom); - for (int targetInd = gpxPoints.size() - 1; targetInd > pointFrom; targetInd--) { - GpxPoint target = gpxPoints.get(targetInd); - if (target.cumDist - start.cumDist < AVERAGE_SPLIT_DISTANCE_GPX) { - target.pnt = findRouteSegment(target.loc.getLatitude(), target.loc.getLongitude(), ctx, null, false); - List<RouteSegmentResult> res = null; - if (target.pnt != null) { - gctx.routeDistCalculations += (target.cumDist - start.cumDist); - gctx.routeCalculations++; - res = searchRouteInternalPrepare(ctx, start.pnt, target.pnt, null); - } else if (target.cumDist - start.cumDist < MINIMUM_SPLIT_DISTANCE_GPX) { - // distance too short, so break here and leave non-built - return targetInd; - } - boolean routeIsCorrect = res != null && res.isEmpty(); - for (int k = pointFrom + 1; k < targetInd; k++) { - GpxPoint ipoint = gpxPoints.get(k); - if (dist(ipoint, res) > DISTANCE_APPROXIMATE_THRESHOLD) { - routeIsCorrect = false; - targetInd = k; - break; - } - } + private void addStraightLine(List<RouteSegmentResult> res, TIntArrayList lastStraightLine) { + // TODO add missing turns for straight lines + RouteDataObject rdo = new RouteDataObject(new RouteRegion()); + int l = lastStraightLine.size() / 2; + rdo.pointsX = new int[l]; + rdo.pointsY = new int[l]; + rdo.types = new int[0]; + rdo.id = -1; + for (int i = 0; i < l; i++) { + rdo.pointsX[i] = lastStraightLine.get(i * 2); + rdo.pointsY[i] = lastStraightLine.get(i * 2 + 1); + } + res.add(new RouteSegmentResult(rdo, 0, rdo.getPointsLength() - 1)); + } - if (routeIsCorrect) { - start.routeToTarget = res; - start.targetInd = target.ind; - makeStartEndPointsPrecise(res, start.pnt.getPreciseLatLon(), target.pnt.getPreciseLatLon(), null); - return targetInd; + private int findGpxRouteFromPoint(final RoutingContext ctx, GpxApproximationResult gctx, List<GpxPoint> gpxPoints, + int pointFrom) throws IOException, InterruptedException { + + GpxPoint start = gpxPoints.get(pointFrom); + if (start.pnt == null) { + start.pnt = findRouteSegment(start.loc.getLatitude(), start.loc.getLongitude(), ctx, null, false); + } + if (start.pnt == null) { + return -1; + } + int targetInd = pointFrom + 1; + while (targetInd < gpxPoints.size() - 1) { + GpxPoint target = gpxPoints.get(targetInd); + if (target.cumDist - start.cumDist > AVERAGE_SPLIT_DISTANCE_GPX) { + break; + } + targetInd++; + } + while (targetInd > pointFrom) { + GpxPoint target = gpxPoints.get(targetInd); + int nextTargetInd = targetInd - 1; + if (target.cumDist - start.cumDist < MINIMUM_SPLIT_DISTANCE_GPX) { + // distance too short, so break here and leave non-built + return targetInd; + } + target.pnt = findRouteSegment(target.loc.getLatitude(), target.loc.getLongitude(), ctx, null, false); + List<RouteSegmentResult> res = null; + if (target.pnt != null) { + gctx.routeDistCalculations += (target.cumDist - start.cumDist); + gctx.routeCalculations++; + res = searchRouteInternalPrepare(ctx, start.pnt, target.pnt, null); + } + boolean routeIsCorrect = res != null && !res.isEmpty(); + for (int k = pointFrom + 1; k < targetInd; k++) { + GpxPoint ipoint = gpxPoints.get(k); + if (!pointCloseEnough(ipoint, res)) { + routeIsCorrect = false; + nextTargetInd = k; + break; } } + if (routeIsCorrect) { + start.routeToTarget = res; + start.targetInd = target.ind; + makeStartEndPointsPrecise(res, start.pnt.getPreciseLatLon(), target.pnt.getPreciseLatLon(), null); + return targetInd; + } else { + targetInd = nextTargetInd; + } + } return -1; } - private double dist(GpxPoint ipoint, List<RouteSegmentResult> res) { - // TODO Auto-generated method stub - return 0; + private boolean pointCloseEnough(GpxPoint ipoint, List<RouteSegmentResult> res) { + int px = MapUtils.get31TileNumberX(ipoint.loc.getLongitude()); + int py = MapUtils.get31TileNumberY(ipoint.loc.getLatitude()); + double SQR = DISTANCE_APPROXIMATE_THRESHOLD * DISTANCE_APPROXIMATE_THRESHOLD; + for(RouteSegmentResult sr : res) { + int start = sr.getStartPointIndex(); + int end = sr.getEndPointIndex(); + if(sr.getStartPointIndex() > sr.getEndPointIndex()) { + start = sr.getEndPointIndex(); + end = sr.getStartPointIndex(); + } + for (int i = start; i < end; i++) { + RouteDataObject r = sr.getObject(); + QuadPoint pp = MapUtils.getProjectionPoint31(px, py, r.getPoint31XTile(i), r.getPoint31YTile(i), + r.getPoint31XTile(i + 1), r.getPoint31YTile(i + 1)); + double currentsDist = squareDist((int) pp.x, (int) pp.y, px, py); + if (currentsDist <= SQR) { + return true; + } + } + } + return false; } private boolean needRequestPrivateAccessRouting(RoutingContext ctx, List<LatLon> points) throws IOException { diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java index 1ee7865634..8344ff6027 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java @@ -175,6 +175,11 @@ public class RouteResultPreparation { splitRoadsAndAttachRoadSegments(ctx, result, recalculation); calculateTimeSpeed(ctx, result); + prepareTurnResults(ctx, result); + return result; + } + + public void prepareTurnResults(RoutingContext ctx, List<RouteSegmentResult> result) { for (int i = 0; i < result.size(); i ++) { TurnType turnType = getTurnInfo(result, i, ctx.leftSideNavigation); result.get(i).setTurnType(turnType); @@ -184,7 +189,6 @@ public class RouteResultPreparation { ignorePrecedingStraightsOnSameIntersection(ctx.leftSideNavigation, result); justifyUTurns(ctx.leftSideNavigation, result); addTurnInfoDescriptions(result); - return result; } protected void ignorePrecedingStraightsOnSameIntersection(boolean leftside, List<RouteSegmentResult> result) { @@ -283,11 +287,12 @@ public class RouteResultPreparation { float height = heightDistanceArray[heightIndex]; if (prevHeight != -99999.0f) { float heightDiff = height - prevHeight; - if (heightDiff > 0) { //ascent only - distOnRoadToPass += heightDiff * 6.0f; //Naismith's rule: add 1 hour per every 600m of ascent + if (heightDiff > 0) { // ascent only + distOnRoadToPass += heightDiff * 6.0f; // Naismith's rule: add 1 hour per every 600m of + // ascent } } - prevHeight = height; + prevHeight = height; } } } @@ -359,7 +364,7 @@ public class RouteResultPreparation { private void checkAndInitRouteRegion(RoutingContext ctx, RouteDataObject road) throws IOException { BinaryMapIndexReader reader = ctx.reverseMap.get(road.region); - if(reader != null) { + if (reader != null) { reader.initRouteRegion(road.region); } } From 6a2addb22017f5cf98982399ccd061f4c6139514 Mon Sep 17 00:00:00 2001 From: Kars de Jong <jongk@linux-m68k.org> Date: Sat, 27 Jun 2020 10:50:27 +0000 Subject: [PATCH 255/300] Translated using Weblate (Dutch) Currently translated at 90.4% (3083 of 3409 strings) --- OsmAnd/res/values-nl/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 1467b57408..78b733da7f 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -3461,4 +3461,7 @@ voor Gebied: %1$s x %2$s</string> <string name="shared_string_uninstall_and_restart">Verwijderen en Herstarten</string> <string name="speed_cameras_removed_descr">Dit apparaat bevat geen informatie over snelheidscamera’s.</string> <string name="app_mode_inline_skates">Inline skates</string> + <string name="keep_active"></string> + <string name="shared_string_uninstall"></string> + <string name="speed_cameras_alert"></string> </resources> \ No newline at end of file From 4651dd4d544547267d9467d82acb3aa6968b0ca5 Mon Sep 17 00:00:00 2001 From: Kars de Jong <jongk@linux-m68k.org> Date: Sat, 27 Jun 2020 12:26:14 +0000 Subject: [PATCH 256/300] Translated using Weblate (Dutch) Currently translated at 90.4% (3083 of 3409 strings) --- OsmAnd/res/values-nl/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 78b733da7f..4c4b663718 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -3447,7 +3447,7 @@ voor Gebied: %1$s x %2$s</string> <string name="shared_string_night_map">Nachtkaart</string> <string name="add_online_source">Voeg online bron toe</string> <string name="clear_tiles_warning">Het toepassen van deze wijzigingen wist de cache van deze tile-bron</string> - <string name="vessel_height_warning_link">Stel hoogte van het vaartuig in</string> + <string name="vessel_height_warning_link">Stel de hoogte van het vaartuig in</string> <string name="vessel_height_warning">Stel de hoogte van het vaartuig in om lage bruggen te vermijden. Let op, als de brug beweegbaar is, gebruiken we de hoogte in geopende toestand.</string> <string name="quick_action_showhide_mapillary_title">Toon/verberg Mapillary</string> <string name="quick_action_mapillary_hide">Verberg Mapillary</string> @@ -3461,7 +3461,7 @@ voor Gebied: %1$s x %2$s</string> <string name="shared_string_uninstall_and_restart">Verwijderen en Herstarten</string> <string name="speed_cameras_removed_descr">Dit apparaat bevat geen informatie over snelheidscamera’s.</string> <string name="app_mode_inline_skates">Inline skates</string> - <string name="keep_active"></string> - <string name="shared_string_uninstall"></string> - <string name="speed_cameras_alert"></string> + <string name="keep_active"/> + <string name="shared_string_uninstall"/> + <string name="speed_cameras_alert"/> </resources> \ No newline at end of file From ef80a98b127f83e242dc2e48ac3802f207d45809 Mon Sep 17 00:00:00 2001 From: Ldm Public <ldmpub@gmail.com> Date: Sat, 27 Jun 2020 12:42:57 +0000 Subject: [PATCH 257/300] Translated using Weblate (French) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-fr/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 2c218a9ad0..7b2f71ab93 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3789,4 +3789,6 @@ <string name="routing_attr_length_name">Limite de longueur</string> <string name="speed_cameras_removed_descr">Cet appareil n\'a pas de radars.</string> <string name="app_mode_inline_skates">Patins à roulettes en ligne</string> + <string name="use_volume_buttons_as_zoom">Zoomer avec les boutons de volume</string> + <string name="use_volume_buttons_as_zoom_descr">Activer pour contrôler le niveau de zoom de la carte avec les boutons de réglage du volume sonore.</string> </resources> \ No newline at end of file From 8d145564ab123a82440c8622341115e37826d403 Mon Sep 17 00:00:00 2001 From: Oliver <websites@posteo.de> Date: Sat, 27 Jun 2020 16:03:24 +0000 Subject: [PATCH 258/300] Translated using Weblate (German) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-de/strings.xml | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 1359f25b32..61573c4340 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -1812,7 +1812,7 @@ <string name="av_locations_descr">GPX-Datei mit Standorten.</string> <string name="free_downloads_used_description">Anzeige der verbleibenden freien Downloads.</string> <string name="shared_string_location">Standort</string> - <string name="hillshade_layer_disabled">Schummerungsebene deaktiviert</string> + <string name="hillshade_layer_disabled">Reliefebene deaktiviert</string> <string name="shared_string_commit">Bestätigen</string> <string name="av_locations">Standorte</string> <string name="shared_string_hide">Verbergen</string> @@ -2217,7 +2217,7 @@ <string name="shared_string_end_time">Beendigungszeit</string> <string name="shared_string_color">Farbe</string> <string name="max_speed">Höchstgeschwindigkeit</string> - <string name="average_speed">Durchschnittliche Geschwindigkeit</string> + <string name="average_speed">Durchschnittsgeschwindigkeit</string> <string name="shared_string_gpx_track">Track</string> <string name="points_delete_multiple_succesful">Punkt(e) gelöscht.</string> <string name="points_delete_multiple">Es werden %1$d Punkt(e) gelöscht. Fortfahren?</string> @@ -2416,7 +2416,7 @@ <string name="quick_action_showhide_osmbugs_descr">Schaltfläche zum Ein- oder Ausblenden von OSM-Notizen auf der Karte.</string> <string name="sorted_by_distance">Nach Entfernung sortiert</string> <string name="search_favorites">In Favoriten suchen</string> - <string name="hillshade_menu_download_descr">Laden Sie die Schummerungskarte herunter, um vertikale Schattierungen anzuzeigen.</string> + <string name="hillshade_menu_download_descr">Laden Sie die Reliefkarte herunter, um vertikale Schattierungen anzuzeigen.</string> <string name="shared_string_plugin">Erweiterung</string> <string name="srtm_purchase_header">Kaufen und installieren Sie die Erweiterung \'Höhenlinien\', um abgestufte vertikale Flächen anzuzeigen.</string> <string name="srtm_menu_download_descr">Laden Sie die Höhenlinienkarte zu dieser Region herunter.</string> @@ -2756,7 +2756,7 @@ <string name="wikivoyage_offline">Wikivoyage offline</string> <string name="unlimited_downloads">Unbegrenzte Downloads</string> <string name="wikipedia_offline">Wikipedia offline</string> - <string name="contour_lines_hillshade_maps">Karten mit Höhenlinien und Schummerung</string> + <string name="contour_lines_hillshade_maps">Karten mit Höhenlinien und Relief</string> <string name="unlock_all_features">Alle OsmAnd-Funktionen freischalten</string> <string name="purchase_dialog_title">Plan auswählen</string> <string name="download_wikipedia_description">Laden Sie die Wikipedia-Artikel für %1$s herunter, um sie offline zu lesen.</string> @@ -3275,7 +3275,7 @@ <string name="copy_from_other_profile">Aus anderem Profil kopieren</string> <string name="turn_screen_on">Bildschirm einschalten</string> <string name="map_during_navigation_info">Karte während Navigation</string> - <string name="vehicle_parameters_descr">Gewicht, Höhe, Geschwindigkeit</string> + <string name="vehicle_parameters_descr">Gewicht, Höhe, Länge, Geschwindigkeit</string> <string name="vehicle_parameters">Fahrzeugparameter</string> <string name="route_parameters">Routenparameter</string> <string name="navigate_point_format_olc">Offener Standortcode (OLC)</string> @@ -3341,7 +3341,7 @@ <string name="shared_string_memory_used_gb_desc">%1$s GB verwendet</string> <string name="shared_string_memory_used_mb_desc">%1$s MB verwendet</string> <string name="shared_string_memory_used_kb_desc">%1$s kB verwendet</string> - <string name="contour_lines_and_hillshade">Höhenlinien und Schummerung</string> + <string name="contour_lines_and_hillshade">Höhenlinien und Relief</string> <string name="routing_attr_prefer_unpaved_name">Unbefestigte Straßen bevorzugen</string> <string name="routing_attr_prefer_unpaved_description">Unbefestigte Straßen bevorzugen.</string> <string name="update_all_maps">Alle Karten aktualisieren</string> @@ -3608,9 +3608,9 @@ <string name="shared_string_legend">Legende</string> <string name="slope_read_more">Lesen Sie mehr über Hangneigungskarten in %1$s.</string> <string name="slope_download_description">Zusätzliche Karten sind erforderlich, um Hangneigungen auf der Karte anzuzeigen.</string> - <string name="hillshade_download_description">Für die Darstellung der Schummerung werden zusätzliche Karten benötigt.</string> + <string name="hillshade_download_description">Für die Darstellung des Reliefs werden zusätzliche Karten benötigt.</string> <string name="shared_string_min">Min</string> - <string name="hillshade_description">Schummerungskarte mit dunklen Schattierungen zur Darstellung von Hängen, Gipfeln und Ebenen.</string> + <string name="hillshade_description">Reliefkarte mit dunklen Schattierungen zur Darstellung von Hängen, Gipfeln und Ebenen.</string> <string name="n_items_of_z">%1$s von %2$s</string> <string name="shared_string_octagon">Achteck</string> <string name="app_mode_ski_touring">Skitouren</string> @@ -3803,11 +3803,17 @@ <string name="item_deleted">%1$s gelöscht</string> <string name="speed_cameras_restart_descr">Ein Neustart ist erforderlich, um Blitzerdaten vollständig zu löschen.</string> <string name="shared_string_uninstall_and_restart">Deinstallieren und neu starten</string> - <string name="speed_cameras_legal_descr">In einigen Ländern oder Regionen ist die Verwendung von Anwendungen zum Warnen vor Blitzern gesetzlich verboten. + <string name="speed_cameras_legal_descr">In einigen Ländern oder Regionen ist die Verwendung von Blitzer-Warneinrichtungen gesetzlich verboten. \n -\nEs muss anhand der Gesetzeslage des Landes entschieden werden. +\nSie müssen anhand der Gesetzeslage des Landes entscheiden, ob Sie \n -\nDie Wahl %1$s sendet Warnungen und Hinweise zu Blitzern. +\n%1$s wählen und Warnungen und Hinweise zu Blitzern erhalten werden, \n -\nDie Wahl %2$s löscht alle Daten für Warnungen, Hinweise und POIs im Zusammenhang mit Blitzern, bis OsmAnd komplett neu installiert wird.</string> +\n%2$s wählen, worauf alle Daten zu Blitzern (Warnungen, Hinweise und POIs) bis zu einer vollständigen Neuinstallation von OsmAnd gelöscht werden.</string> + <string name="routing_attr_length_description">Geben Sie die Fahrzeuglänge an, die auf Routen erlaubt sein soll.</string> + <string name="routing_attr_length_name">Längenbegrenzung</string> + <string name="speed_cameras_removed_descr">Dieses Gerät hat keine Blitzer.</string> + <string name="app_mode_inline_skates">Inline-Skates</string> + <string name="use_volume_buttons_as_zoom_descr">Aktivieren Sie die Steuerung der Zoomstufe der Karte mit den Lautstärketasten des Geräts.</string> + <string name="use_volume_buttons_as_zoom">Lautstärketasten als Zoom</string> </resources> \ No newline at end of file From 174462a817b05faa6d9b4e7edc512fd0775ed802 Mon Sep 17 00:00:00 2001 From: Spielmops <spielmops@posteo.de> Date: Sat, 27 Jun 2020 15:40:23 +0000 Subject: [PATCH 259/300] Translated using Weblate (German) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 61573c4340..91e7cb63b1 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -3598,13 +3598,13 @@ <string name="quick_action_terrain_show">Gelände einblenden</string> <string name="quick_action_terrain_hide">Gelände ausblenden</string> <string name="quick_action_show_hide_terrain">Gelände ein- / ausblenden</string> - <string name="shared_string_hillshade">Schummerung</string> + <string name="shared_string_hillshade">Relief</string> <string name="shared_string_zoom_levels">Zoomstufen</string> <string name="shared_string_transparency">Transparenz</string> <string name="terrain_slider_description">Stellen Sie die minimale und maximale Zoomstufe ein, bei der die Ebene angezeigt wird.</string> <string name="shared_string_terrain">Gelände</string> <string name="download_slope_maps">Hangneigungen</string> - <string name="terrain_empty_state_text">Aktivieren Sie diese Option, um die Schummerungs- oder Hangneigungskarte anzuzeigen. Weitere Informationen zu diesen Kartentypen finden Sie auf unserer Website.</string> + <string name="terrain_empty_state_text">Aktivieren Sie diese Option, um die Relief- oder Hangneigungskarte anzuzeigen. Weitere Informationen zu diesen Kartentypen finden Sie auf unserer Website.</string> <string name="shared_string_legend">Legende</string> <string name="slope_read_more">Lesen Sie mehr über Hangneigungskarten in %1$s.</string> <string name="slope_download_description">Zusätzliche Karten sind erforderlich, um Hangneigungen auf der Karte anzuzeigen.</string> From 25af5428375b28dd291f5d9b7651e63a4240588c Mon Sep 17 00:00:00 2001 From: solokot <solokot@gmail.com> Date: Sat, 27 Jun 2020 15:40:22 +0000 Subject: [PATCH 260/300] Translated using Weblate (Russian) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-ru/strings.xml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 1048b0b22c..19ebf6f420 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -3786,13 +3786,13 @@ <string name="quick_action_mapillary_show">Показать Mapillary</string> <string name="quick_action_showhide_mapillary_descr">Переключатель, чтобы показать или скрыть слой Mapillary на карте.</string> <string name="shared_string_legal">Законодательство</string> - <string name="speed_cameras_legal_descr">В некоторых странах и регионах использование предупреждений о камерах контроля скорости запрещено законом. -\n -\nВам нужно сделать выбор в зависимости от законодательства вашей страны. -\n -\nВыберите \"%1$s\", чтобы получать предупреждения о камерах контроля скорости. -\n -\nВыберите \"%2$s\", чтобы удалить все данные, связанные с камерами контроля скорости (уведомления, предупреждения и POI), до полной переустановки OsmAnd.</string> + <string name="speed_cameras_legal_descr">В некоторых странах и регионах использование предупреждений о камерах контроля скорости запрещено законом. +\n +\nВам нужно сделать выбор в зависимости от законодательства вашей страны. +\n +\nВыберите «%1$s», чтобы получать предупреждения о камерах контроля скорости. +\n +\nВыберите «%2$s», чтобы удалить все данные, связанные с камерами контроля скорости (уведомления, предупреждения и POI), до полной переустановки OsmAnd.</string> <string name="keep_active">Оставить включёнными</string> <string name="uninstall_speed_cameras">Удалить камеры контроля скорости</string> <string name="speed_camera_pois">POI камер контроля скорости</string> @@ -3806,4 +3806,6 @@ <string name="routing_attr_length_name">Предельная длина</string> <string name="speed_cameras_removed_descr">В этом устройстве нет камер контроля скорости.</string> <string name="app_mode_inline_skates">Роликовые коньки</string> + <string name="use_volume_buttons_as_zoom_descr">Управление уровнем масштабирования карты с помощью кнопок регулировки громкости устройства.</string> + <string name="use_volume_buttons_as_zoom">Масштабирование кнопками громкости</string> </resources> \ No newline at end of file From 08ae5409124a16d8ba8d4cf9f0df3efb2147de43 Mon Sep 17 00:00:00 2001 From: ihor_ck <igor_ck@outlook.com> Date: Sat, 27 Jun 2020 20:00:15 +0000 Subject: [PATCH 261/300] Translated using Weblate (Ukrainian) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-uk/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index bc7c0887b1..b126f56677 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -3802,4 +3802,6 @@ <string name="routing_attr_length_name">Обмеження довжини</string> <string name="speed_cameras_removed_descr">На цьому пристрої немає камер контролю швидкості.</string> <string name="app_mode_inline_skates">Роликові ковзани</string> + <string name="use_volume_buttons_as_zoom_descr">Увімкнути для зміни масштабу мапи кнопками гучності пристрою.</string> + <string name="use_volume_buttons_as_zoom">Масштабування кнопками гучності</string> </resources> \ No newline at end of file From b1b44d524eedbc515f43ea0f6d5cb76c6b415bea Mon Sep 17 00:00:00 2001 From: Roberto GEB <robertogeb@gmail.com> Date: Sun, 28 Jun 2020 15:58:16 +0000 Subject: [PATCH 262/300] Translated using Weblate (Spanish) Currently translated at 95.0% (3239 of 3409 strings) --- OsmAnd/res/values-es/strings.xml | 63 ++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index fe12d06b6c..c2036f284b 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -3748,4 +3748,67 @@ <string name="shared_string_meters">metros</string> <string name="details_dialog_decr">Controla la visibilidad de los detalles adicionales mostrados en el mapa</string> <string name="shared_string_night_map">Mapa nocturno</string> + <string name="search_offline_geo_error">No pude analizar la geointención \"%s\".</string> + <string name="multimedia_rec_split_title">División de grabación</string> + <string name="live_monitoring_adress_descr">Indica la dirección web con sintaxis de parámetros : lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string> + <string name="monitoring_min_distance_descr_recommendation">Recomendación: Un ajuste de 5 metros puede funcionar bien para ti si no necesitas capturar detalles más finos que eso, y no quieres capturar explícitamente los datos mientras estás en reposo.</string> + <string name="monitoring_min_distance_descr_side_effect">Efectos secundarios: Los períodos de descanso no se registran en absoluto o sólo en un punto. Los pequeños movimientos (en el mundo real) (por ejemplo, de lado, para marcar un posible desvío en su viaje) pueden ser filtrados. Su archivo contiene menos información para el post-procesado, y tiene peores estadísticas al filtrar puntos obviamente redundantes en el tiempo de registro, mientras que potencialmente mantiene los artefactos causados por la mala recepción o los efectos del chipset del GPS.</string> + <string name="monitoring_min_distance_descr">Este filtro evita que se registren puntos duplicados cuando ha habido muy poco movimiento real, y da un aspecto espacial más agradable a las pistas sin post-procesado posterior.</string> + <string name="monitoring_min_accuracy_descr_remark">Observación: Si el GPS hubiera estado apagado inmediatamente antes de una medida, el primer punto medido podría tener una precisión disminuida, por lo que en nuestro código podríamos querer esperar un segundo más o menos antes de grabar un punto (o grabar el mejor de 3 puntos consecutivos, etc.), pero esto aún no se ha implementado.</string> + <string name="monitoring_min_accuracy_descr_recommendation">Recomendación: Es difícil predecir lo que se registrará y lo que no, puede ser mejor apagar este filtro.</string> + <string name="monitoring_min_accuracy_descr_side_effect">Efecto secundario: Como resultado del filtrado por precisión, pueden faltar puntos, por ejemplo, debajo de puentes, bajo árboles, entre edificios altos o con ciertas condiciones climáticas.</string> + <string name="import_complete_description">Todos los datos de los %1$s son importados, puedes usar los botones de abajo para abrir la parte necesaria de la aplicación para gestionarla.</string> + <string name="ui_customization">Personalización de la interfaz de usuario</string> + <string name="divider_descr">Elementos debajo de este punto separados por un divisor.</string> + <string name="lang_zhminnan">Min del sur</string> + <string name="lang_yo">Yoruba</string> + <string name="lang_war">Waray</string> + <string name="lang_uz">Uzbeko</string> + <string name="lang_ur">Urdu</string> + <string name="lang_tg">Tayiko</string> + <string name="lang_bar">Bávaro</string> + <string name="tracker_item">Rastreador OsmAnd</string> + <string name="legend_item_description">La guía para la simbología del mapa.</string> + <string name="parking_positions">Posiciones de estacionamiento</string> + <string name="turn_screen_on_power_button_disabled">Deshabilitado. Requiere \'Mantener la pantalla encendida\' dentro de \'Tiempo de espera después de la activación\'.</string> + <string name="map_source_zoom_levels_descr">Afecta a la pantalla cuando se usa como mapa o superposición / subyacente. +\n +\n%1$s: el mapa está limitado al rango de nivel de zoom seleccionado. +\n +\n%2$s son los niveles en los que las teselas originales serán visibles, fuera de estos valores se realizará un escalado.</string> + <string name="uninstall_speed_cameras">Desinstalar las cámaras de velocidad</string> + <string name="shared_string_legal">Legal</string> + <string name="speed_camera_pois">PDIs de cámaras de velocidad</string> + <string name="speed_cameras_legal_descr">En algunos países o regiones, el uso de aplicaciones de advertencia de cámaras de velocidad está prohibido por la ley. +\n +\nTienes que hacer una elección dependiendo de la ley de tu país. +\n +\nSelecciona %1$s y recibirás alertas y advertencias sobre las cámaras de velocidad. +\n +\nSelecciona %2$s. Todos los datos relacionados con las cámaras de velocidad: alertas, notificaciones, PDIs, se eliminarán hasta que OsmAnd se reinstale completamente.</string> + <string name="keep_active">Mantener activo</string> + <string name="shared_string_uninstall">Desinstalar</string> + <string name="speed_cameras_alert">Las alertas de cámaras de velocidad están prohibidas por la ley en algunos países.</string> + <string name="default_screen_timeout">Tiempo de espera de pantalla predeterminado</string> + <string name="shared_string_tones">tonos</string> + <string name="add_online_source">Añadir fuente en línea</string> + <string name="clear_tiles_warning">Aplicando estos cambios se borrarán los datos almacenados para esta fuente de teselas</string> + <string name="vessel_height_warning_link">Fijar la altura del navío</string> + <string name="vessel_height_warning">Puedes establecer la altura del navío para evitar los puentes bajos. Ten en cuenta que si el puente es móvil, usaremos su altura en estado abierto.</string> + <string name="vessel_height_limit_description">Fija la altura del navío para evitar los puentes bajos. Ten en cuenta que si el puente es móvil, usaremos su altura en estado abierto.</string> + <string name="vessel_width_limit_description">Fija el ancho del navío para evitar puentes estrechos</string> + <string name="quick_action_showhide_mapillary_title">Mostrar/ocultar Mapillary</string> + <string name="quick_action_mapillary_hide">Ocultar Mapillary</string> + <string name="quick_action_mapillary_show">Mostrar Mapillary</string> + <string name="quick_action_showhide_mapillary_descr">Un conmutador para mostrar u ocultar la capa de Mapillary en el mapa.</string> + <string name="routing_attr_length_description">Especifica la longitud del vehículo que se permitirá en las rutas.</string> + <string name="routing_attr_length_name">Límite de longitud</string> + <string name="shared_string_bearing">Rumbo</string> + <string name="item_deleted">%1$s eliminado</string> + <string name="speed_cameras_restart_descr">Es necesario reiniciar para eliminar completamente los datos de las cámaras de velocidad.</string> + <string name="shared_string_uninstall_and_restart">Desinstalar y reiniciar</string> + <string name="speed_cameras_removed_descr">Este dispositivo no tiene cámaras de velocidad.</string> + <string name="app_mode_inline_skates">Patines en línea</string> + <string name="use_volume_buttons_as_zoom_descr">Permite controlar el nivel de zoom del mapa con los botones de volumen del dispositivo.</string> + <string name="use_volume_buttons_as_zoom">Botones de volumen como zoom</string> </resources> \ No newline at end of file From 50f10236776af70de0bdfb410227ceb8915bd1bc Mon Sep 17 00:00:00 2001 From: jan madsen <jsm@janz.dk> Date: Sun, 28 Jun 2020 14:43:19 +0000 Subject: [PATCH 263/300] Translated using Weblate (Danish) Currently translated at 94.2% (3213 of 3409 strings) --- OsmAnd/res/values-da/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index c473817c2c..4b878e8432 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -3703,4 +3703,11 @@ Repræsenterer område: %1$s x %2$s</string> <string name="item_deleted">%1$s slettet</string> <string name="shared_string_uninstall_and_restart">Afinstaller og genstart</string> <string name="app_mode_inline_skates">Inline-rulleskøjter</string> + <string name="shared_string_uninstall">Afinstaller</string> + <string name="details_dialog_decr">Vis eller skjul yderligere kort-detaljer</string> + <string name="shared_string_night_map">Natkort</string> + <string name="add_online_source">Tilføj onlinekilde</string> + <string name="quick_action_showhide_mapillary_title">Vis/skjul Mapillary</string> + <string name="quick_action_mapillary_hide">Skjul Mapillary</string> + <string name="quick_action_mapillary_show">Vis Mapillary</string> </resources> \ No newline at end of file From 3b1c614fe2dc1904e111473bbea3b10a348cb665 Mon Sep 17 00:00:00 2001 From: ace shadow <acelists@atlas.sk> Date: Sun, 28 Jun 2020 00:18:50 +0000 Subject: [PATCH 264/300] Translated using Weblate (Slovak) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-sk/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index bdbceb9033..c265bbf1e4 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -3805,4 +3805,6 @@ <string name="routing_attr_length_name">Limit dĺžky</string> <string name="speed_cameras_removed_descr">Toto zariadenie neobsahuje rýchlostné radary.</string> <string name="app_mode_inline_skates">Kolieskové korčule</string> + <string name="use_volume_buttons_as_zoom_descr">Umožní ovládať priblíženie mapy tlačidlami hlasitosti zariadenia.</string> + <string name="use_volume_buttons_as_zoom">Tlačidlá hlasitosti na približovanie</string> </resources> \ No newline at end of file From 10a122fbd6eb1fdfcaa72762bc60b71073367ae8 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani <sh.yaron@gmail.com> Date: Sun, 28 Jun 2020 07:28:34 +0000 Subject: [PATCH 265/300] Translated using Weblate (Hebrew) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-he/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index 14cd11b21e..82fd9a4cba 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -3815,4 +3815,6 @@ <string name="routing_attr_length_description">נא לציין את אורך כלי הרכב כדי לבדוק מסלולים מורשים.</string> <string name="routing_attr_length_name">מגבלת אורך</string> <string name="speed_cameras_removed_descr">למכשיר הזה אין מצלמות מהירות.</string> + <string name="use_volume_buttons_as_zoom_descr">מאפשר לשלוח ברמת התקריב של המפה עם כפתורי עצמת השמע של המכשיר.</string> + <string name="use_volume_buttons_as_zoom">כפתורי עצמת שמע כתקריב</string> </resources> \ No newline at end of file From c256fb5e5a7290aee5c072b2d2eccb2f1ed39c6e Mon Sep 17 00:00:00 2001 From: iman <iriman@chmail.ir> Date: Sun, 28 Jun 2020 16:15:15 +0000 Subject: [PATCH 266/300] Translated using Weblate (Persian) Currently translated at 99.7% (3401 of 3409 strings) --- OsmAnd/res/values-fa/strings.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 26b0b78063..55c3b83a71 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -1139,7 +1139,7 @@ <string name="routing_attr_avoid_motorway_name">آزادراه</string> <string name="routing_attr_avoid_motorway_description">از آزادراه‌ها پرهیز می‌کند</string> <string name="routing_attr_weight_name">وزن مجاز</string> - <string name="routing_attr_weight_description">وزن مجاز خودرو در راه‌ها را مشخص کنید.</string> + <string name="routing_attr_weight_description">وزن مجاز خودرو در مسیرها را مشخص کنید.</string> <string name="select_gpx">انتخاب فایل GPX…</string> <string name="route_descr_select_destination">مقصد را تنظیم کنید</string> <string name="shared_string_select_on_map">انتخاب روی نقشه</string> @@ -1612,7 +1612,7 @@ <string name="routing_attr_avoid_borders_name">گذر از مرز</string> <string name="routing_attr_avoid_borders_description">از گذر از مرزهای ملی پرهیز می‌کند</string> <string name="routing_attr_height_name">ارتفاع مجاز</string> - <string name="routing_attr_height_description">ارتفاع مجاز خودرو در راه‌ها چقدر است.</string> + <string name="routing_attr_height_description">ارتفاع مجاز خودرو در مسیرها را مشخص کنید.</string> <string name="download_wikipedia_maps">ویکی‌پدیا</string> <string name="rendering_attr_alpineHiking_description">راه‌ها بر اساس درجه‌بندی SAC رسم شوند.</string> <string name="rendering_attr_hikingRoutesOSMC_name">لایهٔ نمادهای پیاده‌گردی</string> @@ -3266,7 +3266,7 @@ <string name="osmand_settings">تنظیمات OsmAnd</string> <string name="copy_from_other_profile">کپی از پروفایل دیگر</string> <string name="shared_string_other">سایر</string> - <string name="vehicle_parameters_descr">وزن، ارتفاع، سرعت</string> + <string name="vehicle_parameters_descr">وزن، ارتفاع، طول، سرعت</string> <string name="vehicle_parameters">پارامترهای وسیله نقلیه</string> <string name="route_parameters_descr">پیکربندی پارامترهای مسیر</string> <string name="route_parameters">پارامترهای مسیر</string> @@ -3835,4 +3835,9 @@ \n \nبا انتخاب %2$s تا زمانی که OsmAnd را دوباره نصب کنید، تمام دادهٔ مربوط به دوربین‌های سرعت (هشدارها، اعلان‌ها، نقاط توجه) حذف می‌شود.</string> <string name="speed_cameras_alert">قانونِ برخی از کشورها استفاده از هشداردهندهٔ دوربین سرعت را ممنوع کرده است.</string> + <string name="use_volume_buttons_as_zoom_descr">با این گزینه می‌توانید با استفاده از دکمه‌های کم/زیاد صدای دستگاه سطح زوم را کنترل کنید.</string> + <string name="use_volume_buttons_as_zoom">زوم با دکمه‌های صدا</string> + <string name="routing_attr_length_name">طول مجاز</string> + <string name="routing_attr_length_description">طول مجاز خودرو در مسیرها را مشخص کنید.</string> + <string name="speed_cameras_removed_descr">این دستگاه دوربین‌های سرعت را ندارد.</string> </resources> \ No newline at end of file From 4378cd2d6484e09335ba3a4e03a58cb99b00505c Mon Sep 17 00:00:00 2001 From: Ajeje Brazorf <lmelonimamo@yahoo.it> Date: Sat, 27 Jun 2020 14:54:01 +0000 Subject: [PATCH 267/300] Translated using Weblate (Sardinian) Currently translated at 99.6% (3397 of 3409 strings) --- OsmAnd/res/values-sc/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index c19f11f663..2611a5d02a 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3809,4 +3809,6 @@ <string name="routing_attr_length_name">Lìmite de longària</string> <string name="speed_cameras_removed_descr">Custu dispositivu non tenet autovelox.</string> <string name="app_mode_inline_skates">Pàtinos in lìnia</string> + <string name="use_volume_buttons_as_zoom_descr">Abìlita pro controllare su livellu de ismanniamentu cun sos butones de su volume de su dispositivu.</string> + <string name="use_volume_buttons_as_zoom">Butones de su volume pro s\'ismanniamentu</string> </resources> \ No newline at end of file From 13c6df8b1b1a8e6580a07495ac8eb969770e5bd8 Mon Sep 17 00:00:00 2001 From: Oliver <websites@posteo.de> Date: Sun, 28 Jun 2020 06:39:59 +0000 Subject: [PATCH 268/300] Translated using Weblate (German) Currently translated at 100.0% (3810 of 3810 strings) --- OsmAnd/res/values-de/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 533c0c2c7c..e6e29b1838 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -2126,7 +2126,7 @@ <string name="poi_refugee_yes">Flüchtlingsunterkunft</string> <string name="poi_social_facility_group_home">Wohngruppe</string> <string name="poi_social_facility_assisted_living">Betreutes Wohnen</string> - <string name="poi_social_facility_outreach">Freier Treff</string> + <string name="poi_social_facility_outreach">Beratungsstelle</string> <string name="poi_social_facility_food_bank">Verpflegung</string> <string name="poi_social_facility_shelter">Obdach</string> <string name="poi_social_facility_ambulatory_care">Ambulante Pflege</string> From 9f202575331d154a76f7cdf9491f85b0ac76150d Mon Sep 17 00:00:00 2001 From: ce4 <chregger@gmail.com> Date: Sat, 27 Jun 2020 16:31:06 +0000 Subject: [PATCH 269/300] Translated using Weblate (German) Currently translated at 100.0% (3810 of 3810 strings) --- OsmAnd/res/values-de/phrases.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index e6e29b1838..4add64ed4d 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -2162,7 +2162,7 @@ <string name="poi_step_condition_rough">Treppenzustand: schlecht</string> <string name="poi_cairn">Steinhügel</string> <string name="poi_memorial_fassade_decoration">Fassadendekoration</string> - <string name="poi_tomb_war_grave">Art: Kriegsgrab</string> + <string name="poi_tomb_war_grave">Art: Kriegsgräberstätte</string> <string name="poi_tomb_tumulus">Art: Hügelgrab</string> <string name="poi_tomb_rock_cut">Art: Felsgrab</string> <string name="poi_tomb_hypogeum">Art: Hypogäum</string> From c3bfc203fd0bd8f292dc073de6efb8a8d58c5ae5 Mon Sep 17 00:00:00 2001 From: Kars de Jong <jongk@linux-m68k.org> Date: Sun, 28 Jun 2020 16:41:57 +0000 Subject: [PATCH 270/300] Translated using Weblate (Dutch) Currently translated at 88.1% (3357 of 3810 strings) --- OsmAnd/res/values-nl/phrases.xml | 82 ++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index 8f2054e94b..b694794eb3 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -3288,4 +3288,86 @@ <string name="poi_fire_hydrant_pressure_filter">Druk</string> <string name="poi_pump_style_modern">Pompstijl: moderne</string> <string name="poi_pump_type_gravity">Pompsoort: zwaartekracht</string> + <string name="poi_water_place_access_community">Gemeenschap</string> + <string name="poi_water_supply_bottled_water">Flessenwater</string> + <string name="poi_water_supply_water_tank">Watertank</string> + <string name="poi_water_supply_water_trucking">Transport per watertruck</string> + <string name="poi_water_supply_borehole">Bron (boorgat)</string> + <string name="poi_water_supply_pump">Pomp</string> + <string name="poi_water_supply_running_water">Stromend water</string> + <string name="poi_water_supply_pipeline">Pijpleiding</string> + <string name="poi_water_supply_water_well">Waterput</string> + <string name="poi_water_purification_aquatabs">Aquatabs</string> + <string name="poi_water_purification_reverse_osmosis">Omgekeerde osmose</string> + <string name="poi_water_purification_chlorine">Chloor</string> + <string name="poi_water_purification_none">Geen</string> + <string name="poi_water_place_durability_emergency">Duurzaamheid van de waterplaats: noodgeval</string> + <string name="poi_water_place_durability_durable">Duurzaamheid van de waterplaats: duurzaam</string> + <string name="poi_operational_status_needs_maintenance">Heeft onderhoud nodig</string> + <string name="poi_operational_status_broken">Defect</string> + <string name="poi_operational_status_restricted">Beperkt</string> + <string name="poi_visibility_area">Zichtbaarheid: gebied</string> + <string name="poi_visibility_street">Zichtbaarheid: straat</string> + <string name="poi_visibility_house">Zichtbaarheid: huis</string> + <string name="poi_location_entrance">Locatie: ingang</string> + <string name="poi_location_wall">Locatie: muur</string> + <string name="poi_location_bridge">Locatie: brug</string> + <string name="poi_location_kiosk">Locatie: kiosk</string> + <string name="poi_location_platform">Locatie: platform</string> + <string name="poi_location_indoor">Locatie: binnen</string> + <string name="poi_location_outdoor">Locatie: buiten</string> + <string name="poi_location_rooftop">Locatie: op het dak</string> + <string name="poi_location_roof">Locatie: dak</string> + <string name="poi_location_overground">Locatie: bovengronds</string> + <string name="poi_location_underground">Locatie: ondergronds</string> + <string name="poi_surface_decoturf">DecoTurf</string> + <string name="poi_surface_tartan">Tartan (kunststof)</string> + <string name="poi_gorge">Kloof</string> + <string name="poi_government_legislative">Wetgevende instelling</string> + <string name="poi_government_treasury">Ministerie van Financiën</string> + <string name="poi_government_social_security">Sociale zekerheid</string> + <string name="poi_government_ministry">Ministerie</string> + <string name="poi_network">Netwerk</string> + <string name="poi_boat_canoe_rental_rental_yes">Kano: ja</string> + <string name="poi_boat_kayak_rental_rental_yes">Kajaks: ja</string> + <string name="poi_boat_dinghy_rental_rental_yes">Rubberboot: Ja</string> + <string name="poi_boat_sailboat_rental_yes">Zeilboten: ja</string> + <string name="poi_boat_jetski_rental_yes">Jetski\'s: ja</string> + <string name="poi_boat_pedalboat_rental_yes">Waterfietsen: ja</string> + <string name="poi_boat_houseboat_rental_yes">Woonboten: ja</string> + <string name="poi_boat_motorboat_rental_yes">Motorboten: ja</string> + <string name="poi_reservation_members_only">Reservering: alleen voor leden</string> + <string name="poi_reservation_yes">Reservering: ja</string> + <string name="poi_reservation_required">Reservering: verplicht</string> + <string name="poi_winter_room_yes">Winterkamer: ja</string> + <string name="poi_direction_entrance">Richting: ingang</string> + <string name="poi_animal_shelter_purpose_release_no">Vrijlaten: ja</string> + <string name="poi_animal_shelter_purpose_adoption_no">Adoptie: nee</string> + <string name="poi_owner">Eigenaar</string> + <string name="poi_motorcycle_type_dualsport">Dualsport</string> + <string name="poi_motorcycle_type_chopper">Choppers</string> + <string name="poi_motorcycle_type_scooter">Scooters</string> + <string name="poi_motorcycle_clothes_yes">Motorkleding</string> + <string name="poi_motorcycle_tyres_yes">Banden</string> + <string name="poi_motorcycle_parts_yes">Onderdelen</string> + <string name="poi_motorcycle_repair_yes">Reparatie</string> + <string name="poi_motorcycle_rental_yes">Verhuur</string> + <string name="poi_motorcycle_sales_yes_used">Verkoop: ja, tweedehands</string> + <string name="poi_motorcycle_sales_yes">Verkoop</string> + <string name="poi_zoo_falconry">Valkerij</string> + <string name="poi_zoo_safari_park">Safaripark</string> + <string name="poi_zoo_wildlife_park">Wildpark</string> + <string name="poi_life_ring">Reddingsboei</string> + <string name="poi_music_school">Muziekschool</string> + <string name="poi_electronics_repair_tv">Reparatie van elektronica: tv</string> + <string name="poi_electronics_repair_computer">Reparatie van elektronica: computers</string> + <string name="poi_coworking_space">Coworking space</string> + <string name="poi_tower_construction_dish">Constructie: schotel</string> + <string name="poi_cliff">Klif</string> + <string name="poi_electrical">Elektronica-winkel</string> + <string name="poi_public_bookcase_type_wooden_cabinet">Type: houten kast</string> + <string name="poi_xmas_day_date">Kerstmis: periode voor het evenement</string> + <string name="poi_diplomatic_delegation">Delegatie</string> + <string name="poi_traffic_signals_arrow">Pijl</string> + <string name="poi_traffic_signals_vibration">Trillen</string> </resources> \ No newline at end of file From 31ea8f0dba2ac71a53178fd4119b61a66f4019b2 Mon Sep 17 00:00:00 2001 From: Roberto GEB <robertogeb@gmail.com> Date: Sun, 28 Jun 2020 11:46:11 +0000 Subject: [PATCH 271/300] Translated using Weblate (Spanish) Currently translated at 99.8% (3806 of 3810 strings) --- OsmAnd/res/values-es/phrases.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml index 5c0238a49b..1e7b8c6fe8 100644 --- a/OsmAnd/res/values-es/phrases.xml +++ b/OsmAnd/res/values-es/phrases.xml @@ -3819,4 +3819,16 @@ <string name="poi_memorial_ghost_bike">Bicicleta blanca</string> <string name="poi_fire_hydrant_pressure_filter">Presión</string> <string name="poi_sms">SMS</string> + <string name="poi_give_box">Caja de regalo</string> + <string name="poi_traffic_signals_arrow_yes">Sí</string> + <string name="poi_traffic_signals_vibration_yes">Sí</string> + <string name="poi_traffic_signals_vibration_no">Vibración: no</string> + <string name="poi_pump_status_missing_beam">Estado de la bomba: falta la barra</string> + <string name="poi_seamark_water_level_floating">Nivel del agua: flotante</string> + <string name="poi_seamark_water_level_floods">Nivel del agua: inundaciones</string> + <string name="poi_seamark_water_level_covers">Nivel de agua: cubre</string> + <string name="poi_tactile_paving_primitive">Primitivo</string> + <string name="poi_tactile_paving_contrasted">Contrastado</string> + <string name="poi_traffic_signals_arrow">Flecha</string> + <string name="poi_traffic_signals_vibration">Vibración</string> </resources> \ No newline at end of file From d68ecd37640384755804eea56d94fa8ffeed353a Mon Sep 17 00:00:00 2001 From: Franco <francobenedetti.59+github1@gmail.com> Date: Sat, 27 Jun 2020 17:23:35 +0000 Subject: [PATCH 272/300] Translated using Weblate (Spanish (Argentina)) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-es-rAR/strings.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index fc098eafa0..a1e219c038 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -3270,7 +3270,7 @@ <string name="map_during_navigation_info">Mapa durante la navegación</string> <string name="map_during_navigation">Mapa durante la navegación</string> <string name="shared_string_other">Otros</string> - <string name="vehicle_parameters_descr">Peso, altura, velocidad</string> + <string name="vehicle_parameters_descr">Peso, altura, longitud, velocidad</string> <string name="vehicle_parameters">Parámetros del vehículo</string> <string name="voice_announces_info">Los anuncios de voz solo se realizan durante la navegación.</string> <string name="voice_announces_descr">Instrucciones de navegación y anuncios</string> @@ -3808,4 +3808,10 @@ <string name="shared_string_bearing">Rumbo</string> <string name="item_deleted">%1$s borrado</string> <string name="shared_string_uninstall_and_restart">Desinstalar y reiniciar</string> + <string name="routing_attr_length_description">Indica la longitud permitida del vehículo en rutas.</string> + <string name="routing_attr_length_name">Límite de longitud</string> + <string name="speed_cameras_removed_descr">Este dispositivo no tiene radares de velocidad.</string> + <string name="app_mode_inline_skates">Patines en línea</string> + <string name="use_volume_buttons_as_zoom_descr">Permite controlar el nivel de zoom del mapa con los botones de volumen del dispositivo.</string> + <string name="use_volume_buttons_as_zoom">Botones de volumen como zoom</string> </resources> \ No newline at end of file From 6f8e0ebebc64c08512b06021219502dbf681e51d Mon Sep 17 00:00:00 2001 From: Franco <francobenedetti.59+github1@gmail.com> Date: Sat, 27 Jun 2020 17:23:57 +0000 Subject: [PATCH 273/300] Translated using Weblate (Spanish (Argentina)) Currently translated at 100.0% (3810 of 3810 strings) --- OsmAnd/res/values-es-rAR/phrases.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index 1d68fd6573..e166cf6380 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -3836,4 +3836,5 @@ <string name="poi_traffic_signals_vibration_no">Vibración: no</string> <string name="poi_traffic_signals_arrow">Flecha</string> <string name="poi_traffic_signals_vibration">Vibración</string> + <string name="poi_give_box">Caja de regalo</string> </resources> \ No newline at end of file From f7b38a7363500399de9eedb28d215edd79e423b6 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira <duduaddad@gmail.com> Date: Sat, 27 Jun 2020 17:29:41 +0000 Subject: [PATCH 274/300] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-pt-rBR/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 353195ce51..027e5e21c7 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3793,4 +3793,7 @@ Pôr do Sol: %2$s</string> <string name="routing_attr_length_description">Especifique o comprimento do veículo a ser permitido nas rotas.</string> <string name="routing_attr_length_name">Limite de comprimento</string> <string name="speed_cameras_removed_descr">Este dispositivo não possui câmeras de velocidade.</string> + <string name="app_mode_inline_skates">Patins em linha</string> + <string name="use_volume_buttons_as_zoom_descr">Ativar para controlar o nível de zoom do mapa com os botões de volume do dispositivo.</string> + <string name="use_volume_buttons_as_zoom">Botões de volume como zoom</string> </resources> \ No newline at end of file From 69b873ba106a7234c74248625491b989b93d6c63 Mon Sep 17 00:00:00 2001 From: Eduardo Addad de Oliveira <duduaddad@gmail.com> Date: Sat, 27 Jun 2020 17:29:30 +0000 Subject: [PATCH 275/300] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3810 of 3810 strings) --- OsmAnd/res/values-pt-rBR/phrases.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index b15c965fcd..12dae4b911 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -3829,4 +3829,5 @@ <string name="poi_traffic_signals_vibration_no">Vibração: Não</string> <string name="poi_traffic_signals_arrow">Seta</string> <string name="poi_traffic_signals_vibration">Vibração</string> + <string name="poi_give_box">Caixa de distribuição</string> </resources> \ No newline at end of file From 09eb4c01e7697669b84f981cecce12afe5695c58 Mon Sep 17 00:00:00 2001 From: Franco <francobenedetti.59+github1@gmail.com> Date: Sat, 27 Jun 2020 17:25:36 +0000 Subject: [PATCH 276/300] Translated using Weblate (Spanish (American)) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-es-rUS/strings.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index 556f34bc56..504a7a63d2 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -3270,7 +3270,7 @@ <string name="map_during_navigation_info">Mapa durante la navegación</string> <string name="map_during_navigation">Mapa durante la navegación</string> <string name="shared_string_other">Otros</string> - <string name="vehicle_parameters_descr">Peso, altura, velocidad</string> + <string name="vehicle_parameters_descr">Peso, altura, longitud, velocidad</string> <string name="vehicle_parameters">Parámetros del vehículo</string> <string name="voice_announces_info">Los anuncios de voz solo se realizan durante la navegación.</string> <string name="voice_announces_descr">Instrucciones de navegación y anuncios</string> @@ -3805,4 +3805,10 @@ <string name="item_deleted">%1$s borrado</string> <string name="speed_cameras_restart_descr">Debes reiniciar para borrar completamente los datos de los radares de velocidad.</string> <string name="shared_string_uninstall_and_restart">Desinstalar y reiniciar</string> + <string name="routing_attr_length_description">Indica la longitud permitida del vehículo en rutas.</string> + <string name="routing_attr_length_name">Límite de longitud</string> + <string name="speed_cameras_removed_descr">Este dispositivo no tiene radares de velocidad.</string> + <string name="app_mode_inline_skates">Patines en línea</string> + <string name="use_volume_buttons_as_zoom_descr">Permite controlar el nivel de zoom del mapa con los botones de volumen del dispositivo.</string> + <string name="use_volume_buttons_as_zoom">Botones de volumen como zoom</string> </resources> \ No newline at end of file From a5bc4cfc9a5aaae9c4f9c08cd648a3de2289726e Mon Sep 17 00:00:00 2001 From: Franco <francobenedetti.59+github1@gmail.com> Date: Sat, 27 Jun 2020 17:24:16 +0000 Subject: [PATCH 277/300] Translated using Weblate (Spanish (American)) Currently translated at 100.0% (3810 of 3810 strings) --- OsmAnd/res/values-es-rUS/phrases.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-es-rUS/phrases.xml b/OsmAnd/res/values-es-rUS/phrases.xml index b1d9c0bc6c..ceb20a440f 100644 --- a/OsmAnd/res/values-es-rUS/phrases.xml +++ b/OsmAnd/res/values-es-rUS/phrases.xml @@ -3836,4 +3836,5 @@ <string name="poi_traffic_signals_vibration_no">Vibración: no</string> <string name="poi_traffic_signals_arrow">Flecha</string> <string name="poi_traffic_signals_vibration">Vibración</string> + <string name="poi_give_box">Caja de regalo</string> </resources> \ No newline at end of file From 76a7216afc89fff550ca7bab90216e597f906986 Mon Sep 17 00:00:00 2001 From: Verdulo <tomek@disroot.org> Date: Sat, 27 Jun 2020 19:05:28 +0000 Subject: [PATCH 278/300] Translated using Weblate (Esperanto) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-eo/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 6a0538c76a..c7479ee3d0 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3807,4 +3807,6 @@ <string name="routing_attr_length_name">Limigo de longo</string> <string name="speed_cameras_removed_descr">Tiu ĉi aplikaĵo ne liveras informojn pri rapidkontrolliloj.</string> <string name="app_mode_inline_skates">Rulglitiloj</string> + <string name="use_volume_buttons_as_zoom">Skali per sonfortecaj butonoj</string> + <string name="use_volume_buttons_as_zoom_descr">Uzi la butonojn de sonforteco por pli-/mal-grandigi la mapon.</string> </resources> \ No newline at end of file From 4f12f0c099d4175e116ee5cc5c4e662f623d6ac7 Mon Sep 17 00:00:00 2001 From: Verdulo <tomek@disroot.org> Date: Sun, 28 Jun 2020 16:06:35 +0000 Subject: [PATCH 279/300] Translated using Weblate (Esperanto) Currently translated at 100.0% (3810 of 3810 strings) --- OsmAnd/res/values-eo/phrases.xml | 41 ++++++++++++++++---------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/OsmAnd/res/values-eo/phrases.xml b/OsmAnd/res/values-eo/phrases.xml index 8c86ca29df..ffb6b6b3e1 100644 --- a/OsmAnd/res/values-eo/phrases.xml +++ b/OsmAnd/res/values-eo/phrases.xml @@ -558,21 +558,21 @@ <string name="poi_paediatrics">Infanmedicino</string> <string name="poi_company">Oficejo de firmao</string> <string name="poi_insurance">Asekurkompaniejo</string> - <string name="poi_estate_agent">Nemoveblaĵista oficejo</string> - <string name="poi_lawyer">Leĝista oficejo</string> + <string name="poi_estate_agent">Oficejo de nemoveblaĵisto</string> + <string name="poi_lawyer">Oficejo de leĝisto</string> <string name="poi_office_telecommunication">Telekomunikada oficejo</string> - <string name="poi_ngo">Oficejo de ne-registara organizaĵo</string> + <string name="poi_ngo">Oficejo de neregistara organizaĵo</string> <string name="poi_employment_agency">Dungoficejo</string> <string name="poi_research">Oficejo de esploroj</string> - <string name="poi_it">Inform-teĥnologia oficejo</string> + <string name="poi_it">Oficejo de inform-teĥnologia firmao</string> <string name="poi_newspaper">Gazet-redaktejo</string> - <string name="poi_architect">Arĥitekturistejo</string> + <string name="poi_architect">Oficejo de arĥitekturisto</string> <string name="poi_advertising_agency">Reklamistejo</string> <string name="poi_educational_institution">Oficejo de edukada institucio</string> <string name="poi_studio">Studio</string> <string name="poi_bookmaker">Vetperistejo</string> <string name="poi_office_religion">Kancelario religia</string> - <string name="poi_association">Oficejo de ne-profita organizaĵo</string> + <string name="poi_association">Oficejo de neprofit-cela organizaĵo</string> <string name="poi_financial">Financa oficejo</string> <string name="poi_political_party">Oficejo de partio politika</string> <string name="poi_notary">Kancelario de notario</string> @@ -754,7 +754,7 @@ <string name="poi_internet_access_no">Interret-aliro: ne</string> <string name="poi_internet_access_service">Interret-aliro: priservo</string> <string name="poi_religious">Religia tereno</string> - <string name="poi_travel_agent">Vojaĝ-oficejo</string> + <string name="poi_travel_agent">Oficejo de vojaĝoj</string> <string name="poi_funicular">Funikularo</string> <string name="poi_camp_site">Kampadejo</string> <string name="poi_caravan_site">Kampadveturil-parkumejo</string> @@ -830,15 +830,15 @@ <string name="poi_drinking_water">Trinkakvejo</string> <string name="poi_barbecue">Rostilo</string> <string name="poi_craft_agricultural_engines">Laborejo de agrokulturaj maŝinoj</string> - <string name="poi_craft_basket_maker">Korb-laborejo</string> + <string name="poi_craft_basket_maker">Laborejo de korbisto</string> <string name="poi_craft_beekeeper">Abelistejo</string> <string name="poi_craft_blacksmith">Forĝejo</string> <string name="poi_craft_brewery">Bierfarejo</string> <string name="poi_craft_boatbuilder">Boat-konstruejo</string> <string name="poi_craft_bookbinder">Librobindejo</string> - <string name="poi_craft_carpenter">Ĉarpentist-laborejo</string> - <string name="poi_craft_carpet_layer">Tapiŝ-metista laborejo</string> - <string name="poi_craft_caterer">Manĝ-provizista oficejo</string> + <string name="poi_craft_carpenter">Laborejo de ĉarpentisto</string> + <string name="poi_craft_carpet_layer">Laborejo de tapiŝ-metisto</string> + <string name="poi_craft_caterer">Oficejo de manĝ-provizisto</string> <string name="poi_craft_clockmaker">Horloĝistejo</string> <string name="poi_craft_dressmaker">Tajlorejo (inaj vestoj)</string> <string name="poi_craft_electrician">Elektristejo</string> @@ -848,19 +848,19 @@ <string name="poi_craft_hvac">Oficejo de isto pri hejtado, aerumado, klimatizado</string> <string name="poi_craft_watchmaker">Poŝ-horloĝistejo</string> <string name="poi_craft_insulation">Varmizolaĵistejo</string> - <string name="poi_craft_jeweller">Juvelista laborejo</string> + <string name="poi_craft_jeweller">Laborejo de juvelisto</string> <string name="poi_craft_locksmith">Seruristejo</string> <string name="poi_craft_key_cutter">Ŝlosil-kopiistejo</string> - <string name="poi_craft_metal_construction">Metal-konstruaĵista laborejo</string> + <string name="poi_craft_metal_construction">Laborejo de metal-konstruaĵisto</string> <string name="poi_craft_optician">Okulvitristejo</string> <string name="poi_craft_painter">Farbistejo</string> <string name="poi_craft_parquet_layer">Pargetistejo</string> <string name="poi_craft_photographer">Fotistejo</string> - <string name="poi_craft_photographic_laboratory">Fotista laborejo</string> + <string name="poi_craft_photographic_laboratory">Laborejo de fotisto</string> <string name="poi_craft_plasterer">Stukistejo</string> <string name="poi_craft_plumber">Tubistejo</string> <string name="poi_craft_pottery">Potfaristejo</string> - <string name="poi_craft_rigger">Rigilarista laborejo</string> + <string name="poi_craft_rigger">Laborejo de rigisto</string> <string name="poi_craft_roofer">Tegmentistejo</string> <string name="poi_craft_saddler">Selistejo</string> <string name="poi_craft_sailmaker">Velfaristejo</string> @@ -868,9 +868,9 @@ <string name="poi_craft_scaffolder">Skafaldistejo</string> <string name="poi_craft_sculptor">Skulptistejo</string> <string name="poi_craft_shoemaker">Ŝuistejo</string> - <string name="poi_craft_stand_builder">Oficejo de isto de stangoj, kioskoj</string> + <string name="poi_craft_stand_builder">Oficejo de isto pri stangoj, kioskoj</string> <string name="poi_craft_stonemason">Ŝtontranĉistejo</string> - <string name="poi_craft_sun_protection">Laborejo de isto de kontraŭsunaj ekranoj</string> + <string name="poi_craft_sun_protection">Laborejo de isto pri kontraŭsunaj ekranoj</string> <string name="poi_craft_sweep">Kamenpurigistejo</string> <string name="poi_craft_tailor">Tajlorejo</string> <string name="poi_craft_tiler">Kahelmetistejo</string> @@ -900,7 +900,7 @@ <string name="poi_payment_terminal">Pag-terminalo</string> <string name="poi_money_lender">Pruntedonantejo</string> <string name="poi_pawnbroker">Lombardejo</string> - <string name="poi_accountant">Kontista oficejo</string> + <string name="poi_accountant">Oficejo de kontisto</string> <string name="poi_bitcoin_yes">Bitmono akceptata</string> <string name="poi_cave_entrance">Enirejo al kaverno</string> <string name="poi_peak">Monto (pinto)</string> @@ -3059,13 +3059,13 @@ <string name="poi_tower_construction_dome">Konstruaĵo: kupolo</string> <string name="poi_tower_construction_concealed">Konstruaĵo: maskita</string> <string name="poi_railway_yard">Fervojstacio vara</string> - <string name="poi_coworking_space">Ejo por samloka laborado</string> + <string name="poi_coworking_space">Oficejo por samloka laborado</string> <string name="poi_cafeteria">Manĝejo memserva</string> <string name="poi_fast_food_cafeteria">jes</string> <string name="poi_drink_wine_yes">Vino: jes</string> <string name="poi_drink_wine_retail">Vino: vendado (boteloj)</string> <string name="poi_drink_wine_served">Vino: trinkado surloke</string> - <string name="poi_energy_supplier">Oficejo de energi-provizanto</string> + <string name="poi_energy_supplier">Oficejo de elektr-provizanto</string> <string name="poi_deadlock">Maltrapasejo</string> <string name="poi_cuisine_deli">bongustaĵoj</string> <string name="poi_electronics_repair_computer">Riparo de elektronikaĵoj: komputiloj</string> @@ -3822,4 +3822,5 @@ <string name="poi_traffic_signals_vibration_no">Vibrado: ne</string> <string name="poi_traffic_signals_arrow">Sageto</string> <string name="poi_traffic_signals_vibration">Vibrado</string> + <string name="poi_give_box">Kesto de senpaga interŝanĝo</string> </resources> \ No newline at end of file From 0a7c044874d4e0067b92522126d28a491d7227af Mon Sep 17 00:00:00 2001 From: Jeff Huang <s8321414@gmail.com> Date: Sun, 28 Jun 2020 03:25:19 +0000 Subject: [PATCH 280/300] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3409 of 3409 strings) --- OsmAnd/res/values-zh-rTW/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index b8e97f4c3d..c414d77e23 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3802,4 +3802,6 @@ <string name="routing_attr_length_name">長度限制</string> <string name="speed_cameras_removed_descr">此裝置沒有測速照相機。</string> <string name="app_mode_inline_skates">直排輪鞋</string> + <string name="use_volume_buttons_as_zoom_descr">啟用裝置音量按鈕控制地圖縮放等級。</string> + <string name="use_volume_buttons_as_zoom">音量按鈕以縮放</string> </resources> \ No newline at end of file From 19f99cef683de0e87ebc0b196687df8ff9465ae3 Mon Sep 17 00:00:00 2001 From: Jeff Huang <s8321414@gmail.com> Date: Sun, 28 Jun 2020 03:27:20 +0000 Subject: [PATCH 281/300] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (3810 of 3810 strings) --- OsmAnd/res/values-zh-rTW/phrases.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index df51f2a415..8f0f380d7d 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -3828,4 +3828,5 @@ <string name="poi_traffic_signals_vibration_no">震動:無</string> <string name="poi_traffic_signals_arrow">箭頭</string> <string name="poi_traffic_signals_vibration">震動</string> + <string name="poi_give_box">禮物箱</string> </resources> \ No newline at end of file From 36b68c6f0ec05bf88b6c1f4eb9c36ceaad41841e Mon Sep 17 00:00:00 2001 From: Oliver <websites@posteo.de> Date: Sat, 27 Jun 2020 15:56:23 +0000 Subject: [PATCH 282/300] Translated using Weblate (German) Currently translated at 100.0% (267 of 267 strings) Translation: OsmAnd/Telegram Translate-URL: https://hosted.weblate.org/projects/osmand/telegram/de/ --- OsmAnd-telegram/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd-telegram/res/values-de/strings.xml b/OsmAnd-telegram/res/values-de/strings.xml index 2bf33bcca9..8c12570da5 100644 --- a/OsmAnd-telegram/res/values-de/strings.xml +++ b/OsmAnd-telegram/res/values-de/strings.xml @@ -180,7 +180,7 @@ <string name="monitoring_is_disabled">Überwachung deaktiviert</string> <string name="time_on_the_move">Zeit in Bewegung</string> <string name="average_altitude">Durchschnittliche Höhe</string> - <string name="average_speed">Durchschnittliche Geschwindigkeit</string> + <string name="average_speed">Durchschnittsgeschwindigkeit</string> <string name="open_in_osmand">In OsmAnd anzeigen</string> <string name="end_date">Endzeit</string> <string name="start_date">Startzeit</string> From c50282a26c3fdb5b02e6d5d40ba64a0db9a36ca2 Mon Sep 17 00:00:00 2001 From: Kars de Jong <jongk@linux-m68k.org> Date: Sun, 28 Jun 2020 15:10:01 +0000 Subject: [PATCH 283/300] Translated using Weblate (Dutch) Currently translated at 95.9% (3272 of 3409 strings) --- OsmAnd/res/values-nl/strings.xml | 664 +++++++++++++++++++++---------- 1 file changed, 445 insertions(+), 219 deletions(-) diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 4c4b663718..43fb43f4e2 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -75,19 +75,19 @@ <string name="accessibility_preferences_descr">Toegankelijkheidsgerelateerde instellingen.</string> <string name="shared_string_accessibility">Toegankelijkheid</string> <string name="rendering_out_of_memory">Niet genoeg werkgeheugen voor weergave van het geselecteerde gebied</string> - <string name="use_fluorescent_overlays">Fluorescerende overlays</string> - <string name="use_fluorescent_overlays_descr">Gebruik fluorescerende kleuren voor de weergave van tracks and routes.</string> + <string name="use_fluorescent_overlays">Fluorescerende extra lagen</string> + <string name="use_fluorescent_overlays_descr">Gebruik fluorescerende kleuren voor de weergave van tracks en routes.</string> <string name="offline_edition">Offline bewerking</string> <string name="offline_edition_descr">Gebruik altijd offline bewerking.</string> - <string name="update_poi_does_not_change_indexes">Wijzigingen aan interessepunten hebben geen invloed op de gedownloade kaartbestanden, maar worden opgeslagen in een lokaal bestand.</string> + <string name="update_poi_does_not_change_indexes">Wijzigingen aan POI’s binnen de app hebben geen invloed op de gedownloade kaartbestanden, maar worden opgeslagen in een bestand op het apparaat.</string> <string name="local_openstreetmap_uploading">Uploaden…</string> - <string name="local_openstreetmap_were_uploaded">"{0} Interessepunten/Opmerkingen zijn ge-upload"</string> + <string name="local_openstreetmap_were_uploaded">{0} POI’s/opmerkingen zijn geüpload</string> <string name="local_openstreetmap_uploadall">Upload alle</string> <string name="local_openstreetmap_upload">Upload bewerking naar OSM</string> <string name="local_openstreetmap_delete">Wis de bewerking</string> <string name="local_openstreetmap_descr_title">OpenStreetMap asynchroon wijzigen:</string> - <string name="local_openstreetmap_settings">Lokaal opgeslagen OSM-Interessepunten/Opmerkingen</string> - <string name="local_openstreetmap_settings_descr">Toon en beheer OSM-Interessepunten/Opmerkingen die lokaal zijn bewaard.</string> + <string name="local_openstreetmap_settings">Op het apparaat opgeslagen OSM-POI’s/opmerkingen</string> + <string name="local_openstreetmap_settings_descr">Toon en beheer OSM-POI’s/opmerkingen die op het apparaat zijn opgeslagen.</string> <string name="live_monitoring_interval_descr">Specificeer interval voor online tracking.</string> <string name="live_monitoring_interval">Interval voor online tracking</string> <string name="live_monitoring_url_descr">Specificeer het webadres met parameters: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string> @@ -96,7 +96,7 @@ <string name="show_current_gpx_title">Toon huidige GPX-track</string> <string name="free_version_message">Deze gratis versie van OsmAnd is beperkt tot %1$s downloads en ondersteunt geen offline Wikipedia artikelen.</string> <string name="free_version_title">Gratis versie</string> - <string name="poi_context_menu_showdescription">Toon interessepunt-beschrijvingen.</string> + <string name="poi_context_menu_showdescription">Toon POI-beschrijving.</string> <string name="index_name_north_america">Noord-Amerika</string> <string name="index_name_us">Noord Amerika - Verenigde Staten</string> <string name="index_name_central_america">Centraal Amerika</string> @@ -143,7 +143,7 @@ <string name="auto_follow_route_navigation_descr">Alleen automatisch volgen tijdens navigatie.</string> <string name="auto_follow_location_enabled">Gebruikte kaartweergave centreren.</string> <string name="pref_vector_rendering">Opties voor vectorkaarten</string> - <string name="pref_overlay">Bovenlaag / onderlaag</string> + <string name="pref_overlay">Extra kaartlaag / achtergrondlaag</string> <string name="pref_raster_map">Kaartbron-instellingen</string> <string name="pref_vector_map">Vectorkaart-instellingen</string> <string name="delete_confirmation_msg">%1$s verwijderen?</string> @@ -157,11 +157,11 @@ <string name="file_can_not_be_renamed">Kan bestandsnaam niet wijzigen.</string> <string name="file_with_name_already_exists">Er bestaat al een bestand met die naam.</string> <string name="shared_string_gpx_route">Navigatie langs GPX-track</string> - <string name="poi_query_by_name_matches_categories">Meerdere gelijkaardige interessepunt-categorieën gevonden.</string> - <string name="data_to_search_poi_not_available">Download offline gegevens om naar interessepunten te zoeken.</string> + <string name="poi_query_by_name_matches_categories">Meerdere gerelateerde POI-categorieën gevonden.</string> + <string name="data_to_search_poi_not_available">Download offline gegevens om naar POI’s te zoeken.</string> <string name="poi_filter_by_name">Zoek op naam</string> - <string name="old_poi_file_should_be_deleted">Het interessepuntenbestand \'%1$s\' is overbodig en kan worden verwijderd.</string> - <string name="update_poi_file_not_found">Lokaal bestand voor het bijhouden van wijzigingen van interessepunten niet gevonden en kan ook niet worden aangemaakt.</string> + <string name="old_poi_file_should_be_deleted">Het POI-bestand \'%1$s\' is overbodig en kan worden verwijderd.</string> + <string name="update_poi_file_not_found">Lokaal bestand voor het bijhouden van wijzigingen van POI’s niet gevonden en kon ook niet worden aangemaakt.</string> <string name="button_upgrade_osmandplus">Upgraden naar OsmAnd+</string> <string name="map_version_changed_info">Op de server staan kaartbestanden die niet compatibel zijn met de huidige programmaversie. Je moet eerst OsmAnd updaten voordat je kaarten kan downloaden en gebruiken.</string> <string name="poi_filter_nominatim">Online (Nominatim)</string> @@ -198,7 +198,7 @@ <string name="local_index_descr_title">Kaarten installeren en beheren.</string> <string name="local_index_mi_restore">Activeer</string> <string name="local_index_mi_backup">Deactiveer</string> - <string name="local_index_poi_data">Interessepunt-gegevens</string> + <string name="local_index_poi_data">POI-gegevens</string> <string name="local_index_address_data">Adresgegevens</string> <string name="local_index_transport_data">OV-gegevens</string> <string name="local_index_map_data">Kaartgegevens</string> @@ -207,7 +207,7 @@ <string name="local_indexes_cat_voice">Gesproken aanwijzingen (opgenomen)</string> <string name="local_indexes_cat_tile">Online en opgeslagen tegelkaarten</string> <string name="local_indexes_cat_map">Normale kaarten (vector)</string> - <string name="local_indexes_cat_poi">Interessepunt-gegevens</string> + <string name="local_indexes_cat_poi">POI-gegevens</string> <string name="ttsvoice">Stemmen van spraaksynthese</string> <string name="search_offline_clear_search">Nieuwe zoekactie</string> <string name="map_text_size_descr">Tekstgrootte voor namen op de kaart:</string> @@ -225,23 +225,23 @@ <string name="gpx_option_from_start_point">Volg de gehele track</string> <string name="switch_to_vector_map_to_see">Offline vectorkaart aanwezig voor deze locatie. \n\t\n\tOm deze te gebruiken, kies \'Menu\' → \'Kaart instellen\' → \'Kaartbron…\' → \'Offline vectorkaarten\'.</string> - <string name="choose_audio_stream">Audiokanaal stembegeleiding</string> + <string name="choose_audio_stream">Audiokanaal voor stembegeleiding</string> <string name="choose_audio_stream_descr">Audiokanaal voor de stembegeleiding kiezen.</string> <string name="voice_stream_voice_call">Telefoonoproep-kanaal (onderbreekt Bluetooth autoradio)</string> <string name="voice_stream_notification">als melding</string> <string name="voice_stream_music">Media/navigatie audiokanaal</string> <string name="warning_tile_layer_not_downloadable">Kaartlaag %1$s kan niet worden gedownload. Probeer deze opnieuw te installeren.</string> - <string name="overlay_transparency_descr">Regel overlay-transparantie.</string> - <string name="overlay_transparency">Overlay-transparantie</string> + <string name="overlay_transparency_descr">Regel de transparantie van extra kaartlagen.</string> + <string name="overlay_transparency">Transparantie van extra kaartlaag</string> <string name="map_transparency_descr">Regel basiskaart-transparantie.</string> <string name="map_transparency">Basiskaart-transparantie</string> <string name="modify_transparency">Wijzig transparantie (0 = transparant, 255 = volledig bedekt)</string> - <string name="layer_underlay">Underlay-kaart…</string> - <string name="map_underlay">Underlay kaart</string> - <string name="map_underlay_descr">Kies underlay-kaart</string> - <string name="layer_overlay">Overlay kaart…</string> - <string name="map_overlay">Overlay kaart</string> - <string name="map_overlay_descr">Kies overlay-kaart</string> + <string name="layer_underlay">Achtergrondkaart…</string> + <string name="map_underlay">Achtergrondkaart</string> + <string name="map_underlay_descr">Kies achtergrondkaart</string> + <string name="layer_overlay">Extra kaartlaag…</string> + <string name="map_overlay">Extra kaartlaag</string> + <string name="map_overlay_descr">Kies de extra kaartlaag</string> <string name="tile_source_already_installed">Kaart is al geïnstalleerd, instellingen worden geactualiseerd.</string> <string name="select_tile_source_to_install">Kies (raster)kaarten om te installeren of te updaten.</string> <string name="internet_not_available">De benodigde internetverbinding voor deze actie is niet beschikbaar.</string> @@ -294,15 +294,15 @@ <string name="amenity_type_transportation">Openbaar Vervoer</string> <string name="indexing_address">Adres wordt geïndexeerd…</string> <string name="indexing_map">Kaart wordt geïndexeerd…</string> - <string name="indexing_poi">Interessepunten worden geïndexeerd…</string> + <string name="indexing_poi">POI’s worden geïndexeerd…</string> <string name="indexing_transport">OV wordt geïndexeerd…</string> <string name="km">km</string> <string name="km_h">km/u</string> <string name="m">m</string> <string name="old_map_index_is_not_supported">Verouderd kaartformaat \'\'{0}\'\' wordt niet ondersteund</string> <string name="poi_filter_car_aid">Auto hulp</string> - <string name="poi_filter_closest_poi">Interessepunten in de buurt</string> - <string name="poi_filter_custom_filter">Eigen filter</string> + <string name="poi_filter_closest_poi">POI’s in de buurt</string> + <string name="poi_filter_custom_filter">Aangepast filter</string> <string name="poi_filter_food_shop">Eten en drinken (winkel)</string> <string name="poi_filter_for_tourists">Voor toeristen</string> <string name="poi_filter_fuel">Brandstof</string> @@ -333,7 +333,7 @@ <string name="download_files_question">Download {0} bestand(en) ({1} MB)?</string> <string name="items_were_selected">{0} item(s) geselecteerd</string> <string name="filter_existing_indexes">Toon gedownloade</string> - <string name="fast_route_mode">Snelle route</string> + <string name="fast_route_mode">Snelste route</string> <string name="fast_route_mode_descr">Activeer voor de snelste route of deactiveer voor een zuinige route.</string> <string name="tiles_to_download_estimated_size">Op zoom {0} omvat de download {1} kaartsegmenten ({2} MB)</string> <string name="shared_string_download_map">Download kaart</string> @@ -366,8 +366,8 @@ <string name="error_reading_gpx">Fout bij het lezen van GPX-gegevens.</string> <string name="vector_data">OsmAnd Offline vectorkaart</string> <string name="transport_context_menu">Zoek Openbaar Vervoer bij halte</string> - <string name="poi_context_menu_modify">Wijzig Interessepunt</string> - <string name="poi_context_menu_delete">Verwijder Interessepunt</string> + <string name="poi_context_menu_modify">Wijzig POI</string> + <string name="poi_context_menu_delete">Verwijder POI</string> <string name="rotate_map_compass_opt">Volgens kompas</string> <string name="rotate_map_bearing_opt">In beweegrichting</string> <string name="rotate_map_none_opt">Niet roteren (noorden boven)</string> @@ -381,16 +381,16 @@ <string name="error_occurred_loading_gpx">Fout tijdens laden van GPX.</string> <string name="send_report">Stuur rapport</string> <string name="none_region_found">Geen offline-gegevens voor regio gevonden op de SD kaart. Download regio\'s van het internet.</string> - <string name="poi_namefinder_query_empty">Type een zoekwoord om een interessepunt te vinden</string> + <string name="poi_namefinder_query_empty">Typ een zoekterm om een POI te vinden</string> <string name="any_poi">Alle</string> <string name="thanks_yandex_traffic">Met dank aan Yandex voor de verkeersinformatie.</string> <string name="layer_yandex_traffic">Yandex Traffic</string> <string name="layer_route">Route</string> <string name="layer_osm_bugs">OSM-Opmerkingen (online)</string> - <string name="layer_poi">Interessepunt…</string> + <string name="layer_poi">Kaartlaag met POI’s…</string> <string name="layer_map">Basiskaart…</string> <string name="menu_layers">Kaartlagen</string> - <string name="context_menu_item_search_poi">Zoek Interessepunt</string> + <string name="context_menu_item_search_poi">Zoek naar POI</string> <string name="use_trackball_descr">Gebruik trackball om de kaart te verschuiven.</string> <string name="use_trackball">Gebruik trackball</string> <string name="background_service_wait_int_descr">Maximum wachttijd voor elke achtergrond positiebepaling.</string> @@ -424,10 +424,10 @@ <string name="unzipping_file">Bestand wordt uitgepakt…</string> <string name="route_tr">Sla rechtsaf en volg</string> <string name="route_tshr">Sla scherp rechtsaf en volg</string> - <string name="route_tslr">Sla licht rechtsaf en volg</string> + <string name="route_tslr">Buig af naar rechts en volg</string> <string name="route_tl">Sla linksaf en volg</string> <string name="route_tshl">Sla scherp linksaf en volg</string> - <string name="route_tsll">Sla licht linksaf en volg</string> + <string name="route_tsll">Buig linksaf en volg</string> <string name="route_tu">Keer om en volg</string> <string name="route_head">Volg</string> <string name="first_time_continue">Ga door</string> @@ -458,12 +458,12 @@ <string name="show_transport_over_map_description">Toon Haltes Openbaar Vervoer op kaart.</string> <string name="show_transport_over_map">Toon Haltes Openbaar Vervoer</string> <string name="hello">Navigatieprogamma OsmAnd</string> - <string name="update_poi_success">Interessepunt-gegevens succesvol vernieuwd ({0} geladen)</string> - <string name="update_poi_error_local">Fout bij het vernieuwen van de interessepunten.</string> + <string name="update_poi_success">POI-gegevens zijn vernieuwd ({0} geladen)</string> + <string name="update_poi_error_local">Fout bij het vernieuwen van lokaal opgeslagen POI-gegevens.</string> <string name="update_poi_error_loading">Fout bij het laden van gegevens van server.</string> - <string name="update_poi_no_offline_poi_index">Geen offline interessepunten beschikbaar voor dit gebied</string> - <string name="update_poi_is_not_available_for_zoom">Het vernieuwen van interessepunten is niet beschikbaar bij lage zoomniveaus</string> - <string name="context_menu_item_update_poi">Interessepunt bijwerken</string> + <string name="update_poi_no_offline_poi_index">Geen POI-gegevens beschikbaar voor dit gebied</string> + <string name="update_poi_is_not_available_for_zoom">Zoom in on POI’s te kunnen bijwerken</string> + <string name="context_menu_item_update_poi">POI bijwerken</string> <string name="context_menu_item_update_map_confirm">Lokale gegevens via internet bijwerken?</string> <string name="search_history_city">Plaats: {0}</string> <string name="search_history_street">Straat: {0}, {1}</string> @@ -503,7 +503,7 @@ <string name="opening_changeset">Wijzigingsset openen…</string> <string name="closing_changeset">Wijzigingsset sluiten…</string> <string name="commiting_node">Punt wordt vastgelegd…</string> - <string name="loading_poi_obj">Interessepunt wordt geladen…</string> + <string name="loading_poi_obj">POI wordt geladen…</string> <string name="auth_failed">Authorisatie mislukt</string> <string name="failed_op">mislukt</string> <string name="converting_names">Converteer plaatselijke/Engelse namen…</string> @@ -511,7 +511,7 @@ <string name="loading_postcodes">Postcodes worden geladen…</string> <string name="loading_streets">Straten worden geladen…</string> <string name="loading_cities">Steden worden geladen…</string> - <string name="poi">Interessepunt</string> + <string name="poi">POI</string> <string name="error_occurred_saving_gpx">Fout bij het opslaan van GPX-bestand.</string> <string name="error_calculating_route">Fout bij routeberekening.</string> <string name="error_calculating_route_occured">Fout bij routeberekening.</string> @@ -554,8 +554,8 @@ <string name="show_view_angle">Toon kijkrichting</string> <string name="map_view_3d_descr">Activeer 3D kaartbeeld.</string> <string name="map_view_3d">Kaartbeeld 3D</string> - <string name="show_poi_over_map_description">Toon laatst gebruikte interessepunten overlay.</string> - <string name="show_poi_over_map">Toon Interessepunten</string> + <string name="show_poi_over_map_description">Toon laatst gebruikte POI-kaartlaag.</string> + <string name="show_poi_over_map">Toon POI-kaartlaag</string> <string name="map_tile_source_descr">Kies bron van online of opgeslagen kaartsegmenten</string> <string name="map_tile_source">Kaartsegment bron</string> <string name="map_source">Kaartbron</string> @@ -566,7 +566,7 @@ <string name="app_description">Navigatieprogramma</string> <string name="search_button">Zoeken</string> <string name="search_activity">Zoeken</string> - <string name="searchpoi_activity">Kies Interessepunt</string> + <string name="searchpoi_activity">Kies POI</string> <string name="search_POI_level_btn">Zoek meer</string> <string name="incremental_search_city">Zoek plaats</string> <string name="incremental_search_street">Zoek naar straatnaam</string> @@ -594,7 +594,7 @@ <string name="search_address_building_option">Gebouw</string> <string name="search_address_street_option">Zijstraat</string> <string name="context_menu_item_update_map">Kaart bijwerken</string> - <string name="context_menu_item_create_poi">OSM-Interessepunt aanmaken</string> + <string name="context_menu_item_create_poi">POI aanmaken</string> <string name="add_favorite_dialog_top_text">Geef de favoriet een naam</string> <string name="add_favorite_dialog_default_favourite_name">Favoriet</string> <string name="add_favorite_dialog_favourite_added_template">Favoriet \'\'{0}\'\' is toegevoegd.</string> @@ -606,11 +606,11 @@ <string name="osb_comment_dialog_author">Naam auteur</string> <string name="osb_comment_dialog_success">Commentaar is toegevoegd</string> <string name="osb_comment_dialog_error">Kon geen commentaar toevoegen.</string> - <string name="poi_edit_title">Bewerk Interessepunt</string> - <string name="poi_create_title">OSM-Interessepunt aanmaken</string> + <string name="poi_edit_title">POI wijzigen</string> + <string name="poi_create_title">POI aanmaken</string> <string name="poi_error_poi_not_found">Punt niet gevonden of voorziening bestaat uit meerdere punten, wat nog niet ondersteund wordt.</string> <string name="poi_remove_confirm_template">Verwijderen {0} (geef commentaar)?</string> - <string name="poi_remove_title">Verwijder Interessepunt</string> + <string name="poi_remove_title">POI verwijderen</string> <string name="poi_remove_success">Verwijderd</string> <string name="poi_action_add">voeg toe</string> <string name="poi_action_change">wijzigen</string> @@ -620,7 +620,7 @@ <string name="poi_error_info_not_loaded">Info over punt niet geladen</string> <string name="poi_dialog_opening_hours">Openingstijden</string> <string name="poi_dialog_comment">Commentaar</string> - <string name="poi_dialog_comment_default">Interessepunt aangepast</string> + <string name="poi_dialog_comment_default">POI gewijzigd</string> <string name="poi_dialog_other_tags_message">Alle andere tags blijven bewaard</string> <string name="default_buttons_commit">Bevestigen</string> <string name="filter_current_poiButton">Filter</string> @@ -639,18 +639,18 @@ <string name="map_online_data_descr">Gebruik online kaarten (download en bewaar deze op SD-kaart).</string> <string name="shared_string_online_maps">Online kaarten</string> <string name="online_map_settings_descr">Configureer online of bewaarde kaarttegels.</string> - <string name="osmand_rastermaps_plugin_description">Geeft toegang tot vele soorten online (zogenaamde tegel of raster) kaarten, van vooraf gedefinieerde OpenStreetMap tegels (zoals Mapnik) tot satellietbeelden en lagen voor speciale doeleinden zoals weerkaarten, klimaatkaarten, geologische kaarten, reliëflagen, enz. + <string name="osmand_rastermaps_plugin_description">Geeft toegang tot vele soorten online (zogenaamde tile of raster) kaarten, van vooraf gedefinieerde OSM tiles (zoals Mapnik) tot satellietbeelden en lagen voor speciale doeleinden zoals weerkaarten, klimaatkaarten, geologische kaarten, reliëfschaduwlagen, enz. \n -\nAl deze kaarten kunnen worden gebruikt als de hoofd(basis)kaart, of als een extra laag of een achtergrondlaag bij een andere basiskaart (zoals de normale offline kaarten van OsmAnd). Om een achtergrondlaag beter te kunnen zien, kunt u elementen van de OsmAnd kaarten eenvoudig verbergen via het menu \'Kaart instellen\'. +\nAl deze kaarten kunnen worden gebruikt als de hoofd(basis)kaart, of als een extra laag of een achtergrondlaag bij een andere basiskaart (zoals de normale offline kaarten van OsmAnd). Om een achtergrondlaag beter te kunnen zien, kunt u elementen van de OsmAnd vectorkaarten eenvoudig verbergen via het menu \'Kaart instellen\'. \n -\nTegelkaarten zijn direct via online bronnen verkrijgbaar of kunnen voor offline gebruik gereedgemaakt worden (en handmatig gekopieerd naar de OsmAnd gegevensmap) als SQLite database door diverse hulpprogramma\'s van derden.</string> +\nRasterkaarten zijn direct via online bronnen verkrijgbaar of kunnen voor offline gebruik gereedgemaakt worden (en handmatig gekopieerd naar de OsmAnd gegevensmap) als SQLite database door diverse hulpprogramma\'s van derden.</string> <string name="osmand_background_plugin_description">Instellingen om tracking en navigatie te kunnen gebruiken met het scherm uit (schakelt de GPS periodiek in).</string> <string name="osmand_accessibility_description">Deze plug-in maakt de toegankelijkheids-opties van uw toestel beschikbaar in OsmAnd. Het vergemakkelijkt o.a. het aanpassen van de spreeksnelheid van tekst-naar-spraak stemmen, het configureren van D-pad scherm navigatie door gebruik van een trackbal voor zoomregeling of het gebruiken van tekst-naar-spraak opties voor het automatisch aankondigen van uw positie.</string> <string name="osmand_development_plugin_description">Deze plug-in toont de instellingen voor ontwikkel- en debug-opties, zoals routetest en -simulatie, schermweergave-prestaties, en spraaksturing. Deze instellingen zijn bedoeld voor programmeurs die OsmAnd willen verbeteren en zijn niet nodig voor normaal gebruik.</string> <string name="plugins_screen">Plugins beheren</string> <string name="prefs_plugins_descr">Schakel plugins in voor speciale functies en extra instellingen.</string> <string name="prefs_plugins">Plugin-manager</string> - <string name="osm_editing_plugin_description">Gebruik deze plugin om bij te dragen aan OpenStreetMap (OSM), bijvoorbeeld door het aanmaken of wijzigen van OSM-interessepunten, aanmaken of becommentariëren van OSM-opmerkingen, en door GPX-tracks te uploaden. OSM is een wereldwijd community-driven project om een wereldwijde kaart te maken. Voor details zie https://openstreetmap.org. Actieve deelnemers zijn welkom, en bijdragen kunnen direct vanuit OsmAnd worden gemaakt, zodra uw OSM-aanmeldgegevens zijn ingevuld in de app.</string> + <string name="osm_editing_plugin_description">Draag actief bij aan OSM, bijvoorbeeld door het aanmaken of wijzigen van OSM-POI-objecten, aanmaken of becommentariëren van OSM-opmerkingen, en door GPX-tracks te uploaden die met OsmAnd zijn opgenomen door uw gebruikersnaam en wachtwoord in te voeren. OpenStreetMap.org is een gemeenschappelijk public domain project om de wereld in kaart te brengen.</string> <string name="north_north_west">noord-noordwest</string> <string name="search_position_current_location_search">Positie zoeken…</string> <string name="search_position_current_location_found">Huidige Positie (gevonden)</string> @@ -659,7 +659,7 @@ <string name="search_position_undefined">Ongedefinieerd</string> <string name="local_index_routing_data">Navigatiedata</string> <string name="navigate_point_format">Formaat</string> - <string name="poi_search_desc">Zoek Interessepunt (POI)</string> + <string name="poi_search_desc">Zoek POI (interessepunt)</string> <string name="address_search_desc">Adres zoeken</string> <string name="navpoint_search_desc">Coördinaten</string> <string name="transport_search_desc">Openbaar Vervoer zoeken</string> @@ -744,7 +744,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="bg_service_sleep_mode_off">Start\nachtergrondmodus</string> <string name="bg_service_sleep_mode_on">Stop\nachtergrondmodus</string> <string name="email">email</string> - <string name="filterpoi_activity">Creëer interessepuntfilter</string> + <string name="filterpoi_activity">Creëer POI-filter</string> <string name="select_navigation_mode">Kies vervoerwijze:</string> <string name="day_night_info_description">Zonsopgang: %1$s \nZonsondergang: %2$s</string> <string name="day_night_info">Dag/nacht info</string> @@ -752,44 +752,51 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="map_widget_renderer">Kaartstijl</string> <string name="osmand_short_description_80_chars">Wereldwijde kaartweergave en navigatie voor offline en online OSM-kaarten</string> <string name="osmand_plus_short_description_80_chars">OsmAnd is een open-source navigatiesysteem met online en offline kaarten</string> - <string name="osmand_long_description_1000_chars">" OsmAnd (OSM Automated Navigation Directions) + <string name="osmand_long_description_1000_chars">OsmAnd (OSM Automated Navigation Directions) \n -\nOsmAnd is een open-source navigatie-applicatie die toegang geeft tot een uitgebreide variëteit aan wereldwijde OpenStreetMap (OSM) gegevens. Alle kaartgegevens (vector- of rasterkaarten) kunnen in het telefoongeheugen worden opgeslagen voor offline gebruik. OsmAnd biedt zowel offline als online route-aanwijzingen met stembegeleiding. +\n OsmAnd is een open-source navigatie-app die toegang geeft tot een grote variëteit aan wereldwijde OSM-gegevens. Alle kaartgegevens (vector- of rasterkaarten) kunnen in het telefoongeheugen worden opgeslagen voor offline gebruik. OsmAnd biedt ook zowel offline als online route-aanwijzingen, met stembegeleiding. \n -\n Enkele van de mogelijkheden: -\n - Volledig offline gebruik (met gedownloade vector- of rasterkaarten) +\n Enkele van de belangrijkste mogelijkheden: +\n - Volledig offline gebruik (gedownloade vector- of rasterkaarten worden opgeslagen op het apparaat) \n - Compacte offline vectorkaarten van de hele wereld zijn beschikbaar -\n - Kaarten van landen of regio\'s direct downloadbaar via de app -\n - Meerdere kaartlagen mogelijk, zoals GPX- of navigatietracks, interessepunten (points of interest), favorieten, hoogtelijnen, haltes openbaar vervoer, aanvullende kaarten met instelbare transparantie -\n - Offline zoeken naar adressen en plaatsen -\n - Offline route-aanwijzingen voor auto, fiets, en voetganger, keuze uit: -\n - optioneel automatische dag/nacht-weergave -\n - optioneel snelheidsafhankelijk inzoomen -\n - optionele kaartoriëntatie volgens kompas of bewegingsrichting -\n - optionele rijstrookinformatie, snelheidslimiet, opgenomen- en TTS-stemmen. +\n - Kaarten van landen of regio\'s zijn direct via de app te downloaden +\n - Meerdere extra kaartlagen mogelijk, zoals GPX- of navigatietracks, POI’s (points of interest), Favorieten, hoogtelijnen, OV-haltes, aanvullende kaarten met instelbare transparantie +\n - Offline zoeken naar adressen en plaatsen (POI’s) +\n - Offline routeberekening voor middellange afstanden +\n - Modus voor auto, fiets, en voetganger, met optioneel: +\n - Automatisch schakelen tussen dag- en nachtweergave +\n - Snelheidsafhankelijk in- en uitzoomen van de kaart +\n - Kaartoriëntatie volgens kompas of bewegingsrichting +\n - Rijstrookinformatie, snelheidslimiet, stembegeleiding met opgenomen- en TTS-stemmen \n -\n Beperkingen van de gratis versie van OsmAnd: +\n Beperkingen van deze gratis versie van OsmAnd: \n - Beperkt aantal kaartdownloads -\n - Geen toegang tot Wikipedia offline POI\'s. +\n - Geen toegang tot offline Wikipedia POI\'s. \n -\n OsmAnd wordt actief ontwikkeld en de verdere vooruitgang van het project is afhankelijk van financiële bijdragen om de ontwikkeling en toetsing van nieuwe functionaliteit te kunnen bekostigen. Wij verzoeken je om OsmAnd+ te kopen, of om een donatie over te maken via osmand.net. "</string> - <string name="osmand_plus_long_description_1000_chars">" OsmAnd+ (OSM Automated Navigation Directions) +\n OsmAnd wordt actief ontwikkeld en ons project en de verdere vooruitgang ervan is afhankelijk van +\nfinanciële bijdragen om de ontwikkeling en testen van nieuwe functionaliteit te kunnen bekostigen. +\nWij verzoeken je om OsmAnd+ te kopen, of om een donatie over te maken via https://osmand.net.</string> + <string name="osmand_plus_long_description_1000_chars">OsmAnd+ (OSM Automated Navigation Directions) +\n +\nOsmAnd+ is een open-source app voor navigatie die gebruikmaakt van de wereldwijde verzameling van OSM-gegevens. Alle kaartmateriaal (vector- en rasterkaarten) kunnen worden opgeslagen in het telefoongeheugen voor offline gebruik. De app biedt ook offline- en online-navigatie, met stembegeleiding. +\n +\n OsmAnd+ is de betaalde versie, door deze te kopen ondersteun je het project, betaal je mee aan nieuwe ontwikkelingen, en ontvang je de laatste updates. +\n +\n Een aantal van de belangrijkste eigenschappen: +\n - Complete functionaliteit zonder internetverbinding (vector- en rasterkaarten kunnen op het apparaat opgeslagen worden) +\n - Compacte offline vectorkaarten beschikbaar voor de hele wereld +\n - Onbeperkt downloaden van kaarten van landen of regio’s, rechtstreeks vanuit de app +\n - Offline Wikipedia functie (download Wikipedia-POI’s), geweldig voor sightseeing +\n - Meerdere extra kaartlagen beschikbaar, zoals GPX-tracks of routes, POI’s (interessepunten), Favorieten, hoogtelijnen en OV-haltes, met instelbare transparantie \n -\nOsmAnd is een open-source navigatie- en kaartsysteem dat gebruikmaakt van de grote verzameling OpenStreetMap-gegevens. Alle kaartgegevens kunnen worden opgeslagen in het telefoongeheugen voor offline gebruik. OsmAnd biedt zowel offline als online navigatie met stembegeleiding. -\n -\n OsmAnd+ is de betaalde versie. Door deze te kopen ondersteun je het project, betaal je mee aan nieuwe ontwikkelingen, en ontvang je de laatste updates. -\n -\n Belangrijke eigenschappen: -\n - Complete functionaliteit zonder internetverbinding -\n - Onbeperkt downloaden van offline-kaarten -\n - Compacte vectorkaarten voor de gehele wereld -\n - Download Wikipedia-interessepunten voor toerisme -\n - Offline zoeken naar adressen en plaatsen (POI) -\n - Offline routeberekening voor tot ca. 250 km -\n - Navigatie voor auto / fiets / voetganger -\n - Stembegeleiding, rijstrookindicatie en snelheidswaarschuwingen -\n - Meerdere kaartlagen voor POI, afgelegde weg, favorieten, hoogtelijnen, OV-haltes en extra kaarten -\n - Automatisch draaien en zoomen van de kaart "</string> +\n - Offline zoeken naar adressen en plaatsen (POI’s) +\n - Offline routeberekening voor middellange afstanden +\n - Navigatie voor auto, fiets en voetganger met optioneel: +\n - Automatisch schakelen tussen dag- en nachtmodus +\n - Snelheidsafhankelijk in- en uitzoomen van de kaart +\n - Kaartoriëntatie op basis van kompas- of bewegingsrichting +\n - Rijstrookindicatie, snelheidswaarschuwingen en stembegeleiding met opgenomen- en TTS-stemmen +\n</string> <string name="avoid_motorway">Geen snelwegen</string> <string name="snap_to_road_descr">Positie op de weg uitlijnen tijdens navigatie.</string> <string name="snap_to_road">Positie op de weg uitlijnen</string> @@ -818,7 +825,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="map_widget_monitoring_services">Registratiediensten</string> <string name="no_route">Geen route</string> <string name="delete_target_point">Bestemming wissen</string> - <string name="intermediate_point">"Tussenpunt %1$s"</string> + <string name="intermediate_point">Tussenpunt %1$s</string> <string name="gps_not_available">Schakel GPS in via de instellingen</string> <string name="map_widget_show_destination_arrow">Richting van de bestemming tonen</string> <string name="enable_plugin_monitoring_services">Activeer de GPX-Track opnemen- Plugin om de afgelegde weg vast te leggen (GPX-track, online tracking)</string> @@ -846,18 +853,18 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="rendering_attr_noAdminboundaries_description">Geen weergave van regio- en provinciegrenzen (grensniveaus 5-9).</string> <string name="index_srtm_parts">gedeelten</string> <string name="index_srtm_ele">Hoogtelijnen</string> - <string name="srtm_plugin_description">Deze plug-in toont de hoogtelijnen en reliëflaag bovenop de normale kaart. Uitermate praktisch voor sporters, wandelaars, verre tochten, en iedereen die geïnteresseerd is in de hoogteverschillen van een landschap. (Een bijkomende download is noodzakelijk om deze te activeren.) + <string name="srtm_plugin_description">Deze plug-in toont hoogtelijnen en een reliëfschaduwlaag bovenop de normale OsmAnd-kaart. Uitermate praktisch voor sporters, wandelaars, trekkers, en iedereen die geïnteresseerd is in de hoogteverschillen van een landschap. \n -\nDe wereldwijde gegevens (van 70 graden noorderbreedte tot 70 graden zuiderbreedte) zijn gebaseerd op metingen door SRTM (Shuttle Radar Topography Mission) en ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), een beeldvormend instrument aan boord van de satelliet Terra, het vlaggeschip van NASA\'s Earth Observing System. ASTER is een samenwerkingsverband tussen NASA, het Japanse Ministerie van Economie, Handel en Industrie (METI), en het Japan Space Systems (J-spacesystems).</string> +\nDe wereldwijde gegevens (van 70° noorderbreedte tot 70° zuiderbreedte) zijn gebaseerd op metingen door SRTM (Shuttle Radar Topography Mission) en ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), een beeldvormend instrument aan boord van de Terra-satelliet, het vlaggenschip van NASA\'s Earth Observing System. ASTER is een samenwerkingsverband tussen NASA, het Japanse Ministerie van Economie, Handel en Industrie (METI), en Japan Space Systems (J-spacesystems).</string> <string name="srtm_plugin_name">Hoogtelijnen</string> <string name="download_select_map_types">Andere kaarten</string> <string name="download_srtm_maps">Hoogtelijnen</string> <string name="audionotes_plugin_description">Maak audio-, foto-, video-notities tijdens een reis door gebruik te maken van een knop op de kaart of de locatie context menu.</string> <string name="audionotes_plugin_name">Audio-/videonotities</string> <string name="osmand_srtm_short_description_80_chars">OsmAnd-plugin voor offline hoogtelijnen</string> - <string name="osmand_srtm_long_description_1000_chars">Deze plug-in toont de hoogtelijnen en reliëflaag bovenop de normale kaart. Uitermate praktisch voor sporters, wandelaars, verre tochten, en iedereen die geïnteresseerd is in de hoogteverschillen van een landschap. + <string name="osmand_srtm_long_description_1000_chars">Deze plug-in toont hoogtelijnen en een reliëfschaduwlaag bovenop de normale OsmAnd-kaart. Uitermate praktisch voor sporters, wandelaars, trekkers, en iedereen die geïnteresseerd is in de hoogteverschillen van een landschap. \n -\nDe wereldwijde gegevens (van 70 graden noorderbreedte tot 70 graden zuiderbreedte) zijn gebaseerd op metingen door SRTM (Shuttle Radar Topography Mission) en ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), een beeldvormend instrument aan boord van de satelliet Terra, het vlaggeschip van NASA\'s Earth Observing System. ASTER is een samenwerkingsverband tussen NASA, het Japanse Ministerie van Economie, Handel en Industrie (METI), en het Japan Space Systems (J-spacesystems).</string> +\n De wereldwijde gegevens (van 70° noorderbreedte tot 70° zuiderbreedte) zijn gebaseerd op metingen door SRTM (Shuttle Radar Topography Mission) en ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), een beeldvormend instrument aan boord van de Terra-satelliet, het vlaggenschip van NASA\'s Earth Observing System. ASTER is een samenwerkingsverband tussen NASA, het Japanse Ministerie van Economie, Handel en Industrie (METI), en Japan Space Systems (J-spacesystems).</string> <string name="map_widget_distancemeasurement">Afstandsmeting</string> <string name="audionotes_location_not_defined">Schakel \'locatie\' in om een notitie aan de locatie toe te voegen.</string> <string name="map_widget_audionotes">Audionotities</string> @@ -902,7 +909,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="precise_routing_mode">Nauwkeurige routeberekening (alpha)</string> <string name="local_indexes_cat_av">Audio/video-gegevens</string> <string name="support_new_features_descr">Doe een donatie om OsmAnd uit te laten breiden met nieuwe functies.</string> - <string name="download_hillshade_maps">Reliëfschaduwkaarten</string> + <string name="download_hillshade_maps">Reliëfschaduwen</string> <string name="av_use_external_camera_descr">Gebruik de systeemapplicatie voor foto\'s.</string> <string name="av_use_external_camera">Gebruik de camera-applicatie</string> <string name="index_name_openmaps">OpenMaps.eu</string> @@ -915,7 +922,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="item_unchecked">niet aangevinkt</string> <string name="access_arrival_time">Aankomsttijd</string> <string name="map_widget_gps_info">GPS info</string> - <string name="layer_hillshade">Reliëfweergavelaag</string> + <string name="layer_hillshade">Reliëfschaduwlaag</string> <string name="osmand_play_title_30_chars">OsmAnd Kaarten &amp; Navigatie</string> <string name="osmand_plus_play_title_30_chars">OsmAnd+ Kaarten &amp; Navigatie</string> <string name="hno">Huisnummer</string> @@ -1029,7 +1036,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="auto_zoom_far">Zoom naar gemiddelde afstand</string> <string name="auto_zoom_farthest">Zoom naar grote afstand</string> <string name="animate_routing_route_not_calculated">Gelieve eerst de route te berekenen</string> - <string name="animate_routing_route">"Routesimulatie met de berekende route "</string> + <string name="animate_routing_route">Routesimulatie met de berekende route</string> <string name="animate_routing_gpx">Routesimulatie met een GPX-track</string> <string name="local_osm_changes_delete_all_confirm">Bent u zeker om %1$d OSM-wijzigingen te verwijderen\?</string> <string name="app_mode_hiking">Wandelsport</string> @@ -1133,10 +1140,10 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="share_route_as_gpx">Deel route als GPX-bestand</string> <string name="share_route_subject">Route gedeeld via OsmAnd</string> <string name="navigation_intent_invalid">Ongeldig formaat: %s</string> - <string name="keep_informing_never">Alleen handmatig (druk op de pijl)</string> + <string name="keep_informing_never">Alleen handmatig (tik op de pijl)</string> <string name="keep_informing_descr">Herhaal de aanwijzingen regelmatig.</string> - <string name="keep_informing">Herhaal de aanwijzingen</string> - <string name="arrival_distance">Aankondigen van de bestemming</string> + <string name="keep_informing">Herhaal de routeaanwijzingen</string> + <string name="arrival_distance">Aankondiging van de bestemming</string> <string name="arrival_distance_descr">Wanneer melden dat de bestemming bereikt is?</string> <string name="share_fav_subject">Via OsmAnd gedeelde favorieten</string> <string name="use_points_as_intermediates">Bereken route tussen punten</string> @@ -1168,7 +1175,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="loading_smth">Laad %1$s…</string> <string name="map_widget_plain_time">Huidige tijd</string> <string name="select_destination_and_intermediate_points">Instellen bestemmingen</string> - <string name="layer_amenity_label">Namen van interessepunten</string> + <string name="layer_amenity_label">Extra laag met namen van POI’s</string> <string name="shared_string_waypoint">Routepunt</string> <string name="selected_gpx_info_show">\n\nLang drukken om op de kaart te bekijken</string> <string name="delay_navigation_start">Start navigatie automatisch</string> @@ -1225,7 +1232,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="pause_navigation">navigatie pauzeren</string> <string name="rendering_attr_alpineHiking_name">Alpinewandelschaal (SAC)</string> <string name="rendering_attr_alpineHiking_description">Paden volgens SAC-schaal kleuren.</string> - <string name="rendering_attr_hikingRoutesOSMC_name">Wandelroutes Kleuren</string> + <string name="rendering_attr_hikingRoutesOSMC_name">Extra laag met symbolen van wandelroutes</string> <string name="rendering_attr_hikingRoutesOSMC_description">Paden speciaal kleuren.</string> <string name="rendering_attr_coloredBuildings_name">Gebouwen kleuren per soort</string> <string name="arrival_distance_factor_early">Vroegtijdig</string> @@ -1242,7 +1249,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="shared_string_waypoints">Routepunt(en)</string> <string name="way_alarms">Waarschuwingen</string> <string name="speak_favorites">Favorieten in de buurt</string> - <string name="speak_poi">Interessepunt in de buurt</string> + <string name="speak_poi">Dichtbij POI</string> <string name="shared_string_all">Alles</string> <string name="index_tours">Reizen</string> <string name="record_plugin_name">GPX-track opnemen</string> @@ -1480,7 +1487,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="simulate_your_location">Routesimulatie</string> <string name="drawer">Eenvoudige lijst</string> <string name="short_location_on_map">Breedtegraad:\t%1$s -Lengtegraad:\t\t%2$s</string> +\nLengtegraad: %2$s</string> <string name="tips_and_tricks_descr">Veelgestelde vragen, recente wijzigingen en meer.</string> <string name="routing_settings_2">Navigatie-instellingen</string> <string name="general_settings_2">Algemene instellingen</string> @@ -1623,7 +1630,7 @@ Lengtegraad:\t\t%2$s</string> <string name="regions">Regio\'s</string> <string name="region_maps">Kaarten van regio\'s</string> <string name="world_maps">Wereldkaarten</string> - <string name="hillshade_layer_disabled">Reliëfschaduw uitgeschakeld</string> + <string name="hillshade_layer_disabled">Reliëfschaduwlaag uitgeschakeld</string> <string name="srtm_plugin_disabled">Hoogtelijnen uitgeschakeld</string> <string name="favorite_category_add_new">Categorie toevoegen</string> <string name="favorite_category_select">Kies categorie</string> @@ -1663,7 +1670,7 @@ Lengtegraad:\t\t%2$s</string> <string name="world_map_download_descr">De basis-wereldkaart ontbreekt of is verouderd. Download hem voor wereldwijd overzicht om lage zoomlevels.</string> <string name="shared_string_update">Update</string> <string name="shared_string_upload">Upload</string> - <string name="osm_edit_created_poi">Interessepunt in OSM aangemaakt</string> + <string name="osm_edit_created_poi">OSM-POI aangemaakt</string> <string name="simulate_initial_startup_descr">Laat de app de volgende keer starten alsof deze net is geïnstalleerd. De instellingen blijven wel behouden.</string> <string name="simulate_initial_startup">Simuleer eerste start van de app</string> <string name="shared_string_others">Overige</string> @@ -1871,7 +1878,8 @@ Lengtegraad:\t\t%2$s</string> <string name="osm_live_not_active">Niet actief</string> <string name="osm_live_enter_email">Voer een geldig emailadres in</string> <string name="osm_live_enter_user_name">Voer een Openbare Naam in</string> - <string name="osm_live_thanks">Bedankt voor je OSM Live Abonnement! Een herstart van OsmAnd is nodig.</string> + <string name="osm_live_thanks">Bedankt voor het steunen van OsmAnd! +\nOm toegang te krijgen tot alle nieuwe functies moet OsmAnd opnieuw gestart worden.</string> <string name="osm_live_region_desc">Een gedeelte van je betaling gaat naar OSM-bijdragers in deze regio.</string> <string name="osm_live_subscription_settings">Abonnementsgegevens</string> <string name="osm_live_ask_for_purchase">Neem alsjeblieft eerst een abonnement op OsmAnd Live</string> @@ -2005,7 +2013,7 @@ Lengtegraad:\t\t%2$s</string> <string name="storage_free_space">Vrije geheugenruimte</string> <string name="give_permission">Geef toestemming</string> <string name="allow_access_location">Toegang tot locatie toestaan</string> - <string name="first_usage_greeting">"Krijg routebeschrijvingen en ontdek nieuwe plaatsen, zonder Internetverbinding"</string> + <string name="first_usage_greeting">Krijg routeaanwijzingen en ontdek nieuwe plaatsen, zonder Internetverbinding</string> <string name="search_my_location">Vind mijn positie</string> <string name="no_update_info">Geen updates tonen</string> <string name="clear_tile_data">Alle opgeslagen kaarttegels wissen</string> @@ -2091,9 +2099,10 @@ Lengtegraad:\t\t%2$s</string> <string name="navigate_point_olc">Open Location Code (OLC)</string> <string name="navigate_point_olc_info_invalid">Ongeldige OLC </string> - <string name="navigate_point_olc_info_short">Ongeldige OLC</string> + <string name="navigate_point_olc_info_short">OLC te kort +\nGeef een volledige code</string> <string name="navigate_point_olc_info_area">Geldige volledige OLC -voor Gebied: %1$s x %2$s</string> +\nBeslaat gebied: %1$s x %2$s</string> <string name="configure_screen_quick_action">Sneltoets</string> <string name="quick_action_item_action">Actie %d</string> <string name="quick_action_item_screen">Scherm %d</string> @@ -2124,7 +2133,7 @@ voor Gebied: %1$s x %2$s</string> <string name="quick_action_take_video_note_descr">Een knop om een Video-notitie toe te voegen in het midden van het scherm.</string> <string name="quick_action_take_photo_note_descr">Een knop om een Foto-notitie toe te voegen in het midden van het scherm.</string> <string name="quick_action_add_osm_bug_descr">Een knop om een OSM-notitie toe te voegen in het midden van het scherm.</string> - <string name="quick_action_add_poi_descr">Een knop om een interessepunt toe te voegen in het midden van het scherm.</string> + <string name="quick_action_add_poi_descr">Een knop om een POI toe te voegen in het midden van het scherm.</string> <string name="quick_action_navigation_voice_descr">Een schakelknop om de stembegeleiding aan of uit te zetten tijdens navigatie.</string> <string name="quick_action_add_parking_descr">Een knop om de parkeerpositie toe te voegen in het midden van het scherm.</string> <string name="quick_action_interim_dialog">Bewerkingsdialoog tonen</string> @@ -2133,7 +2142,7 @@ voor Gebied: %1$s x %2$s</string> <string name="quick_action_duplicates">Sneltoetsnaam gewijzigd in %1$s om duplicaat te voorkomen.</string> <string name="quick_action_duplicate">Sneltoets-duplicaat</string> <string name="quick_action_showhide_favorites_descr">Een schakelknop toont of verbergt de Favoriete punten op de kaart.</string> - <string name="quick_action_showhide_poi_descr">Een schakelknop toont of verbergt de interessepunten op de kaart.</string> + <string name="quick_action_showhide_poi_descr">Een schakelknop om POI’s op de kaart te tonen of te verbergen.</string> <string name="quick_action_showhide_favorites_title">Favorieten tonen /verbergen</string> <string name="quick_action_favorites_show">Toon favorieten</string> <string name="quick_action_favorites_hide">Verberg favorieten</string> @@ -2155,14 +2164,14 @@ voor Gebied: %1$s x %2$s</string> <string name="quick_action_map_style_action">Kaartstijl toevoegen</string> <string name="quick_action_empty_param_error">Alle parameters invullen</string> <string name="quick_action_map_styles">Kaartstijlen</string> - <string name="quick_action_map_overlay">Overlay-kaart wijzigen</string> - <string name="quick_action_map_overlay_title">Overlay-kaarten</string> - <string name="quick_action_map_overlay_action">Overlay-kaart toevoegen</string> - <string name="quick_action_map_overlay_switch">Overlay-kaart is gewijzigd naar \"%s\".</string> - <string name="quick_action_map_underlay_switch">Underlay-kaart is gewijzigd naar \"%s\".</string> - <string name="quick_action_map_underlay">Underlay-kaart wijzigen</string> - <string name="quick_action_map_underlay_title">Underlay-kaarten</string> - <string name="quick_action_map_underlay_action">Underlay-kaart toevoegen</string> + <string name="quick_action_map_overlay">Extra kaartlaag wijzigen</string> + <string name="quick_action_map_overlay_title">Extra kaartlagen</string> + <string name="quick_action_map_overlay_action">Extra kaartlaag toevoegen</string> + <string name="quick_action_map_overlay_switch">Extra kaartlaag gewijzigd naar \"%s\".</string> + <string name="quick_action_map_underlay_switch">Achtergrondkaart is gewijzigd naar \"%s\".</string> + <string name="quick_action_map_underlay">Achtergrondkaart wijzigen</string> + <string name="quick_action_map_underlay_title">Achtergrondkaarten</string> + <string name="quick_action_map_underlay_action">Achtergrondkaart toevoegen</string> <string name="quick_action_map_source">Kaartbron wijzigen</string> <string name="quick_action_map_source_title">Kaartbronnen</string> <string name="quick_action_map_source_action">Kaartbron toevoegen</string> @@ -2219,8 +2228,8 @@ voor Gebied: %1$s x %2$s</string> <string name="quick_action_add_destination_desc">Een druk op de sneltoets voegt het midden van het scherm toe als bestemming. De vorige bestemming wordt het laatste tussenpunt.</string> <string name="quick_action_replace_destination_desc">Een knop om de bestemming in het schermmidden te plaatsen waardoor de (eventuele) hiervoor geselecteerde bestemming wordt vervangen.</string> <string name="quick_action_add_first_intermediate_desc">Een knop om het midden van het scherm als eerste tussenpunt toe te voegen.</string> - <string name="no_overlay">Geen overlay</string> - <string name="no_underlay">Geen underlay</string> + <string name="no_overlay">Geen extra laag</string> + <string name="no_underlay">Geen achtergrondlaag</string> <string name="subscribe_email_error">Foutmelding</string> <string name="subscribe_email_desc">Abonneer op de mailinglijst voor aanbiedingen en ontvang 3 extra kaart-downloads!</string> <string name="depth_contour_descr">Zeedieptecontouren en zeemerkpunten.</string> @@ -2254,12 +2263,12 @@ voor Gebied: %1$s x %2$s</string> <string name="points_delete_multiple_succesful">Punt(en) verwijderd.</string> <string name="points_delete_multiple">Wil u echt %1$d punt(en) verwijderen\?</string> <string name="route_points_category_name">Afslagen op de route</string> - <string name="track_points_category_name">Waypoints, interessepunten, benoemde belangrijke punten</string> + <string name="track_points_category_name">Waypoints, POI’s, bekende plaatsen</string> <string name="routing_attr_relief_smoothness_factor_name">Selecteer hoogte-schommelingen</string> <string name="shared_string_paused">In pauze</string> <string name="lang_ber">Berbers</string> - <string name="hillshade_menu_download_descr">Download de Reliëfschaduw Overlaykaart om verticale schaduw te tonen.</string> - <string name="hillshade_purchase_header">Installeer de Hoogtelijnen-plugin om gegradueerde verticale gebieden te tonen.</string> + <string name="hillshade_menu_download_descr">Download ‘Reliëfschaduwkaarten’ om verticale schaduwen te tonen.</string> + <string name="hillshade_purchase_header">Installeer de ‘Hoogtelijnen’-plug-in om hoogteverschillen in het terrein te visualiseren.</string> <string name="hide_from_zoom_level">Verberg starten vanaf zoom-niveau</string> <string name="srtm_menu_download_descr">Download de Hoogtelijnenkaart voor deze regio.</string> <string name="shared_string_plugin">Plugin</string> @@ -2273,20 +2282,27 @@ voor Gebied: %1$s x %2$s</string> <string name="osmand_extended_description_part1">"OsmAnd (OSM, Automated Navigation Directions) is een kaart- en navigatieprogramma dat de gratis, wereldwijde en gedetailleerde OpenStreetMap (OSM) data gebruikt. \n \nGebruikt visuele en gesproken navigatie, toont POI\'s (point of interest), maakt en volgt GPX-tracks, toont hoogtelijnen en hoogte informatie (via plug-in), kiest tussen auto, fiets, wandelen of andere, je kan de OSM-kaart bewerken en nog veel meer."</string> - <string name="osmand_extended_description_part2">" - GPS-navigatie -• Offline (geen datakosten) of online (snellere) routeberekening -• Stap-voor-stap navigatie met opgenomen stem of gesproken straatnamen -• Route wordt herberekend wanneer u ervan afwijkt -• Rijstrookbegeleiding, straatnamen en verwachte aankomsttijd helpen u tijdens de reis -• Voor de veiligheid: automatische keuze van dag- of nachtweergave -• Toon maximum snelheid en waarschuw bij overschrijding -• Kaartgrootte past zich aan bij de snelheid -• Zoek bestemming op adres, soort (parkeerplaats, restaurant, brandstof, museum) of coördinaten -• Maak tussenpunten op een reis -• Neem uw reis op als GPX-spoor of volg een GPX-spoor - "</string> - <string name="osmand_extended_description_part3">Kaart • Toon POI (Points Of Interest) • Draai in de bewegingsrichting (of kompasrichting) • Toont uw positie en waar u naar kijkt • Deel uw lokatie met vrienden • Bewaar belangrijke plaatsen in Favorieten • Toon namen in Engelse, lokale, of fonetische schrijfwijze • Toon extra informatie, zoals satellietfoto (van Bing), GPX-sporen, andere kaartstijlen en extra informatielagen</string> + <string name="osmand_extended_description_part2">GPS-navigatie +\n • Offline (geen datakosten) of online (snellere) routeberekening +\n • Stap-voor-stap navigatie met opgenomen stem of gesproken straatnamen +\n • Route wordt herberekend wanneer u ervan afwijkt +\n • Rijstrookbegeleiding, straatnamen en verwachte aankomsttijd helpen u tijdens de reis +\n • Voor de veiligheid: automatische keuze van dag- of nachtweergave +\n • Toon maximumsnelheid en waarschuw bij overschrijding +\n • Kaartgrootte past zich aan bij de snelheid +\n • Zoek bestemming op adres, soort (parkeerplaats, restaurant, brandstof, museum) of coördinaten +\n • Maak tussenpunten op een reis +\n • Neem uw reis op als GPX-track of volg een GPX-track +\n</string> + <string name="osmand_extended_description_part3">Kaart +\n • Toon POIs (Points Of Interest) in uw omgeving +\n • Draai de kaart in uw bewegingsrichting (of kompasrichting) +\n • Toon uw positie en waar u naar kijkt +\n • Deel uw lokatie met vrienden +\n • Bewaar belangrijke plaatsen in ‘Favorieten’ +\n • Toon namen in het Engels, de lokale taal, of fonetisch +\n • Toon extra online tiles, zoals een satellietfoto (van Bing), verschillende extra lagen zoals GPX-tracks voor navigatie e.d. met instelbare transparantie +\n</string> <string name="osmand_extended_description_part4">Skiën \nMet de OsmAnd Ski plug-in ziet u pistes met hun moeilijkheidsgraad, en extra informatie zoals liften en andere faciliteiten.</string> <string name="osmand_extended_description_part5">Fietsen @@ -2297,7 +2313,11 @@ voor Gebied: %1$s x %2$s</string> \n• Via een extra plugin kunt u hoogteverschillen weergeven als hoogtelijnen of reliëfschaduw</string> <string name="osmand_extended_description_part6">Wandelen • De kaart toont voetpaden, bergpaden, routes door parken • Wikipedia vertelt u meer over uw omgeving • OV-haltes (tram, bus, trein, metro), inclusief lijnnummers, helpen u te navigeren • Navigatie gebruikt voetpaden • Neem uw weg op als GPX-route of volg een gedownloade route \n</string> - <string name="osmand_extended_description_part7">Werk mee aan OpenStreetMap (OSM) • Meld fouten • Upload sporen naar OSM, direct vanuit de app • Voeg POI toe aan de kaart en upload deze</string> + <string name="osmand_extended_description_part7">Draag bij aan OpenStreetMap (OSM) +\n • Meld fouten +\n • Upload GPX-tracks naar OSM, rechtstreeks vanuit de app +\n • Voeg POIs toe en upload deze direct naar OSM (of later in offline-modus) +\n</string> <string name="osmand_extended_description_part8">OsmAnd is open-source en wordt steeds verder ontwikkeld. Iedereen kan helpen door bugs te melden, vertalingen te verbeteren of nieuwe functies te programmeren. Door deze interactie wordt het steeds beter. De ontwikkeling is mede afhankelijk van giften om programmeurs en testers, voor nieuwe functies, te betalen. \n \nIndicatie van compleetheid en kwaliteit van de kaart: @@ -2360,12 +2380,42 @@ voor Gebied: %1$s x %2$s</string> \n \nEen paar belangrijke functies:</string> <string name="osmand_plus_extended_description_part2">" Navigatie • werkt online (snel) of offline (zonder roaming-kosten in het buitenalnd) • gesproken stap-voor-stap navigatie (met opgenomen of synthetische stem) • optioneel met rijstrookaanduiding, straatnamen und geschatte aankomsttijd • tussenstops op de route • automatische herberekening bij het verlaten van de route • zoek op adres, soort (bijv.: restaurant, hotel, benzinepomp, museum) of geografische coördinaten "</string> - <string name="osmand_plus_extended_description_part3">" kaart bekijken • positie en richting tonen • kaart richten volgens kompas of volgens beweging • bewaar plaatsen als favoriet • toon POIs (point of interest) in de buurt • toon specifieke online-kaarten, satellietbeelden (van Bing), overlays zoals GPX-sporen met rit-/routeinformatie und extra kaartlagen met instelbare transparantie • toon plaatsnamen in Engels, de taal van het land of phonetisch weergegeven "</string> - <string name="osmand_plus_extended_description_part4">" gebruik OSM- en Wikipedia-gegevens • de beste gegevens van de beste wereldwijde projecten • OSM-gegevens per land of regio • Wikipedia-POIs voor sightseeing • onbeperkte gratis downloads vanuit de app • compacte vectorkaarten, tenminste eens per maand bijgewerkt • keuze tussen volledige kaarten of alleen het stratennet (bijv: Japan compleet is 700 MB, de straten maar 200 MB) "</string> - <string name="osmand_plus_extended_description_part5">" veiligheidsfucties • kan automatisch tussen dag- en nachtweergave schakelen • kan maximum snelheid weergeven en waarschuwen bij overschrijding • kan kaartwegave aanpassen aan de snelheid • locatie doorgeven aan uw vrienden, zodat ze u kunnen vinden "</string> - <string name="osmand_plus_extended_description_part6">" functies voor fietsers en voetgangers • weergave van voetpaden, wandelroutes en fietspaden voor buitenactiviteiten • aangepaste weergave en routeberekening voor voetgangers en fietsers • weergave van OV-haltes (bus, tram, trein), inclusief zijnnummers • leg de afgelegde weg vast in een GPX-bestand op het apparaat of online • snelheids- en hoogteweergave • hoogtelijnen en reliëfschaduw weergeven (extra module) "</string> - <string name="osmand_plus_extended_description_part7">" bewerk OSM • meld verkeerde kaartgegevens • upload GPX-sporen naar OSM • voeg POIs toe en upload ze naar OSM • neem een GPX-spoor op met het apparaat in slaapstand -\n OsmAnd is open-source wordt actief ontwikkeld. iedereen kan bijdragen door bugs te melsen, de vertaling te verbeteren of nieuwe functies te programmeren. Het project wordt druk verbeterd door al deze vormen van interactie met gebruikers. Het project is tevens afhankelijk van financiële bijdragen om programmeer- en testwerk te kunnen bekostigen. "</string> + <string name="osmand_plus_extended_description_part3">Kaartweergave +\n • Positie en richting tonen +\n • Kaart draaien in kompas- of bewegingsrichting +\n • Bewaar belangrijke plaatsen in ‘Favorieten’. +\n • Toon POI’s (points of interest) in de buurt +\n • Toon specifieke online tiles, satellietbeelden (van Bing), en extra lagen zoals GPX-tracks met rit-/routeinformatie e.d., met instelbare transparantie +\n • Toon plaatsnamen in het Engels, de lokale taal of fonetisch weergegeven +\n</string> + <string name="osmand_plus_extended_description_part4">Gebruik OSM- en Wikipedia-gegevens +\n • De beste gegevens van de beste wereldwijde samenwerkingsprojecten +\n • OSM-gegevens beschikbaar per land of regio +\n • Wikipedia-POIs, geweldig voor sightseeing +\n • Onbeperkte gratis downloads, rechtstreeks vanuit de app +\n • Compacte offline vectorkaarten die tenminste eens per maand worden bijgewerkt +\n +\n • Keuze tussen volledige kaarten van een regio of alleen het wegennet (Voorbeeld: De volledige kaart van Japan is 700 MB, het wegennet 200 MB)</string> + <string name="osmand_plus_extended_description_part5">Veiligheidsfuncties +\n • Kan automatisch tussen dag- en nachtweergave omschakelen +\n • Kan de maximumsnelheid weergeven en waarschuwen bij overschrijding +\n • Kan het zoomniveau aanpassen op basis van de snelheid +\n • Locatie delen met vrienden, zodat ze u kunnen vinden +\n</string> + <string name="osmand_plus_extended_description_part6">Functies voor fietsers en voetgangers +\n • Weergave van voetpaden, wandelroutes en fietspaden, geweldig voor buitenactiviteiten +\n • Aangepaste weergave en routeberekening voor voetgangers en fietsers +\n • Optionele weergave van OV-haltes (bus, tram, trein), inclusief lijnnummers +\n • Optioneel vastleggen van de afgelegde weg in een GPX-bestand op het apparaat of online-dienst +\n • Optionele weergave van snelheid en hoogte +\n • Weergave van hoogtelijnen en reliëfschaduwen (via extra plugin)</string> + <string name="osmand_plus_extended_description_part7">Rechtstreeks bijdragen aan OSM +\n • Meld foutieve gegevens +\n • Upload GPX-tracks naar OSM, rechtstreeks vanuit de app +\n • Voeg POIs toe en upload ze direct naar OSM (of later in offline-modus) +\n • Kan een GPX-track opnemen op de achtergrond (als het apparaat in slaapstand staat) +\n OsmAnd is open-source en wordt actief ontwikkeld. Iedereen kan bijdragen door bugs te melden, de vertaling te verbeteren of nieuwe functies te ontwikkelen. Het project is ook afhankelijk van financiële bijdragen om ontwikkeling en tests van nieuwe functies te bekostigen. +\n</string> <string name="shared_string_reset">Reset</string> <string name="shared_string_reload">Opnieuw laden</string> <string name="wrong_user_name">Verkeerde gebruikersnaam</string> @@ -2480,7 +2530,7 @@ voor Gebied: %1$s x %2$s</string> <string name="import_track_desc">Bestand %1$s bevat geen waypoints. Importeren als een track?</string> <string name="move_point">Verplaats punt</string> <string name="add_segment_to_the_track">Voeg toe aan GPX-track</string> - <string name="mapillary_menu_filter_description">"Filter afbeeldingen op gebruikersnaam, datum of type. Alleen actief wanneer ingezoomd."</string> + <string name="mapillary_menu_filter_description">Filter afbeeldingen op gebruikersnaam, datum of type. Alleen actief wanneer ingezoomd.</string> <string name="show_map">Kaart weergeven</string> <string name="route_is_calculated">Route berekend</string> <string name="round_trip">Lus</string> @@ -2538,24 +2588,24 @@ voor Gebied: %1$s x %2$s</string> <string name="by_type">Op type</string> <string name="shared_string_more_without_dots">Meer</string> <string name="show_number_pad">Toon cijfertoetsenbord</string> - <string name="shared_string_restart">"App herstarten "</string> + <string name="shared_string_restart">App herstarten</string> <string name="show_images">Afbeeldingen tonen</string> - <string name="purchase_cancelled_dialog_title">"U hebt het abonnement op OsmAnd Live opgezegd "</string> + <string name="purchase_cancelled_dialog_title">U hebt uw abonnement op OsmAnd Live opgezegd</string> <string name="purchase_cancelled_dialog_descr">Vernieuw het abonnement om alle mogelijkheden te blijven gebruiken:</string> <string name="maps_you_need_descr">Op basis van je bladwijzers, raden we je aan de volgende kaarten te downloaden:</string> <string name="maps_you_need">Kaarten die je nodig hebt</string> <string name="osmand_team">OsmAnd-team</string> - <string name="popular_destinations">"Populaire bestemmingen "</string> + <string name="popular_destinations">Populaire bestemmingen</string> <string name="paid_app">Betaalde app</string> <string name="paid_plugin">Betaalde plug-in</string> <string name="travel_card_update_descr">Nieuwe Wikivoyage-bestanden beschikbaar, updaten om deze te gebruiken.</string> <string name="travel_card_download_descr">Download Wikivoyage-reisgidsen om artikelen te lezen over plaatsen wereldwijd, zonder internetverbinding.</string> - <string name="update_is_available">"Update beschikbaar "</string> - <string name="download_file">"Bestand downloaden "</string> + <string name="update_is_available">Update beschikbaar</string> + <string name="download_file">Bestand downloaden</string> <string name="start_editing_card_image_text">De gratis wereldwijde reisgids die iedereen kan bewerken.</string> <string name="welcome_to_open_beta_description">Reisgidsen zijn gebaseerd op Wikivoyage. Test gratis alle mogelijkheden tijdens de open beta-testfase. Hierna zijn de reisgidsen beschikbaar voor abonnees van OsmAnd Unlimited en OsmAnd+.</string> <string name="start_editing_card_description">Je kunt artikelen bewerken op Wikivoyage. Deel jouw kennis, ervaringen, talent en interesses.</string> - <string name="start_editing">"Begin met bewerken "</string> + <string name="start_editing">Begin met bewerken</string> <string name="get_unlimited_access">Krijg onbeperkte toegang</string> <string name="welcome_to_open_beta">Welkom bij de open beta</string> <string name="wikivoyage_travel_guide">Reisgids</string> @@ -2578,34 +2628,35 @@ voor Gebied: %1$s x %2$s</string> <string name="shared_string_do">Doen</string> <string name="shared_string_only_with_wifi">Alleen met Wifi</string> <string name="wikivoyage_download_pics">Afbeeldingen downloaden</string> - <string name="wikivoyage_download_pics_descr">Afbeeldingen bij de artikelen kunnen gedownload worden voor offline gebruik. Je kan deze instelling altijd wijzigen via Opties.</string> + <string name="wikivoyage_download_pics_descr">Afbeeldingen bij de artikelen kunnen gedownload worden voor offline gebruik. +\nAltijd beschikbaar in het menu ‘Verkennen’ → ‘Opties’.</string> <string name="shared_string_wifi_only">Alleen met Wifi</string> <string name="select_travel_book">Kies een reisgids</string> - <string name="shared_string_travel_book">"Reisgids "</string> + <string name="shared_string_travel_book">Reisgids</string> <string name="online_webpage_warning">Pagina is alleen online beschikbaar. Openen in webbrowser?</string> <string name="images_cache">Afbeeldingen-cache</string> - <string name="delete_search_history">"Zoekgeschiedenis wissen "</string> - <string name="download_images">"Afbeeldingen downloaden "</string> + <string name="delete_search_history">Zoekgeschiedenis wissen</string> + <string name="download_images">Afbeeldingen downloaden</string> <string name="download_maps_travel">Reisgidsen</string> <string name="shared_string_wikivoyage">Wikivoyage</string> <string name="article_removed">Artikel verwijderd</string> <string name="wikivoyage_search_hint">Zoek: Land, Provincie, Stad</string> - <string name="shared_string_read">"Lezen "</string> + <string name="shared_string_read">Lezen</string> <string name="saved_articles">Artikelen met bladwijzer</string> - <string name="shared_string_explore">"Doorzoeken "</string> - <string name="shared_string_contents">"Inhoud "</string> - <string name="shared_string_result">"Resultaat "</string> - <string name="use_two_digits_longitude">"Twee cijfers gebruiken voor lengtegraad (i.p.v. drie) "</string> - <string name="shared_string_travel_guides">"Reisgids "</string> + <string name="shared_string_explore">Verkennen</string> + <string name="shared_string_contents">Inhoud</string> + <string name="shared_string_result">Resultaat</string> + <string name="use_two_digits_longitude">Twee cijfers gebruiken voor lengtegraad</string> + <string name="shared_string_travel_guides">Reisgidsen</string> <string name="nothing_found_in_radius">Niets gevonden:</string> <string name="clear_all_intermediates">Wis alle tussenpunten</string> - <string name="group_deleted">"Groep verwijderd "</string> + <string name="group_deleted">Groep verwijderd</string> <string name="rendering_attr_whiteWaterSports_name">Wildwatersporten</string> <string name="distance_farthest">Het verste eerst</string> <string name="distance_nearest">Het dichtstbijzijnde eerst</string> <string name="enter_lon">Lengtegraad invoeren</string> - <string name="enter_lat">"Breedtegraad invoeren "</string> - <string name="enter_lat_and_lon">"Lengte- en breedtegraad invoeren "</string> + <string name="enter_lat">Breedtegraad invoeren</string> + <string name="enter_lat_and_lon">Lengte- en breedtegraad invoeren</string> <string name="dd_mm_ss_format">DD°MM′SS″</string> <string name="dd_dddddd_format">GG.GGGGGG°</string> <string name="dd_ddddd_format">GG.GGGGG°</string> @@ -2615,12 +2666,12 @@ voor Gebied: %1$s x %2$s</string> <string name="west_abbreviation">W</string> <string name="south_abbreviation">Z</string> <string name="north_abbreviation">N</string> - <string name="optional_point_name">"Naam (niet verplicht) "</string> + <string name="optional_point_name">Naam (niet verplicht)</string> <string name="transport_nearby_routes_within">Nabije routes binnen</string> <string name="transport_nearby_routes">Binnen</string> <string name="enter_the_file_name">Bestandsnaam invoeren.</string> - <string name="map_import_error">"Fout bij kaartimport "</string> - <string name="map_imported_successfully">"Kaart geïmporteerd "</string> + <string name="map_import_error">Fout bij kaartimport</string> + <string name="map_imported_successfully">Kaart geïmporteerd</string> <string name="make_as_start_point">Instellen als startpunt</string> <string name="shared_string_current">Huidige</string> <string name="last_intermediate_dest_description">Voeg een tussenstop toe</string> @@ -2630,13 +2681,13 @@ voor Gebied: %1$s x %2$s</string> <string name="switch_osm_notes_visibility_desc">OSM-opmerkingen op de kaart tonen/verbergen.</string> <string name="gpx_file_desc">GPX - geschikt voor export naar JOSM en andere OSM-editors.</string> <string name="osc_file_desc">OSC - geschikt voor export naar OSM.</string> - <string name="shared_string_gpx_file">"GPX-bestand "</string> + <string name="shared_string_gpx_file">GPX-bestand</string> <string name="osc_file">OSC-bestand</string> <string name="choose_file_type">Kies bestandstype</string> <string name="osm_edits_export_desc">Exporteer als OSM-aantekeningen, POI of beide.</string> - <string name="all_data">"Alle gegevens "</string> + <string name="all_data">Alle gegevens</string> <string name="osm_notes">OSM-aantekeningen</string> - <string name="will_open_tomorrow_at">"Gaat morgen open om "</string> + <string name="will_open_tomorrow_at">Gaat morgen open om</string> <string name="rendering_attr_hidePOILabels_name">POI-namen</string> <string name="shared_string_without_name">Zonder naam</string> <string name="what_is_here">Wat is dit hier:</string> @@ -2647,14 +2698,13 @@ voor Gebied: %1$s x %2$s</string> <string name="shared_string_total">Totaal</string> <string name="hide_full_description">Volledige beschrijving verbergen</string> <string name="show_full_description">Volledige beschrijving tonen</string> - <string name="off_road_render_descr">Geschikt voor off-road gebruik in \'Topo\' stijl en voor gebruik met groene satellietbeelden als onderliggende kaart. Verminderde dikte van hoofdwegen, vergrootte dikte van landwegen, paden, fiets- en andere routes.</string> + <string name="off_road_render_descr">Geschikt voor off-road gebruik in \'Topo\'-stijl en voor gebruik met groene satellietbeelden als achtergrondlaag. Verminderde dikte van hoofdwegen, vergrootte dikte van veld- en boswegen, paden, fiets- en andere routes.</string> <string name="nautical_render_descr">Zeekaartstijl. Toont boeien, vuurtorens, rivieren, vaargeulen en -markeringen, havens, bakens, dieptelijnen.</string> <string name="ski_map_render_descr">Skistijl. Toont pistes, skiliften en andere ski-gerelateerde elementen. Overige kaartelementen worden verduisterd.</string> <string name="light_rs_render_descr">Eenvoudige stijl voor autonavigatie. Zachte nachtmodus, hoogtelijnen, contrasterende wegen in oranje stijl, verduistert overige kaartelementen.</string> <string name="topo_render_descr">Voor wandelaars, trektochten en fietsenrs in de natuur. Buiten goed leesbaar. Contrasterende wegen en natuurlijke objecten, verschillende routetypen, geavanceerde hoogtelijn opties, extra details. Aanpassing van de oppervlakte-integriteit onderscheidt de kwaliteit van de weg. Geen nachtmodus.</string> <string name="mapnik_render_descr">Oude \'Mapnik\'-standaardstijl. Kleuren vergelijkbaar met \'Mapnik\'.</string> - <string name="touring_view_render_descr">Hoog contrast en maximaal detail, bevat alle opties van de standaardstijl van OsmAnd. Duidelijk onderscheid tussen wegtypes. -\nGeschikt voor dag, nacht en outdoor gebruik.</string> + <string name="touring_view_render_descr">Stijl met hoog contrast en maximaal detail. Deze bevat alle opties van de standaardstijl van OsmAnd, met zoveel mogelijk details, specifiek wegen, paden en andere reismogelijkheden. Geen verschil tussen “wegenkaart”-wegtypes. Geschikt voor dag, nacht en outdoor gebruik.</string> <string name="default_render_descr">Universele stijl. Vereenvoudigde weergave dichtbevolkte steden. Hoogtelijnen, routes, oppervlakkwaliteit, toegangsrestricties, wegnummers, weergave van paden volgens de SAC-schaal, wildwatersportelementen.</string> <string name="open_wikipedia_link_online">WIkipedia-link online openen</string> <string name="open_wikipedia_link_online_description">De link wordt in een webbrowser geopend.</string> @@ -2688,14 +2738,15 @@ voor Gebied: %1$s x %2$s</string> <string name="how_to_open_wiki_title">Hoe Wikipedia-artikelen te openen?</string> <string name="quick_action_edit_actions">Wijzig acties</string> <string name="shared_string_bookmark">Bladwijzer</string> - <string name="point_deleted">"Punt %1$s verwijderd"</string> + <string name="point_deleted">Punt %1$s verwijderd</string> <string name="coord_input_edit_point">Punt bewerken</string> <string name="coord_input_add_point">Punt toevoegen</string> <string name="coord_input_save_as_track_descr">Je hebt %1$s punten toegevoegd. Geef een bestandsnaam en tik op \"Opslaan\".</string> <string name="error_notification_desc">Stuur alsjeblieft een screenshot van deze melding naar support@osmand.net</string> - <string name="thank_you_for_feedback">"Dank voor feedback "</string> + <string name="thank_you_for_feedback">Dank voor uw feedback</string> <string name="poi_cannot_be_found">Knoop of weg kan niet worden gevonden.</string> - <string name="search_no_results_feedback">Geef uw feedback</string> + <string name="search_no_results_feedback">Geen zoekresultaten\? +\nGeef feedback</string> <string name="increase_search_radius_to">Vergroot het zoekgebied tot %1$s</string> <string name="send_search_query_description">Uw zoekterm wordt verstuurd naar: \"%1$s\", samen met uw locatie. \n @@ -2739,26 +2790,26 @@ voor Gebied: %1$s x %2$s</string> <string name="osm_live_payment_month_cost_descr">%1$s / maand</string> <string name="osm_live_payment_month_cost_descr_ex">%1$.2f %2$s / maand</string> <string name="osm_live_payment_discount_descr">Bespaar %1$s</string> - <string name="osm_live_payment_current_subscription">"Uw huidige abonnement "</string> + <string name="osm_live_payment_current_subscription">Uw huidige abonnement</string> <string name="osm_live_payment_renews_monthly">Wordt maandelijks verlengd</string> - <string name="osm_live_payment_renews_quarterly">"Wordt per kwartaal verlengd "</string> - <string name="osm_live_payment_renews_annually">"Wordt per jaar verlengd "</string> + <string name="osm_live_payment_renews_quarterly">Wordt per kwartaal verlengd</string> + <string name="osm_live_payment_renews_annually">Wordt per jaar verlengd</string> <string name="default_price_currency_format">%1$.2f %2$s</string> <string name="osm_live_payment_header">Betaal-interval:</string> <string name="osm_live_payment_contribute_descr">Giften helpen OSM cartografie te financieren.</string> <string name="markers_remove_dialog_msg">Markeervlaggetje \'%s\' verwijderen\?</string> - <string name="edit_map_marker">"Markeervlaggetje bewerken "</string> + <string name="edit_map_marker">Markeervlaggetje bewerken</string> <string name="third_party_application">App van derde partij</string> <string name="search_street">Straatnaam zoeken</string> <string name="start_search_from_city">Geef eerst stad/gemeente/localiteit op</string> - <string name="shared_string_restore">"Herstellen "</string> + <string name="shared_string_restore">Herstellen</string> <string name="keep_passed_markers">Vorige vlaggetjes op de kaart behouden</string> <string name="more_transport_on_stop_hint">Meerdere verbindingen beschikbaar vanaf deze halte.</string> <string name="ask_for_location_permission">Geef OsmAnd toegang tot uw locatie om door te gaan.</string> <string name="keep_passed_markers_descr">Markeervlaggetjes die als Favorieten of als GPX-track toegevoegd zijn, en afgehandeld zijn, blijven zichtbaar op de kaart. Als die groep niet meer actief is, zullen ze verdwijnen.</string> <string name="mapillary_menu_title_pano">Alleen 360°-foto\'s tonen</string> <string name="rendering_value_black_name">Zwart</string> - <string name="copy_location_name">Kopieer locatie/interessepunt naam</string> + <string name="copy_location_name">Kopieer locatie/POI-naam</string> <string name="routing_attr_avoid_tram_description">Vermijd trams</string> <string name="routing_attr_avoid_bus_name">Geen bussen</string> <string name="routing_attr_avoid_bus_description">Vermijd bussen en trolleybussen</string> @@ -2780,7 +2831,7 @@ voor Gebied: %1$s x %2$s</string> <string name="save_poi_value_exceed_length">Verkort de lengte van \"%s\" tot minder dan 255 karakters.</string> <string name="save_poi_value_exceed_length_title">Lengte van waarde \"%s\"</string> <string name="public_transport_warning_descr_blog">Lees meer op onze blog over hoe OsmAnd routes berekent.</string> - <string name="public_transport_warning_title">Navigatie binnen openbaar vervoer is op dit moment in de beta testfase. Houd rekening met fouten en onnauwkeurigheden.</string> + <string name="public_transport_warning_title">OV-navigatie is op dit moment in bèta-test, houd rekening met fouten en onnauwkeurigheden.</string> <string name="add_intermediate">Voeg tussenpunt toe</string> <string name="add_start_and_end_points">Voeg vertrekpunt en bestemming toe</string> <string name="route_add_start_point">Voeg vertrekpunt toe</string> @@ -2818,7 +2869,7 @@ voor Gebied: %1$s x %2$s</string> <string name="rendering_attr_highway_class_street_name">Straat</string> <string name="rendering_attr_highway_class_service_name">Dienstweg</string> <string name="rendering_attr_highway_class_footway_name">Voetpad</string> - <string name="rendering_attr_highway_class_track_name">Track</string> + <string name="rendering_attr_highway_class_track_name">Veld- of bosweg</string> <string name="rendering_attr_highway_class_bridleway_name">Ruiterpad</string> <string name="rendering_attr_highway_class_steps_name">Treden</string> <string name="rendering_attr_highway_class_path_name">Pad</string> @@ -2829,7 +2880,7 @@ voor Gebied: %1$s x %2$s</string> <string name="time_of_day">Huidige tijd</string> <string name="step_by_step">Stap voor stap</string> <string name="routeInfo_road_types_name">Weg types</string> - <string name="exit_at">Uitstappen op</string> + <string name="exit_at">Uitstappen bij</string> <string name="shared_string_swap">Wissel</string> <string name="show_more">Toon meer</string> <string name="tracks_on_map">Getoonde tracks</string> @@ -2852,7 +2903,7 @@ voor Gebied: %1$s x %2$s</string> <string name="add_start_point">Stel het vertrekpunt in</string> <string name="intermediate_waypoint">Tussenpunt</string> <string name="on_foot">Te voet</string> - <string name="points_of_interests">Interessepunten (POI)</string> + <string name="points_of_interests">POI’s (interessepunten)</string> <string name="waiting_for_route_calculation">Route berekenen…</string> <string name="app_mode_public_transport">Openbaar vervoer</string> <string name="avoid_roads_descr">Selecteer de weg die u wilt vermijden gedurende navigatie, of op de kaart of van de onderstaande lijst:</string> @@ -2967,9 +3018,9 @@ voor Gebied: %1$s x %2$s</string> <string name="profile_alert_need_profile_name_msg">Geef eerst een profielnaam op.</string> <string name="profile_alert_duplicate_name_title">Dubbele naam</string> <string name="profile_alert_duplicate_name_msg">Er bestaat al een profiel met die naam</string> - <string name="profile_alert_cant_delete_base">Basisprofielen van OsmAnd kun je niet verwijderen</string> + <string name="profile_alert_cant_delete_base">Basisprofielen van OsmAnd kunnen niet verwijderd worden</string> <string name="profile_alert_need_save_title">Wijzigingen opslaan</string> - <string name="profile_alert_need_save_msg">Sla wijzigingen aan het profiel eerst op</string> + <string name="profile_alert_need_save_msg">Sla wijzigingen van het profiel eerst op</string> <string name="profile_alert_delete_title">Profiel verwijderen</string> <string name="profile_alert_delete_msg">Weet je zeker dat je profiel \"%s\" wilt verwijderen</string> <string name="select_base_profile_dialog_title">Selecteer een profiel om mee te starten</string> @@ -2985,7 +3036,7 @@ voor Gebied: %1$s x %2$s</string> <string name="shared_string_color_magenta">Magenta</string> <string name="shared_string_icon">Icoon</string> <string name="press_again_to_change_the_map_orientation">Tik nogmaals om de kaartoriëntatie te wijzigen</string> - <string name="default_speed_setting_title">Standaard snelheid</string> + <string name="default_speed_setting_title">Standaardsnelheid</string> <string name="default_speed_setting_descr">Standaard snelheidsinstellingen aanpassen</string> <string name="minmax_speed_dialog_title">Min/max snelheid instellen</string> <string name="shared_string_crash">Crash</string> @@ -2996,8 +3047,8 @@ voor Gebied: %1$s x %2$s</string> <string name="edit_profile_screen_options_subtitle">Selecteer scherminstellingen voor het profiel</string> <string name="edit_profile_nav_settings_subtitle">Selecteer navigatieinstellingen voor het profiel</string> <string name="routing_attr_max_num_changes_description">Maximaal aantal keer overstappen</string> - <string name="routing_attr_max_num_changes_name">Aantal aanpassingen</string> - <string name="turn_screen_on_router">Scherm aanzetten bij een bocht</string> + <string name="routing_attr_max_num_changes_name">Aantal overstappen</string> + <string name="turn_screen_on_router">Scherm aanzetten bij een afslag</string> <string name="turn_screen_on_sensor">Gebruik nabijheidssensor</string> <string name="turn_on_profile_desc">Schakel minste één applicatieprofiel in om deze instelling te kunnen gebruiken.</string> <string name="rendering_attr_winter_road_name">Winterweg</string> @@ -3013,7 +3064,7 @@ voor Gebied: %1$s x %2$s</string> <string name="shared_string_track_is_saved">Track %s is opgeslagen</string> <string name="app_mode_camper">Caravan</string> <string name="rendering_attr_showLez_description">Toon lage emissiezones op de kaart. Heeft geen invloed op de navigatie.</string> - <string name="rendering_attr_showLez_name">Toon lage emissie zones</string> + <string name="rendering_attr_showLez_name">Toon milieuzones</string> <string name="temporary_conditional_routing">Houd rekening met tijdelijke beperkingen</string> <string name="shared_string_default">Standaard</string> <string name="day">Dag</string> @@ -3096,7 +3147,7 @@ voor Gebied: %1$s x %2$s</string> <string name="units_and_formats">Eenheden &amp; formaten</string> <string name="map_look_descr">Kaartweergave</string> <string name="general_settings_profile_descr">App thema, eenheden, regio</string> - <string name="screen_alerts_descr">Meldingen linksonder weergeven tijdens het navigeren.</string> + <string name="screen_alerts_descr">Waarschuwingen linksonder weergeven tijdens het navigeren.</string> <string name="language_and_output">Taal en output</string> <string name="manage_profiles">App profielen beheren…</string> <string name="osmand_settings_descr">Effectief voor de gehele app</string> @@ -3106,7 +3157,7 @@ voor Gebied: %1$s x %2$s</string> <string name="voice_announces_info">Gesproken meldingen enkel tijdens het navigeren.</string> <string name="voice_announces_descr">Navigatie-instructies en aankondigingen</string> <string name="voice_announces">Gesproken instructies</string> - <string name="screen_alerts">Meldingen</string> + <string name="screen_alerts">Visuele waarschuwingen</string> <string name="route_parameters_descr">Configureer routeparameters</string> <string name="route_parameters">Routeparameters</string> <string name="application_profile_changed">Profiel gewijzigd naar \"%s\"</string> @@ -3115,7 +3166,7 @@ voor Gebied: %1$s x %2$s</string> <string name="shared_string_revert">Herstel</string> <string name="clear_confirmation_msg">Wis %1$s\?</string> <string name="routing_attr_freeride_policy_name">Buiten de piste</string> - <string name="default_speed_dialog_msg">Schat de aankomsttijd in voor onbekende wegtypes en beperkt maximum snelheid voor alle wegen (kan de route beïnvloeden)</string> + <string name="default_speed_dialog_msg">Schat de aankomsttijd in voor onbekende wegtypes en beperkt de maximumsnelheid voor alle wegen (kan de route beïnvloeden)</string> <string name="rendering_attr_highway_class_track_grade1_name">Toestand 1</string> <string name="rendering_attr_highway_class_track_grade2_name">Toestand 2</string> <string name="rendering_attr_highway_class_track_grade3_name">Toestand 3</string> @@ -3133,13 +3184,13 @@ voor Gebied: %1$s x %2$s</string> <string name="quick_action_contour_lines_show">Toon de hoogtelijnen</string> <string name="quick_action_contour_lines_hide">Verberg de hoogtelijnen</string> <string name="quick_action_show_hide_contour_lines">Toon/verberg de hoogtelijnen</string> - <string name="quick_action_hillshade_descr">Knop om de reliëflaag al dan niet te tonen op de kaart.</string> - <string name="quick_action_hillshade_show">Toon de reliëflaag</string> - <string name="quick_action_hillshade_hide">Verberg de reliëflaag</string> - <string name="quick_action_show_hide_hillshade">Toon/verberg de reliëflaag</string> + <string name="quick_action_hillshade_descr">Knop om de reliëfschaduw al dan niet te tonen op de kaart.</string> + <string name="quick_action_hillshade_show">Toon reliëfschaduw</string> + <string name="quick_action_hillshade_hide">Verberg reliëfschaduw</string> + <string name="quick_action_show_hide_hillshade">Toon/verberg reliëfschaduw</string> <string name="track_saved">Track opgeslagen</string> <string name="rendering_attr_showCycleNodeNetworkRoutes_name">Toon knooppunt van de fietsroutes</string> - <string name="contour_lines_and_hillshade">Hoogtelijnen en reliëflaag</string> + <string name="contour_lines_and_hillshade">Hoogtelijnen en reliëfschaduw</string> <string name="send_log">Verzend log</string> <string name="move_maps">Kaarten verplaatsen</string> <string name="rate_dialog_descr">Deel alstublieft uw terugkoppeling en waardeer ons werk op Google Play.</string> @@ -3166,10 +3217,10 @@ voor Gebied: %1$s x %2$s</string> <string name="custom_routing">Aangepast route profiel</string> <string name="special_routing_type">Speciale routering</string> <string name="third_party_routing_type">Third-party routering</string> - <string name="quick_action_need_to_add_item_to_list">Voeg tenminste één item toe aan de lijst in de \'Snelle acties\' instellingen</string> + <string name="quick_action_need_to_add_item_to_list">Voeg tenminste één item toe aan de lijst via de instelling \'Sneltoetsen\'</string> <string name="routing_attr_piste_type_downhill_name">Alpine/afdaling ski</string> <string name="routing_attr_piste_type_downhill_description">Hellingen voor alpine en bergafwaarts skiën en toegang tot skiliften.</string> - <string name="routing_attr_piste_type_nordic_name">Cross country/nordic ski</string> + <string name="routing_attr_piste_type_nordic_name">Cross country/langlaufen</string> <string name="routing_attr_piste_type_nordic_description">Sporen voor nordic of cross-country skiën.</string> <string name="routing_attr_piste_type_skitour_name">Ski tours</string> <string name="routing_attr_piste_type_skitour_description">Routes voor ski tours.</string> @@ -3190,22 +3241,22 @@ voor Gebied: %1$s x %2$s</string> <string name="routing_attr_freeride_policy_description">Freeride en off-piste zijn officieuze routes en passages. Officieel meestal niet geprepareerd en onderhouden, en niet \'s avonds gecheckt. Op eigen risico betreden.</string> <string name="collected_data">Verzamelde data</string> <string name="last_launch_crashed">Laatste OsmAnd uitvoering gecrasht. Help ons alstublieft OsmAnd te verbeteren door de foutmelding te delen.</string> - <string name="app_mode_personal_transporter">Persoonlijk vervoer</string> + <string name="app_mode_personal_transporter">Personal transporter</string> <string name="app_mode_offroad">Offroad</string> <string name="sett_wunderlinq_ext_input">WunderLINQ</string> <string name="routeInfo_roadClass_name">Wegtype</string> <string name="shared_string_open_track">Track openen</string> - <string name="gpx_join_gaps">Verbind de gaten</string> + <string name="gpx_join_gaps">Verbind onderbrekingen</string> <string name="new_route_calculated_dist_dbg">Route: afstand %s, reistijd %s \nBerekening: %.1f sec, %d wegen, %d tegels)</string> <string name="lang_oc">Occitaans</string> <string name="app_mode_wagon">Stationwagon</string> <string name="app_mode_pickup_truck">Pick-up truck</string> - <string name="get_discount_title">Verkrijg %1$d %2$s met %3$s korting.</string> + <string name="get_discount_title">Nu %1$d %2$s met %3$s korting.</string> <string name="get_discount_first_part">%1$s voor de eerste %2$s</string> <string name="get_discount_first_few_part">%1$s voor de eerste %2$s</string> <string name="get_discount_second_part">daarna %1$s</string> - <string name="cancel_subscription">Annuleer inschrijving</string> + <string name="cancel_subscription">Abonnement beëindigen</string> <string name="price_and_discount">%1$s • Bespaar %2$s</string> <string name="analytics_pref_title">Analyse</string> <string name="wake_time">Scherm aan gedurende</string> @@ -3221,7 +3272,7 @@ voor Gebied: %1$s x %2$s</string> <string name="rendering_attr_piste_type_connection_name">Verbinding</string> <string name="rendering_attr_piste_type_skitour_name">Skitocht</string> <string name="rendering_attr_piste_type_downhill_name">Bergafwaarts</string> - <string name="rendering_attr_piste_type_nordic_name">Nordic</string> + <string name="rendering_attr_piste_type_nordic_name">Langlaufen</string> <string name="routeInfo_piste_type_name">Type piste</string> <string name="rendering_attr_piste_difficulty_novice_name">Beginner</string> <string name="rendering_attr_piste_difficulty_easy_name">Makkelijk</string> @@ -3370,9 +3421,9 @@ voor Gebied: %1$s x %2$s</string> <string name="please_provide_profile_name_message">Kies een naam voor het profiel</string> <string name="open_settings">Open instellingen</string> <string name="plugin_disabled">Plugin uitgeschakeld</string> - <string name="plugin_disabled_descr">"Deze plug-in is een afzonderlijke App, je zal die afzonderlijk dienen te verwijderen als je die niet meer nodig denkt te hebben. -\n -\nDe plug-in blijft op je toestel bij het verwijderen van OsmAnd."</string> + <string name="plugin_disabled_descr">Deze plug-in is een afzonderlijke app, die afzonderlijk verwijderd moet worden als je deze niet meer nodig denkt te hebben. +\n +\nDe plug-in blijft op het apparaat aanwezig na het verwijderen van OsmAnd.</string> <string name="shared_string_menu">Menu</string> <string name="ltr_or_rtl_triple_combine_via_dash">%1$s — %2$s — %3$s</string> <string name="shared_string_routing">Routering</string> @@ -3389,9 +3440,9 @@ voor Gebied: %1$s x %2$s</string> <string name="recalc_angle_dialog_descr">Een extra recht segment tussen mijn locatie en de berekende route zal getoond worden tot de route herberekend is</string> <string name="recalc_angle_dialog_title">Minimale hoek tussen mijn locatie en de route</string> <string name="shared_string_preparing">Voorbereiding</string> - <string name="shared_string_poi_types">POI types</string> + <string name="shared_string_poi_types">POI-types</string> <string name="shared_string_nothing_selected">Niets geselecteerd</string> - <string name="shared_string_quick_actions">Snelle acties</string> + <string name="shared_string_quick_actions">Sneltoetsen</string> <string name="shared_string_profiles">Profielen</string> <string name="listed_exist">De getoonde %1$s zijn in OsmAnd reeds beschikbaar.</string> <string name="replace_all_desc">Huidige elementen worden vervangen door elementen uit het bestand</string> @@ -3425,17 +3476,17 @@ voor Gebied: %1$s x %2$s</string> <string name="search_poi_types_descr">Combineer POI-types uit verschillende categorieën. Tik op \"Schakelen\" om alles te selecteren, tik op de linkerkant voor de categoriekeuze.</string> <string name="extra_maps_menu_group">Extra kaarten</string> <string name="download_unsupported_action">Niet ondersteunde actie %1$s</string> - <string name="tracker_item">OsmAnd zoeker</string> - <string name="mapillary_item">OsmAnd &amp; Mapillary</string> - <string name="quick_action_item">Snelle actie</string> + <string name="tracker_item">OsmAnd tracker</string> + <string name="mapillary_item">OsmAnd + Mapillary</string> + <string name="quick_action_item">Sneltoets</string> <string name="radius_ruler_item">Radius liniaal</string> <string name="measure_distance_item">Afstand meten</string> <string name="travel_item">Reizen (Wikivoyage en Wikipedia)</string> <string name="map_markers_item">Markeervlaggetjes</string> <string name="favorites_item">Favorieten</string> <string name="subscription_osmandlive_item">Abonnement - OsmAnd Live</string> - <string name="osmand_purchases_item">OsmAnd aankopen</string> - <string name="legend_item_description">De gids voor de kaartsymbolen</string> + <string name="osmand_purchases_item">OsmAnd-aankopen</string> + <string name="legend_item_description">Betekenis van de kaartsymbolen.</string> <string name="navigation_profiles_item">Navigatieprofielen</string> <string name="vessel_width_limit_description">Stel de breedte van het vaartuig in om smalle bruggen te vermijden</string> <string name="vessel_height_limit_description">Stel de hoogte van het vaartuig in om lage bruggen te vermijden. Let op, als de brug beweegbaar is, gebruiken we de hoogte in geopende toestand.</string> @@ -3461,7 +3512,182 @@ voor Gebied: %1$s x %2$s</string> <string name="shared_string_uninstall_and_restart">Verwijderen en Herstarten</string> <string name="speed_cameras_removed_descr">Dit apparaat bevat geen informatie over snelheidscamera’s.</string> <string name="app_mode_inline_skates">Inline skates</string> - <string name="keep_active"/> - <string name="shared_string_uninstall"/> - <string name="speed_cameras_alert"/> + <string name="keep_active">Actief houden</string> + <string name="shared_string_uninstall">Verwijder</string> + <string name="speed_cameras_alert">Het waarschuwen voor snelheidscamera’s is in sommige landen in strijd met de wet.</string> + <string name="context_menu_actions">Acties in het contextmenu</string> + <string name="main_actions">Belangrijkste acties</string> + <string name="additional_actions_descr">U kunt toegang krijgen tot deze acties door op de \"%1$s\" knop te tikken.</string> + <string name="osm_live_payment_subscription_management">De betaling wordt na bevestiging van de aankoop in rekening gebracht op je Google Play-account. +\n +\n Het abonnement wordt automatisch verlengd, tenzij het wordt opgezegd vóór de verlengingsdatum. De betaling wordt alleen op de verlengingsdatum op uw account in rekening gebracht voor de verlengingsperiode (maand / drie maanden / jaar). +\n +\n Je kunt je abonnementen beheren en opzeggen via de Google Play-instellingen.</string> + <string name="search_offline_geo_error">Kon de geo-intent \'%s\' niet verwerken.</string> + <string name="index_name_antarctica">Antarctica</string> + <string name="sort_by_category">Sorteer op categorie</string> + <string name="shared_string_resume">Hervatten</string> + <string name="monitoring_min_distance_descr_side_effect">Neveneffecten: Perioden zonder beweging worden helemaal niet geregistreerd of met slechts één punt per keer. Kleine bewegingen (in de echte wereld) (bijvoorbeeld zijwaarts, om een mogelijke afslag tijdens uw reis te markeren) kunnen worden uitgefilterd. Het bestand bevat minder informatie voor nabewerking, en heeft slechtere statistieken door het filteren van duidelijk overbodige punten tijdens de opname, terwijl artefacten die worden veroorzaakt door slechte ontvangst of GPS-chipseteffecten wel worden bewaard.</string> + <string name="monitoring_min_distance_descr">Dit filter voorkomt dat dubbele punten worden opgenomen als er te weinig daadwerkelijke beweging kan hebben plaatsgevonden, dit zorgt voor een mooiere weergave van tracks die later niet nabewerkt worden.</string> + <string name="monitoring_min_accuracy_descr_remark">Opmerking: als GPS was uitgeschakeld vlak voor het begin van een opname, kan het eerste gemeten punt een verminderde nauwkeurigheid hebben, dus in onze software willen we misschien een seconde wachten voordat we een punt opnemen (of het beste van 3 opeenvolgende punten opnemen, enz.), maar dit is nog niet geïmplementeerd.</string> + <string name="monitoring_min_accuracy_descr_recommendation">Aanbeveling: Het is moeilijk te voorspellen wat er wordt opgenomen en wat niet, het is misschien beter om dit filter uit te schakelen.</string> + <string name="monitoring_min_accuracy_descr_side_effect">Neveneffect: Als gevolg van filteren op nauwkeurigheid, kunnen punten volledig ontbreken, b.v. onder bruggen, onder bomen, tussen hoge gebouwen of bij bepaalde weersomstandigheden.</string> + <string name="monitoring_min_speed_descr_remark">Opmerking: snelheid &gt; 0 controle: De meeste GPS-chipsets melden alleen een snelheid als het algoritme bepaalt dat u in beweging bent, en geen als u dat niet bent. Vandaar dat het gebruik van de ‘&gt; 0’-instelling in dit filter in zekere zin gebruikmaakt van de bewegingsdetectie van de GPS-chipset. Maar zelfs als niet hier gefilterd wordt tijdens de opname, maken we nog steeds gebruik van deze functie in onze GPX-analyse om de afgelegde afstand te bepalen, dat wil zeggen dat de waarde die wordt weergegeven in dat veld, de afstand is die is opgenomen tijdens beweging.</string> + <string name="shared_string_terrain">Terrein</string> + <string name="slope_description">Helling gebruikt kleuren om de steilheid van het terrein te visualiseren.</string> + <string name="terrain_slider_description">Stel de minimale en maximale zoomniveaus in waarbij de laag wordt weergegeven.</string> + <string name="slope_download_description">Om Hellingen te tonen zijn extra kaarten nodig.</string> + <string name="slope_read_more">Meer over Hellingen in %1$s.</string> + <string name="shared_string_transparency">Transparantie</string> + <string name="shared_string_zoom_levels">Zoomniveaus</string> + <string name="shared_string_legend">Legenda</string> + <string name="import_complete_description">Alle gegevens uit de %1$s zijn geïmporteerd, open met de onderstaande knoppen het benodigde deel van de app om deze te beheren.</string> + <string name="shared_string_import_complete">Import voltooid</string> + <string name="items_added">Items toegevoegd</string> + <string name="checking_for_duplicate_description">OsmAnd controleert %1$s op duplicaten met bestaande items in de app. +\n +\nDit kan even duren.</string> + <string name="shared_string_importing">Bezig met importeren</string> + <string name="importing_from">Gegevens importeren uit %1$s</string> + <string name="clear_recorded_data_warning">Weet je zeker dat je de opgenomen gegevens wil wissen\?</string> + <string name="recalculate_route_in_deviation">Route herberekenen in geval van afwijking</string> + <string name="select_distance_route_will_recalc">Selecteer de afstand waarbij de route wordt herberekend.</string> + <string name="recalculate_route_distance_promo">De route wordt herberekend als de afstand van de route tot de huidige locatie groter is dan de geselecteerde waarde.</string> + <string name="shared_string_octagon">Achthoek</string> + <string name="shared_string_square">Vierkant</string> + <string name="ui_customization_description">Pas het aantal items aan in \'Map, \'Kaart configureren\' en \'Contextmenu\'. +\n +\nSchakel ongebruikte plug-ins uit om al hun besturingselementen te verbergen. %1$s.</string> + <string name="ui_customization_short_descr">Mappen, contextmenu</string> + <string name="ui_customization">Aanpassing van de gebruikersinterface</string> + <string name="shared_string_drawer">Map</string> + <string name="reorder_or_hide_from">Herschik of verberg items uit de %1$s.</string> + <string name="shared_string_divider">Scheidingslijn</string> + <string name="divider_descr">Elementen na dit punt zijn gescheiden door een scheidingslijn.</string> + <string name="shared_string_hidden">Verborgen</string> + <string name="hidden_items_descr">Deze items worden niet getoond in het menu, maar de bijbehorende opties of plug-ins blijven werken.</string> + <string name="reset_items_descr">Door instellingen te verbergen worden deze in hun oorspronkelijke staat hersteld.</string> + <string name="main_actions_descr">Heeft maar vier knoppen.</string> + <string name="move_inside_category">U kunt items alleen binnen deze categorie verplaatsen.</string> + <string name="developer_plugin">Plug-in voor ontwikkelaars</string> + <string name="replace_point_descr">Vervang een ander punt door dit punt.</string> + <string name="app_mode_ski_touring">Toerskiën</string> + <string name="app_mode_ski_snowmobile">Sneeuwscooter</string> + <string name="custom_osmand_plugin">Aangepaste OsmAnd-plug-in</string> + <string name="shared_string_items">Items</string> + <string name="changes_applied_to_profile">Wijzigingen toegepast op het \'%1$s\'-profiel.</string> + <string name="settings_item_read_error">Kon niet lezen van \'%1$s\'.</string> + <string name="settings_item_write_error">Kon niet schrijven naar \'%1$s\'.</string> + <string name="settings_item_import_error">Kon niet importeren uit \'%1$s\'.</string> + <string name="select_track_file">Selecteer track-bestand</string> + <string name="shared_string_languages">Talen</string> + <string name="shared_string_language">Taal</string> + <string name="shared_string_all_languages">Alle talen</string> + <string name="wiki_menu_download_descr">Om Wikipedia-POI’s op de kaart te tonen zijn extra kaarten nodig.</string> + <string name="select_wikipedia_article_langs">Selecteer de talen voor Wikipedia-artikelen op de kaart. Tijdens het lezen van het artikel kan omgeschakeld worden naar een andere beschikbare taal.</string> + <string name="some_articles_may_not_available_in_lang">Sommige Wikipedia-artikelen zijn mogelijk niet beschikbaar in de eigen taal.</string> + <string name="lang_zhyue">Kantonees</string> + <string name="lang_zhminnan">Minnanyu</string> + <string name="lang_yo">Yoruba</string> + <string name="lang_war">Waray-Waray</string> + <string name="lang_uz">Oezbeeks</string> + <string name="lang_ur">Urdu</string> + <string name="lang_tt">Tataars</string> + <string name="lang_tg">Tadzjieks</string> + <string name="lang_sco">Schots</string> + <string name="lang_scn">Siciliaans</string> + <string name="lang_pnb">Punjabi</string> + <string name="lang_ne">Nepalees</string> + <string name="lang_nap">Napolitaans</string> + <string name="lang_my">Birmaans</string> + <string name="lang_mn">Mongools</string> + <string name="lang_min">Minangkabaus</string> + <string name="lang_mg">Malagasi</string> + <string name="lang_ky">Kirgizisch</string> + <string name="lang_kk">Kazachs</string> + <string name="lang_jv">Javaans</string> + <string name="lang_gu">Gujarati</string> + <string name="lang_cv">Tsjoevasjisch</string> + <string name="lang_ce">Tsjetsjeens</string> + <string name="lang_bar">Beiers</string> + <string name="lang_ba">Bashkir</string> + <string name="lang_an">Aragonees</string> + <string name="lang_lmo">Lombardisch</string> + <string name="custom_color">Aangepaste kleur</string> + <string name="ltr_or_rtl_combine_via_slash_with_space">%1$s / %2$s</string> + <string name="search_poi_types">POI-types zoeken</string> + <string name="quick_action_transport_hide">OV-informatie verbergen</string> + <string name="quick_action_transport_show">OV-informatie tonen</string> + <string name="quick_action_show_hide_transport">OV-informatie tonen/verbergen</string> + <string name="quick_action_transport_descr">Knop om OV-informatie op de kaart te tonen of verbergen.</string> + <string name="add_edit_favorite">Favoriet toevoegen / bewerken</string> + <string name="create_edit_poi">POI toevoegen / bewerken</string> + <string name="parking_positions">Parkeerlocaties</string> + <string name="reset_deafult_order">Standaardvolgorde van de items herstellen</string> + <string name="back_to_editing">Terugkeren naar wijzigen</string> + <string name="quick_action_switch_profile_descr">De sneltoets wisselt tussen de geselecteerde profielen.</string> + <string name="shared_string_add_profile">Voeg profiel toe</string> + <string name="change_application_profile">Wijzig app-profiel</string> + <string name="index_item_world_basemap_detailed">Wereldoverzichtskaart (gedetailleerd)</string> + <string name="unsupported_type_error">Niet ondersteund type</string> + <string name="width_limit_description">Geef de voertuigbreedte op, er zijn mogelijk routebeperkingen voor brede voertuigen.</string> + <string name="height_limit_description">Geef de voertuighoogte op, er zijn mogelijk routebeperkingen voor hoge voertuigen.</string> + <string name="weight_limit_description">Geef het voertuiggewicht op, er zijn mogelijk routbeperkingen voor zwaar verkeer.</string> + <string name="gpx_parse_error">OsmAnd GPX is corrupt, neem contact op met het support team voor verder onderzoek.</string> + <string name="shared_string_always">Altijd</string> + <string name="screen_control">Scherminstellingen</string> + <string name="system_screen_timeout_descr">Zet het scherm uit volgens de systeeminstelling van de schermtimeout.</string> + <string name="system_screen_timeout">Gebruik de schermtimeout van het systeem</string> + <string name="turn_screen_on_descr">Kies wanneer het scherm aangezet moet worden (OsmAnd moet in de voorgrond actief zijn als het apparaat vergrendeld wordt):</string> + <string name="turn_screen_on_navigation_instructions_descr">Scherm aanzetten bij elke routeaanwijzing.</string> + <string name="turn_screen_on_navigation_instructions">Routeaanwijzingen</string> + <string name="turn_screen_on_power_button_disabled">Uitgeschakeld. De instelling ‘Timeout na wakker worden’ moet ingesteld zijn op ‘Scherm aanlaten’.</string> + <string name="turn_screen_on_power_button_descr">Door op de aan/uit-knop te drukken gaat het scherm aan met OsmAnd op de voorgrond van het vergrendelscherm.</string> + <string name="turn_screen_on_power_button">Aan/uit-knop</string> + <string name="turn_screen_on_proximity_sensor">Nabijheidssensor</string> + <string name="turn_screen_on_wake_time_descr">Selecteer de schermtimeout na wakker worden. (Kies “%1$s” om geen timeout te gebruiken.)</string> + <string name="keep_screen_off">Scherm uitlaten</string> + <string name="keep_screen_on">Scherm aanlaten</string> + <string name="pseudo_mercator_projection">Pseudo-Mercatorprojectie</string> + <string name="one_image_per_tile">Eén beeldbestand per tile</string> + <string name="sqlite_db_file">SQLiteDB-bestand</string> + <string name="online_map_name_helper_text">Geef een naam voor de online kaartbron.</string> + <string name="online_map_url_helper_text">De URL van de onlinebron invoeren of plakken.</string> + <string name="edit_online_source">Bewerk onlinebron</string> + <string name="expire_time">Vervaldatum</string> + <string name="mercator_projection">Mercatorprojectie</string> + <string name="storage_format">Opslagformaat</string> + <string name="map_source_zoom_levels">Stel een minimum en maximum zoomniveau in om de online kaart te tonen of te laden.</string> + <string name="shared_string_delete_all_q">Alles wissen\?</string> + <string name="export_import_quick_actions_with_profiles_promo">Sneltoetsen kunnen geëxporteerd of geïmporteerd worden met app-profielen.</string> + <string name="delete_all_actions_message_q">Weet je zeker dat je %d sneltoetsen onherroepelijk wil verwijderen\?</string> + <string name="speed_cameras_legal_descr">In sommige landen of regio’s is het gebruik van toepassingen om te waarschuwen voor snelheidscamera’s in strijd met de wet. +\n +\nMaak een keuze op basis van de geldende wet. +\n +\nKies %1$s om meldingen en waarschuwingen te ontvangen over snelheidscamera’s. +\n +\nKies %2$s om alle gegevens over snelheidscamera’s te verwijderen: waarschuwingen, meldingen en POI’s worden verwijderd tot OsmAnd volledig opnieuw geïnstalleerd wordt.</string> + <string name="uninstall_speed_cameras">Verwijder snelheidscamera’s</string> + <string name="shared_string_legal">Legaal</string> + <string name="speed_camera_pois">Snelheidscamera’s als POI’s</string> + <string name="hillshade_description">De reliëfschaduwkaart maakt gebruik van donkere schaduwen om hellingen, bergtoppen en valleien te visualiseren.</string> + <string name="hillshade_download_description">Om Reliëfschaduw te tonen zijn extra kaarten nodig.</string> + <string name="shared_string_hillshade">Reliëfschaduw</string> + <string name="terrain_empty_state_text">Selecteer deze optie om een reliëfschaduw- of hellingskaart te tonen. Op onze site staat meer informatie over deze kaarttypes.</string> + <string name="map_source_zoom_levels_descr">Heeft invloed op de weergave bij gebruik als kaart of als extra kaartlaag/achtergrondlaag. +\n +\n%1$s: De kaart wordt alleen getoond binnen het geselecteerde zoombereik. +\n +\n%2$s zijn de niveau’s waarop de originele tiles zichtbaar zijn, buiten dit bereik wordt gebruik gemaakt van upscaling of downscaling.</string> + <string name="expire_time_descr">Gecachte tiles worden na het opgegeven aantal minuten opnieuw gedownload. Laat dit veld leeg om tiles van deze bron nooit te vernieuwen. +\n +\nEen dag is 1440 minuten. +\nEen week is 10 080 minuten. +\nEen maand is 43 829 minuten.</string> + <string name="tiles_storage_descr">Kies hoe gedownloade tiles worden opgeslagen.</string> + <string name="profiles_for_action_not_found">Geen overeenkomende profielen gevonden.</string> + <string name="screen_timeout">Time-out van het scherm</string> + <string name="use_volume_buttons_as_zoom_descr">Inschakelen om het zoomniveau van de kaart in te stellen met de volumeknoppen.</string> + <string name="use_volume_buttons_as_zoom">Gebruik volumeknoppen om in en uit te zoomen</string> </resources> \ No newline at end of file From aec57f3707c266a370fb1a28166192d1440d24bf Mon Sep 17 00:00:00 2001 From: Famlam <fam.lam@live.nl> Date: Sat, 27 Jun 2020 12:43:18 +0000 Subject: [PATCH 284/300] Translated using Weblate (Dutch) Currently translated at 95.9% (3272 of 3409 strings) --- OsmAnd/res/values-nl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 43fb43f4e2..4417698cf8 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -3178,7 +3178,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st <string name="sett_parrot_ext_input">Papegaai</string> <string name="app_mode_campervan">Mobilhome</string> <string name="shared_string_by_default">Standaard</string> - <string name="app_mode_utv">naast elkaar</string> + <string name="app_mode_utv">Naast elkaar</string> <string name="shared_string_maps">Kaarten</string> <string name="quick_action_contour_lines_descr">Knop om hoogtelijnen al dan niet te tonen op de kaart.</string> <string name="quick_action_contour_lines_show">Toon de hoogtelijnen</string> From 6005d424a07731c6e119b2067f653c2649d2f840 Mon Sep 17 00:00:00 2001 From: Kars de Jong <jongk@linux-m68k.org> Date: Sun, 28 Jun 2020 16:45:47 +0000 Subject: [PATCH 285/300] Translated using Weblate (Dutch) Currently translated at 88.1% (3359 of 3810 strings) --- OsmAnd/res/values-nl/phrases.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index b694794eb3..d8bfd6b518 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -3370,4 +3370,7 @@ <string name="poi_diplomatic_delegation">Delegatie</string> <string name="poi_traffic_signals_arrow">Pijl</string> <string name="poi_traffic_signals_vibration">Trillen</string> + <string name="poi_socket_cee_blue">Stopcontact: CEE-blauw (campingstekker)</string> + <string name="poi_water_place_access_family">Gezin</string> + <string name="poi_water_place_access_multifamilies">Meerdere gezinnen</string> </resources> \ No newline at end of file From 8b3817d833a9d16f5ac57ba5548cdf01033ffee2 Mon Sep 17 00:00:00 2001 From: Athoss <athoss@citromail.hu> Date: Sun, 28 Jun 2020 19:40:20 +0000 Subject: [PATCH 286/300] Translated using Weblate (Hungarian) Currently translated at 98.5% (3359 of 3409 strings) --- OsmAnd/res/values-hu/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index c194539419..cd5a4a496b 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3753,4 +3753,6 @@ Hosszúság: %2$s</string> <string name="monitoring_min_accuracy">Legkisebb pontosság</string> <string name="monitoring_min_distance">Legkisebb elmozdulás</string> <string name="reset_plugin_to_default">Bővítménybeállítások visszaállítása alapértelmezettre</string> + <string name="use_volume_buttons_as_zoom_descr">Engedélyezésével a térkép nagyítási szintje az eszköz hangerőgombjaival állítható.</string> + <string name="use_volume_buttons_as_zoom">Hangerőgombok használata nagyításhoz</string> </resources> \ No newline at end of file From b9ce7d34d931d7ff39ed15176ddf180e77cf4f6f Mon Sep 17 00:00:00 2001 From: Kars de Jong <jongk@linux-m68k.org> Date: Sun, 28 Jun 2020 18:32:10 +0000 Subject: [PATCH 287/300] Translated using Weblate (Dutch) Currently translated at 92.1% (3511 of 3810 strings) --- OsmAnd/res/values-nl/phrases.xml | 152 +++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index d8bfd6b518..2c122f6ba8 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -3373,4 +3373,156 @@ <string name="poi_socket_cee_blue">Stopcontact: CEE-blauw (campingstekker)</string> <string name="poi_water_place_access_family">Gezin</string> <string name="poi_water_place_access_multifamilies">Meerdere gezinnen</string> + <string name="poi_whitewater_rapid_name">Naam van de stroomversnelling</string> + <string name="poi_pottery">Pottenbakkerij</string> + <string name="poi_flooring">Vloerenwinkel</string> + <string name="poi_socket_nema_5_20_yes">NEMA 5-20</string> + <string name="poi_socket_nema_5_15_yes">NEMA 5-15R</string> + <string name="poi_socket_tesla_roadster_yes">Tesla Roadster</string> + <string name="poi_socket_tesla_supercharger_yes">Tesla Supercharger</string> + <string name="poi_socket_tesla_standard_yes">Tesla-standaard</string> + <string name="poi_socket_chademo_yes">CHAdeMO</string> + <string name="poi_socket_type3_yes">Type 3</string> + <string name="poi_socket_type2_combo_yes">Type 2 combo</string> + <string name="poi_socket_type2_yes">Type 2</string> + <string name="poi_socket_type1_combo_yes">Type 1 combo</string> + <string name="poi_socket_type1_yes">Type 1</string> + <string name="poi_socket_cee_red_125a_yes">CEE-rood 125A</string> + <string name="poi_socket_cee_red_64a_yes">CEE-rood 64A</string> + <string name="poi_socket_cee_red_32a_yes">CEE-rood 32A</string> + <string name="poi_socket_cee_red_16a_yes">CEE-rood 16A</string> + <string name="poi_socket_cee_blue_yes">CEE-blauw</string> + <string name="poi_cannabis">Coffeeshop</string> + <string name="poi_shop_boat">Scheepvaartwinkel</string> + <string name="poi_shop_fireplace">Open haarden-winkel</string> + <string name="poi_agrarian">Landbouwwinkel</string> + <string name="poi_frozen_food">Diepvriesvoedsel</string> + <string name="poi_meadow_pasture">Type: weiland</string> + <string name="poi_meadow_transitional">Type: wisselbouw</string> + <string name="poi_meadow_perpetual">Type: permacultuur</string> + <string name="poi_meadow_agricultural">Type: landbouw</string> + <string name="poi_diameter_crown">Diameter van de kroon</string> + <string name="poi_circumference">Omtrek</string> + <string name="poi_climbing_routes">Klimroutes</string> + <string name="poi_climbing_summit_log_no">Toplogboek: nee</string> + <string name="poi_climbing_summit_log_yes">Toplogboek: ja</string> + <string name="poi_climbing_orientation_nw">Oriëntatie van de wand: NW</string> + <string name="poi_climbing_orientation_w">Oriëntatie van de wand: W</string> + <string name="poi_climbing_orientation_sw">Oriëntatie van de wand: ZW</string> + <string name="poi_climbing_orientation_s">Oriëntatie van de wand: Z</string> + <string name="poi_climbing_orientation_se">Oriëntatie van de wand: ZO</string> + <string name="poi_climbing_orientation_e">Oriëntatie van de wand: O</string> + <string name="poi_climbing_orientation_ne">Oriëntatie van de wand: NO</string> + <string name="poi_climbing_orientation_n">Oriëntatie van de wand: N</string> + <string name="poi_climbing_bolted_no">Vaste ankers: nee</string> + <string name="poi_climbing_bolted_yes">Vaste ankers: ja</string> + <string name="poi_climbing_quality_fragile">Klimkwaliteit: loszittend</string> + <string name="poi_climbing_quality_solid">Klimkwaliteit: vast</string> + <string name="poi_climbing_rock_porphyry">Klimrots: porfier</string> + <string name="poi_climbing_rock_gneiss">Klimrots: gneiss</string> + <string name="poi_climbing_rock_quartzite">Klimrots: kwartsiet</string> + <string name="poi_climbing_rock_sandstone">Klimrots: zandsteen</string> + <string name="poi_climbing_rock_granite">Klimrots: graniet</string> + <string name="poi_climbing_rock_limestone">Klimrots: kalksteen</string> + <string name="poi_climbing_length_max">Maximale klimlengte</string> + <string name="poi_climbing_length_min">Minimale klimlengte</string> + <string name="poi_climbing_length">Klimlengte</string> + <string name="poi_climbing_deepwater_no">Deep-water-soloing: nee</string> + <string name="poi_climbing_deepwater_yes">Deep-water-soloing: ja</string> + <string name="poi_climbing_mixed_no">Gemengd: nee</string> + <string name="poi_climbing_mixed_yes">Gemengd: ja</string> + <string name="poi_climbing_ice_no">IJs: nee</string> + <string name="poi_climbing_ice_yes">IJs: ja</string> + <string name="poi_climbing_multipitch_no">Multi-pitch-routes: nee</string> + <string name="poi_climbing_multipitch_yes">Multi-pitch-routes: ja</string> + <string name="poi_climbing_trad_no">Traditioneel: nee</string> + <string name="poi_climbing_trad_yes">Traditioneel: ja</string> + <string name="poi_climbing_toprope_yes">Toprope: ja</string> + <string name="poi_climbing_toprope_no">Toprope: nee</string> + <string name="poi_climbing_boulder_no">Boulderen: nee</string> + <string name="poi_climbing_boulder_yes">Boulderen: ja</string> + <string name="poi_climbing_sport_no">Sport: nee</string> + <string name="poi_climbing_sport_yes">Sport: Ja</string> + <string name="poi_ref_post">Postcode</string> + <string name="poi_money_transfer">Money transfer</string> + <string name="poi_payment_centre">Betalingscentrum</string> + <string name="poi_post_flats">Appartement</string> + <string name="poi_post_housenumber">Huisnummer</string> + <string name="poi_post_street">Straat</string> + <string name="poi_letter_box">Privé-brievenbus</string> + <string name="poi_depot">Depot</string> + <string name="poi_map_size_site">Kaartgrootte: plaats</string> + <string name="poi_map_type_toposcope">Kaarttype: toposcoop</string> + <string name="poi_map_type_scheme">Kaarttype: schematisch</string> + <string name="poi_map_type_street">Kaarttype: straat</string> + <string name="poi_map_type_topo">Kaarttype: topo</string> + <string name="poi_charging_station_output">Vermogen van het laadstation</string> + <string name="poi_amperage">Stroomsterkte</string> + <string name="poi_parking_fee">Parkeergeld</string> + <string name="poi_parking_fee_no">Parkeergeld: nee</string> + <string name="poi_parking_fee_yes">Parkeergeld: ja</string> + <string name="poi_scooter_no">Scooter: nee</string> + <string name="poi_scooter_yes">Scooter: ja</string> + <string name="poi_socket_as3112_output">Stopcontact: AS/NZS 3112: vermogen</string> + <string name="poi_socket_as3112_current">Stopcontact: AS/NZS 3112: stroom</string> + <string name="poi_socket_as3112">Stopcontact: AS/NZS 3112</string> + <string name="poi_socket_bs1363_output">Stopcontact: BS 1363: vermogen</string> + <string name="poi_socket_bs1363_current">Stopcontact: BS 1363: stroom</string> + <string name="poi_socket_bs1363">Stopcontact: BS 1363</string> + <string name="poi_socket_schuko_output">Stopcontact: Schuko: vermogen</string> + <string name="poi_socket_schuko_current">Stopcontact: Schuko: stroom</string> + <string name="poi_socket_schuko">Stopcontact: Schuko</string> + <string name="poi_socket_nema_14_50_output">Stopcontact: NEMA 14-50: vermogen</string> + <string name="poi_socket_nema_14_50">Stopcontact: NEMA 14-50</string> + <string name="poi_socket_nema_14_50_current">Stopcontact: NEMA 14-50: stroom</string> + <string name="poi_socket_nema_14_30_output">Stopcontact: NEMA 14-30: vermogen</string> + <string name="poi_socket_nema_14_30_current">Stopcontact: NEMA 14-30: stroom</string> + <string name="poi_socket_nema_14_30">Stopcontact: NEMA 14-30</string> + <string name="poi_socket_nema_5_20_output">Stopcontact: NEMA 5-20: vermogen</string> + <string name="poi_socket_nema_5_20_current">Stopcontact: NEMA 5-20: stroom</string> + <string name="poi_socket_nema_5_20">Stopcontact: NEMA 5-20</string> + <string name="poi_socket_nema_5_15_output">Stopcontact: NEMA 5-15R: vermogen</string> + <string name="poi_socket_nema_5_15_current">Stopcontact: NEMA 5-15R: stroom</string> + <string name="poi_socket_nema_5_15">Stopcontact: NEMA 5-15R</string> + <string name="poi_socket_tesla_roadster_output">Stopcontact: Tesla Roadster: vermogen</string> + <string name="poi_socket_tesla_roadster_current">Stopcontact: Tesla Roadster: stroom</string> + <string name="poi_socket_tesla_roadster">Stopcontact: Tesla Roadster</string> + <string name="poi_socket_tesla_supercharger_output">Stopcontact: Tesla Supercharger: vermogen</string> + <string name="poi_socket_tesla_supercharger_current">Stopcontact: Tesla Supercharger: stroom</string> + <string name="poi_socket_tesla_supercharger">Stopcontact: Tesla Supercharger</string> + <string name="poi_socket_tesla_standard_output">Stopcontact: Tesla-standaard: vermogen</string> + <string name="poi_socket_tesla_standard_current">Stopcontact: Tesla-standaard: stroom</string> + <string name="poi_socket_tesla_standard">Stopcontact: Tesla-standaard</string> + <string name="poi_socket_chademo_output">Stopcontact: CHAdeMO: vermogen</string> + <string name="poi_socket_chademo_current">Stopcontact: CHAdeMO: stroom</string> + <string name="poi_socket_chademo">Stopcontact: CHAdeMO</string> + <string name="poi_socket_type3_output">Stopcontact: Type 3: vermogen</string> + <string name="poi_socket_type3_current">Stopcontact: Type 3: stroom</string> + <string name="poi_socket_type3">Stopcontact: Type 3</string> + <string name="poi_socket_type1_combo_output">Stopcontact: Type 1 combo: vermogen</string> + <string name="poi_socket_type2_combo_output">Stopcontact: Type 2 combo: vermogen</string> + <string name="poi_socket_type2_combo_current">Stopcontact: Type 2 combo: stroom</string> + <string name="poi_socket_type2_combo">Stopcontact: Type 2 combo</string> + <string name="poi_socket_type2_output">Stopcontact: Type 2: vermogen</string> + <string name="poi_socket_type2_current">Stopcontact: Type 2: stroom</string> + <string name="poi_socket_type2">Stopcontact: Type 2</string> + <string name="poi_socket_type1_combo_current">Stopcontact: Type 1 combo: stroom</string> + <string name="poi_socket_type1_combo">Stopcontact: Type 1 combo</string> + <string name="poi_socket_type1_output">Stopcontact: Type 1: vermogen</string> + <string name="poi_socket_type1_current">Stopcontact: Type 1: stroom</string> + <string name="poi_socket_type1">Stopcontact: Type 1</string> + <string name="poi_socket_cee_red_125a_output">Stopcontact: CEE-rood 125A: vermogen</string> + <string name="poi_socket_cee_red_125a_current">Stopcontact: CEE-rood 125A: stroom</string> + <string name="poi_socket_cee_red_125a">Stopcontact: CEE-rood 125A</string> + <string name="poi_socket_cee_red_64a_output">Stopcontact: CEE-rood 64A: vermogen</string> + <string name="poi_socket_cee_red_64a_current">Stopcontact: CEE-rood 64A: stroom</string> + <string name="poi_socket_cee_red_64a">Stopcontact: CEE-rood 64A</string> + <string name="poi_socket_cee_red_32a_output">Stopcontact: CEE-rood 32A: vermogen</string> + <string name="poi_socket_cee_red_32a_current">Stopcontact: CEE-rood 32A: stroom</string> + <string name="poi_socket_cee_red_32a">Stopcontact: CEE-rood 32A</string> + <string name="poi_socket_cee_red_16a_output">Stopcontact: CEE-rood 16A: vermogen</string> + <string name="poi_socket_cee_red_16a_current">Stopcontact: CEE-rood 16A: stroom</string> + <string name="poi_socket_cee_red_16a">Stopcontact: CEE-rood 16A</string> + <string name="poi_socket_cee_blue_output">Stopcontact: CEE-blauw: vermogen</string> + <string name="poi_socket_cee_blue_current">Stopcontact: CEE-blauw: stroom</string> </resources> \ No newline at end of file From 6e1729eed11950d3dba6c0effa57b470c04756e2 Mon Sep 17 00:00:00 2001 From: Branko Kokanovic <branko@kokanovic.org> Date: Sun, 28 Jun 2020 20:38:08 +0000 Subject: [PATCH 288/300] Translated using Weblate (Serbian) Currently translated at 95.5% (3258 of 3409 strings) --- OsmAnd/res/values-sr/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 8f8f55c5bf..b7256ad8d2 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -3660,4 +3660,6 @@ <string name="vessel_height_warning">Можете подесити висину пловила да избегнете ниске мостове. Имајте на уму да, уколико мост може да се помера, користићемо његову висину када је отворен.</string> <string name="vessel_height_limit_description">Подесите висину пловила да избегнете ниске мостове. Имајте на уму да, уколико мост може да се помера, користићемо његову висину када је отворен.</string> <string name="vessel_width_limit_description">Подесите ширину пловила и избегните уске мостове</string> + <string name="use_volume_buttons_as_zoom_descr">Укључите да омогућите контролу нивоа увећања са дугмићима за јачину звука.</string> + <string name="use_volume_buttons_as_zoom">Дугмићи за јачину звука за зумирање</string> </resources> \ No newline at end of file From e21d3d2955616fa94b0cde701c3df3c0eff12291 Mon Sep 17 00:00:00 2001 From: Branko Kokanovic <branko@kokanovic.org> Date: Sun, 28 Jun 2020 20:39:42 +0000 Subject: [PATCH 289/300] Translated using Weblate (Serbian) Currently translated at 95.6% (3261 of 3409 strings) --- OsmAnd/res/values-sr/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index b7256ad8d2..efb0dfc755 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -3662,4 +3662,7 @@ <string name="vessel_width_limit_description">Подесите ширину пловила и избегните уске мостове</string> <string name="use_volume_buttons_as_zoom_descr">Укључите да омогућите контролу нивоа увећања са дугмићима за јачину звука.</string> <string name="use_volume_buttons_as_zoom">Дугмићи за јачину звука за зумирање</string> + <string name="shared_string_uninstall_and_restart">"Деинсталирај и рестартуј"</string> + <string name="speed_cameras_removed_descr">Овај уређај нема камере за брзину.</string> + <string name="app_mode_inline_skates">Ролери</string> </resources> \ No newline at end of file From fd988a084a0802a4cbd3be72985648d0714871dc Mon Sep 17 00:00:00 2001 From: Branko Kokanovic <branko@kokanovic.org> Date: Sun, 28 Jun 2020 20:40:24 +0000 Subject: [PATCH 290/300] Translated using Weblate (Serbian) Currently translated at 95.6% (3262 of 3409 strings) --- OsmAnd/res/values-sr/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index efb0dfc755..c7de6e0744 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -3662,7 +3662,8 @@ <string name="vessel_width_limit_description">Подесите ширину пловила и избегните уске мостове</string> <string name="use_volume_buttons_as_zoom_descr">Укључите да омогућите контролу нивоа увећања са дугмићима за јачину звука.</string> <string name="use_volume_buttons_as_zoom">Дугмићи за јачину звука за зумирање</string> - <string name="shared_string_uninstall_and_restart">"Деинсталирај и рестартуј"</string> + <string name="shared_string_uninstall_and_restart">"Деинсталирај и поново покрени"</string> <string name="speed_cameras_removed_descr">Овај уређај нема камере за брзину.</string> <string name="app_mode_inline_skates">Ролери</string> + <string name="speed_cameras_restart_descr">Поновно покретање је потребно да се потпуно избришу подаци о камерама за брзину.</string> </resources> \ No newline at end of file From 83e8e3d7b122c795dfc384508e21d3d44a753d47 Mon Sep 17 00:00:00 2001 From: Branko Kokanovic <branko@kokanovic.org> Date: Sun, 28 Jun 2020 20:40:55 +0000 Subject: [PATCH 291/300] Translated using Weblate (Serbian) Currently translated at 95.7% (3263 of 3409 strings) --- OsmAnd/res/values-sr/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index c7de6e0744..cd5e55bbb1 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -3666,4 +3666,5 @@ <string name="speed_cameras_removed_descr">Овај уређај нема камере за брзину.</string> <string name="app_mode_inline_skates">Ролери</string> <string name="speed_cameras_restart_descr">Поновно покретање је потребно да се потпуно избришу подаци о камерама за брзину.</string> + <string name="item_deleted">%1$s deleted</string> </resources> \ No newline at end of file From b09f3a50df1fee1331b78df03cfcc04689d88e0e Mon Sep 17 00:00:00 2001 From: Branko Kokanovic <branko@kokanovic.org> Date: Sun, 28 Jun 2020 20:44:48 +0000 Subject: [PATCH 292/300] Translated using Weblate (Serbian) Currently translated at 95.7% (3265 of 3409 strings) --- OsmAnd/res/values-sr/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index cd5e55bbb1..356f97ffee 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -3666,5 +3666,7 @@ <string name="speed_cameras_removed_descr">Овај уређај нема камере за брзину.</string> <string name="app_mode_inline_skates">Ролери</string> <string name="speed_cameras_restart_descr">Поновно покретање је потребно да се потпуно избришу подаци о камерама за брзину.</string> - <string name="item_deleted">%1$s deleted</string> + <string name="item_deleted">%1$s обрисано</string> + <string name="routing_attr_length_name">Лимит дужине</string> + <string name="shared_string_bearing">Курс</string> </resources> \ No newline at end of file From 13cf04102d2133df38919154778d06a48aa8f724 Mon Sep 17 00:00:00 2001 From: Branko Kokanovic <branko@kokanovic.org> Date: Sun, 28 Jun 2020 20:49:05 +0000 Subject: [PATCH 293/300] Translated using Weblate (Serbian) Currently translated at 95.8% (3267 of 3409 strings) --- OsmAnd/res/values-sr/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 356f97ffee..cd91d8c97f 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -3669,4 +3669,6 @@ <string name="item_deleted">%1$s обрисано</string> <string name="routing_attr_length_name">Лимит дужине</string> <string name="shared_string_bearing">Курс</string> + <string name="quick_action_showhide_mapillary_descr">Прикажи или сакриј</string> + <string name="routing_attr_length_description">Одаберите дужину возика која је дозвољена на путевима.</string> </resources> \ No newline at end of file From 2b268d7fcdb76837930f6cb9d158d307549b8dd2 Mon Sep 17 00:00:00 2001 From: Branko Kokanovic <branko@kokanovic.org> Date: Sun, 28 Jun 2020 21:00:10 +0000 Subject: [PATCH 294/300] Translated using Weblate (Serbian) Currently translated at 96.1% (3279 of 3409 strings) --- OsmAnd/res/values-sr/strings.xml | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index cd91d8c97f..e9ae061d9b 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -3266,7 +3266,7 @@ <string name="map_during_navigation_info">Карта за време навођења</string> <string name="map_during_navigation">Карта за време навођења</string> <string name="shared_string_other">Остало</string> - <string name="vehicle_parameters_descr">Тежина, висина, брзина</string> + <string name="vehicle_parameters_descr">Тежина, висина, дужина, брзина</string> <string name="vehicle_parameters">Параметри возика</string> <string name="voice_announces_info">Гласовна обавештења су дешавају само за време навођења.</string> <string name="voice_announces_descr">Инструкције и обавештења приликом навођења</string> @@ -3452,7 +3452,7 @@ <string name="logcat_buffer_descr">Проверите и поделите детаљне записе апликације</string> <string name="search_offline_geo_error">Не могу да расчланим гео намеру ’%s’.</string> <string name="permission_is_required">Потребне су дозволе за коришћење ове опције.</string> - <string name="monitoring_min_speed_descr">Ово је филтер за одсецање малих брзина који не бележи тачке испод одређене брзине. Овим снимљене стазе изгледају.</string> + <string name="monitoring_min_speed_descr">Ово је филтер за одсецање малих брзина који не бележи тачке испод одређене брзине. Овим снимљене стазе изгледају глаткије када се гледају на карти.</string> <string name="monitoring_min_speed_descr_side_effect">Нуспојаве: Вашим стазама ће недостајати све секције где критеријум минимума брзине није био испуњен (нпр. где сте гурали бицикл узбрдо). Такође, неће бити информација о периодима мировања, као што су прављење пауза. Ово може да има ефекта на анализу или пост-процесирање, као што је одређивање укупне дужине пута, времена кретања, или просечне брзине.</string> <string name="monitoring_min_speed_descr_recommendation">Препорука: Покушајте прво да користите детектор кретања преко филтера минималног помераја (B) прво, пошто може дати боље резултате и изгубићете мање података. Ако Ваше стазе остану пуне шума при малим брзинама, пробајте са не-нултим вредностима овде. Пазите да неки типови мерења неће уопште давати мерења брзине (неки методи преко мреже) у ком случају нећете снимити ништа.</string> <string name="monitoring_min_speed_descr_remark">Опаска: провера брзине &gt; 0: већина GPS чипова пријављује вредност брзине само ако алгоритам примети да сте у покрету и ништа уколико нисте. Коришћење поставке &gt;0 у овом филтеру је заправо коришћење сензора покрета из GPS чипа. Чак иако се не филтрира овде за време снимања, ми и даље користимо ову функционалност у нашој GPX анализи да одредимо пређену удаљеност, тј. вредност коју приказујемо у том пољу је пређена удаљеност за време кретања.</string> @@ -3663,12 +3663,29 @@ <string name="use_volume_buttons_as_zoom_descr">Укључите да омогућите контролу нивоа увећања са дугмићима за јачину звука.</string> <string name="use_volume_buttons_as_zoom">Дугмићи за јачину звука за зумирање</string> <string name="shared_string_uninstall_and_restart">"Деинсталирај и поново покрени"</string> - <string name="speed_cameras_removed_descr">Овај уређај нема камере за брзину.</string> + <string name="speed_cameras_removed_descr">Овај уређај нема радаре.</string> <string name="app_mode_inline_skates">Ролери</string> - <string name="speed_cameras_restart_descr">Поновно покретање је потребно да се потпуно избришу подаци о камерама за брзину.</string> + <string name="speed_cameras_restart_descr">Поновно покретање је потребно да се потпуно избришу подаци о радарима.</string> <string name="item_deleted">%1$s обрисано</string> <string name="routing_attr_length_name">Лимит дужине</string> <string name="shared_string_bearing">Курс</string> - <string name="quick_action_showhide_mapillary_descr">Прикажи или сакриј</string> + <string name="quick_action_showhide_mapillary_descr">Прикажи или сакриј Mapillary слој на карти.</string> <string name="routing_attr_length_description">Одаберите дужину возика која је дозвољена на путевима.</string> + <string name="speed_cameras_legal_descr">In some countries or regions, the use of speed camera warning applications is prohibited by law. +\n +\nYou need to make a choice depending on the law of your country. +\n +\nSelect %1$s and you will receive alerts and warnings about speed cameras. +\n +\nSelect %2$s. All data related to speed cameras: alerts, notifications, POIs will be deleted until OsmAnd is completely reinstalled.</string> + <string name="shared_string_legal">Правно</string> + <string name="screen_timeout_descr">Ако је „%1$s” укључен, време активности ће зависити од тога.</string> + <string name="uninstall_speed_cameras">Избриши радаре</string> + <string name="speed_camera_pois">Радарске тачке од интереса</string> + <string name="keep_active">Држи активним</string> + <string name="shared_string_uninstall">Избриши</string> + <string name="speed_cameras_alert">Упозорења за радаре су законом забрањене у неким државама.</string> + <string name="quick_action_showhide_mapillary_title">Прикажи/сакриј Mapillary</string> + <string name="quick_action_mapillary_hide">Сакриј Mapillary</string> + <string name="quick_action_mapillary_show">Прикажи Mapillary</string> </resources> \ No newline at end of file From 793e7f656039fb1595aa58dec1fa8101a7a07d4d Mon Sep 17 00:00:00 2001 From: Branko Kokanovic <branko@kokanovic.org> Date: Sun, 28 Jun 2020 21:13:33 +0000 Subject: [PATCH 295/300] Translated using Weblate (Serbian) Currently translated at 97.0% (3309 of 3409 strings) --- OsmAnd/res/values-sr/strings.xml | 38 ++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index e9ae061d9b..7f9ebdea68 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -3671,13 +3671,13 @@ <string name="shared_string_bearing">Курс</string> <string name="quick_action_showhide_mapillary_descr">Прикажи или сакриј Mapillary слој на карти.</string> <string name="routing_attr_length_description">Одаберите дужину возика која је дозвољена на путевима.</string> - <string name="speed_cameras_legal_descr">In some countries or regions, the use of speed camera warning applications is prohibited by law. + <string name="speed_cameras_legal_descr">У неким државама или областима, коришћење апликација за обавештавање о радарима на путу је забрањено законом. \n -\nYou need to make a choice depending on the law of your country. +\nМорате направити избор овде, у зависности од закона Ваше државе. \n -\nSelect %1$s and you will receive alerts and warnings about speed cameras. +\nОдаберите %1$s и примажете обавештења и упозорења о радарима и камерама за брзину. \n -\nSelect %2$s. All data related to speed cameras: alerts, notifications, POIs will be deleted until OsmAnd is completely reinstalled.</string> +\nОдаберите %2$s. Сви подаци везани за радере: упозорења, обавештења, тачке од интереса ће бити обрисане док се OsmAnd поново не инсталира.</string> <string name="shared_string_legal">Правно</string> <string name="screen_timeout_descr">Ако је „%1$s” укључен, време активности ће зависити од тога.</string> <string name="uninstall_speed_cameras">Избриши радаре</string> @@ -3688,4 +3688,34 @@ <string name="quick_action_showhide_mapillary_title">Прикажи/сакриј Mapillary</string> <string name="quick_action_mapillary_hide">Сакриј Mapillary</string> <string name="quick_action_mapillary_show">Прикажи Mapillary</string> + <string name="lang_yo">Јоруба</string> + <string name="lang_war">Варајски</string> + <string name="lang_tg">Таџички</string> + <string name="lang_uz">Узбечки</string> + <string name="lang_ur">Урду</string> + <string name="lang_tt">Татарски</string> + <string name="lang_sco">Шкотски</string> + <string name="lang_nap">Наполитански</string> + <string name="lang_scn">Сицилијански</string> + <string name="lang_pnb">Панџаби</string> + <string name="lang_ne">Непалски</string> + <string name="lang_my">Бурмански</string> + <string name="lang_mn">Монголски</string> + <string name="lang_min">Минангкабајски</string> + <string name="lang_mg">Малгашки</string> + <string name="lang_ky">Киргиски</string> + <string name="lang_kk">Казашки</string> + <string name="lang_jv">Јавански</string> + <string name="lang_gu">Гуџарати</string> + <string name="lang_cv">Чувашки</string> + <string name="lang_ce">Чеченски</string> + <string name="lang_bar">Баварски</string> + <string name="lang_ba">Башкирски</string> + <string name="lang_an">Арагонски</string> + <string name="lang_lmo">Ломбардијски</string> + <string name="custom_color">Произвољна боја</string> + <string name="ltr_or_rtl_combine_via_slash_with_space">%1$s / %2$s</string> + <string name="search_poi_types">Претрага типова тачака од интереса</string> + <string name="search_poi_types_descr">Комбинујте типове тачака од интереса из различитих категорија. Кликните прекидач да одабере све, кликните на леву страну да одаберете категорију.</string> + <string name="map_markers_item">Маркери на карти</string> </resources> \ No newline at end of file From 080b60478ea3c1c2615ab2d864bd4ddda1b82099 Mon Sep 17 00:00:00 2001 From: vshcherb <victor.shcherb@gmail.com> Date: Mon, 29 Jun 2020 14:10:27 +0200 Subject: [PATCH 296/300] Update RouteLayer.java --- OsmAnd/src/net/osmand/plus/views/RouteLayer.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/RouteLayer.java b/OsmAnd/src/net/osmand/plus/views/RouteLayer.java index 129830c827..8a31024608 100644 --- a/OsmAnd/src/net/osmand/plus/views/RouteLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/RouteLayer.java @@ -294,15 +294,14 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont // int len = (int) (distSegment / pxStep); float pdx = x - px; float pdy = y - py; - float scale=attrs.paint3.getStrokeWidth()/(actionArrow.getWidth()/2.25f); - float scaledWidth=actionArrow.getWidth(); + float scale = attrs.paint3.getStrokeWidth() / ( actionArrow.getWidth() / 2.25f); + float scaledWidth = actionArrow.getWidth(); matrix.reset(); matrix.postTranslate(0, -actionArrow.getHeight() / 2f); matrix.postRotate((float) angle, actionArrow.getWidth() / 2f, 0); - if(scale>=1.0f) - { - matrix.postScale(scale,scale); - scaledWidth*=scale; + if (scale > 1.0f) { + matrix.postScale(scale, scale); + scaledWidth *= scale; } matrix.postTranslate(px + pdx - scaledWidth/ 2f, py + pdy); canvas.drawBitmap(actionArrow, matrix, paintIconAction); From a4cf6649b5cadd45db8a2611cbd184469a0638b1 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Mon, 29 Jun 2020 17:56:32 +0200 Subject: [PATCH 297/300] Update gpx route approximation --- .../osmand/router/RoutePlannerFrontEnd.java | 296 +++++++++++------- 1 file changed, 178 insertions(+), 118 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java index 2d3cf7b580..e70b424db4 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java @@ -32,9 +32,9 @@ public class RoutePlannerFrontEnd { protected static final double GPS_POSSIBLE_ERROR = 7; public boolean useSmartRouteRecalculation = true; - public static double AVERAGE_SPLIT_DISTANCE_GPX = 500; - public static double MINIMUM_SPLIT_DISTANCE_GPX = 30; - public static double DISTANCE_APPROXIMATE_THRESHOLD = 50; + public static double AVERAGE_SPLIT_DISTANCE_GPX = 1500; + public static double MINIMUM_POINT_APPROXIMATION = 50; + public static double MINIMUM_STRAIGHT_STEP_APPROXIMATION = 50; public RoutePlannerFrontEnd() { @@ -45,6 +45,30 @@ public class RoutePlannerFrontEnd { NORMAL, COMPLEX } + + public static class GpxApproximationResult { + public int routeCalculations = 0; + public int routePointsSearched = 0; + public int routeDistCalculations = 0; + public List<RouteSegmentResult> res = new ArrayList<RouteSegmentResult>(); + public int routeDistance; + public int routeDistanceDisconnected; + + @Override + public String toString() { + return String.format(">> GPX approximation (%d of %d m route calcs, %d route points searched) for %d m: %d m disconnected", + routeCalculations, routeDistCalculations, routePointsSearched, routeDistance, routeDistanceDisconnected); + } + } + + private static class GpxPoint { + public int ind; + public LatLon loc; + public double cumDist; + public RouteSegmentPoint pnt; + public List<RouteSegmentResult> routeToTarget; + public int targetInd = -1; + } public RoutingContext buildRoutingContext(RoutingConfiguration config, NativeLibrary nativeLibrary, BinaryMapIndexReader[] map, RouteCalculationMode rm) { return new RoutingContext(config, nativeLibrary, map, rm); @@ -152,33 +176,101 @@ public class RoutePlannerFrontEnd { public void setUseFastRecalculation(boolean use) { useSmartRouteRecalculation = use; } - - public static class GpxApproximationResult { - public int routeCalculations = 0; - public double routeDistCalculations = 0; - public List<RouteSegmentResult> res = new ArrayList<RouteSegmentResult>(); - public double routeDistance; - public double routeDistanceDisconnected; - - @Override - public String toString() { - return String.format("GPX approximation (%d of %f m route calcs) for %f m: %f m disconnected", - routeCalculations, routeDistCalculations, routeDistance, routeDistanceDisconnected); - } - } - - private static class GpxPoint { - public int ind; - public LatLon loc; - public double cumDist; - public RouteSegmentPoint pnt; - public List<RouteSegmentResult> routeToTarget; - public int targetInd = -1; - } - + + // TODO add missing turns for straight lines + // TODO smoothness is not correct for car routing + // TODO native crash + // TODO big gaps when there is no match + // TODO not correct bicycle-> pedestrian + // TODO slow - too many findRouteSegment + // TODO fix progress / timings routing / public GpxApproximationResult searchGpxRoute(final RoutingContext ctx, List<LatLon> points) throws IOException, InterruptedException { GpxApproximationResult gctx = new GpxApproximationResult(); + List<GpxPoint> gpxPoints = generageGpxPoints(points, gctx); + GpxPoint start = gpxPoints.size() > 0 ? gpxPoints.get(0) : null; + + while (start != null) { + double routeDist = AVERAGE_SPLIT_DISTANCE_GPX; + GpxPoint next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist); + boolean routeFound = false; + if (next != null && initRoutingPoint(start, gctx, ctx, MINIMUM_POINT_APPROXIMATION)) { + boolean firstAttempt = true; + while ((firstAttempt || next.cumDist - start.cumDist > MINIMUM_POINT_APPROXIMATION) && !routeFound) { + firstAttempt = false; + routeFound = initRoutingPoint(next, gctx, ctx, MINIMUM_POINT_APPROXIMATION); + if (routeFound) { + routeFound = findGpxRouteSegment(ctx, gctx, gpxPoints, start, next); + } + if (!routeFound) { + // route is not found move next point closer to start point (distance / 2) + routeDist = routeDist / 2; + next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist); + } + } + } + if (routeFound) { + // route is found, cut the end of the route and move to next iteration + start = next; + } else { + // route is not found, move start point by + start = findNextGpxPointWithin(gctx, gpxPoints, start, MINIMUM_STRAIGHT_STEP_APPROXIMATION); + } + + } + calculateGpxRoute(ctx, gctx, gpxPoints); + + if (!gctx.res.isEmpty()) { + new RouteResultPreparation().printResults(ctx, points.get(0), points.get(points.size() - 1), gctx.res); + System.out.println(gctx); + } + return gctx; + } + + private void calculateGpxRoute(final RoutingContext ctx, GpxApproximationResult gctx, List<GpxPoint> gpxPoints) { + RouteRegion reg = new RouteRegion(); + reg.initRouteEncodingRule(0, "highway", "unmatched"); + TIntArrayList lastStraightLine = null; + for (int i = 0; i < gpxPoints.size() - 1; ) { + GpxPoint pnt = gpxPoints.get(i); + if (pnt.routeToTarget != null && !pnt.routeToTarget.isEmpty()) { + if (lastStraightLine != null) { + addStraightLine(gctx.res, lastStraightLine, reg); + lastStraightLine = null; + } + if (gctx.res.size() > 0 + && MapUtils.getDistance(pnt.routeToTarget.get(0).getStartPoint(), gctx.res.get(gctx.res.size() - 1).getEndPoint()) > 30) { + System.out.println("?????"); + } + gctx.res.addAll(pnt.routeToTarget); + i = pnt.targetInd; + } else { + // add straight line from i -> i+1 + if (lastStraightLine == null) { + lastStraightLine = new TIntArrayList(); + lastStraightLine.add(MapUtils.get31TileNumberX(pnt.loc.getLongitude())); + lastStraightLine.add(MapUtils.get31TileNumberY(pnt.loc.getLatitude())); + if (gctx.res.size() > 0 + && MapUtils.getDistance(pnt.loc, gctx.res.get(gctx.res.size() - 1).getEndPoint()) > 30) { + System.out.println("???"); + } + } + GpxPoint nxt = gpxPoints.get(i + 1); + lastStraightLine.add(MapUtils.get31TileNumberX(nxt.loc.getLongitude())); + lastStraightLine.add(MapUtils.get31TileNumberY(nxt.loc.getLatitude())); + gctx.routeDistanceDisconnected += (nxt.cumDist - pnt.cumDist); + i++; + } + } + if (lastStraightLine != null) { + addStraightLine(gctx.res, lastStraightLine, reg); + lastStraightLine = null; + } + // clean turns to recaculate them + cleanupResultAndAddTurns(ctx, gctx); + } + + private List<GpxPoint> generageGpxPoints(List<LatLon> points, GpxApproximationResult gctx) { List<GpxPoint> gpxPoints = new ArrayList<>(points.size()); GpxPoint prev = null; for(int i = 0; i < points.size(); i++) { @@ -189,71 +281,41 @@ public class RoutePlannerFrontEnd { p.cumDist = MapUtils.getDistance(p.loc, prev.loc) + prev.cumDist; } gpxPoints.add(p); - gctx.routeDistance = p.cumDist; + gctx.routeDistance = (int) p.cumDist; prev = p; } - int firstInd = 0; - while (firstInd < gpxPoints.size() - 1) { - int nextInd = findGpxRouteFromPoint(ctx, gctx, gpxPoints, firstInd); - if(nextInd == -1) { - firstInd++; - } else { - firstInd = nextInd; + return gpxPoints; + } + + private void cleanupResultAndAddTurns(final RoutingContext ctx, GpxApproximationResult gctx) { + // cleanup double joints + int LOOK_AHEAD = 4; + for(int i = 0; i < gctx.res.size(); i++) { + RouteSegmentResult s = gctx.res.get(i); + for(int j = i + 2; j <= i + LOOK_AHEAD && j < gctx.res.size(); j++) { + RouteSegmentResult e = gctx.res.get(j); + if(e.getStartPoint().equals(s.getEndPoint())) { + while((--j) != i) { + gctx.res.remove(j); + } + break; + } } } - TIntArrayList lastStraightLine = null; - for (int i = 0; i < gpxPoints.size() - 1; ) { - GpxPoint pnt = gpxPoints.get(i); - if (pnt.routeToTarget != null && !pnt.routeToTarget.isEmpty()) { - if (lastStraightLine != null) { - addStraightLine(gctx.res, lastStraightLine); - lastStraightLine = null; - } - pnt.routeToTarget.get(0).setTurnType(null); - RouteSegmentResult last = pnt.routeToTarget.get(pnt.routeToTarget.size() - 1); - last.setTurnType(null); - gctx.res.addAll(pnt.routeToTarget); - i = pnt.targetInd; - } else { - // add straight line from i -> i+1 - if (lastStraightLine == null) { - lastStraightLine = new TIntArrayList(); - lastStraightLine.add(MapUtils.get31TileNumberX(pnt.loc.getLongitude())); - lastStraightLine.add(MapUtils.get31TileNumberY(pnt.loc.getLatitude())); - } - GpxPoint nxt = gpxPoints.get(i + 1); - lastStraightLine.add(MapUtils.get31TileNumberX(nxt.loc.getLongitude())); - lastStraightLine.add(MapUtils.get31TileNumberY(nxt.loc.getLatitude())); - gctx.routeDistanceDisconnected += (nxt.cumDist - pnt.cumDist); - i++; - } - } - if (lastStraightLine != null) { - addStraightLine(gctx.res, lastStraightLine); - lastStraightLine = null; - } - // clean turns to recaculate them RouteResultPreparation preparation = new RouteResultPreparation(); for (RouteSegmentResult r : gctx.res) { r.setTurnType(null); r.setDescription(""); } preparation.prepareTurnResults(ctx, gctx.res); - - if (!gctx.res.isEmpty()) { - preparation.printResults(ctx, points.get(0), points.get(points.size() - 1), gctx.res); - System.out.println(gctx); - } - return gctx; } - private void addStraightLine(List<RouteSegmentResult> res, TIntArrayList lastStraightLine) { - // TODO add missing turns for straight lines - RouteDataObject rdo = new RouteDataObject(new RouteRegion()); + private void addStraightLine(List<RouteSegmentResult> res, TIntArrayList lastStraightLine, RouteRegion reg) { + RouteDataObject rdo = new RouteDataObject(reg); int l = lastStraightLine.size() / 2; rdo.pointsX = new int[l]; rdo.pointsY = new int[l]; - rdo.types = new int[0]; + rdo.types = new int[] { 0 } ; rdo.id = -1; for (int i = 0; i < l; i++) { rdo.pointsX[i] = lastStraightLine.get(i * 2); @@ -261,69 +323,66 @@ public class RoutePlannerFrontEnd { } res.add(new RouteSegmentResult(rdo, 0, rdo.getPointsLength() - 1)); } - - private int findGpxRouteFromPoint(final RoutingContext ctx, GpxApproximationResult gctx, List<GpxPoint> gpxPoints, - int pointFrom) throws IOException, InterruptedException { - - GpxPoint start = gpxPoints.get(pointFrom); - if (start.pnt == null) { - start.pnt = findRouteSegment(start.loc.getLatitude(), start.loc.getLongitude(), ctx, null, false); - } - if (start.pnt == null) { - return -1; - } - int targetInd = pointFrom + 1; - while (targetInd < gpxPoints.size() - 1) { - GpxPoint target = gpxPoints.get(targetInd); - if (target.cumDist - start.cumDist > AVERAGE_SPLIT_DISTANCE_GPX) { + + private boolean initRoutingPoint(GpxPoint start, GpxApproximationResult gctx, RoutingContext ctx, double distThreshold) throws IOException { + if (start != null && start.pnt == null) { + gctx.routePointsSearched++; + RouteSegmentPoint rsp = findRouteSegment(start.loc.getLatitude(), start.loc.getLongitude(), ctx, null, false); + if (MapUtils.getDistance(rsp.getPreciseLatLon(), start.loc) < distThreshold) { + start.pnt = rsp; + } + } + return start != null && start.pnt != null; + } + + private GpxPoint findNextGpxPointWithin(GpxApproximationResult gctx, List<GpxPoint> gpxPoints, + GpxPoint start, double dist) { + int targetInd = start.ind + 1; + GpxPoint target = null; + while (targetInd < gpxPoints.size()) { + target = gpxPoints.get(targetInd); + if (target.cumDist - start.cumDist > dist) { break; } targetInd++; } - while (targetInd > pointFrom) { - GpxPoint target = gpxPoints.get(targetInd); - int nextTargetInd = targetInd - 1; - if (target.cumDist - start.cumDist < MINIMUM_SPLIT_DISTANCE_GPX) { - // distance too short, so break here and leave non-built - return targetInd; + return target; + } + + private boolean findGpxRouteSegment(final RoutingContext ctx, GpxApproximationResult gctx, List<GpxPoint> gpxPoints, + GpxPoint start, GpxPoint target) throws IOException, InterruptedException { + List<RouteSegmentResult> res = null; + boolean routeIsCorrect = false; + if (start.pnt != null && target.pnt != null) { + gctx.routeDistCalculations += (target.cumDist - start.cumDist); + gctx.routeCalculations++; + res = searchRouteInternalPrepare(ctx, start.pnt, target.pnt, null); + routeIsCorrect = res != null && !res.isEmpty(); + if (routeIsCorrect) { + makeStartEndPointsPrecise(res, start.pnt.getPreciseLatLon(), target.pnt.getPreciseLatLon(), null); } - target.pnt = findRouteSegment(target.loc.getLatitude(), target.loc.getLongitude(), ctx, null, false); - List<RouteSegmentResult> res = null; - if (target.pnt != null) { - gctx.routeDistCalculations += (target.cumDist - start.cumDist); - gctx.routeCalculations++; - res = searchRouteInternalPrepare(ctx, start.pnt, target.pnt, null); - } - boolean routeIsCorrect = res != null && !res.isEmpty(); - for (int k = pointFrom + 1; k < targetInd; k++) { + for (int k = start.ind + 1; routeIsCorrect && k < target.ind; k++) { GpxPoint ipoint = gpxPoints.get(k); if (!pointCloseEnough(ipoint, res)) { routeIsCorrect = false; - nextTargetInd = k; - break; } } if (routeIsCorrect) { start.routeToTarget = res; start.targetInd = target.ind; - makeStartEndPointsPrecise(res, start.pnt.getPreciseLatLon(), target.pnt.getPreciseLatLon(), null); - return targetInd; - } else { - targetInd = nextTargetInd; } - } - return -1; + return routeIsCorrect; } private boolean pointCloseEnough(GpxPoint ipoint, List<RouteSegmentResult> res) { int px = MapUtils.get31TileNumberX(ipoint.loc.getLongitude()); int py = MapUtils.get31TileNumberY(ipoint.loc.getLatitude()); - double SQR = DISTANCE_APPROXIMATE_THRESHOLD * DISTANCE_APPROXIMATE_THRESHOLD; - for(RouteSegmentResult sr : res) { + double SQR = MINIMUM_POINT_APPROXIMATION * MINIMUM_POINT_APPROXIMATION * 4; + for (RouteSegmentResult sr : res) { int start = sr.getStartPointIndex(); int end = sr.getEndPointIndex(); - if(sr.getStartPointIndex() > sr.getEndPointIndex()) { + if (sr.getStartPointIndex() > sr.getEndPointIndex()) { start = sr.getEndPointIndex(); end = sr.getStartPointIndex(); } @@ -731,5 +790,6 @@ public class RoutePlannerFrontEnd { } } + } From 284a007189e92532a5303569816452fe5f321255 Mon Sep 17 00:00:00 2001 From: Victor Shcherb <victor.shcherb@gmail.com> Date: Mon, 29 Jun 2020 18:48:03 +0200 Subject: [PATCH 298/300] Fix route calculation --- .../osmand/router/RoutePlannerFrontEnd.java | 60 +++++++++++++------ 1 file changed, 41 insertions(+), 19 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java index e70b424db4..80f2a7382b 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java @@ -52,12 +52,26 @@ public class RoutePlannerFrontEnd { public int routeDistCalculations = 0; public List<RouteSegmentResult> res = new ArrayList<RouteSegmentResult>(); public int routeDistance; - public int routeDistanceDisconnected; + public int routeDistanceUnmatched; @Override public String toString() { - return String.format(">> GPX approximation (%d of %d m route calcs, %d route points searched) for %d m: %d m disconnected", - routeCalculations, routeDistCalculations, routePointsSearched, routeDistance, routeDistanceDisconnected); + return String.format(">> GPX approximation (%d of %d m route calcs, %d route points searched) for %d m: %d m umatched", + routeCalculations, routeDistCalculations, routePointsSearched, routeDistance, routeDistanceUnmatched); + } + + public double distFromLastPoint(LatLon startPoint) { + if(res.size() > 0) { + return MapUtils.getDistance(getLastPoint(), startPoint); + } + return 0; + } + + public LatLon getLastPoint() { + if(res.size() > 0) { + return res.get(res.size() - 1).getEndPoint(); + } + return null; } } @@ -185,6 +199,7 @@ public class RoutePlannerFrontEnd { // TODO not correct bicycle-> pedestrian // TODO slow - too many findRouteSegment // TODO fix progress / timings routing / + // TODO smoothen straight line Douglas-Peucker (remove noise) public GpxApproximationResult searchGpxRoute(final RoutingContext ctx, List<LatLon> points) throws IOException, InterruptedException { GpxApproximationResult gctx = new GpxApproximationResult(); List<GpxPoint> gpxPoints = generageGpxPoints(points, gctx); @@ -231,16 +246,22 @@ public class RoutePlannerFrontEnd { RouteRegion reg = new RouteRegion(); reg.initRouteEncodingRule(0, "highway", "unmatched"); TIntArrayList lastStraightLine = null; - for (int i = 0; i < gpxPoints.size() - 1; ) { + for (int i = 0; i < gpxPoints.size(); ) { GpxPoint pnt = gpxPoints.get(i); if (pnt.routeToTarget != null && !pnt.routeToTarget.isEmpty()) { + LatLon startPoint = pnt.routeToTarget.get(0).getStartPoint(); if (lastStraightLine != null) { - addStraightLine(gctx.res, lastStraightLine, reg); + lastStraightLine.add(MapUtils.get31TileNumberX(startPoint.getLongitude())); + lastStraightLine.add(MapUtils.get31TileNumberY(startPoint.getLatitude())); + addStraightLine(gctx.res, lastStraightLine, reg, gctx); lastStraightLine = null; } - if (gctx.res.size() > 0 - && MapUtils.getDistance(pnt.routeToTarget.get(0).getStartPoint(), gctx.res.get(gctx.res.size() - 1).getEndPoint()) > 30) { - System.out.println("?????"); + // TODO + double distLastPnt = gctx.distFromLastPoint(pnt.routeToTarget.get(0).getStartPoint()); + double gpxDistPnt = gctx.distFromLastPoint(pnt.loc); + if (distLastPnt > MINIMUM_POINT_APPROXIMATION / 5 || gpxDistPnt > MINIMUM_POINT_APPROXIMATION / 5) { + System.out.println(String.format("????? routePnt - prevPnt = %f, gpxPoint - prevPnt = %f ", + distLastPnt, gpxDistPnt)); } gctx.res.addAll(pnt.routeToTarget); i = pnt.targetInd; @@ -248,22 +269,19 @@ public class RoutePlannerFrontEnd { // add straight line from i -> i+1 if (lastStraightLine == null) { lastStraightLine = new TIntArrayList(); - lastStraightLine.add(MapUtils.get31TileNumberX(pnt.loc.getLongitude())); - lastStraightLine.add(MapUtils.get31TileNumberY(pnt.loc.getLatitude())); - if (gctx.res.size() > 0 - && MapUtils.getDistance(pnt.loc, gctx.res.get(gctx.res.size() - 1).getEndPoint()) > 30) { - System.out.println("???"); + // make smooth connection + if(gctx.distFromLastPoint(pnt.loc) > 1) { + lastStraightLine.add(MapUtils.get31TileNumberX(gctx.getLastPoint().getLongitude())); + lastStraightLine.add(MapUtils.get31TileNumberY(gctx.getLastPoint().getLatitude())); } } - GpxPoint nxt = gpxPoints.get(i + 1); - lastStraightLine.add(MapUtils.get31TileNumberX(nxt.loc.getLongitude())); - lastStraightLine.add(MapUtils.get31TileNumberY(nxt.loc.getLatitude())); - gctx.routeDistanceDisconnected += (nxt.cumDist - pnt.cumDist); + lastStraightLine.add(MapUtils.get31TileNumberX(pnt.loc.getLongitude())); + lastStraightLine.add(MapUtils.get31TileNumberY(pnt.loc.getLatitude())); i++; } } if (lastStraightLine != null) { - addStraightLine(gctx.res, lastStraightLine, reg); + addStraightLine(gctx.res, lastStraightLine, reg, gctx); lastStraightLine = null; } // clean turns to recaculate them @@ -310,7 +328,7 @@ public class RoutePlannerFrontEnd { preparation.prepareTurnResults(ctx, gctx.res); } - private void addStraightLine(List<RouteSegmentResult> res, TIntArrayList lastStraightLine, RouteRegion reg) { + private void addStraightLine(List<RouteSegmentResult> res, TIntArrayList lastStraightLine, RouteRegion reg, GpxApproximationResult gctx) { RouteDataObject rdo = new RouteDataObject(reg); int l = lastStraightLine.size() / 2; rdo.pointsX = new int[l]; @@ -320,6 +338,10 @@ public class RoutePlannerFrontEnd { for (int i = 0; i < l; i++) { rdo.pointsX[i] = lastStraightLine.get(i * 2); rdo.pointsY[i] = lastStraightLine.get(i * 2 + 1); + if(i > 0) { + double dist = MapUtils.squareRootDist31(rdo.pointsX[i], rdo.pointsY[i], rdo.pointsX[i-1], rdo.pointsY[i-1]); + gctx.routeDistanceUnmatched += dist; + } } res.add(new RouteSegmentResult(rdo, 0, rdo.getPointsLength() - 1)); } From b8c2ccd81d110e3b005660ecfeec856c6803cb9e Mon Sep 17 00:00:00 2001 From: Dmitry <dmpr0.ua@gmail.com> Date: Tue, 30 Jun 2020 13:05:30 +0300 Subject: [PATCH 299/300] Added icons for start/finish of the track --- .../res/drawable-hdpi/map_track_point_finish.png | Bin 0 -> 2064 bytes .../res/drawable-hdpi/map_track_point_start.png | Bin 0 -> 2231 bytes .../res/drawable-mdpi/map_track_point_finish.png | Bin 0 -> 1090 bytes .../res/drawable-mdpi/map_track_point_start.png | Bin 0 -> 1269 bytes .../drawable-xhdpi/map_track_point_finish.png | Bin 0 -> 2998 bytes .../res/drawable-xhdpi/map_track_point_start.png | Bin 0 -> 3343 bytes .../drawable-xxhdpi/map_track_point_finish.png | Bin 0 -> 5705 bytes .../drawable-xxhdpi/map_track_point_start.png | Bin 0 -> 6151 bytes .../drawable-xxxhdpi/map_track_point_finish.png | Bin 0 -> 8873 bytes .../drawable-xxxhdpi/map_track_point_start.png | Bin 0 -> 9379 bytes 10 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 OsmAnd/res/drawable-hdpi/map_track_point_finish.png create mode 100644 OsmAnd/res/drawable-hdpi/map_track_point_start.png create mode 100644 OsmAnd/res/drawable-mdpi/map_track_point_finish.png create mode 100644 OsmAnd/res/drawable-mdpi/map_track_point_start.png create mode 100644 OsmAnd/res/drawable-xhdpi/map_track_point_finish.png create mode 100644 OsmAnd/res/drawable-xhdpi/map_track_point_start.png create mode 100644 OsmAnd/res/drawable-xxhdpi/map_track_point_finish.png create mode 100644 OsmAnd/res/drawable-xxhdpi/map_track_point_start.png create mode 100644 OsmAnd/res/drawable-xxxhdpi/map_track_point_finish.png create mode 100644 OsmAnd/res/drawable-xxxhdpi/map_track_point_start.png diff --git a/OsmAnd/res/drawable-hdpi/map_track_point_finish.png b/OsmAnd/res/drawable-hdpi/map_track_point_finish.png new file mode 100644 index 0000000000000000000000000000000000000000..a8e9b15847282fcb81cfac5d40e0144dd0fc7dd3 GIT binary patch literal 2064 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 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-hdpi/map_track_point_start.png b/OsmAnd/res/drawable-hdpi/map_track_point_start.png new file mode 100644 index 0000000000000000000000000000000000000000..da998f22e21fe28ead14aea73db9fc67d8d2bb76 GIT binary patch literal 2231 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 FV1lB#EY<)3 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-mdpi/map_track_point_finish.png b/OsmAnd/res/drawable-mdpi/map_track_point_finish.png new file mode 100644 index 0000000000000000000000000000000000000000..ecf9d612ead868dd87eb49cc250709ccf922172e GIT binary patch literal 1090 zcmV-I1ikx-P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH1J_AJK~#7F?O01l z8$lSJ-Ay*BiIJp+5Q#QoLP=~9kzxa_q!zr0^`Jtph2DDcoI~+gdJ>AaQhM+p<WSIh zt;MULC<+BZ3Q{mONR3I&YqS0SWLMJEQuAoi!hA5yOm=4W``@!+jDv%NgM)*EgX6!2 zz#0ryRew5D5Q<Y(dzZ=@j7AHfpC`=C&9S|`J)yt9U!^fC%2wiECRD>-*obrVvy57k zIyyQ;vPdG4P%x*K(^@(Cx&$$>`cWhv4u{3<?QKgon>8znVghmF>FKH1-ri2n^JcSI zF&GTzk|gEu`x$;y$RwIIS_XkQ3=It#LG(K2JyTOt!~6UD3+Z(Fi>e`+Ony2#I(iq0 zL>@vAFRk@@y=J(USQ#@dA&+sV$z<|vY-~jG`FukC4d~g<&dv*3i#<+O@_=&pYaU2@ z=p>uX<^Z9-t*xz>m4pWd2Gri(-d_Y+UtfPtdk`ab?VRR9GrJfHg|4CZ%+Ah^>zbdR zpT8hV<jV!npXGA7v(eGf5$x?ISJKXFsud_rillvvgNKKQ@5?n@NxX7SK)}D2WjUZ* zq1ITa$$XU0S5{Ueq(|9kG+u)sH(8bN`~Bm{SQhLzqh2&38&(C;=ku8;qaZcjyQ=1C zOmU$Dd++0{8+t}!HK3+VR9TTG$?OLB{)P6C9{;!(Rx6)M2xdA%psLN91<hY6fcv1u za4MCGRT~2*CnpEk`+&}%vu0*yBvu1zvH+^5;PH4ERaZ=v&CSgZtV$doA0I&TRH5@U zr#lmC7RUnRw-~w+gu{b_gO4+rOzNs>l-5p9Pd~-pJ8f-k?y^+cJOR+jXp}~8!4<}q zmX=<r6{rka9jmLWZ?JC+?KYY{7!1m+1(2LhrxkrS1PGyjw7k6hR=31upl6GViwn5W zO<?_9xK9syYs;!JnI4&^6H`Bg7$IVllatSOcXvO=<MGcrab%vaYiny!X!;4(PEh(p z0qdi^^}0{JekZxzZW9RF5RW!!*a>nL5TXoafIt$i)&iP>VHVG_7$&ebZnav!;g*_2 z_Q^z}QH9lrx&%;**LlI<a=B!Tt+?m6LkJ5A0g^Iuyb*+{U@4eq(7xlh1lA<6Clv?; zGO&z-GiuI2b(L`K#raq)M!gD`$cv(QUMLijRN#<h3?NI_Xa&Ucxci(#n6$&;NOyI0 z<?s<ysE2$bA!vapL$en2cDRVsVzIbb>E2IqVn?HAG8HYgg&#7PLM?r;3q(#!izYOx z6=u3OvC?-k3E5EMe@hFcza7f{g`n}j;w~H<92^`R92^>c0MHoC>O>r4l>h($07*qo IM6N<$g18*<NdN!< literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-mdpi/map_track_point_start.png b/OsmAnd/res/drawable-mdpi/map_track_point_start.png new file mode 100644 index 0000000000000000000000000000000000000000..e1dde0d6337ebfb95575dfc91ac87fcf5726ec14 GIT binary patch literal 1269 zcmV<R1Pc3!P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP<VFdsH1d2&SK~#7F?O0t% zTUQ)E_uk|tSw6(n;B;C-jSRJYl6^>75eMC%v<^hrUIu#{0}*6}ik<ql*?|wv*Rcno z0UyQ`p?jG_w!!9zRkXCVw1wJMZCdL!jrqEs{{A;Nl9c*#lbROJ4-V)1<p2Ah|Hrvu zOh7<DKtMo1K;Vsq#7Yd#dBK^IWOTXtTbz{`r6!O&PZ}B;Vk;{vQcFt<r#3UVW#!K! zRk9x}#W}gN>}F9aDk@~U5lz!{^r@uHk}rHwL~N{h7=pLAx66x*i|$k^<<xcE0m1Ft z+uO3&>!taO)9KW0HruYEC~1uEU`(egF>j-6kVuBs)>b<NJ%awxuCA^RR##WY6N$uq zZXy<oU0+{c|Fyrr|6>pd(%N7!=!9v>FZxVbgh#u|;c$fJ=jZz~nT*B{0L?8eEqzaG zu_wT?7Lad#hX>LgD#hpX`5{ol!otExPSC%!Ro;2yCw^?<0<ZeN*Jxjk{<}|PZf@>7 z+5;b{G|xF)nAa}1wY9lW*Y)=Hp2=zchX+>-p<h-;Fh@wI(>om<9jCCjo=nL+&(bYe zVo#1|hDjpe>+9?L8qVnrKmLzhdT_;9GZy@U)jRwJ`#^yGvvZ5VnLVSUqhG43>e<@b zat#j;OSuqxC<N%orl+SBgh$nGx4U3Q@6!0?$MgGZK0oq4iyXhmzODJBVDHGo-;KJl zvGEKdmK*z>P=w`ZX!Qmp3XzB?bp1qtoYK(li#T8VDT|!A2tw}}{pI+5qjtGmZ{sFh z(P&hK^UHJ#%mOSCAoD?(q!4I>?eA-^LUA3q=U!^dsJHdq{9y&oOlL@xwV4H2A}}~O z$k*1^STdR9&?1Y+<C`?z^42>A>of>^2`1Bi?ML>vc{?Y)4Mq*yzk^D`8H~=d3d<%` zS69a<yP~T{B9T96{Cu9hlfWc6Ij)wcb@C0u=H}*YXr3~3hWhkoVisW4iAnPuW|Rb% zR8LROZ*a)?NpEQ1X+OI;4zqbuu#X550a`mSFc5|VCuCVpA(V2uRd!e~<F<-Iaq>9G zoDPS>W4S~{N$cE=F(dXLyLthMY|Kb*In2z={EU64QBI&#Ha9n`tPD^Bfq(~fJqWa+ zJ~uTr^$TqJ*+EYUnwyxI7)Q=Hi}fGEe2${_lr0-m7RAG?3f)GKI7NbWc6NTVyuAD; z!sFeX;K&z`W@l$7q3N%%_AJ(Zgl9wp?aj-?mQd^?N~x)-aX>&H{Lu#u2OylAas%dU zAf(`FEurXWrZAU6Q^VS*$K!d5S8A-gyE{2KIjJ*?D2hP#IWO6&tE*MCJxFd|kZ=<T z2&p2*+aWMHypDbnC5|x-Yhu{*tf{FfiJQ@JhGhpX>VwAo;mpRy2GtxUkwH}1-P_xX zQG!F1u~Du-TZiBoynS{-CgJz{6ScLqX?z6j6(f8pA(@V-LbGnvl`xTj+wHDq*>^wr zNhJ!+sW2Obm+?d9r7&NU5(#I9MF)zLN+=YfHhuUI$&w2Gs<e>(+ad2?2x`AB<{}^< fARr(hAYkG-q>_wAFRV*>00000NkvXXu0mjfDY#xf literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/map_track_point_finish.png b/OsmAnd/res/drawable-xhdpi/map_track_point_finish.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f8a36d30d320a87344587342a7b7dfe1241afd GIT binary patch literal 2998 zcma)8={FP(7oKS>!;CT0$j&er`!qvj%Q7<<OZK9aEjw9KDEl@hgp}<2l2>J^gkQ4n zyDW(cQ%J&0rcws4-#_r4_c`ae&$-XJAMUvy?!9-dER1=$g}DI$0FMcoWOJ-8{}Rk` z9BH{>8ppyFM7|UP0PxHFOQ4C3H2v5FhS(Sr0CnS{8^;Nom%(`h0H84g!g6H?03c>2 zBm=u};MNs0f4(81y6s{{T5_;|hM2ax6DRc&e?*0xYgjf}C(=R2lqOwz>VwsdW%ymP zG$F;nBz);c9LNMtAVHEzV5B6R3X;H*Ueg}N#wR+!{X2O_M>6s@?Az<B?|jgXo5xgp z(Pv~&&3>G|I(xYE^Jo@a_W!{;4`&xqLC3V=mZo^qqdJ1T1&{V;Z=<#uhDjA~h2U`K z_Q&Yj`6j;{9pls8Z?vKjQ;NliY)WUL6^#cz>z)y!>b?1{zIlH4EVJ)(X?D8gC;eSJ zm|$5u+23$-uiP*->)Eqs5MdFKO%cAJH}}``%-75`EGlN}92(JBf;pF9sSx8NTOyZ9 zpu_M3X>4bViiVdT!LRPglLzO;&a!vBu!ovF^fv9omwi87{{0T)ocB__b4Ng-MlhN( zEuGIE&pomGw6U=<{QC80NnTI=)%`FhxukMNxR|;WdeGSUDw}kl{PY{0(MtRw;(F1A zJ&nrT?GoR4hqpzBhXJNiK05+1xhmR^)e($frl`2M1-<yD*7@#Thx}9UMW|V@Zb=St zc4lU<h7-ydgfm%^oMS;<@ZTHLk3$0k1NlEk5D<sw?>=;rJwY%<8Z4fVz;a`%*|(Hm zR!MwSVeUYoP!@Ch<7<?qxjAbjxX`QpL`IzDvGJQR^guR-5|NW2xl_7B*knUG&g3$M z7&fxXwR}b<?zRbY0Jo^yUGePBU5s~pD-m^0Z~i)xnd^s8pe<9g_zzF+WDkDwADpLR zzwgELf(5?0%3Ak$cR-P}Oi5x{WjCeyb2AoRAF(<2Y^mbqemz*lZSmFhr9Ov|AvU$p zkf^9Ash6?3)wOC};6C~-g?t}kga}*2@8N944oE?sJ^O%0%pvP^wz`rGvc>~Iyr{+e z2C+PlpC-~C%l$c{EdjrK^fP3A{J>YMyY6z+uyb2@qrXlu%;hUAeN3~HP351wO>TS@ zdsoB-_DZId!rfb;q3R0zZHZYO9wU$1^T^TqtkN+OQa$j~2V+bSR?UmDBf%YS71g_5 z%fJ3?$o=_)-T_9+(9lp!&dI=u;&U%NI}Z=`k2V)}*Czt|KQjVdi^Cd=zrvHqiiUc8 zDQV~=c{Hh%rX98|jfZN?OOM8JdF7FGP#xh6nq_C&E4nHtOcZXMA%5xwd&%PKupNQA zu9-JHyRZ1osc}<Hxdo|hU$z#TTYr_FmctyD6Dl9v2Od|!RPxktAfCES%%rgYqD8D+ zjG~8rtc=;C$Q4mi!R!vO^E+qeVbf&GQ;$m(-nW&Q#RgJEW;xhaUu*IAG$k7zu!rdA z+S=OQ-d+nA0f)&z=|=7y<RD_OU79d4EhbP6Mn?A`h@{>%&TfQ^8(M47jXQ60cGkny zwJ%8^M9YNS(R5>V*a?A{dwS`G@W;mv=VZ%xG%L@^v6)}hIJ65;IH^p{0zSlPIfr<A zQ`atf%FEv+=k^uk=RZoJPJa4yc>X4S72;kiGNcDeTW%c4DX62V+f&U~PwY>)i(H1n za75X(lKjqCK5#HclvYd3&u_D|<5Bmmd-?75bcEf!34RJnSqGa8=(AAe9`|cR3`Sff z5BItfIA>0r4fj9*(YwG=EtS73!H$k1yEt>%0{mL4*Z>q+0!AJk8E!cEVlB=CUq0jq zSCRzL0-NL35;mv?*B*|16f(U&m)(PxKoW++3z3OAe<a*pc-oORbC|^5yTdH_{lk@p z7rKST^@0-1R31~kB~W^}PUPva{wrlSmBy=Hj_bpQ^}CFqFqklPFjC6&TdKEOEUxbA zYm5{$F#&48qv48bY>CUf2@h@YZs}1k$bE7PfY;KxQ_#zabZ9~FaVrg0ess0|Dx<CF z1VK*&jQAaXsIsYL#+O<K4FceVlPlvz+DCi{;P@}qU%3UdczMPQ;FqtVXdXXlBhe?m z_nBjJB>A5qVeG|H^Q@to&)rFo7y$%u!$(tK?U%#bN}P)%Cg4MhYfV^DiK1(5XjoWt z%kACj0Y1QHOYE3%KupY$o(qN2=f|-oxX>P@-E@x>x(td;>`|Jx)i#`=J_JIEj+Za% zXc+P~HglR>`>-V`@Q{<(rs_4$s$vRZX1tetrhD$a>)tZ#P?fY#dEqs2c!7@^cuj1X z0Fp-1b#)ayoGdLTSjulXPvQ6p4*a9;Dq^D(J^V48&^_S7WsSiJ&#cSESh0h0K6RA_ zVj*a2U*fQtfnACPMW^n>f4+>r&`{D`dM|rFDl_d#f@*;4mcaT>92Y7cr{~lh@Nr`0 z;lP0pZZRG@@MXRbv>OHHXq!-xNq00;4>lC07>!+T#dAk@iU<iYTq1l@`VF8)QV(#3 z<NvXJ%(3$HNav&e%6v4&k0NE9E~*ptmni|eii<em2Mk!w?`#D<+bzrPZ&TNk9Q-2i z79qc#X!Y~`sy8YY_a<`^RTg!VzTCAmK|*?>{|uyy?SuM{sMji-ds;OfFUU**IOe*6 zA-nHbbyWGiLF!*>-y2!W;-Gi=34Sy2qTK|{Mk_khs^fqSQ-&)0Mh!RAf4(Dez}UPe za@L8Baou~KEq9bEn~}84CWSA{3UrCz+@Dg^{{me`4bhV2SSxjCDvyzlu_b1nnobrK zL5vVdavia3M_g&S!PMc143yrXG3m+y^(hCQe^>iKu41Zga>H+-Z*a|kOJB787hVn- zQRYq$sQ2C2V#AfP^Iz;39dI-^OQ1issB%$h3AyLvJ1K9Sx_O2NQ~B;g<2B<jXXm8| zhya$QP`HQInBwCk%4x=dy#!a*d2n0PQTxBH4tSs@f=c8lqaMM<*BI;}Y4P+2lP^v9 z+<!D2z&<5hCVSfPg65AGmiW0l?s0H6oB$V`YF=Y#M)b9n(6#ps_U6g6B4Th+aZYr> z-<gAyZ|v_*eh20VlY9h{u1@KQgI3;GVq$@}zr_5IXiuG-UKOs&KO-?ObRCUGBWZ(u zy;hZ$&&e4}w9JJw5Ve-<1y}s-j7>aC92A@og!eA?#Y)LDVF9wT;pVogM#$c7h<J9d zF~<xAFi(bYOgxe~p|I{*=@O8t=Jtj5S&l1<i>ngi>!Rg52!6>Yk_)%L1-eA+Z0*_s z>C@3Gxr=cjKkcIBGjt*M@{ar3yK;RUZzMkPUM_B7@PMvsdCrNS!=b#*h28Y{5`*iw zg0>$|`;=^+D1<OotSPxgQwXl%`69MQHfF)etv~FfS7RG4T`8~dXfMI*RuwH;{-CSf zPAdW>d{5>@X}N^HziVmN9okkdABXA9RBmd}sfp90S}S^o+N~<Ud^{0LZl|k%g*?wC zp19M36#{Y0<6N=*5<P;h?}Of+(S(_&CjdGjQ8m_cefEamlkE;Au2iQfJHArlFu7;l zIn|O(T~H8_E`oA}HnQvLM^`5n7d*Lw8#4r((WaHG6Le-MMaxbdIG<ZF<$M&qCRDQX zaBl4lPuDRQgYJz;WpZ#s#X_gTBS(?<W@rVP>Jt-=L4QT6g>BDf7Tsa~k5Xz1cP7h} z!n$H2)9*&j5=>FC9lF=Hv5dUniTmSGDHo}hXYJfRqdN3>dsP+cyt=(kx6g_`b)6V< zA#v>ff7<tDq{x%fA!kQrRy0mAYlqlH^QvDJja=o;Hm948MeUb;O4j6dyQ5{rIld4O z7?=Z5@@A_aVOa$6KF`OBDT7fYt%VPxz-~xAZQw)u-+Jgwt2!P*KwcvLZ&bK3P-elK VpUyQAu*YvUz{JpkR7Y@$|1VH~ZJYoA literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/map_track_point_start.png b/OsmAnd/res/drawable-xhdpi/map_track_point_start.png new file mode 100644 index 0000000000000000000000000000000000000000..7718b5e03aa31be4640588e3c75d3a08cc7deb2c GIT binary patch literal 3343 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 E7xJzxng9R* literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/map_track_point_finish.png b/OsmAnd/res/drawable-xxhdpi/map_track_point_finish.png new file mode 100644 index 0000000000000000000000000000000000000000..81704f2ed4d51b1c24aad198ebec600273f636a1 GIT binary patch literal 5705 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 H+lKrfJ7)m1 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/map_track_point_start.png b/OsmAnd/res/drawable-xxhdpi/map_track_point_start.png new file mode 100644 index 0000000000000000000000000000000000000000..75d6bf5362f473f798f2d6d738ffc5d3b51bee83 GIT binary patch literal 6151 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 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxxhdpi/map_track_point_finish.png b/OsmAnd/res/drawable-xxxhdpi/map_track_point_finish.png new file mode 100644 index 0000000000000000000000000000000000000000..04691cc75e16a8018908e3e327aba086ac3e47d4 GIT binary patch literal 8873 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 literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxxhdpi/map_track_point_start.png b/OsmAnd/res/drawable-xxxhdpi/map_track_point_start.png new file mode 100644 index 0000000000000000000000000000000000000000..62145a88121f8a90b5c53cf78a4715c747d64b15 GIT binary patch literal 9379 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 bCs2;hy*q^svX+lMMOYdtI?7dw7V!TA87L20 literal 0 HcmV?d00001 From af77caaddee8301824ed89b6a337d649fc3f975d Mon Sep 17 00:00:00 2001 From: veliymolfar <veliymolfar@gmail,com> Date: Tue, 30 Jun 2020 13:19:40 +0300 Subject: [PATCH 300/300] compare by date preferred then size --- OsmAnd/src/net/osmand/plus/download/DownloadResources.java | 7 ++++--- OsmAnd/src/net/osmand/plus/download/IndexItem.java | 7 +++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadResources.java b/OsmAnd/src/net/osmand/plus/download/DownloadResources.java index 0628aefae3..8a5b37fffb 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadResources.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadResources.java @@ -187,10 +187,11 @@ public class DownloadResources extends DownloadResourceGroup { outdated = true; } } else { - long itemSize = item.getContentSize(); long oldItemSize = 0; - if (item.getType() == DownloadActivityType.VOICE_FILE) { + if (parsed && item.getTimestamp() > item.getLocalTimestamp()) { + outdated = true; + } else if (item.getType() == DownloadActivityType.VOICE_FILE) { if (item instanceof AssetIndexItem) { File file = new File(((AssetIndexItem) item).getDestFile()); oldItemSize = file.length(); @@ -213,7 +214,7 @@ public class DownloadResources extends DownloadResourceGroup { } else { oldItemSize = app.getAppPath(item.getTargetFileName()).length(); } - if (itemSize != oldItemSize) { + if (!parsed && itemSize != oldItemSize) { outdated = true; } } diff --git a/OsmAnd/src/net/osmand/plus/download/IndexItem.java b/OsmAnd/src/net/osmand/plus/download/IndexItem.java index 52c738faaa..7173dfca66 100644 --- a/OsmAnd/src/net/osmand/plus/download/IndexItem.java +++ b/OsmAnd/src/net/osmand/plus/download/IndexItem.java @@ -202,8 +202,11 @@ public class IndexItem implements Comparable<IndexItem> { public void setLocalTimestamp(long localTimestamp) { this.localTimestamp = localTimestamp; } - - + + public long getLocalTimestamp() { + return localTimestamp; + } + public boolean isDownloaded() { return downloaded; }