From 4af4c534c1c55ff50a9f5caa96e7fa51c578d549 Mon Sep 17 00:00:00 2001 From: Alexander Zatsepin Date: Wed, 16 May 2018 14:27:43 +0300 Subject: [PATCH] [android] Added ability to set different ad choices icon for different network ads --- android/res/drawable-hdpi/ic_ad_dark.png | Bin 0 -> 358 bytes android/res/drawable-hdpi/ic_ad_light.png | Bin 0 -> 336 bytes android/res/drawable-hdpi/ic_ads_fb.png | Bin 0 -> 596 bytes android/res/drawable-mdpi/ic_ad_dark.png | Bin 0 -> 258 bytes android/res/drawable-mdpi/ic_ad_light.png | Bin 0 -> 245 bytes android/res/drawable-mdpi/ic_ads_fb.png | Bin 0 -> 349 bytes android/res/drawable-xhdpi/ic_ad_dark.png | Bin 0 -> 427 bytes android/res/drawable-xhdpi/ic_ad_light.png | Bin 0 -> 416 bytes android/res/drawable-xhdpi/ic_ads_fb.png | Bin 0 -> 892 bytes android/res/drawable-xxhdpi/ic_ad_dark.png | Bin 0 -> 619 bytes android/res/drawable-xxhdpi/ic_ad_light.png | Bin 0 -> 599 bytes android/res/drawable-xxhdpi/ic_ads_fb.png | Bin 0 -> 1471 bytes android/res/drawable-xxxhdpi/ic_ad_dark.png | Bin 0 -> 831 bytes android/res/drawable-xxxhdpi/ic_ad_light.png | Bin 0 -> 812 bytes android/res/drawable-xxxhdpi/ic_ads_fb.png | Bin 0 -> 2067 bytes android/res/layout/place_page_banner.xml | 15 ++---- android/res/values/themes-attrs.xml | 1 + android/res/values/themes-base.xml | 2 + .../mapswithme/maps/ads/FacebookNativeAd.java | 7 +++ .../mapswithme/maps/ads/MopubNativeAd.java | 13 +++++ .../com/mapswithme/maps/ads/MwmNativeAd.java | 10 ++++ .../mapswithme/maps/ads/MyTargetNativeAd.java | 7 +++ .../widget/placepage/BannerController.java | 49 ++++++++---------- 23 files changed, 66 insertions(+), 38 deletions(-) create mode 100644 android/res/drawable-hdpi/ic_ad_dark.png create mode 100644 android/res/drawable-hdpi/ic_ad_light.png create mode 100644 android/res/drawable-hdpi/ic_ads_fb.png create mode 100644 android/res/drawable-mdpi/ic_ad_dark.png create mode 100644 android/res/drawable-mdpi/ic_ad_light.png create mode 100644 android/res/drawable-mdpi/ic_ads_fb.png create mode 100644 android/res/drawable-xhdpi/ic_ad_dark.png create mode 100644 android/res/drawable-xhdpi/ic_ad_light.png create mode 100644 android/res/drawable-xhdpi/ic_ads_fb.png create mode 100644 android/res/drawable-xxhdpi/ic_ad_dark.png create mode 100644 android/res/drawable-xxhdpi/ic_ad_light.png create mode 100644 android/res/drawable-xxhdpi/ic_ads_fb.png create mode 100644 android/res/drawable-xxxhdpi/ic_ad_dark.png create mode 100644 android/res/drawable-xxxhdpi/ic_ad_light.png create mode 100644 android/res/drawable-xxxhdpi/ic_ads_fb.png diff --git a/android/res/drawable-hdpi/ic_ad_dark.png b/android/res/drawable-hdpi/ic_ad_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..04f912a4ea6a8691e7c3b26b98550a0249e420e8 GIT binary patch literal 358 zcmV-s0h#`ZP)$Pv5+_Zt0#FepAWRWh30?o&`r;|`+WpMx zZpX*&ea7#x*}Hi^zdX-<1PIYa^iSHF8NgTFZ)poNh$cxLt-_T~pwuq+J>7z6$^uXK zpM_})F?OAN0kNFp00W(~gkHr5=@DN@oqSojD?!hC;JgZ@s~R@aaZpnHgbudxpzO$+ zTc!9!gHCn47*ia{y0Yvq#a+DO9dpJ1MsWw3^2NHvn;MX4J=A({T(P9e*XkBuYQP=N zaIN*NQQTMdiC&%Jd33U>Z71sm za<3sfPQIZ$E!oGAT5^8f$<07*qoM6N<$ Ef(nJAQ2+n{ literal 0 HcmV?d00001 diff --git a/android/res/drawable-hdpi/ic_ad_light.png b/android/res/drawable-hdpi/ic_ad_light.png new file mode 100644 index 0000000000000000000000000000000000000000..ebbafc27d3c2d9a930c01c68bb69916417fd555c GIT binary patch literal 336 zcmV-W0k8gvP)rOFhBxG1!+Mdl{F1I zY)=e`18E^9jxLVWDh-F6BR3d?5jZ*jX$soFGU#^X1e1L4nzet=8 z-k2BrD{e8@jO_)sdqrY$%e=~8@fHglfF-cQ_MSvs!t4iR`XkN-UxHoxOMz3I4knoG zG7}*@PD7Sy&akk+eAFU-<2im{`yEuMj+5vDIbx9xM_$ML#uQt)2b-LY|KTk_2CT>& iuu5XUs>K0o2mk;v!esCzjvd1Q0000Px%4oO5oR45gVl1pe4Q51&1duP&2Oxmrw5d^7dcZSwSTA@4l+9(zmZj>T)rMUC8 z5Em+F#YJ%;NUe=QcLfntq|k>E7xhu08*yhB);h@~naA}cb}Y0JJ$K-qx%~fs&-u?) z6lU*|aE1u#B}_C-e(yB@8H$Ngh?bRfpjvC>4~e2X8c z)zNwk6O3@A``zC}G=dj$fKg|8pE|_K$_Xid9>+Ne`n8DPhd|od_c0dIae`LO8km?lOgi;~guO()(u@1!BF0o{ z?-;@)rYMvyQ<&P;;H{Bk6{F_ygGmDQnZdsA4!6d7a{0Q i;(mES&szaoo&5szDazjv71kF30000Ds;Utz$m*X81dL<98C8bq}&1|C`vRYxB^G$00!l{51fXI$_H!4P+>5Mp7P zZ{_^d#sL93so)WU8e({mw7lR3Gfc3}233erkzffAEa4+UB@_Hdgl>`G09UM4h_MDw zsA7&A%BEoUC_DHNHASGo7*Ficd<|EmAd(H`Sd{7so9bB)00lPlH&q*JivR!s07*qo IM6N<$f(IyJQvd(} literal 0 HcmV?d00001 diff --git a/android/res/drawable-mdpi/ic_ad_light.png b/android/res/drawable-mdpi/ic_ad_light.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e3a9564a38ccf0b4b28c8436f0319b0174e6ac GIT binary patch literal 245 zcmVdJ^1_ZK@>r)m4GPJR5f;_%xQwv*uf7ftb)dua)DjV v@*3`?U;;5*q22DK2;@dYME+q%{_7Px$7fD1xR2Uh3kG)C*K@^3**;!YxP_PR&zC(ogOAwzx2#AFu7Gh(Sm+%#=)n;`R zvZX#Lm)vF&Nih3Or{JJG;i^00000NkvXXu0mjfeWQ~E literal 0 HcmV?d00001 diff --git a/android/res/drawable-xhdpi/ic_ad_dark.png b/android/res/drawable-xhdpi/ic_ad_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..597cd597feef7cd8cd19b3a28c6882f0be535ac2 GIT binary patch literal 427 zcmV;c0aX5pP)+T5P0Qxhx6n zf6ir8;Ww*Shp48RTQ3k}fLk14KG7=b4sr?HKvd)zXhm3q^AP3|9wo~dLyYQ_z%G`s zjs`{$JfiG#1m*0&L(}|ZJqTJ;0v}@YU5IMH&5|@Qg5Vq{5cE;@3@l*?K|AfhDn!+= z0a4pNf$AB8DDA)&1S7K(Um>_k5ZHlWkY->ReF!ei{0xFmEP4j^An2wUSc9k$-qjGI z4m<)E@BzU^nt^S|4EG*^hY(dyE3jg|bq6~!*ATT53w+YqCQdQ7;XZs0>V1gXgNxaM zsAJEYWYsgU=yTQGLGXnNTujMqptqFo;?O)6GAYRZbL)G9xxqTy6<`BVh({XOz!?9Tvw_Mla`);G z=L9yvE5!4O2b^I!?OlvuQ@DpXJ!PP;k4;#G2&tBmHB2F%>YTt1Rk# zCq>{f#5u?+u!0E$ZS2L|L7eqiVAuV&jY~}Za1G5ueF$;turWIj=UlOq^su3w6*XJk zBLv^xi{L9^0Kxl=z~O>>aTMgJPx&Hc3Q5R5%fxluv9FRUF4ZZ)SIAx1+a6ZyytgjL)z3; zs=w@eZ+G_nKJ)wYea}$3xEDYB9ar-RO?H1z}>U0d||HpNy6Fyo_m`x{23#+eEt!#9iQn1 zg4aBw`WkjWInQ9vN6gs)!p4XqzAA}9F4!(owa?+=b1H{;UY2aoEBzj84;)#$UafzPHC7mxg`w?Y@P_EY4p*s z(yohdCwlq2&D9L|GJbr{XLS>#`GZ6Yj?2j2YmN_d*CvEB(f z$lGaN=&zVYngudhT^w;!O*jkTek$$?Z!UpSKTR!Q zayd8`(0Q}KS5pCtVMh2^HA166U8zN}^w<2H^39`^i+WRgYaPAhrb(_X%Q4-F>ah8h z*ewubU)RMjj}6OA-~N&hpIvN^S$f(6Ccl%`=K}RW@WtvZ#hy)+bgU|!bG-5BJwbPo zN;#==nzCxAOhP*&eeFv(6#K8=-MHG-6YFRim34P?GTvf7+Rn>8rPTsf?)wWUJV$c9 SbGtYI0000~!}sRljI%Ro(x3#-sX*$KwI0 z4NV{j5fB+B0zqg3wIQI4QiL`Dk);|a!zs2p-ILiW0@bUEtqmf_)K=ZIB1cu{*Z@Rw zI5+|UIk*9c9M?d;cZDVWU`UC93Cy=GnPmf^4G7BuHeaaP!5?rW{dtZ|lIKZ2yo56_ z)!GYK$s4w?U@~9P$}r2EptjbTQa5=&|(b+*`5aBp1Qw zAqp*E04#*BG;`ME)!Jj}-rY(|{ow^&1Pjsy-q74c-Cb=3zn7MI2&bgK|3Q0~!E7$g z-A`xmSXyQ+Or!rTGYpQwH)-y7I)hKp(mkOi{F46nKqHtvq}g8S2yR2q*GJN^Q?y_| z!{GBYJ2f4_^ZDT{9h*wWb{YmBr`d(+2)?Cwn6-qT(y>nvGYGy!vlCJs+=CW)1O3QV zUeX}=8O?T0b?_!|Tsor}+?HM|ex&17`i(~LUudrpypHCsr#g5fIGUEa3?2nPq?tSz zoa*2swCF}?Q;F#`dtVWJ0|u4^&4K-pM>D%Y=+ZfPXbnGIdKWM(M=GoF+!wUlu zozufPw8UecN#H$nhs)qUunM9e3#5!-f)veT1kYI1iq~DOd}=L0C{Q@nJX? zO?ZfhWdwPcWke0rj<|vN5jE8^I+-?Hr%OjC#7Eka2LO$o<_RVkm^A5ka^Zn4ckri`3B%0Jcm6lZ(uV( zIB)_axoHuYJ%#y}J1U@b14q!2SJz$6z)z^@yb$b8+002ovPDHLkV1gb+5x@Wd literal 0 HcmV?d00001 diff --git a/android/res/drawable-xxhdpi/ic_ads_fb.png b/android/res/drawable-xxhdpi/ic_ads_fb.png new file mode 100644 index 0000000000000000000000000000000000000000..2fae0821b476c405245cc068c7bd4ce72e8786eb GIT binary patch literal 1471 zcmV;w1wi_VP)Px)c}YY;R7efAR$FXTMHv3(oZaoV+nZnkwOE1zm87LytW_Jann*$_`A14h_?YT8-N8RufTMFglKFxp05dV?2d>a@D&JSK6iH| z5fl;-7zWfuJ|`f>H)wpgE|-nBz$b9N<~+^AT_bL;54TyGSr=*ngLEf6#j! z85+U}2(g;;AH%ly!)L#Sp-?S8Ip;%j^CX-}1KhwVUj&LEBDE%m^hJCmt z-b6yxvEo~~pwF>Lh~@0R3YWbPxrsKEJ+l~oHO>{B%nYpJTws*Yn|$i$v%m`JaRHiE zMR0NWXLvn3>HS7}x{lu-8lt^-rD{OTqW-h+d5*#8eGmSgdVJce32T%lb?e_Gd}{=G z#Yf3pb7*Fa-_!8q=<|%x0vbfy@hH4SAx7l`xQrS|S~g=AQF;&asig`>r3gW zrR*M zi@mop1Ba{vhUf(<-%aopFw7d1`*iXAw&7{t=`h>#w@j#noTUW#Vo9Q({rgtjG+CTdt(~F6P8ZZ^>@#MkyFOp){^0B2&f~X z3(K2SPhLDKK+ubf+Ie2JCuauiKb{YBZUL-lCG-Cn0e28gd#R(tkdon)5oDAGNb&rc zFis$pcNRO!L)il>VZd~`@%c})VTIR24!=SV?k5cCGbt*`X42MwF#~))gv+}J8!9!+ zrSJaifdw9bj5R{UpCrrzI>&I*7$PShC4!KNJy7mrh{aArMs8wTou<_^DBIH@5Uu49 zv63EEaGP8Pbky+Vo&>~hMq@9A?O$>8asvvJFPq4{`hq!~8Wbg`+dXm~uIR^{w6*aXhDA{S9}I+ zfLG8zxram0zv&b?pzNqH<_>Dtgn(m(2fxbj|7$%3>;Wz4UK0WyH$3o$cnkfLC#d5g zplK0X6nelm_#kX0)K>?jJ)x(7CxvnQLJv4U!IK>${QQ8YfZK#|r$Y~TOL)*dpuTE| zH_$(Mhh`oEE)~XI4>zDZaX%1_lP=?#9s({F#@!4#;6~vAuMv(LB^-CfL%{XIxC@~M ztcU0F-}7I+Wsz)(j4R~g;`Y8GO^Ina(Aa1gMyVUArD>YEAI4BLg{30#1d_Jk1v_Q4b3 z_kXlU%ts-#;YR+Jct%ho)o+ISo1*gm#=8I zVNY1wGT>|6!#ONPkLvh#LbMOoW4RyOw}TP@U>FF3)Ip*Cy;edX`<;VxG23VdV08Al z$Y11bc-tOW`t8IQ@vX=lGVhs#%%O)iLK~@9NWJEX4a?-N^FATN{*xK^$Z-Gw002ov JPDHLkV1l|6g@ynC literal 0 HcmV?d00001 diff --git a/android/res/drawable-xxxhdpi/ic_ad_light.png b/android/res/drawable-xxxhdpi/ic_ad_light.png new file mode 100644 index 0000000000000000000000000000000000000000..04a0ed230e0572b1aeeb440dec40eb18334c4769 GIT binary patch literal 812 zcmV+{1JnG8P)NklOyx?c^etwp%#$av(zbwCJJg{I z^n^ap9|p9z{WKaec*d+wskH?U?;4BaZOr}{W{mFyFb>P5 z10>GCaLqC9sT|;5Fb-F>1GL`2e1+b6LR%l@0AGP|_zt5o1o#3jS-0Q=7>7?VTDZ49 zpn3zD2PVa~3;`Y{$Blz?V2JYyHxkv=ciQV>FAyNH5e%_VxJR|{hQjB>$-joHq^arB z0b18d%}W^A3IVQhG`yPp{israbHEU@TOq)kjuRga-^iYDkaU37OH#Kd_5jDh53-dQ zU|k_iEmI2c7OA@wdw{!Anq^~rMJd2Dr0!1a0X|Q;?hJ>oY)_~V;C@o~H0A(jgJI*F zaG4ypRUyDVr0!YF0iGZye1sggiX8V?A;9CL?m?^p4uMbPgy)cBhb70@nkE_`-*;Y% zH9)qie%MA25pVcv6%FtSsXGy4fV|0Y?_rQofTQ6Xsaq9efMdwsuTe{d0zBlHh>Px+%}GQ-R9Fecm|JLE#~H`}bIxAnwc=W+QR*v^TGNCCH3qjS2IDu^fkH_lXemLa zkf+k;779@xN1_ypt6 zG5)z!e@&{6(SNRG?w9^*boNpWE*gM1VC|?X*%~0>pq*!CUZHg$#{qp&L*FmA`)H^7 z;2hjrm2T^@7Ca_I{0ZhzG{7M$bUsWyO-ZTVHH{80NK1=S0r3w7tt;%rd#h;Iug7L~ ziOyY=749Yg-N%83W$m*3+8N%*6=rfwInTVp`bDL6Hbmvb#ikb! zcRDSF{j>ww2pes6wHVXmv{4U>FSWN6RFjGiEa{DZEvZsm)WrF!Mn*#B+!t*Gxansz zIO*PV@_H_FfF9LLKg629$tORcv>21gprcOg1M=%j9A#9#%`4rV)4-`uq!Fjz_eGrn zY`Bp{WiO`{)^JaD93yc?wTE(0p50A|d<4)wYLEf}#dK3I(T1bmEhQ33y?N=jD&e%! zrOH;u)EU6lGn;*Y=tjh&0Qx``|MyB)p96ps?-|NNt5coT8$AY4N^lB;8*E;*o0AeAC)#=<5Z0xw`Hn#FG60d7g^=oC>M~jTP zuy_FRKg@Uq4nD-YQwg|foqlHcs)wiP6ZFin7-T=%o^RdWl1P zK_7{U3zY^*;4?u--7qGX-dXS4QQP;X)wgdH@y~Y#@OpJhhr0f#bTAX?U>MGD>PZcK zr@f*#az~dxzNFXQ-=kD!5Ca)T0!IKd*aXLLMEFyC0@0sv9WKWsLORUXDC z)-aOb5pDWj* z0>tF(B_c^cjE)iFTpno$=%t3^_tG@F<;01rG8f=1cOAW_&>NF2?l1?fHG2K8T}t(! zIx%#zb_8$(0C<{BN!1Jm!aGt(xm@auHd6eWL@8Xp&B+%B7;2}}#ej44nr;bK1HeF`pKfpa%h_rK5!M@#fM z{;tyY0Y<4+aGZ#8oQ?aaH&^~Je4Ft2Z&I|JQt3JVRNT8*mOsquU4Ab{pdog!6#Rk;RN_VR>AcpsW_X%Mi)Ovr(j)S{V34~*ikx|r*h^RosG}R3%ZOXZy9k&u)%gon=5N@UV>2y-|MzQq zfKgs%zl+m26=l$d%sXZl5!c76hrh-NPr<-%;41dRsRae*B6IVqROj{eUDI%JOXa^` z#O(k&U)Bqk+!`*ef}(d)D>JJfAG@iy_-hbafcQj!a2_Z7Hx=dz`o(Gfe(fx^1K4hd zhUbrBCc_I$SLIhfQQ3Ol002ovPDHLkV1n;j{d)ia literal 0 HcmV?d00001 diff --git a/android/res/layout/place_page_banner.xml b/android/res/layout/place_page_banner.xml index 54c20def0e..015d6239ba 100644 --- a/android/res/layout/place_page_banner.xml +++ b/android/res/layout/place_page_banner.xml @@ -60,20 +60,13 @@ android:layout_toEndOf="@id/iv__banner_icon" android:layout_toRightOf="@id/iv__banner_icon" android:gravity="center_vertical"> - + android:visibility="gone"/> + diff --git a/android/res/values/themes-base.xml b/android/res/values/themes-base.xml index d4883ac2f2..a38dd3729c 100644 --- a/android/res/values/themes-base.xml +++ b/android/res/values/themes-base.xml @@ -122,6 +122,7 @@ @color/black_4 @drawable/dot_divider @drawable/button_with_border + @drawable/ic_ad_light @@ -246,5 +247,6 @@ @color/white_4 @drawable/dot_divider_night @drawable/button_with_border_night + @drawable/ic_ad_dark diff --git a/android/src/com/mapswithme/maps/ads/FacebookNativeAd.java b/android/src/com/mapswithme/maps/ads/FacebookNativeAd.java index 5c765f95e0..2319c28e92 100644 --- a/android/src/com/mapswithme/maps/ads/FacebookNativeAd.java +++ b/android/src/com/mapswithme/maps/ads/FacebookNativeAd.java @@ -99,4 +99,11 @@ class FacebookNativeAd extends CachedMwmNativeAd "AdListener class! Not '" + listener.getClass() + "'!"); mAd.setAdListener((AdListener) listener); } + + @NonNull + @Override + public NetworkType getNetworkType() + { + return NetworkType.FACEBOOK; + } } diff --git a/android/src/com/mapswithme/maps/ads/MopubNativeAd.java b/android/src/com/mapswithme/maps/ads/MopubNativeAd.java index 88be1d5d27..acc3f71fb3 100644 --- a/android/src/com/mapswithme/maps/ads/MopubNativeAd.java +++ b/android/src/com/mapswithme/maps/ads/MopubNativeAd.java @@ -14,6 +14,7 @@ class MopubNativeAd extends CachedMwmNativeAd { @NonNull private final NativeAd mNativeAd; + @NonNull private final StaticNativeAd mAd; MopubNativeAd(@NonNull NativeAd ad, long timestamp) @@ -98,4 +99,16 @@ class MopubNativeAd extends CachedMwmNativeAd + listener.getClass() + "'!"); mNativeAd.setMoPubNativeEventListener((NativeAd.MoPubNativeEventListener) listener); } + + @NonNull + @Override + public NetworkType getNetworkType() + { + // There is no more elegant way to detect the type of the native ad when it's hidden under the + // Mopub architecture(classes). + String className = mAd.getClass().toString().toLowerCase(); + if (className.contains("facebook")) + return NetworkType.FACEBOOK; + return NetworkType.UKNOWN; + } } diff --git a/android/src/com/mapswithme/maps/ads/MwmNativeAd.java b/android/src/com/mapswithme/maps/ads/MwmNativeAd.java index 3ebeb6715c..2375fcf908 100644 --- a/android/src/com/mapswithme/maps/ads/MwmNativeAd.java +++ b/android/src/com/mapswithme/maps/ads/MwmNativeAd.java @@ -10,6 +10,10 @@ import android.view.View; */ public interface MwmNativeAd { + enum NetworkType{ + UNKNOWN, FACEBOOK, MYTARGET, GOOGLE; + } + @NonNull String getBannerId(); @@ -51,4 +55,10 @@ public interface MwmNativeAd */ @Nullable String getPrivacyInfoUrl(); + + /** + * Returns a network type which the native ad belongs to. + */ + @NonNull + NetworkType getNetworkType(); } diff --git a/android/src/com/mapswithme/maps/ads/MyTargetNativeAd.java b/android/src/com/mapswithme/maps/ads/MyTargetNativeAd.java index 6a94af7beb..2ffa51b214 100644 --- a/android/src/com/mapswithme/maps/ads/MyTargetNativeAd.java +++ b/android/src/com/mapswithme/maps/ads/MyTargetNativeAd.java @@ -105,4 +105,11 @@ class MyTargetNativeAd extends CachedMwmNativeAd "NativeAd.NativeAdListener class! Not '" + listener.getClass() + "'!"); mAd.setListener((NativeAd.NativeAdListener) listener); } + + @NonNull + @Override + public NetworkType getNetworkType() + { + return NetworkType.MYTARGET; + } } diff --git a/android/src/com/mapswithme/maps/widget/placepage/BannerController.java b/android/src/com/mapswithme/maps/widget/placepage/BannerController.java index 1cf43e84c4..67e07b2405 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/BannerController.java +++ b/android/src/com/mapswithme/maps/widget/placepage/BannerController.java @@ -13,7 +13,6 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; -import com.mapswithme.maps.MwmApplication; import com.mapswithme.maps.R; import com.mapswithme.maps.ads.AdTracker; import com.mapswithme.maps.ads.Banner; @@ -70,7 +69,7 @@ final class BannerController @NonNull private final TextView mActionLarge; @NonNull - private final View mAds; + private final ImageView mAdChoices; private final float mCloseFrameHeight; @@ -96,32 +95,18 @@ final class BannerController mListener = listener; Resources resources = mFrame.getResources(); mCloseFrameHeight = resources.getDimension(R.dimen.placepage_banner_height); - mIcon = (ImageView) bannerView.findViewById(R.id.iv__banner_icon); - mTitle = (TextView) bannerView.findViewById(R.id.tv__banner_title); - mMessage = (TextView) bannerView.findViewById(R.id.tv__banner_message); - mActionSmall = (TextView) bannerView.findViewById(R.id.tv__action_small); - mActionLarge = (TextView) bannerView.findViewById(R.id.tv__action_large); - mAds = bannerView.findViewById(R.id.tv__ads); - mAds.setOnClickListener(new View.OnClickListener() - { - @Override - public void onClick(View v) - { - handlePrivacyInfoUrl(); - } - }); + mIcon = bannerView.findViewById(R.id.iv__banner_icon); + mTitle = bannerView.findViewById(R.id.tv__banner_title); + mMessage = bannerView.findViewById(R.id.tv__banner_message); + mActionSmall = bannerView.findViewById(R.id.tv__action_small); + mActionLarge = bannerView.findViewById(R.id.tv__action_large); + mAdChoices = bannerView.findViewById(R.id.ad_choices); + mAdChoices.setOnClickListener(v -> handlePrivacyInfoUrl()); Resources res = mFrame.getResources(); - UiUtils.expandTouchAreaForView(mAds, (int) res.getDimension(R.dimen.margin_quarter_plus)); + UiUtils.expandTouchAreaForView(mAdChoices, (int) res.getDimension(R.dimen.margin_quarter_plus)); mAdsLoader = loader; mAdTracker = tracker; - mFrame.setOnClickListener(new View.OnClickListener() - { - @Override - public void onClick(View v) - { - animateActionButton(); - } - }); + mFrame.setOnClickListener(v -> animateActionButton()); } private void handlePrivacyInfoUrl() @@ -155,11 +140,11 @@ final class BannerController if ((mAdsLoader.isAdLoading() || hasErrorOccurred()) && mCurrentAd == null) { - UiUtils.hide(mIcon, mTitle, mMessage, mActionSmall, mActionLarge, mAds); + UiUtils.hide(mIcon, mTitle, mMessage, mActionSmall, mActionLarge, mAdChoices); } else { - UiUtils.show(mIcon, mTitle, mMessage, mActionSmall, mActionLarge, mAds); + UiUtils.show(mIcon, mTitle, mMessage, mActionSmall, mActionLarge, mAdChoices); if (mOpened) UiUtils.hide(mActionSmall); else @@ -292,6 +277,16 @@ final class BannerController mMessage.setText(data.getDescription()); mActionSmall.setText(data.getAction()); mActionLarge.setText(data.getAction()); + fillAdChoicesIcon(data); + } + + private void fillAdChoicesIcon(@NonNull MwmNativeAd data) + { + MwmNativeAd.NetworkType type = data.getNetworkType(); + if (type == MwmNativeAd.NetworkType.FACEBOOK) + mAdChoices.setImageResource(R.drawable.ic_ads_fb); + else + mAdChoices.setImageResource(ThemeUtils.getResource(mFrame.getContext(), R.attr.adChoicesIcon)); } private void loadIconAndOpenIfNeeded(@NonNull MwmNativeAd data)