From ff3b36a503340c7f3a9a649b70166410ad1aeb44 Mon Sep 17 00:00:00 2001 From: Hossain Khan Date: Mon, 3 Jun 2019 19:35:56 -0400 Subject: [PATCH 1/2] [MINOR] Added banner image for the app --- .../Constraint Layout - Google Play Banner.svg | 15 +++++++++++++++ .../google-play/ConstraintLayout-banner.png | Bin 0 -> 63543 bytes 2 files changed, 15 insertions(+) create mode 100644 resources/google-play/Constraint Layout - Google Play Banner.svg create mode 100644 resources/google-play/ConstraintLayout-banner.png diff --git a/resources/google-play/Constraint Layout - Google Play Banner.svg b/resources/google-play/Constraint Layout - Google Play Banner.svg new file mode 100644 index 0000000..533e38e --- /dev/null +++ b/resources/google-play/Constraint Layout - Google Play Banner.svg @@ -0,0 +1,15 @@ + + +Android Constraint LayoutDEMO \ No newline at end of file diff --git a/resources/google-play/ConstraintLayout-banner.png b/resources/google-play/ConstraintLayout-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5ef50434a2b22f0a1bf96ac819e5dbb1fd2004 GIT binary patch literal 63543 zcmbTeWmuH$+9*6Apn!-93s)!%zc5r*sU>AUR4& zBQ5>ito5$FpI6rRXaCaU7_RF+yU**hvZ53b0R;gF1R|1=eys`u;Q;@|+P{Sd{FB9? z&k6$3fMi~asejPhXuKKosAIfYH&lV^WuH$sP2~H5m!Ihz!m9NBFcZFyZodHWRke2d z;CC)E(M3dv`p}8`+`Uf|@%p}45R*d~-kC`A$&5!u#jI|%xtp_lRhoc#cv)Wk8d@!* z$adD9)os1F`eH%)t`7)@284A>6ombs|L$904=39-ea23g;(s3NckTBVf!IEJ|NF?* z>3oo{#mWAvHb^}^qk#7BOVyJ>1U^>PBFMnM?(+@48#MP}frt&nGV)!Wk=IcZrExnL*D434Q~wXl|DdPa3oKHQP=jv) z)!$ze6~)Qa(s#ur1f5`C`z<|?BuGyTYp5+bVNL8W#6dV;C9p&}uk%gaM|6L;k8=TA z**73J_&?nI4@}B7*i4|p*^4o%ze&s@PLsrELjeYnS-vgA|6ig293H3l!A`HU`7eYN z$H}zhZ2W{P>QC{tQ2Z|_MS1aGb7p|@&HB`=uQ7-eAWE#2Eeqk_AJd?}tB@iAT+wlN ztb=RksFY~juy94g?Mzs1{S7H_r6~1(=fT6)m!;bfYt zfYeLJ3!eWin(ASI9{2LTB)i5Pmis}euFDT~K!x9T#~xl2GD$#>bCQyKuL+6<{%a+X za~?2A!^U%s=x+pLp8(>=rJx{r4ai=c%)B%=0zw~_BhcD4!oSd zl_uAp7YJQL?vv>LVzkmcwsK@=ZqhZP>0W8j^x@c}YskH(NfLDB0yN0#T_M5WD2&qq zC?stv7GDFz2q&{AngK94~w3WCk!`8J|%H|BXSREREazXGTE&tk%`+uF2o+D}}YRV!4K!2E$#Uoj(hJ z(XYL!>~ifKj_-;+aMHqp<+@z~P6``hgF)k4H~x!F5~WE3P{c;blU+k`?TUSkHJT?<@Qlw)bA0t34=qb&c%-qWj;o!i@mqvix6+iw5>^7Qpza!!gRg$;R@U z#%(`R3Lu-Z-+ysL48AM(01m!&wYo0Xv;calCNk%6dV$L80ijRf5%wDK--0HT zD!TuSz=sOct$z3KJ868deT4t=uKyDUYhvmBJK9<2tsCQP)xD`KP|jkhjq*VK>fO8tz8{)^>I!pXcz^#Mfg zV^t-Dyk;T^?g92VqcgYg8e4U-hi@EV!mmP|wCkac# zLo}n3GiTGEO!v$4qsG_o2ZgF(j>D3(vaH36%L&F|9I?B{ztUVJ0`E9gp!i@`wcP#B z{9gU=xiQnvJvfttP+^zN(+#2(|5*q}(GPO-J{mDC0d3}kBIrBD3e*}QyZfu7@A(I!dk8$7VIgc|yf?)7({RR1rfXh9IQ*myWNd^I3%-f7)TYYUy-45KHpY$cjkS#P#H-2=P`;O zQ^R^Y&(f{Y`|`rJe6Ep*ee~?99@aCX*UHTH?LPxu>Jv*9kEtnMp@Hxv=Q#M1KhU3C z?|X4=Cxz{2`Z$9dY7aEH*6?u_PrZ-Hv~Y@ObC!MvJ`M;`j!<79)^2WHFKupuxuiHz za0c;TSB z8k%~OHciLNwV0wQLa!bBS*KR3?efztZBVvy6mCnbmM+ND50eu#RkxBF09|@-S5B9sxZ#ksL$@?N=e{{^ z+KVhHuvwSg2|i#gy$w!J)<2wjuaq|}J|z^3-2NBAs;LNkoVPy->3G$y&t10M5FUt} z|H35G!^zr^a&oYKZ%>-o?i)vuo+B}V4~O4u7;ev*_m39etx*2CZuX`UPJxZGwwg{R zQN@t(_1gqKvnn8ys4+8l6N8Gzey+Zn&8q2=KH-nx#0J&*vbMSzTv5s@fJ?#;_@5lL zD19�uM+Uut`!m+68ldX^@l{h+tkvHLSif^~>_nSxzCznQ z+tdF1iahh><4-HHtJy7?s&p(7j!MdOBV!#`;r#6`s^k!cs6NhSL8Mn5MzC)q3D>a3 zTAQ4@tlz8v_dtSJXpzcwF|z$8xxR;e^+MRII)L-1Ki@E~d`7T<>Kyh;qm6K%t3BgZ zbtf5mP=CCftVZ^&U*&j83;d!jfarbQooCFJZ3XG?g$#%FmYa;v@v=bO6V0x5*7yw< zC+l8bin2_gx+?amj7p2Kd=S$3o(Yeqjlf2`!inZ}mnu##4ZtcZK`MJz*w?e zHEq^uLf5^WA(x3^Gby|u?er}sE+LD;8e%`rz|$1080>_CoK)v!a~(Zi=l=lwaR+XC zo?|zaCNcB(O7u{YkOEfv3soVp#P4lMCDVm|*y+_@m!AqKrZHYaOV~4%f-)dzU2To1T~@vUejVVUAv@73L_?TfNG-LF8*0cpE$B4PfYJ)R6b^Zk|P zEzHXo!lnDJ6;}nsBVTRa6oj2_US<6RsroJx@KD^moHja+Ia7~aW`0(dOUvyV#%$|o zG2%XpNvr_FN5a;;*B4bw2;cWV59BY6@pfR1@_2=09?|!#tr!$`52Q7vDDZb;LOR&9 zKNR`%;|6ExgYjN?H0BMeGdmRQeZE>K42cb@WfO1LXPaW@Y9KW>$`Q^vv3QiPv})2I z9OZ3sy8u-$i$w!*qW=lpNV#Tp;ew2YD|-EDqfSblkYJI(k{}Bdi<7V}sm&c7he&2S zuga}aC%G(s%(TzW7A|Qjah2NCbyR)HqGVd6Zw2p=F;+NNT~Kh~fnER(L+xB{0Wqcz z*8A`?vnW0>ZH;13w=ivaF2QB4hGd?}%fTk3nR0D($KypGTg4yeF@2YrsbPY$LOVgJ zuHO0&UYg$Q;;vfgCXzk2dTdco9phJ2m>uTQlbk6jPZgUSugR4^wvretr_`OVc^9yv z4`E%+9~@2l(=;de*}YLJet1N^x6z^4>GjaOhNU-8rM|Rar#Ebl+C*83KNNVIkj!TT zExavoZ^pa%yg_EAT_##JZPWx_G(mCv%u==4W<|M~sYprR^EgK&QO7h^L*Oi1VIx~6 zdgfCX_243-D_Yx_sCrkHmCTv_D_CHmGknl7c}U8#jfn4^9A{%CM!S#kbj`X1f6j25 z4D>L>+B@y^&yMZdSi$E5^c&lSP`-=Xi-)8?VPV(v^u)F3VO6hO$R*(1QOrY&dz=jhwhW;arty%@ zgRR-=89o9Ir>@^WF&*R5tn%j!#d>Sr!MNo^9|@h^gm?zmw+@;-Po0x~b%j%Jr+O_X zzP6v=R+Dx;J|@?%;n(w?g_Q{!tA`bcGOKIq7~*oq$9TJ{X{IbR?1x6*x9K3$>hIUX zth#SCPRNLb^L`fI(awh|t7nIG<=A{-b_8l{uimL#{4Hk?~)ijH?5+0(;%*GAL| zN9&rWaFm0TPo)_=rSw1i^w*iFWcglPVu1d0=fJbL2yfOw?)OU(XP3#2o-Z>=dag@k z-ky%CX>gPT*A`-LVA&7ksdm5~CnsZ3qVaM*!@kg)65_`~TpV3_C)VLPyD7@W`?GA`fs>%lO zTm>61&y#(7*xPb{k;L1zE{le5V_&Ym3?;NlV6)6iadrq{uS!@NjuTW{ZpuC!DaNz+ z;j_uMZ9YGod1Uf1=VGq=qa2!yVm%J`U7UfHaVS6Y&FIA;Jj4B!;o4;+e0OBIY)G)Q zk`_ivXutGLbUOV?aZy|<63wXNhUHeE7;GYPvb#s)G6cG~m@yHPwK1Yc zbMAIlyv~!R$IAI_U$DexD$;V|WUG_XuD|j}|0wZ-`GHW=<;Cf_m^_n=N;Sso6t^p^sg1y4 zqC0jhO02i1xO#4?tGvhh*z$2v1~0T<+<0gNgV-fmh}U!L@xF;buRggz!9(G$dpa-i zUq9Vyq9pWjs8XnwUE)7rb`k3Ocra}*RjLtNyRLyn;>;d_hPlknIE~y?5$;R#I)u#E zL%&eJYr)#OSuwB{aOd%wo=mM`k7`-W!y+_bII+aihphEv+4lzF@m(2}@?TW$ zi*$O?u6}g?6Jhk}e#6n~5JkL9wPd8ELD(7dd&y5?#6(f7>;#{UyU%fQZ zO%LtPci&=0Jc#ED^gqetgh?KEnr0o;$4nXa(=wPg8kpdcYW;S2;HBnfJ4I ztYL-Ugn#ZqfA0vmRbG{9$g;WQ6PtiPnm40~q;G+L?R3jJsc1ggYy@qCbeefPs^ACa zP|KCKcL{%>a*G00J8e^MQzC)4u1!=tJWrr~3WItf93BsU;-bShnM0~P2^C|Qm8Gep z#1*aP6MaZHLA$rr@`h{f!#b%vwTC4)vOr$W;fC_FvIYk2o%Up>*>paLUE@KV`~I+0 za%TZa)}QS5sKhmn4hilM8TMQgD0pPP*MrXl>#h|)J6>h0+PkhHvarJDDLKMzHbM|P zi&Lh$NmPJd+~X4_NL0=s3-uCX5n-Q93L96pht)FO8wQuDAv1bHV?sZ;xuX>=Yk=}@ z?&aym!g8W{>QEN@aii`@6rcJO4|%!4#H#JeC;ot|EVTZ)aVP13o;?NW5U-+uO4D}J zDFG*=&7F$=y{mj!#Ip*oT%K}0iPg4#vnqFagXdY4(q7IIno=%BBaANv0q&8VYM+hH zfDbP#Xxi3272Hq3=XJBVv$@tp5;d_~&u1clPfRZd`?M>4Ix8T>AJq&WUemRh_gFNe zXYEsN9;!A3l79Z$dTrN}8xiM+a=iW%+T&jtLxO0dI}7fFvBib5ObBR7SXb8E(G-?B zmWhK~T!uOjgs#8YTWZ|BDmKqmt@8Dl)a4P2qdW7w5M>E-tOf?%X$4Iq=+D(m+E6CT z8zvg+l~!V@>S;q=9SHomp3;veGPZIAHj1!Xi{XzFB~RmojSK46tk1idMQjqtMl;5l z+iQY$i_g`Qp^29;QaZ_Qjby3%gPhE@Qm>K@i#U<|UIYilUT|5elc6Y^pP=8dbyQT^7)j5dZ)LL zsZ5oZ`>06q@Ilhw9I92~|{r%?g=q!74XjG>^8Ikj-+Mb085A0UoNy+aZ@KK&Uh>X_PweTwfy+LfO1jlp$ zWb1gdFo`Ie@z_JDDFp{d(6fg-Z^%jRMo@d9b5(5eN%Yo3mK*vRjRw+?{=^;hxiz+EJx}_|)W$s?6du z;h%L>dqyY+!{P4v(1HlF;<S9-cFgP^T+O3dI*Er)|wWIi^aXafp^=YvM%>1 z3h+kc#m3`PQpM-&%pyf>3?N=&$iy4hy`|&-$P%~*PNMEv0Py$6or;7JH$LgL`R7!I1ergg*$|C!sVhodg+d+h=%eS>d>5kjtdo$_$Ua<|ihKIurwxm}6DYHR(%()g0?OIV| zn{Qj_d}&i9A+xuycz$9!z>O9-Rrr-;Z3ZqVy1NH`n{UJa-QdQAb%wu(?twyY*3g_u zw8Ghe)j{Bz4m;bDsnA~M{_0~=HPzS5FUm>HDPAGt1lHPA<(UoMcL(a5 z9%5{&$6#2C=9e`Gp4lV+nFV-KlV5UU?1iG-TvE&3{&zrm?Du<(k${R+v7mx^N;c$} zs^0UR*3<1%H=xcV88!|GNl75GnSO~}>hkhXjXk_BY`puRR>zr%-_x;o=EgF>XQHhDho)BMR~3GHzV$n z5aHmsI%_qW<~la^>KJYGs8Y(l<>*kic93a!X>0`^9b&(B%DnP>S%NC``y%`Fu1Ec0 z&QzTZP?7e+f~HkMD)B}~$uumrBB9gorfsSf4p3pHqYYWYB?dMSQ#4wV|Ldocim^S1 z(w_HPA9UW#xi)F?g$j8_XP*setLj0|SZfOVQ!6^_j69fVewZcOEc0AKbVBz%Z$oah zi*+ItWs9BAxoQX9vaX#GyOEi1F!OGFu1(ggB{iANcrPjqEu1jr{m(PZ;R}5u;0%O# zvvqN%lP{VY;ZcEOq9HPXF#Fs$c4P%qwiQWRF-=B6Ax~WBJH(~sROz&BnN^f!Lu*e+ zVSA7}(mYKjtud9F(e>(@2K`eGWClE}=m;lx0NTPn5q)8XQnF4PVpoN}vSRPV_qM>% z{B^W4@UsnQ2PnFmqsR20=ct`AruBQ+t`}Fy>g2C|T1>JoMa>MYzSh$Op=G+28u(`n zG(pnFNx3Nl(ea9QQSutb&lad%+a1?MJqnYYOB=z3aqEHVC6^COEauJ`J}h?YfI&O6 zH6ff;2`_(VfSCkBD=og~2o8OQLPwCHPyD0j#&7DKGqAtNLT(Xql!@kIi#m-Kq<8F> zDWwT3YCXtd_sMxn@zP5Do%0TX&!c;v{T`x)es8&NCz67!;Z1JK-#F}Q<9jf7?IgeP|NTlTF;F=fN5kvGWuxt`TikAYH^DBiT&27W>B8qx}gm{zx zB10iRhZCB%6TH!)_Zt4d=_N%RgsV%)kgKk!yc(3Zo=K~_4 zhmWo6O@+)iF>zH);;9X;+P{X`j*DGQihpMJPsDa3HQ&fMMP{<2dR4V<_WIK}KKtQ^ zvt4VR`?0-F5oWp++sG?lu@{XbhMgwUi>&i^3h3<}3Z>fVV-LS01#M2d;mUE4(CYq* zH@ztJ4?X)6y(JLl7iyXkW-$_1HJ&-Hc~B`GB@ZS9rL-`MDxi&&tI4!W2*=u!bETDq zOjix?X>u%jf*aCegCk^)7HaU?J~#44WFy>@$$GAzg>_J{)Wd}N z$x^1It6_20!ApqpC+tp0XC-nV&b~mQethIL2E)eR@aJT72v0uv(_?N@{O5z3NB<^t z?C=O!vOAiec>Rczu9+=PeE4*s$S7KI)``iWR#64~3Q;EmEdpji#xb&YWgV)c$mBE; za7*^R8YejPmx#4@#iF^*>ChBodosqI3g}J?l`2q{3wzU*91sONnzA7FT2c*M*@$BUuUo6 zW}u>bhuT>~9lEha2{}@_0~9NGcc5o8j${T&xIWmIGPy(epZPxT65SbB3vpi}S7kEk zq0`(6Y?*&WZvBID)nx7I8f!*&^x@D=sB2JOM<&f7Oo3$rdZdgQ)o=wb1$gLJ7~OB@ z>YdXuZwBc zv?%Qw%EJ|gHq2^+T)7FOVk38l#tkjY?+0(x*9l1^8=}}xwDuY=V8#ND;+79b(E_l} z9N_L~Sb5|(S+9)@g=n@OaZKcp4n_R%T9exAWSD7XrR2Tc?4^50ZBrNdmzt`l&4*Lg zi5-E9;l``d%xSUnHE)pClTh))2A5~Jum`dhwgGiR(nqCkiqG*!;Jn4g zyp?aPI}(_zHb;BC%Bu^>9sD~!@M8CG39Fw_-K+u(B9ke|>snHg}nJ;a5smcFkYQQ3P903a3LmoE5 zar2N{8IncvG~3OW7eD?)WB1+P=+B(#X=7p1{&oW`Y`0k&+8wd4SbvoBLffKyW=d;kN9F~og#5A?f@kNsY)~A>J_CesDS9In{wEbR{4?JYeN!S#&spCnjhEV>rh#V zCXtv-9Hl9rKF|fE3c)GiMzBgW+_ii`wO?W*cJ%RAL=~?vF>= z9k2Pu)!cMkpG%sJhKkL~^W5Zbd7I}aIZ)7_9`_$D=^F%e2~N6-UwzYBq(TW&Yd-B( zER)>Kw_0qUga%ZeA-WTQg2%_N^E7-JYB$Sg>;oU)pZ?CGm7gZKw^7j=UAYZcxSh-_ zcWIL=^zmKF-h@8%q==1zZ^pongD~IBrUG$DZ!J=GXom~xN3{Gtvex(Z9NGnH&`d*F znbp5EaI{aAEy8-$K@XOX;V)abz*cF)-^ZM?gP~N2<=*6KQ+e1jUM%GrxgM55LiPSv zq$k_4|MExz1PC7Is$|^eSh4^b$4Vui35+eo+g zt8=+8xdyK`Imxpj7o(OR(4bFD%FBCAAL|2ALeJpIV`SLG8-To(0C}AOmo({sD_4B# zEwOybqB>l{`!kz9F-iDfOs$ou3heMI`|a`?xupa1ty)kwzm8YwllSfli*aX*S#eda z@oy&Q-$cYp**xx0!}=<&MH;ZHCY*IU_|pdovS5XXu}(A>e6xrP?z(n^A+08xkAs%D zhnBii`58O=mJ@-cN_uzQlf`dQjLmNX8o`uL_;Hq!JE|icB(}Au;c!oxg)RpQo8mmh zG;xjxT;`3ZTlEqae$9PT5))bh%Y9P{Uvr54m-BgA;d_V~b~alL2xyFov*Gv09<7(R zxR$W`5~|RXBb<&)kZxSjIGXd*qruyt2U=ZGX--XLSB^gA&2;{uP|=sTDhqY0V*9ax zxF6p_;|yal2&yq?89L>4Yb>?6{k zH%&du0h*qIw~^GoD~E<{Wgv@YXI6Ei6fX<4GnwdRQ`b);H$}B-wENASmUN`Ceu&&E zg5M`?Ray)8aqbiXMJH>>$MFRV>9 z^oK1SR+7@bL)#IpWxbnZ9eO%vGF;?x5D*(N}Am6=J1tL{6aB!8@DLF!d=MC ze`HNffKsvKg8edG7fjO(n=;yHBd+g>X5vQ=pCz%y%Itn zMR{%mqnH-mW-J*!7jZ2n82Jm!?as);id}R&>t%5SwkS0p?h68XYp=RFCZOpVeKN#c zzS!NHrKiYVBi{5Y<81#)O;k*Z%9(5Fo0TsWPjnd~C?qmK4iFDYX8wIer7bz6Q}sTU zkX=gK{>HRj^X3hh{}j&{p5DFs3BAM#2n#X0Hc|{fXXsJvVUv^IKpRs5Tc03hVb+pM zUjheW04O_{1h4-~K`nutp;Bt)VbK@VVRPj%1ni%|tC)W$4pY3_MR`KZ&9`sA=)sIl z+O2hQnL&yW9j>D#eGN60#!CNy7iaR=Tov>-H3L)zmnhy#`)CS-OSAtE`3!rxh5Ue~ zYwB>A!nk-Y4Cv@uu!O(SL*v0zDl7OtqkE=L3@eu70q0Im7}xV^@FQ!CzLv)=xT*FO zUr9ah;Lvj8t))QIpULJ=9w+}YJ$}F3QyOUx)?d$2FlOpumpXEHkwjFv136g3`LsY_ z$8n)<4xAv-D{yKA@$7BKS1s0f0QJ87s@pbYY}M6cd#aaeE$YlGi}Shmq`QMvUsh?? zb@m%fdj?1B+7aWPjAPC0%`nrqxtBRTJKayiUvwz+MmtWcl+KK?nCiS_unKR554Cg(l4t@y3usHmH0e+5!=9iIEFsL78gOc{-RHnMSJg7 z@vxCAnZTW!5>PBTZ>hooh-d{R>6Hev*l#=2|tps?Nu^oi}ciEL3FMBbA9Tx&rzj;I&` zx~o6VOlmB?L6-2|kBHBr5R_li2Zcb6-NR-n6 zA)v3vu+GnOHZhTN$S<4P!l64?O^`v%!9}kC8Bxj{q|-6dscH;GtES^E=LLk614Ted zKB%Xc#hCk?Q$`VDUcd=qcU?RxF({U?W?;sac<(`Vys#ct@n>yHFqA}Ya;kD2&j)Vu zm?Rh%F|G+qWV>DbrQ*Bx5~AdoZGlx2lwB;b=cNx{KnCr+rrNxkGjy+1>&ve6`U9nJ z$xXIhDO4hO2h2+PH-BuA*KGS8b%<2ZF)L24=oD-Q4thUp4Kq4MY$1(u!iWQ+fOr+Y6u_ zV3e!PHHTw94?P;!*z@pwxn?b3PdLk2a?~#Fi{~_z7Q@EIW<15kpYH)!v3?jhasC9l zTj3?e)&NgVG5htk^4|e=_!k7jLoSn`RWh5((X9d?*52*5OH9kbnJBpU(dx%t%2esa zU7YM>jUmxaoQ7d1fHOctPDOR5^f9D7T1J6BbDY&lS{_dWJuJb}X|mHFwJc=#{nKS` zbvu1P7Q(eEbor#_NN<|?L$epdrfZbo#e(SyH^DQ8iVEdjMxuZg5!TYmsPK#AnBc;C z`G+0PVjNG({uqV$Q@u~~-tpgVhJMecZ+?bx-;RTT@^v78Zr2T8iz5N%7ddE$;x^wg=ryL`$KYjC2VL zbUeA)!2zSW3h$r33A_E|aDAxK&Mned!)Z)`qqO0~N|~WAp{%MAN%T>CM>PD&-Pr)_ z^e!H=x!`tRJ>iQ#3k{{+RaD_YdE->}n#Nz)bNMzfbTlN*(r~#mqCNexUs$n@8d#j)Q4C5)}t4&;p1bw{Zt%fm*e0ny{z5g=1_wJ;TTTO^KVglia() z92}+9rRs?UFzxmnl~_tE z&{L&DT-84!_bR0Jz2_>%erK?WB2V8D~3naf#9XVhqh$j-Afyx zg`fyQuLUkQ$FjjStZ^mAZ*e4GwE$+~gT*FNt;s9mYwOL0i|oAq?PXgUG;18LF1g{p z-E61&#d5D9y>%_G>5iALO#&e7CMa)u$iw1BX9lBYF?=SC25g#Vxy4+NwGI9#-)NH% zdHW9bf6Mv^Fx%iFNGD`>Rp@YCEPr=MFnMv#O@=_bR^B`A3Z=%3ArryJ)`>l#Jq{>@ zDIBOnUCf8{o8fzI!;Qxg%dUWG&OB}lOsnye{akU{M)-{0$Jr#73JoKofhFB4 zAkiZ1mZ&sa#%?at$988-X5$LV>LR#?XZxc{ehQRPG7U~#rsbfa&*E8N5ZYP8pOpTE zLTwfXO_YU)>z^3pGI6ou=qVxuYHsD-`d9j-uI`Yg7(( zA@SPOK&20So01Ha@jQ~jW%$aNqtAc_zU4M{bmxmE8Jczs*A>y5Y^J0GbN&NmP3T+83$__o%j*QUknmTg(>g?l%9P4-u<95S7l|7RCX#>%4wewcR1AE-;Clya4+4_`Su%g^P+@`eU6YD`keQ z#Ek^Qu_D$b?K@%9 zg4#<~Zy@^2Y=wDCNc+Tkn+iA^$DX80TD(16Y#KB41wV*~d_AM}=)T)rrv4SgtN|x{ znUe4CVPH(?12IqGEti7)QefvYm5DHUnb}dgE2GK)+ao^6sr>n4w#v5YrBn3%W^&je zU9F8}Q(VY+WxW2KFoA!CzG|uN1G%8?pgm<6vz!-tI|!KyWM>A(52$_<_{1pKZm#!n zRD21SAaR(GV^#HR*4(lE32(TXzsW;HM=j47;?dX5*_fQ=V~BgpEsNvrqXB283Wr2D zEfGWW(!$k6O>5Ywb1YVCE z>_o5*_?9S-2FU9yPF$>Hg+mLM(>^a4R8C=wnie!e<`wAhOP!TP(9D%5VVyo~TJ3Vl zmzAUx$wIZ9pFbn*%}ZOUgH`dq6YgcfD*z!Qj7)dTq0pnrO>X;4c~2R#^B zAM3I{2-otou6!^-W{P$T^HA&_Eks)opq5Xy8nU6(t|A0&Xei@^X_;c(1^bsbIY^BTK5M}DU*fG z%G4C}A)6<2!Q7zWp8OD$XSMM=f=Qt~p;J5XMqE+c!jT3iD)0o)x+xMjgtRY?6h>~= zVRhd+v{V`HSJUv}&e(&<10VR$?6K~OxeEC4{4U!9(z!8nJD}-Tk{@02hgHlF#pt(a z^Qk}}^EtFE5~q)~EUAoy$dG*MPo&tn4Bta?I2frNyOFT1pQ4GAc}4nOGmUbsGgJk2 z684zPT46Jv)~}^q z<8tMdwe4J%`_R3P*zsl0m7$E5v6)$|Gr;G)rbDF&=grbVrQHQ+DOi#YNYe z^%l(bD`LMn?_%^LoU_#%#Td#C%^J{9cYk>bG6Ey{C_X#P0>crNC6c#?K#_ zn$m=PZUEyQEW!E+dr;f|NpLb$p^Tb|e0`*d$^EsW(xejCQ6acMN1+0mIQyW@3^mAg z4;o8}+LeO|j{UNpwOEAI_?t}NXVDMoGNn~w$R4TY-O5mRoOMFbvVzv}t)!dam_4@s zWahj>-JKB)ITA)iHkQ6I54dqf9#CJzY;fTEEbFk3Nf3zPwv1{Iy02+ZKd)26O7AEK zLcH^z-9yRjNNf{D?iC zHJkC_$w2ICTJaRiZ?F}RIUR+3o3^bWO*`pF15G}?R6cg@--9lMd%!qsA-sVzBvEl$ zTufkZ8Fty=^meT=^?N+rlRHH1p6By|$Kyw&uUXkoyw6{S3!Yf05&k$#LsSNWdID!$rWM3f8{+Hs@Q9NY;|U6wY* zFEwP#vmbyY2lgzNio!#Tvux#z!1|%b>H%D>KxBuZ?WvN6@@~Qsi5A5oC7&w}y^%&_O)Dsc%OkcxK4`_A+2L0ravMdI(O~5re;QD7uit%SB>E%@aQ7%f)!-SguE(veLsNWf z$x}S-@52v-g!0s$F@Ko@Hv0rikIfqgHwRw1B)JEt{;I%H)1T-`E^$CbJ2u8EcF)(! zU`BxDBYHE#hoh3{NxSbi#5{pOJGOjrqT3~#%#%@xGFNDw41|lLLf8{^K;(UZoS;y} zh66)Zz?fJ3d5Hz}`_)Nv63OzC=#jObWRYzF{)MZ4=3Bt(({hol-@^-+&>WNvx39EQ zTi^p8uI=&O{8}aJj}3vsNfK344t?7(C3>F|?2VOySVsC@bU1z?yCZ3i@YragIi8`Kf0F;J zK@Yi=FD|%S!xNWlbhTc%1wxINcv=d~<=Ou9C*LxlA~&KdEbpWZHEr~EoyIl3TBVuADilVW40#wsaIC+`{VZFIk`rM6 zxUL4c!F+ESuY;X(<1W0V36J8cVO}IMjib{)R0*zGURH4gip zV?V+`YobDfTRVTah@@k!+x|2)wR;Mz%#5ujDfGF!rr~?G@nRGbp0$#mHvt117rnhF zJJ||#cb-N?nTGWgMmG^dMf`QB=qHk_OA^V$S6ypA7kFEx7#|C-nvs^PKKo|&s}YK2 zoKri+N*8FN9AQ;VY}F;F2`hj`Ua_N>FnN;c7vsy))E|{!pE{SgH*P?Og8VP6_z9q2g8jgp^CR#y1Fh$y zfqEg5?Be^FsqZWLDQ`Qq%A8`^bXCHpltP5gW$-g4l{{F3E;L?QspRmDnKe%md26P) zLG`Vw&UsRKN-f@g4h8>05~?7TX87z+d0=KEr}p(0!v(^b$4ckoo?^y2-gQ4S;l?^= zJgFMtHQo~gN*YO}uwfB4<2v0_#i9?EZ$m!oXz+CM=4LaYq2d^MPrD?c4%^pc-sk~&h6%nEl85}5xD5UPd z*mca0oaGXEoy~?#=+6$v?~eJI!z5@ZUc95>02Ld`mHczX*TNlJ)hn>%>G(1%jsc}Z zJ$sm*55k%90YY9r3%b{z{_!4!sLQkY&D*J)r5WXbL+-T%V-Cyt};%vDYNXW?9fKfHE1>4L-cKCoO%g_D_VTZd2Xb7;Yu z{lAVF;y8+&0sVkkV2fu?Idx}Mbv&Ydf8TW)jr|KOYaU_4QzRcaQp>!YWBa*}xe^jjfaN;gLSSHu$xHg5&usVx;CldUQ1k{?BN9)678xobt;jkUvodD009A>K&(*zVY`f19vU30M@bl$j1Fsy8pee zjkp(7(!3?01L{SybYDNolpyN(n84>_WYpvT%aZ@$PP)hc$JtkgRoQjxK5NO6QaV&x z8Uz#+q!&nccZr0wbf+LK4I_WjO}^ZU7;8gtGO z_ZZ_IC>fh2UqSWsUKJ+Z-#j`Pv^ct<@HB-qquYOd5d*dF+N4EE3p_21<*m%$p9M!3 z8Bc>4aOgGver~TMNP=+xLgfF?9{Hc`5`Y&38r;owAPi9{lfR$3cS8`+$SL&jf3p$z zAm>ps3QOw%-AU``XsW+|RR>%KO0-Zk^7g+Uw12(gI~+cws;(D|Kw>sW)Bb(03`zzw z=+n&Sk3{@^FCHMA(DI9u`S(5cU&ns=A&#zX2Vo6(tL#6#RpEyED1e&w#ozyOiYB72 ztIZz zFR};Y?>oU43j*VHuNDKPl1r6%ZwfWMXar@s||4`qY*jx$LB+JOIC>*CyO z{dL*|1DL{NmGZx7x?;nT4(J#@;`G zC-T3)7xEQG7a`7s7zh{=|6$`xP}ZGfgqA@JulgwQ|CT=zJ_M40810g3e?Qj_FNpQ5 zOAy>^`it@(*6uNoq5?#4J0|S!Q)NsG{-%iKtD?El|ky}WGL2Q`1{NtAd0UYa-X zAy=?8fl}}OmLX8V1LwbH!P00KQeyvoFObwMSemfd-+wR7GBwWSR;f2&n);91$y*er zz@WhX4?8#tI0NioFxdazX&7`kmxojKwlIc!OcQ@!?iHitAx0o4CQ)4f{-gl>paK3> z(nkcujf22=?>()@QH<-h39dPOMDFu^xhp_c!{ z$_fLsAYB&C__qXs_HMd39sJL#)OT(0|FJq(7rBCfMe2*15c%Jq+=7xJm<}=AWBeyM ziBq19Oqha=+UWF8MkgI5qe2lPz=-YtTa3muILVh?f}r7~GhT@9@AvwG_h$TmS;(uC zK*2e<0)x^&?THBF0V;6wEC~O}aL7=ewP~6HQT#`ZNc5jIB2Kd7N}>it@ILO&KN`Da zz=){B;`j9L140BCDZaz=jQ%3I!eJosUF+ur%C)j9v$St`RpYYCOAKL{^|VC;9O!MkiO6V$zaLdn7Rp8iGMJ4vB-n^*()Mq zAK|Fz`+x6a;Bd`?HP&i4HR^-1<6wNuz8$)n$%kH~DF&t5lP7s~2;Usj!;&0agDdSBI^uPsJQ z)2DhY%(x%x9(NGyS4yi!0fw8r=e}zW1Q6j4T!rF)6z+is91s=7XqzM&Pi2I%ZUEw; z<&_k7Yp!3G72KEC-*P~u>=-lbhUn;cfOn@xUC*`ShVSU>;h6R}lW*rYKL{MmWUomx zu%|-)uMa`28FFHP5O(2EW&voyZ zoAY1!5$P}q7?6Hdeq=xWH$F}RF$2)p>I7a@E4Xzn#P#8bSS{+>ghtvYAxF+JQ#|76 z^R0gojcSQf@(?1Bg+HU&Q0l^v1fttzZCLxT@W=ErT~}XsJO{5C#LoT|N_0_p|9;E) z_44S~b`|L0@>Z3);r9TD+16Ck_2te^0gK#D({*G0#a97f~UdC-i7@6 zA78$^KV_VtyTaWmIY{d8UC8?Cbam%Dz3C@gG3TAH$8~^S&AGW@IbOT&*_cM=TT)eX z)KOJZ!Sml7&gi40A96~Q|o&O!G~92v^O(zuj)+CL(H9^fXg zR#4Q`a$66kkeWq$3Y5G%t>h;n4Fj0-lA`!&xVaTxMc?&dDORqUrsv)b(TnrAl@}Jz zi9z+jur$}W3;)~}&33%`mUlA@biKw)dpu#-1wMOyipf3Eo!{={o) zw;{o+`5Dlaiq#~&Td|^LLE9Mfl=avB3xF!Eb52`wZ~+RgXS#PkN0o0~9?$G!L|4yv z{rbx7Sr;*LJtR(%$Tf|@o@a53_=C6C4S(6`XR7SgPxb?vL4L^Dl-v}L;k)E~HN(9_ zIV7L%fU|>zlA#ZP3u$E97W(U#Uj0wHp0kKabl`m#-u-$!V=vEt7)!!o5_S%%AVOKv zlI%g_zvJ|K-tC`~7*-FiPr3x1G#q+cmsSO@U2_A9@AbgvmJ{@^SW}Ax7!k2tg24mOdb70+%Ji{zy2rJ~#3boUC$mzV zXI#A+RQSofPUhu`qK5(b%JdBj)_QL0e?1wg; z{rV(kR@=r}6ygguhdp%!Ie=8{&=wsKw!F;U9eW*JbVK0=kXYsrA2F&uKs@{Bx^&3P zvzJi=`c6gpeFf#hWb@}MMaV&j7Zgg?3uuh|3?$$18`jcquiGq6D1iWx3=cEpwHs=L zXcoMl(1b+}(^J%3Ul}2gsRG5NZ+fIbhMs4eDC#Sm5^xdgdvCGu2!P5*tck6LK341E zSbU>tvl3_X=@$ok5ndOs#_OGTL_X&LQaNX`e7ilV=r(M5mFU;h^c5GxDc+5@GE~(x zJGMTrrUd^Sp0pnPdSqueFDVUnE*I;seBF3WC(Y{3lKQie1F`7XsyaKH;r8Hd&`57a z6DmBLXmfQs{n4UmJ`TRmR)&1xS}03F&O0{kb-s1?>!9?F-V>n|h9Sj$kmvZoN*`L~ z$qp?^#$4o^U*68&%rRp?CurzxjPP1aS6qNB$QDeVuI2guiGP}B3X7gTO zNij`ncP4i~Q1sr@PBOZE9jbrDKGNTyO9)|XJI@KB)^-qS_xshiaXb(NWCy!ROTdQE z9-r$T`YpVEy{$SG14yaZoIe+=ZneFu1saj>xW3^g^rqwitif(Dl*tsI<7!ZHqCKe? zYMIR1BVIu^eQT_*3_5w?hiGO~dIVi18o(mQ=#AAFWsd>< zNV`1UnfKX9>J%`F!&H5MWNFN*a!4$=qn#DK>NDlRTnj42?|4m<#CB%_iG5%N%Y&vD zQxs(afL><%toM=G=!}inXEK)a_F-5Jpq8811|1o{|Gdxss;YNc^N9CN;u&+ZzS3|1 zrxU7!>iV9eJyjAVc%rn74-bfQ!DBnFb2(?ti7&N9qBm#Mw5^uabZk4YmNoa(z8c#q z3ktC8?A<}3Q~>0NjP$8tnExV2JjQ{~GD3JVw1jgKD>)nkPnEIrt?Wm?lMQhUK8-o1 zzihFrIBgF8c4E>w+%E9(7BEW1ez(uQi8pyArTi~P_)y!jS zRNZsdMnotL8AxJT^V0lLP?nqIJ6`Li>H3_g8(Xe{CPJSHmAzTGj~4q8Sp-S!#gRTU zj~$_4O!6V}#Td(yIQWKQIczA?0^ce6H5VV(L;zhX5kNe_C5|=-(ryFK4I;`stv zbvvFk$`D<6-<`*sx=2t#xc`cwxzBB+C%mJ7{+ z+xMims{Py8+K^Sn{VlsU_YoUR^ek)Y8nzwpJf1q*6&E(9B(Z19jBe2MxowuFmO#(< z`v)+5^e>q-VQ+e9lL?_NvIHR3wV1tAS)P{o;KC9?YGZtf#e{=+PK@ii-{n|>>rXY+ zgL9^7GBzKhPB|zCIva^n_xWaxC|L>E)Lgk80|H64jP>#r0~k)=W@&v1{(g)+H|=Ph z@ltoxb_&mOv0O2>-~!r+$pkaB(P^Cc;6=Z~MpNwWnLHyk;F2Q0@mmrLs07^^pA#C` zrt5vxYMjSLr|k$R>Gd$WIKi?v9&=X`+bQ2Hk;8yVM-R`3^sybY;sVqcf}5da#3(@D zc`3gip;Siluo_onD@QwVhqGF|=m( KB;<@fWS_!aP6|7NC^cTa=m(J?9XD{V60s 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%0A7aVovN3P^yT#5VdX z2e8)24Ytj6#6h9Iv5b9v|CEJ5&5~fCs0{2Hi^OD=?Kev{{RcUC{B61UR3G~x!!xaOok{MWqm&9od3@9KL5yA}b z#Wk4bH;p8QyWC)L4m=HSx{Pjw{&mxJ91aG*{m&S*04{Rh%fa&~Go4e6TV2)>)m0|g z!tnY_2Oje0Ycueqh;YX9%o4h*OoVZK42);X6J;1*MmY0ZQ5A4Ek%7B-c}G-&)ZZk5 zFM8pDG9U6S@Ndfn5wr+mBn>~1W_LhR5 Date: Mon, 3 Jun 2019 19:42:54 -0400 Subject: [PATCH 2/2] [ADDED] Data bound view holder from https://github.com/amardeshbd/android-barebone project --- app/build.gradle | 5 + .../demo/ui/common/DataBoundListAdapter.kt | 100 ++++++++++++++++++ .../demo/ui/common/DataBoundViewHolder.kt | 28 +++++ 3 files changed, 133 insertions(+) create mode 100644 app/src/main/java/com/hossainkhan/android/demo/ui/common/DataBoundListAdapter.kt create mode 100644 app/src/main/java/com/hossainkhan/android/demo/ui/common/DataBoundViewHolder.kt diff --git a/app/build.gradle b/app/build.gradle index c536ab0..b9df9ef 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -34,6 +34,11 @@ android { testOptions { unitTests.returnDefaultValues = true } + + dataBinding { + // https://developer.android.com/topic/libraries/data-binding/start + enabled = true + } } dependencies { diff --git a/app/src/main/java/com/hossainkhan/android/demo/ui/common/DataBoundListAdapter.kt b/app/src/main/java/com/hossainkhan/android/demo/ui/common/DataBoundListAdapter.kt new file mode 100644 index 0000000..1e5e3d9 --- /dev/null +++ b/app/src/main/java/com/hossainkhan/android/demo/ui/common/DataBoundListAdapter.kt @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2019 Hossain Khan + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hossainkhan.android.demo.ui.common + +import android.view.ViewGroup +import androidx.databinding.ViewDataBinding +import androidx.recyclerview.widget.AsyncDifferConfig +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter + +/** + * A generic RecyclerView adapter that uses Data Binding & DiffUtil. + * + * Here is an example of adapter with diff utils and click listener implemented. + * ```kotlin + * class ExampleListAdapter( + * private val itemClickCallback: ((ModelObject) -> Unit)? + * ) : DataBoundListAdapter( + * diffCallback = object : DiffUtil.ItemCallback() { + * override fun areItemsTheSame(oldItem: ModelObject, newItem: ModelObject): Boolean { + * return oldItem.id == newItem.id + * } + * + * override fun areContentsTheSame(oldItem: ModelObject, newItem: ModelObject): Boolean { + * return oldItem == newItem + * } + * } + * ) { + * + * override fun createBinding(parent: ViewGroup): ListItemBinding { + * val binding = DataBindingUtil.inflate( + * LayoutInflater.from(parent.context), R.layout.list_item, + * parent, false) + * + * binding.root.setOnClickListener { + * binding.data?.let { + * itemClickCallback?.invoke(it) + * } + * } + * return binding + * } + * + * override fun bind(binding: ListItemBinding, item: ModelObject) { + * binding.idea = item + * } + * } + * ``` + * + * And here is how the adapter is instantiated in Fragment/Activity + * ``` + * val ideaListAdapter = ExampleListAdapter { modelObject -> + * doActionOnModelObjectSelected(modelObject) + * } + * ``` + * + * @param Type of the items in the list + * @param The type of the ViewDataBinding + */ +abstract class DataBoundListAdapter( + diffCallback: DiffUtil.ItemCallback +) : ListAdapter>( + AsyncDifferConfig.Builder(diffCallback).build() +) { + /** + * Provides [ViewDataBinding] for the list item after it's inflated with DataBinding. + */ + protected abstract fun createBinding(parent: ViewGroup): V + + /** + * API where view should bound with the data model item. + */ + protected abstract fun bind(binding: V, item: T) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DataBoundViewHolder { + val binding = createBinding(parent) + return DataBoundViewHolder(binding) + } + + + override fun onBindViewHolder(holder: DataBoundViewHolder, position: Int) { + bind(holder.binding, getItem(position)) + holder.binding.executePendingBindings() + } + + +} diff --git a/app/src/main/java/com/hossainkhan/android/demo/ui/common/DataBoundViewHolder.kt b/app/src/main/java/com/hossainkhan/android/demo/ui/common/DataBoundViewHolder.kt new file mode 100644 index 0000000..95658da --- /dev/null +++ b/app/src/main/java/com/hossainkhan/android/demo/ui/common/DataBoundViewHolder.kt @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2019 Hossain Khan + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hossainkhan.android.demo.ui.common + +import androidx.databinding.ViewDataBinding +import androidx.recyclerview.widget.RecyclerView + +/** + * A generic ViewHolder that works with a [ViewDataBinding]. + * @param The type of the ViewDataBinding. + */ +class DataBoundViewHolder constructor( + val binding: T +) : RecyclerView.ViewHolder(binding.root)