From 10cb3fd62a4ae5eb9e41b1f5d2e0f08da28eef69 Mon Sep 17 00:00:00 2001 From: Amir Date: Tue, 22 Jan 2019 16:53:30 +0200 Subject: [PATCH 1/3] Init --- .idea/caches/build_file_checksums.ser | Bin 549 -> 549 bytes .idea/caches/gradle_models.ser | Bin 257749 -> 266054 bytes .idea/encodings.xml | 6 ++++++ .idea/modules.xml | 6 ------ 4 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 .idea/encodings.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index bf4bfa153e98478da09109f902aff15c3f504f33..99a96b4405a67c555c948e4a1dbe8cfb1b271edc 100644 GIT binary patch delta 33 pcmZ3=vXo`Q43;vUUdD}cDi{S%Y!HrnL!m;`n3;9{|ycmWYYc*MOql>WR-Q3T)9Y*Q0>14a*A diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser index 9b466f36809374384a8660e81d78159fb7299275..72e839d714218f32455066eb6f4d830ce739a2c1 100644 GIT binary patch delta 20731 zcmb_^cU+W5*ETaZY^R9WD`*rOuyn9cZP);NcPS!9rHDq2ifD`_QDSa!Y;iUAj-uYi z3YNq!#uzox2uW-)Mu}+}%Qt6cxo5-s{J!UXHU4qfxz3rHYtGD^DLdCvBmPjG;La#UoiA`kuAP{%Php1Bqsj4E|>oU<7Ako)${_-k_fpP{nf)<&Iq9$(uZ zQ2Uw#l9SCNgZ#o$Qd2B`LG*KKkR`wz6l4xd2}w>02@FUI4G0KGvSn%mndHNXaVS~V z^}dQMMPOF)<<#4pg#KPV(ACCHrOZ?^acn3F<+ zlf%qGp&|Y$0iplM*TyWn4(LD|&~rc(MxjL?4QhyKYUhxLPRJ^Mk~9KsD0-RXtjV?B z9vMSuX8eTA%#7@uaMo*DmlO~(GBq{S9GV;$ z5Nb(Em3RGCla!{T7&)G3)BZ6Es#5V~qar0GC@D24DAX_6k{X=qM~6t5B{VD`(BFS# za8OEcSW;^8$Y4K9YUQY?;sHKN(3ReiZ^k<{S+=~_kc`!!=r=Bjl*v-BH!ejkKjux^ zEtR4p-mqnI;~h;%87-*i8y1x8o1HrT9qiycDRW7ms|N|{fa2b~nY$J@CUuuf|AN~+ zeNbJ}JoR7bLD{pc2A!Iw^kH;rzMZ}s=4r!>AvE!B#tTSHo-mjuu1xp_5{2)Mripq} zOCWJGZw^hQ&dk>6trhhKhro0uXgO{`tP3PP+4>Y48&*`1A z`I9)g^uq|!;ThHx{W5Q(liu2UWiSMTR*<`~d?equdN!N4JfojaKzQVaIN7o-ZplH( zg* zMcjG1hm^mI;+EV)QRKvE$-T&F>qaPld*Mtw!-4(66XRucd;qy{0Y?^ny{j$t*ZVc^ z)S@kJ&;9jNKU_oZzCX&Y1tHLaK{K^(Bw@AGTXs7fT@>`$Ta@O)h|$9{iRBLRmM@-k zk{28e{zqFb9PO-evR;_qOp(j;TF5)k>Ev#ohyBAO|MPTO&gBEAluQ!8PHIBNd!ib0 z@cDWM7ARXdd*A3t5&}^iDXu4l6x}#K6dDzNd5lf(V{sY|evKoM(KxE8?N@9xytv+% z>&+K0|NRTk?;40hif(>0kan?iyK|RlgImhze04dotUj{H8D(``*H?A}-uUaPX2VFK zBdvC7Dh@2FQ62`>_PW!anl8BGPlsCZo!-z79uJ4Oo~q2}c)H$ns~77BGNS}*M|)Pk}g^PEu*O}=zSd61mpfdM$OPpib&@Ky4t52`~(c%p7J=Qd9i0R{cs9A!f_-e@8nCl{x*f|>Ca zb(;sdFb!8D7X~8}arH&Ds8MrYbddV?r(FTFsgXA`dKHMmsVY1O-Jq(w1;d=E%8%rE z;u>T@2(CwZwM9PEV0v2=sByGrjh!HSX4D}UqfjJ8-J%i9dg9UrjkNJ!d@|_}v5b?t zk;XkxdqvX~t##5^(@623Z1~h7z8}(}r+QLacYC7BLF8ZN;>-tuUmVtu(tK=I7W6_e zl*ofVXq2t+!`VZ&K|~;ay>O&*w=dd8eKWL`VZEFcUz-#TMm;I1SA$U;xF#+M(G7&M zH3?OR{|K7ycx^0kj7qJ#kxdVzA_{ z>$c_CGH2z+}HVhKq}N(xC1 z3Z*&Cp}~P6X8)9+AV0bp4Ne(JHDP8;Ku~gUmCUxyXJ+q^*CZ&LOKXwRPb3}rI|jvs zu&uVb0fLPW+e`h|R+eP;dIJV6bv3hs((m z-IaCokcGySl`9sFrz`L!)Qsn8pO3W8PSx0q>cs0$$VZ<+2r(9*m`YUyR}C&eM?h6~ z1sYxbMuhwUh5^o&B1I6JrsF}^azRUJ!q*`MdC^FZh zXl3%J=qzo~nnB%DX^Wb&@Y+_!Zammc+k|S`@_FsvP#`}ZLKn=f$X}_m8MUI>&b0`A zK(n=Ej&Syss`Ez8+JWj)Z>`#azH)N3nxh7i1}o?)kiUn;-_kv(z)*YEi&b^1oODCS zXFIf$^Maa^tr3zz*?JVs$7l$##GqJt#@rbB)l7|Y{1`GLG=fz72_?!SW_KhXK4u?+ z6_1lh?}&9q(&#igjke2qXJSd?3>2x1Jp);G$>tIckU!5Lchat!6wUR@IrO^(8F!ST z?WiwF*ozZL>0;DOxqOK(L1-XZvk1*0&vJ1r@%st|DnDID%Os7?*wE8&F{!A)T}bXV z6hd^@kUx4zcGbtR3I%#2RKZBRx`w(a!@ohz9Su6;7awkUn;z;BsgO}DSzU(O5w}}( zY!#428B%xRb{hpKU)(~?5n4tPvT;X}ISPf7-0zVS*_?`u%Jg!Sz*>3fHaf>DNK_u* zLCFaHP8*mg7jN+=+wR)hM|W+J%9#7Kd9>yx*Pd=-HD8)d{TX>GhWz>v#h^s)Uz(O1 ze?k5G3plGE_wVCVfy%p&(Wl(4zoQbgKq>znZANI3oUkF5E%xMPedMOp`wIhN&0|d-qh{_+ zo$^S+)6g{LI{Gn+G`WkqlHB1alDzALH=;b&k(Fs%M?z9*tHr-VzqrjQd6$!zae$Ig zj5rwm$Q=%V^0o;#LFgXIGU0sErll0EjBvp(*bo@*j*p{`#IphIi_)4nh&<9Fjk2XW zehZLClrjI8O#%%_nwzX+gI{k&AyJ>=?ytRL zAm*2--|N<#uoin@O*!;U$JbrNh~+Y>&PLDcE@dQR9q#)24k*!LPjaCFev>Uh4Psr7 zV_%;`)ES)k`VMS_d%b?u31@Ma*RHy}jnt*%YfqI#pPWfKnXq`#MZ?z{pGPZ~xYKFP z7SvfSa1cVPN!~iNgcLrZYX*a_w89e1)J1vy={|jr)P=yokqq_2erUOzkQd9+ir$PH zA+(A>jAn@Jchilm-c5@Ed&M^Z?}K3eV*A#G5H#fSwXtMG6zV{-LU1_NI1w5`JCfq| z^c3b3irdgwt0%Ym)9lP>M0*-E9);m_pi*A&v<=BxMq@Rcamn2dxC5F=D(ceER~&`I zl&ujs0HOEEt_VzsuOD45sa>@4EDHY(QMU2JTc@BUeaMW?xD}bw2?wGHtR?g`6r!~3 z3@w?=TLK8N)}--|HH8_(cco3C=w?(Ps(t7Fuc3|q$6Z;^P zPVy#Gq%58`C89qvk`Z6>WTdh@9zSHkdtM*>9d`60mL*aTxJ^+0>We!e?AT1U9JDIb z3zwkTNv$7VB_)Nl2k6mXzoa#4OQMJ3D0G;`)=Eq<4Z~pwm5@s<&{E~Q;dmM3UD(lk z$dVhBDjeU*(-a(N+)amp<1P?;S!Ym9C(S-ce~f3r%%A}_2-XR@5zU}yM(0f28qqB$TPEDHDRMXqPl9kar`-s` z4mfh*+X!r=neL`W*9w&Gu) zw6iluG-KP1f=qfsZCi-jV=$R)LA~(QfXrS!2cyQXSTK z8VVqZ3iiiZ+89`;C=yEM=%|zECx0?&KVFKp?tExcK$-g)t^+5#QBEYBjXyTr=;d`J z@jXJv-*a}ngS0~LsQoAh2gS1(J3GNS-0vhlh~8so3o`r^JvF9(4hOcmY`;!!ox<%E z*HgGV8w^9w;oI0z&(5pt%LnD_^SCQr^qm#Yi+H9J<#1u$tu2fLB2o`B;}c0M&sg7@ zw7EhT`0JGN`^v*BQ2tG&+Esj?mHPZ!yc>;SHv#)@;`Rt-!W}?AQe1#MN%N)D)$BH) za2dS~XnzYYgQ@mY--ubP8g{bpb)VkC4*!9Uu@l5xmwF5UIX_vWc>IVx5jq8@dmDNo z#f{K&Jx?jIckq``UWZXfKW638QwrS*J;0sFmY?W8Whl$3P+$f^7G>AZIGlOyVFlig z+OX+Kc4|`v%KL^Rh&|BiRU7>Qh{qxUIv1IE6xn*NjyxQT4Q zL0X|-VbM7_g)HiWdy)9(I7n{)fh!wnO#R+-I?yOvk4DpW@Yc^qJxJsn)T-b&DFADm zk@7$(wxC!FQa(jeErhi#S?HliAZbLWg3?ivYB8q|(@NXWA27Z;D)Bn06NEO{-uBW- z{<7Z~H-%10Jq)TL3q~ufuF65hz7ZjNT%@+>$I5}lFeS%TqSqPs2pwB-%40X_IONZ~ zS`h>J+5T)qZONYm)RY2^TVS`d8N_zpWlVLirc_|tCR_yAXCMv| zzeBLYrX^{!;aGt8lDrg-w1WY?sJ>>64ylHH&jv0rGqG+thtJN$b|)d$`o&j4qTa(r_voS z1;`6;>QQ>75y8qH=OgVy=g6hCw4htNP>{09SE`3lDGw)rkl}^&L=a<^Ji#$bbxrQ7 zj+Iy6k0ieaNo|eiXpc4$~Y8rhX{}@Uk4WBbH)O+HvWSrcoU>yI0`zw;*nk zybx(Vy2`7K50&D;DJw&zB03b=no!(9qSszwbbO#ruqJdQTiZ$j@`LHFFwr_HG<8)% zZgQ`--f%a#n-0)nky04_voumNYh`e{aUv;=q@!jcsTC!4rhkSw-(RRerVn@~(ji(337z;` z`+=YEy#M`~4&)wc%RMn#^3}d)OKgjlU^d>5mI7U;a_rIihi;7Pkv^?!LB<>^93tTc z*`Y_~PO1Je8m%nfqUy@b80jNNw1rgfB8^1b$&@bAvJTs!5LEPv{-Ym^g^;v+Y=i*Z zjuWm$LwQCR_YPe^z}>XYQAy}3%|ec0k27wO9Y>^E(P{hj{e5LAH&Fv$!D-oBYOOf?(|+Tq;#THhlM%q~+{XC>aa z_=jqp!wnmM7ymIcc?TrDrh`HztQDDtJ$T z2I3hn)%G^J@Mj=G;m(1Z-$z{#pov)GrRr}RU71qgZfY7^&m9?9!07!c=>2uYS9er3 zH}q%bK<~K#2ULPi4gwqm^y)Mp#&qny#Q_>sB7n0`+XFL{g}&U6AEp{B95 znE`n+T8C9~_(;Wp)3b#6MrKYc!6yW`Nd->{a0@55gX!$Z?dHI|j=FD!G2JCna+;k? zN6bAXk9chLxis+-BXU*HxppRPM!K3$KS!Dfb$xx#3S{4&M4hfPbmrGXXy1-g?P&!dphn z0q;rvEV}Xjea^fU_loJ%GK>yt8e6Bu4rbq(NqUu>WRSKQom6u}EoM&1(G7UsD7s?1 z3te4Kry;Lh;9eYk_ zS;kQ+*hzq+dEXhw@!EwVn**2Io?R`#F}&}L8B8hgOf`+IUQ5f5GkScyGkRVd(Nn=h zuP}4q?X8xf->-tL1$e+Vw2m;P=sf)~4n&S@vQJnavJI`HOeyeUHI1!@cD`7|==Bx7 z*Kg#yp&Hd($Ab*e8zMj+X#gA{KzEWio<@n9RoLn3av*$m`$fXogOrS?QG$;R0oS%8 zS1b6onUOmv$Q>$u-m|G{uD{C6fk&|buc@F29r|x~$_1`1%{n zcW>!$F{LmrQ`6YGHn+e`zjC#Ig;syRWF#~CNKW-EkOwzC^Y~>7u*+iY;4i$C)qSKG z`r78&vU?RYKYxctMjVukEqFV5RvhfV4zhk=mzAbX0n^4AR@k1Wg)8)VNhbZ8d5!7& z&UCM_Q8K?}Uq(%L*Go{wm8xYZA6cY28ei+<%*3Zm_cPB1#t-Kuw&uGCi1E7NtjVCL zAXzh|>duk~U%DjT`dI)<5~oW>nAmB)`A%>XH|7Kx+;muI+6$;Wje*UYB-zir|KS80$woCCf8UUNWL2eOHis}EsHfrqMTx}G&z z$yhtG4GOkR70b1T#lVL!&VH;xAk1|leC-0G8jc*7i_+C_&zQkn8lP+Lu7>&Okk)qtMnn(A21^(_OR)KjVG9x-#UxhcTMDp)SS zU-{hmgXu&t*FEEazRh&8|Iq!$!{wh$C(8IsO=IhXibnl`mQ!<;oRjy5KQ!B`nj5}g z=3vuCfTvW@EWk5-CS71ULC)|c@yn(&=^UF$qc5t}^Zi1pn#R_*_Ii(HbX)};w}vl{ z+HJ=8AOSiaqGmo)0IV&*a7L$jhpKd# z-dL5T!G4cGcIHUIl?&Pj^>jZ&^V#oNFb_NXCa|c}`Nr4?=F_>N!{^mayJ6=k9(f@@ zJA*O4x*2LC?6wCpxliBcE>wx>=5rvf#}+REzQ=qTH;3s2%(v%|#@6mJeC9f>7Ub4+ zYk9CxH8(U@d8{W<$LK=mv{@)y@&V{mg^$6X1HEr|=f4(W$D-D30BU%QCB?_sIx}&s z(<|nl{er<~8=iPfS1ZwHs0sFi^ixRrR60X*Y~k!3mR;nW zq^7a8_U&P8op34@lrBwOvBoYciimMVlp!LZaexlmahQ)7ZKT|7Heanl6G~*Qwp2 zIt%l=%p7cb5X)S8Y)uflpKOGF;q?o}uN)Xw|NKe;{%q^LM@&h|Xkql$VUY8U1V&+m zpkUG5%)cWt_EIT`-KaiZ1=EFPqK!~LUcXQb;(+=7D7(Se#}*v=Go>&dpr)~P!;<#5 z7`;h?-sFLcO;M`3&dSWeL(>GfS_Sh2_$eD*?i-j+^q+1ExkQfvXdNF@|OJ{S|$QQHMixT>9a#eh#v-eeK zo4dJ;+$KS8^YrOXb{-JHV7n-~vFfW`0`%hKss;v~EijBd9ONjBn{skIE(qA06%1)? zU6N7Qh>0=~y= zA&spqI{(2=_gZm3qV-BRcTrr*7}R;FZKjrC;APMvv@He5W@Vk`RVSsvHYx9u?K)x1 zCZ)${J|_kI*pA$#Nj1BI&$MBx=d|IoeCCPuQFoD6JxlF6fzNV(J^^WGmc1Df`5w?ZZCQd(nP+WZJe3?0r>nqCeQ^A1( z^ylP)na++}I0xc~wzDG_$jOB;ohTzzO=Ii(#!AaD|;}WE?HSD+TQOtMZ(o$>q%-<;X z>4wggOtda)8HO$@Xm^Df2lVQ=_pHLskVs1AO4YHUI}q|1&7+ejiw7poXYk&M?Dj!B zN_CeuJyExGwlG)Sr5z(c)m>WQ6$5iuo#s`&Ww3ec{V~I>q6FqGkI_|}Ww3YFuk(&9 zV$NbAjt{gMXQsM~_1Tc7`sF=Q^e7daE5OmrSs~Q)P}nWW4k{=vboJOa&@@abT&g#4;O%>%FVu4N zj<$iOWlDkT)HJsKbTZe7Uu?y<|#3&wx2l zG)Pxd6!F|fk2hb%4ZP)$#?~5($FTcC?H7XHsYdrdFICNreAoiLa{}aJ7eG5p+ZM!F zbyYRmR@JFXx|WF|Y+Ddxf5u(l1JpFOPTBS$A9<{c`N%8#<>b5fRdd}=W)4j3w(o^1 zcu!dF<{@q$(+TJ44sf7JLYCeA_8u1E>MKkq%Gj@_v6W0&K)>U*kdg&bYgc}=OKF$_ zMjVnK$R*d{XUEl-ERq711q&tiE5{EOOOe$6++wMj(av6Zu~>?SUq1C*A;q{@pfcQa z<@@Vy<~Y<^vRbO;0bL{6W!N?F$QilulQ^o3RR*k-kVbO?9PpPi{8OnuO4Moh<~%*b zNQ?iwB8Xb(Od#rmXbqwri0&YUfEWW}Du@q3u*sq`*8k4`1O7~!KFBqZM`NT`r29Jh zNP|!#(-IKN*-H0=I^5-+6(4!k9gU2?SL&ut?GnP&sR7AghM?`&0L`st+1Bu)$d6A(TrBIUzuHH?_ zAkxU1jnc{QM&!Rhq70$qe=aMb2DbjXbhQ zt!nazfz(iU4#W*GqHic(ZI-SY@6pfBcR@U$kJqGCnxEnGBY4hi8x2AHWrp+b+z-wb zVDKl1r|jtniT_xNU==$*p|1&hK)OQ*5F+Evc~5-&wI-oD!SeT%+TJ4b(<0FcgegW|-8^f!oNFij@UOIfA0Qd*V+bhjPG?KzQBhz1i zy`;j~0S0X+QuvM(M6C4fJbFg*y5o3aohY^HESUU8Z4DkEnt})f5euRZh!hYxAQppI z2ZAjDI^&IM;|JQF9xBollPQ?$OfZE_>~Sc2{-r0w`_Z}h*?#InQ#k18@B5$Q0RXq= z!^{+8V-7!BG<5{gnLns19w0^X@f`)d-(yK%DVWSZAQ_sTpjL(-LHtIA(Gdjnr!j?( z^vOM^3}HWTqW?R>IFqRdRhd9S0^}A|J#e5Hg4YDr~QGre+#TTUptUDbtQfF^;}x7j}Z@G~09Qgk36v2HU;JafZxa zfPnuGz<3(O84&Owi#^RUo`+8tKwJb-3Ie`>Gkyu;G8O1Sl~SQsjbDSf1p-2du_9{> zmCxu$lLP|hx~T?;hL9Uu!{1++#g>H(b={US8#a0_7DmHWwp3ATX(FqUT})n6!6^d# zhHuHfV>+=g8ouYi^SpGsP2CN?CA-CRqKq;%jjf+((=Rb{^8~s1v$kFrr5GcaIgra& z%P>Z&pt$xnM)N(7u@h4YcE&gkc-0&tj?TtdzUMLW&ATX?@7p1bt&bd^ao>F^=&jxO z@|#Vnxqe_6;WHy9`&R6J@xuG%eWFoHM+Y zd0fjJcv&#~>hi0y-6GGN$~@9_0nSyyn*yBA7`iWHI^jRV$7Bt?mqs5lPPzF^EpmNS zS(Ira5X%J(wqBfBCjlrq)>nx+Hdy;GJWkE1A6}W!QQXh#N2p*kVVP73(zjNmb-d*4 ztsluCK~g`O1G|b#{Y1tT-pTqjrWE)nHI1!Tw|ugUF%1$-gBR619EUVV`yd3CUzXc)&_6=UBNh}3XUWD zEp}zj=6M=b=5ZV?Drl^N;yW*+S0%_^uAv9SFJ97n8=Em$c+}XE0}CwaZA6JpZIqic zrNF%_3pH(qQLr1tArL1)K%6sO1;MuU*y^yf9-H`1nQDWavSzL-TBw$&S0}#H1OeJ6 zzAL@3pDa+@%-2_)`Fh*TKU;0?Sz*m*ey+arKbxTMQrQG&M437pKvV|-yAJ2KK=^^G2*YzLw{aM2F|F$TnYAYga$pSMz=fL($Cb_xHRjSiG&zuST22@qd_ z_%X{N*M8ekpMu8LAb_0RE~M(BEcONeX-n|G+6~bE{Au`DOS*pC@XY3CUahZuxO?P` zgb`XpO3q44gEloC)Nr=#y{-d{6~34ow`JZgjiyN(MnAbc<|8x5VSv1*S^)Xz5YmuC zUFa$3@;Q1$D(5fO39H{&FR{i@cVeYt8P$8cCx?EG*pO;P`^h(b1X$Pe_ pDKQtNQT3%V`rjDlcdD&?{y^%54RPI{}1>mi+BJ4 delta 16303 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 + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 2ca9c0a..89bed8e 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,12 +3,6 @@ -<<<<<<< HEAD - - - -======= ->>>>>>> 8058d6d2835c895d5bb626487f330ae312e428bc From 41a9f2334e59d61f0c32008d295dd5201ea29cf8 Mon Sep 17 00:00:00 2001 From: Amir Date: Tue, 22 Jan 2019 17:24:34 +0200 Subject: [PATCH 2/3] Fixed API P problem --- .idea/caches/build_file_checksums.ser | Bin 549 -> 549 bytes .idea/caches/gradle_models.ser | Bin 266054 -> 236069 bytes app/build.gradle | 19 +- .../net/teslaa/flymate/ui/MainActivity.java | 437 +++++++++--------- app/src/main/res/layout/activity_main.xml | 18 +- app/src/main/res/values/colors.xml | 3 +- app/src/main/res/values/styles.xml | 3 +- 7 files changed, 233 insertions(+), 247 deletions(-) diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 99a96b4405a67c555c948e4a1dbe8cfb1b271edc..4990feb5b390c99b1f8cf07838675482371d28dd 100644 GIT binary patch delta 32 ocmZ3=vXo`QOlGN<78~bOFbXbok~w6v(etUA@*){k=`XJ<0L_^V3jhEB delta 32 ocmZ3=vXo`QOlF>5#*K3-7zIyk5RQA~w9V6*@g$ScoYOli0L8-$)c^nh diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser index 72e839d714218f32455066eb6f4d830ce739a2c1..c8f85adbdca7010b5bd4b629328bb4aad87dfa2c 100644 GIT binary patch delta 20365 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 bSu-B{HS%n@aOBz)5Jk!xX%iQp_JdVb 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 addresses = geocoder.getFromLocation(latitude, longitude, 1); - - if (addresses.size() > 0) { - Address address = addresses.get(0); - cityName = address.getLocality(); // + ", " + address.getAdminArea(); +public class MainActivity extends AppCompatActivity implements WeatherSourceCallback, + EasyPermissions.PermissionCallbacks { + + public static final String TAG = MainActivity.class.getSimpleName(); + private static final int READ_PHONE_STATE = 100; + private final WeatherSource mWeatherSource = new OpenWeather(this); + + private CurrentWeatherIcons mForecast; + @BindView(R.id.locationLabel) + TextView mLocationLabel; + @BindView(R.id.timeLabel) + TextView mTimeLabel; + @BindView(R.id.temperatureLabel) + TextView mTemperatureLabel; + @BindView(R.id.humidityValue) + TextView mHumidityValue; + @BindView(R.id.precipValue) + TextView mPrecipValue; + @BindView(R.id.summaryLabel) + TextView mSummaryLabel; + @BindView(R.id.iconImageView) + ImageView mIconImageView; + @BindView(R.id.refreshImageView) + ImageView mRefreshImageView; + // private LottieAnimationView mProgressBar; + private double myLatitude; + private double myLongitude; + private String mLocationName = "Default Locale"; + + @SuppressLint("MissingPermission") + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + ButterKnife.bind(this); + + methodRequiredPermissions(); +// +// LottieAnimationView lottieBackground = findViewById(R.id.background_lottie); +// lottieBackground.setAnimation("gradient_animated_background.json"); +// lottieBackground.playAnimation(); +// lottieBackground.setSpeed(0.5f); +// lottieBackground.loop(true); +// +// mProgressBar = findViewById(R.id.progressBar); +// mProgressBar.setAnimation("worm.json"); +// mProgressBar.playAnimation(); +// mProgressBar.setSpeed(5.0f); +// mProgressBar.loop(true); +// +// mProgressBar.setVisibility(View.INVISIBLE); + } + + @Override + protected void onResume() { + super.onResume(); + //start location service + SmartLocation + .with(this) + .location() + .oneFix() + .start(new OnLocationUpdatedListener() { + @Override + public void onLocationUpdated(Location location) { + myLatitude = location.getLatitude(); + myLongitude = location.getLongitude(); + mLocationName = getLocationName(myLatitude, myLongitude); + if (mTemperatureLabel.getText().toString() + .equals(getString(R.string.temperature_loading))) { + runOnUiThread(new Runnable() { + public void run() { + refreshForecast(mRefreshImageView); } - } catch (IOException e) { - e.printStackTrace(); + }); } - } else { - cityName = "Not Available"; - } - return cityName; + } + }); + } + + @Override + protected void onPause() { + super.onPause(); + SmartLocation.with(this).location().stop(); + } + + public void toggleRefresh() { +// if (mProgressBar.getVisibility() == View.INVISIBLE) { +// mProgressBar.setVisibility(View.VISIBLE); +// mRefreshImageView.setVisibility(View.INVISIBLE); +// } else { +// mProgressBar.setVisibility(View.INVISIBLE); +// mRefreshImageView.setVisibility(View.VISIBLE); +// } + } + + public void updateDisplay() { + Current current = mForecast.getCurrent(); + mTemperatureLabel.setText(current.getTemperature() + ""); + mTimeLabel.setText("Sunrise At " + current.getFormatedTime()); + mHumidityValue.setText(current.getHumidity() + "%"); + mPrecipValue.setText(current.getPrecipChance() + "Km/h"); + mSummaryLabel.setText(current.getSummary()); + Drawable drawable = getResources().getDrawable((int) current.getIconId()); + mIconImageView.setImageDrawable(drawable); + } + + public void alertUserAboutError() { + AlertDialogFragment dialog = new AlertDialogFragment(); + dialog.show(getFragmentManager(), "error_dialog"); + } + + @OnClick(R.id.refreshImageView) + public void refreshForecast(View v) { + mLocationLabel.setText(mLocationName); + + if (isNetworkAvailable()) { + toggleRefresh(); + mWeatherSource.getForecast(myLatitude, myLongitude); + } else { + Toast.makeText(this, getString(R.string.network_unavailable), Toast.LENGTH_LONG).show(); } - - public boolean isNetworkAvailable() { - ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); - NetworkInfo networkInfo = null; - if (manager != null) { - Log.i("getActiveNetworkInfo()", "is not null"); - networkInfo = manager.getActiveNetworkInfo(); - } else { - Log.e("getActiveNetworkInfo()", "is null"); + } + + @Override + public void onSuccess(CurrentWeatherIcons forecast) { + mForecast = forecast; + runOnUiThread(new Runnable() { + @Override + public void run() { + toggleRefresh(); + updateDisplay(); + } + }); + } + + @Override + public void onFailure(Exception e) { + runOnUiThread(new Runnable() { + @Override + public void run() { + toggleRefresh(); + alertUserAboutError(); + } + }); + } + + /** + * Get the name of the city at the given map coordinates. + */ + public String getLocationName(double latitude, double longitude) { + + String cityName = "Not Found"; + if (Geocoder.isPresent()) { + Geocoder geocoder = new Geocoder(getBaseContext(), Locale.getDefault()); + try { + List
addresses = geocoder.getFromLocation(latitude, longitude, 1); + + if (addresses.size() > 0) { + Address address = addresses.get(0); + cityName = address.getLocality(); // + ", " + address.getAdminArea(); } - boolean isAvailable = false; - if (networkInfo != null && networkInfo.isConnected()) { - isAvailable = true; - } - return isAvailable; - } - - @Override - public void onPermissionsGranted(int requestCode, List perms) { - + } catch (IOException e) { + e.printStackTrace(); + } + } else { + cityName = "Not Available"; } - - @Override - public void onPermissionsDenied(int requestCode, List perms) { - + return cityName; + } + + public boolean isNetworkAvailable() { + ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); + NetworkInfo networkInfo = null; + if (manager != null) { + Log.i("getActiveNetworkInfo()", "is not null"); + networkInfo = manager.getActiveNetworkInfo(); + } else { + Log.e("getActiveNetworkInfo()", "is null"); } - - /** - * This is an override of onRequestPermissionResult to take YES/NO of the dialog - */ - @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults); - // Forward results to EasyPermissions - EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); + boolean isAvailable = false; + if (networkInfo != null && networkInfo.isConnected()) { + isAvailable = true; } - - /** - * On this method there is defined which permissions this application needs, so the request execution start from here; - */ - @AfterPermissionGranted(READ_PHONE_STATE) - private void methodRequiredPermissions() { - String[] perms = {Manifest.permission.INTERNET, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_WIFI_STATE}; - if (EasyPermissions.hasPermissions(this, perms)) { - - } else { - EasyPermissions.requestPermissions(this, "These access is mandatory", READ_PHONE_STATE, perms); - } + return isAvailable; + } + + @Override + public void onPermissionsGranted(int requestCode, List perms) { + + } + + @Override + public void onPermissionsDenied(int requestCode, List perms) { + + } + + /** + * This is an override of onRequestPermissionResult to take YES/NO of the dialog + */ + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, + @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + // Forward results to EasyPermissions + EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); + } + + /** + * On this method there is defined which permissions this application needs, so the request + * execution start from here; + */ + @AfterPermissionGranted(READ_PHONE_STATE) + private void methodRequiredPermissions() { + String[] perms = {Manifest.permission.INTERNET, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_WIFI_STATE}; + if (EasyPermissions.hasPermissions(this, perms)) { + + } else { + EasyPermissions + .requestPermissions(this, "These access is mandatory", READ_PHONE_STATE, perms); } + } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4a96aba..f4d3ea2 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,14 +1,9 @@ - + tools:context=".MainActivity" + android:background="#00BCD4"> + - #3F51B5 - #303F9F #FF4081 + #00BCD4 + #00BCD4 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 4071674..e01cb40 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -2,7 +2,8 @@