Rv>@l}ZQL4=GO3bc<3y}ImJgYO|w2S`+88KUnT-Z}dm z3`1qlAr@|s8@I^1VfeuVQZE-3T8fN;U1Sd+R&J4L5MhCqe{_HmY?s(`LF>`|~ z??EKAB5LLkLtBW;C*=CAoBho=3vN-+mn%VMDH46 z{2FohgtXg!JbgrZ?ca#cqJ9`5zs%pc?!hB0k@7&4;rK(s9P-C7(rgRyUuB`U$lxMm zaup)x3$nBt-m#4MegX&Y!vl{VV$bhdC*a^9RDdheV;dITf-JkgEe0bZ$52WONI!dI zy)WulDZK3&1zLQ_`-@10-VKGL{7;}|Q}8k%>h~2Q{{rbZiOO?B=^j72&7qcH$eioj zvNgEc0bG6ymEwddy1hw0L)9I@)q0+}*HB;nq2|_+X>o`V2ohw9YC)c)Zapa9oIB~G zA_5T^sQb?$$R8yLzZ#@ZCel6$=~RmR+KV#NLRBRq`zlfIDSN~JYYb_ij;1ae(pX9r ziNq$P=3`}w7jXW3@N;Q?d2rk#(^D?-^6zR@b=l8 $9{y=oCe9<#H&i(^~!60v;dJEZe0($lO*S2ox_YbrhX6xT`<}SA= zEM9*yGyQC=*R`TD7isMzSd?WjUa2~s7M!D9!u6->=?+How!OXG$sGT?d8ctCI3y2q z=*#Wm7fuP?4Y3aqqkJZ8QT774>R;_-J{Q16s{U~}S9 {ev+vv$m2VG_b4iksb-@!RIXLjSm(Yf7G$f^VWa{&W^;yCq2Cjnl C~GguW&`vrJF;!%b<6?C_G{@NyiD z!`3~oLwIyv7SMZe5E&VXZNmI2;A(tfm_6Cp$g}=6+nGBwV4jileSvg?g{aJaVHhMM zort8p2z){O^O#9=A-?9|;1Tg2H-6YFU8x$)ONISA*%2LkOt;=ZD;0CV-@;3CJ^&hA z(;t>l{O2UCa@;UGtOImOK89f`tCa?Q1UA3(4Gug!eNSi1`SAsa>6ne7huDM<4lgnl zKTe#TGl%U&IOPZ&y$I8l^V= P@(; +b^H?NF`I4G@ys{Mh{d(nOd`6$w<+`4xZ(H@Mb~ppDdxpYe^By- z{~|M *qSCNn{o )b+(~J=$K-hv83&M^(bgNeS3LR yNK2Ql%j{Gn (z;t|x?qOC%Z!-@O(Tw2sH`^aV%}1;kL }+`3u)&(&ga(JNxQcV{W{ zWClP_jLED)0Wr~$E34p)bStbS%@@R1rR6bQ{du>a89us;*q8fYiMK9IJaPf`MP%Pb zTm$x)0^gB!^xTJ1q@5nHb@0 |24~?GSz>EFmy)XT?bk4-X|76H$6VBYs#4;;+)s z4U7`gl>Vw1F_wD~x7(%*TEo&d*H8}WWoOd2CzY=2K`%VJlfVo`vsDNt`Y3(z3VVO= zdxBLJ4;af$&7GRA;`0gGJBm0G@tX!H@}oj9=aPlQ8{mzGbzq3WkIsT-5^-NhV4y## zFCATR2OjWR|BF_U`wA4rbbOoOmlqj%P=OvCq7@D6C7B)~d@;@Nv7RM#yKcAV9D%dP zc5}DYOGMnt{PCD-6L)c1Y$)ovE&Jls`iZ$&Y4mgz`ao`(G=Q@jUl(rnW+xhe{ zRuK|CH$O+EE{+WjUr$nJDtVrFVslrs>fkT^8;H0|W%CK@bC q$ W5{Q^SeUr@ z9aTZPkJA2QHJ`8K &Zl zq38QovzyA1(p9_(S4%g?O^^FtH*Q;{U-tj7x1YXvCmg6NEJ{*~U0PB4^1l^dl!Qgx zm=Lt`Dr&Q@$Ea{a9%w2kcpMZ7PEvWG+Mt6h7F@7BedE?@{%nq-nPJx!tQPQ
v~_m7K}=3xdjy2n~L+&YA;5`iF3 z;?jCtE(eTL;FX
@l?& znNqpij8 2C+?oLQ&e z0;M$)NlbwcEv3K){NZIrn40*%PrZlxhB1K9gP?x5#T_r+7_kxUz627}8uMyv_@7xY z=Zk_Kb04AGC6xwl8(?Z$as+~3>GT+cG%dT-e%gac&rJ%m{^3m6Ep0ccc8q_T91^1G zun>NB>~`&|{23mL%QAw`n?kY9Z!|OYwg*d4(>)@ad~gJdmTJy&@(hihY{hc!%?qWv z$aRNe MqWZdu#bUxRJ^SjZ|M!2ztR}#;<4l*oDo3K!!_R8_(@H zx48dmX9g8ipe!22>QY$BEUA@X(4z8HU{JDeF6c(pGSUK$Ar+%lfSC2=EfvByp&)Si z)3ZT{+m2?)RsEz(t|+7#hS4jg9o12WVwDPfmUI$m92^eO3^y=4e}?H~s~Y48(|g)C zF3fXj&cIH!tb*g9ym$e{Qb7%ulzYuAzM(yPe2Ha+GvD*KNj$|H9gO+Syu7H(boUn) z7K(feGzIX;#kWr7(KTit>l$cqv3d%AyGcj2sx2B~gkmeR6^GkIl9;`
rxbUnGDkd?bEd!)6dE-vy+{MuhWZRfH2A|mWyP7A!0oexE#r% zrNzbx&}~osBCuV*dieB2w?5{Vank)X_#djetM=YymuKV#hJlB-IoF5RkKUVFsm_nt zZaO+bR#Gvy;0YZ5033{zOr2dmSJ|RvMn36Q;^C17t|h>6cBDS;adYLjX};pckAf*H zugf%uIB?~J)-+@5>#g`?th{q%c|`_^^*3o1OS^hpF&JTjf7v)_u}1Hic5=U zJjWk5+y=fI{tX>)DE2Mz5IFaKsI_6tvoc$cb~}nIeU~lO;@#C~A@Z7UV-C*uoA#p! zN01sTQ1N)Sz7N8xt7^Y{ f3Y}?%nSoH; uc-Qjx7Nd!fb(A|-V z{|3mnyR-qg^WWEEDP5yV!%@Dpo3dyY_kqAT)ygEuu #&nNi<;H!dPwKFZ>LQ6PbAJ2Iy zG0GYI`~_L?J<^`K tY@L$T)W^MTxeQ^4ce`DViS~bMvTAa=BM6}| z5AjdJSGxY!vNH3nnyn43i;BMY{yCB%hnQgE_GCg6a*A&ima|*?BYPEQx?N5jmnuNu z n+@Hsy3!?MkE9izn~JLnS?f$I}*Ripj9!C%bw zS>{PdKI!o*8-G?U18iWq=B=n{jqIyT-49_>eckI*H!ts^!FRs)3Int%qKHpYnIi>* zXj&~bR1??nDJn;a?!8#;I|VNR6xy!eK8}#Z5oi@3%<=57!&ndh8zhHu4<%t@Qw8b; zy#lNo%Q>^uZDe6DfrFA7iHXdx!$eCT{+_sIcw_#NH7Iv+)Fd_gS0m+K4Cqa_^e<7} zC)U(VbhA!ngMv>2=V>)5 c@{s1>vMwC|ChdYO}BJ2AGGKWL_F0HTJlpTMs5+QDTPB(H|&37C7P-lA1Q zN?lg{b_cuJ8i~y#`u~dnptzdVEBNIcTUo|$Ml;%U4UCn*GBBiKd_R}nuVrs vmTbC_8BR2E(MKRSTM$5a0 zEH3{5j}R&ZtFvAWi-atm+JjuNdEd5^HL@2$*5e&1jwjY+KP=O*&ZR4T$!nt$R4ND+ z?O)~3O#cjJ76-4nkhRmL);QKF=g!jem*}q1mjYkMWPQ=J#T3UEoe`^(<7H`q-%UAD zBxMpqzX{#heAR7;SD`#sPjx)hcQE!=Dmo*k--_8$<|0{>u|GNN#J{{xYS(vkmfh@r z31a!UJYUO6k?QrG6FhPJ*Rgy~4~PrQcjA#<*CM)~&28}UmO44{Ygaaoo7#w8<+#kH zRn%2e+Al3s*KN1%ln)PRrL%GQc`-^xcq!R)dSa}1_6CdYmdG> z=KoGoMj;DyB$*Rm0ONQbe4#ZwbB8)Q72f2(F5Z>xLWL!D9zGU|_Zx%V!HR5J^sgGc z6v6k_m8=|qZ #6PheV1NfI2@^;+X`yMm2xmcc0EI2C|y7^KCh%@?wEgal`zAG7#rN zJJ8y?@&}gN^m)99+J3#m*hS)ACF^Rjh$gG|Fe5SScZao%0S@q;N3Bn^mzt?prp3Dd zZOWG9=6K*^z2_a_f{3uUc*Pb0GdKgZ=9V503=ic2PU=h!q~?*tr?A(|L}-4BI#S(o zg!!2T@ECM;_*}m3lZO>t?n==wAwwYl!9^y{zV}`I734^7ooz2R5qfNC2$cvTV8OvE zwdLsLViya5Y~N}U@co_NpYCP`8g5*#!`&pM+xm}bO{DT8F#DPM;uLqT{+c9bs_iZ0 z05$5NRAwGIK%pm03{Rynqi=t24up8g3;$f)p4N)`cKa2g486SdXIcT?i}Gi($Ab(1 z*vB|m-sj}BFl&_Y=ex^TUXZu $JTnVycIcD-~8`bW8Sr`aM($e zW)5IziG@Xk)^wOz35Iqwa!2_V)JROGzmgt*E&hO$nQ@0{R*84`ZNEe4C)wUPnbgr5 zGUg*AfS^E|D@_LU<2Of=G|p9SQ-LN#9|*)|&i|Mne<7-5ARY=W)A@bEQ2Pe#e=q9W zferSdwQqisv3yIexG9^uGyZRGVJxE_@37RT1+d;5kZQ9+mG?F)t)}T_AO=d_*O5VE z_;|mPqhDa?$G1c@adOMe%UfLgbN32Kf$7`!xxj{+Okd;iSz^+bd!=90s|?7-yvSED z{`@eRW4>X2l}TgbtrKXL*R{XjVQ5abi5*)BWUaI_FQCvwywKD(VB+E!e7Mn74)@K& zCOgu^Z)TRd4Bi0yvixY(x@L#_C+GwQcQiyp+e=_S*aBa2g1J6XI9kO?Rs7xE;B0&? zZgHMP(=MJ^)3veN{vx2T;MqzeUFp95aAnT_w0cs)&fdQ5ge5?PhR3Wu>>(fzAPn0h zt5r7!HC4EqDeg{{nSDM&FUl+D9K1Lg@6% #ZA4|ii_v;j*d=F$Hy$W0-ipZn5^ET(nnV- zpVJA*3(YrcYquCpEgVmhav(3qv+A5w*Yf9Q7nVMVWIvVZFwgj!RtF>geuY1`TrrXZ zN?`?-zRy7EpX mM0FU3~3 z1MjwnncTo%;q~SPJh^q5^bYf0nUJ`>dl+=F^3yhkoXE_(`yk*#T42w6ut7`xy*GTh zrcS%NVygjDe0sjo^H54*8P4coPfMofJ#=+d%EVmr+-qZ<`X|OBK&3+izU6IgQoZ7W zX5qbfUh^{7+dh)C=d1@LZx>Q5A5lTd3v4elxBG+89ui&WR-qmLkUyHdzM(JBgw8q^ zrIC>w#6;q_L={O1xd9yRZ+Kov`Y2!r*vUvgU8AHAeG5D<0I8~y$Xe|r^mWbAVS9`E zah#1`82T1gyAc=`@E1bQ 3!wx2V1T z_0n3J%A~7pBf1;w(Gx~)_RDC<=#t4!AE)~8dZPRC)CLj?BnZ_eyjt+(+wAM+9&DP( z6>Y?1 !>0HXdB% zes=J=dP?H1to==vL|qh4H&19p GJgr~^K;hnG5}3!MT52KcE(-gIj &ebwy+PQEhsF_NTul|9Zo7}wg-Ba=fQdN0`nGdl%}v{i~dT1Lx1M1QqluY=|_ zHBv)# #SEba=w zDxK0YazNXX37RWRBmYYk|Ff|+$pc!gb}w@?+b`_a)jT4|hvRT+I{LeBipEYE5)#*0 z+>BKAXa8)6-8d5T?AgL-ewV)&Kd>I>b&GC&W``(?To%FBbG GNv^SHXoqzBu@c9 zbt@c8 xfG<${i7Dw{udeI{25$9TTrD6RJ|anpDpXFq+6@D-YIcW`%ZQEEfg; zn<1pS;yfvV1b(3>b*3pTYZO$pP8>VdTt4Od$+CiO>F(#pD%}5-w@vveSQ-2*ks%~c zF$G`@= DIrMYzflVY3%XNfN*&nI796 zy_3*3E^IZExe@<{iR=>i1I=6*j2A^2{N;xzHL~_&4V_-4FFosvdk)hz18ZP+QM2m< zN*59C2doFW5Bnmpq-Tj%9v|e !PD0w}rNO=LxwMRsFecVU> z7r;w>RfeTjitNKgT9boMi5I_033tiligOi`(Kx!n)QJ_T3z*i{7TXW7@$GHQ(rMwW zcHpM_r&+34e`~~%NJw#KX;i=3LqPqiX@#%concc|1OuYy N%fc{7hl&$z8 z2x%{#{j}X5g%)*mC;7Z+Lf04YoB!#IBj$ARQllb5Ez| zk zj8Cean|DKsD&ka{7-PNY@L?m2VAZ#))&t%dGnGacL7g2VYq3LE6fUWFp>E#pnaBT< zepV9@d2qC4ik&`jGe9&9{!UokaZYPCO+rh(X&-&*jIop!@w>J*>PH83^s09$L09_S zoR}!Y)Z32Ud%h-rX04v^O>_^ux+n6IEX4g~S=)O1twBgXuz$7iniKEsQyV|MZ;6Am zGi_3h#3!SRE%i8Hl@9wFl1d0DdMdje<)G;Hmsh2 -@cm1qpb2vN-*A7voX)yiuaDuicuWOfZvP z_&~#K{39;i91*XKG-<7u`OJlw&+C_rv$fp?SMPkm4#2UM&J?+QLo4w{gcwU+l+e9Q z;x*~*$O&d&nzYa~Tf|-w 8@1jM$jGlKQ-f{p}heA?-yXxUs_;{FI7_~>gpZPQ@xx(49$t8 zM@ xlB=N6RSf@kmzit+t<*TN40!f_mbW s$++aSQFs-Nm)n|_lt<|9D>^!o^EzX34JeyCc=-nnDcN(Rv zbYll|3?)_?&3??k #@x9HmH_XqWaF$3e;-#@R}YUj`)tWeg^xDhP$xk`u*hO` zOqUAmzYbhi?(*htfO5{*OM|r^u~i61T>L&SXP$hm)W}3Mo{fDBE1m}uW()v$wt4JR zJAHV}Y@+$~3;O>~VaLSA3C)xd%n((|kRhBHO0D6S4C!u(!yW#}i^uCjbl7ugjb2iU z8TXu_z;UEs=M`>-)+`S1$dTpp0ysRNV*4K(gVv$s*+4W15+V3ykz$cX;mQYnsMyTk zAMfg&1I|tn+M{+c6`08_*md#6=vQZ9hUsAlgS3Puf2VIj(&E1z+R-;Hoo~b&v5$K4 z4aGp1^ch5G=>u+Oxnl}p6q$yAfy`lg^r2iqbw`Yg^#kL^C2(96%SkiuEvdLRQT?Ex zvJ@Te)wOhV`q*HW>)N8@0}2B=;;ZT;%e-DwT_Y5);r41n0X-M*`|0gRsI+M6>}!@U zA`>sRza(jL@Tq4Ofrdh7nSUfgTrYbyYMKeY%y{29vB5scOk~8^%e|uXah)Mbj(B}7 zhZiRj_6WF<`R>Y<2ds7TtoBX25cuWn$QG=9<;Nm}69Nu!c)1~VEgYtH)UN5)gvKjK z%Gev?>$g`oa@uk?^uc>((HL~DJrT}-)upl}01goMV>hVj!6evIgf{({z(s!>H(i*6 zY4I%tC(ewQttBYQy5wTugui{lR#r+fE6!oPeQGa!MJ$zibb#M7FRz>nw`=YBNq ZjCctT<=9 t zQ21Nbtnx3sQIf%0O*0u2BIRv6*Z_-^98lDl5d@`@^HV%Nbl$VZgMz+DJRchD-*dU4 zOB`nv6;w_BQ|Dhg6e!pfKJL`^OIVvS;cQz&Un>NP?_Df@&NoTER_2-5`&TF4> kdkHKE2g?cV&N);d9~|EqE`Kn*m>@Z&5s-m4BH%haDr(*Jo(rCZ>7Asu zu_2Zpuk HQSsBW<@nn77%r@Qode*@kh{wKCP~>9xw;BSGLKD`wlU z+BPaa33^&ev;E0_mq inCvgQj0LWDY1aw zTr|pivT!fP{wC$b=zWfRV?svyzh5YS(*G|1hMuvEBlbs|Q+u|EPJ5W`Cn91*%{)9P zj$z)GY|EyFNywIx@s6B+=uq5@!qk3uWWahB*aR9oq*-mc5qga+B+QK zq7!S7ScRpwd~Y@*KgSrs2r<;{_PLq2Ws;~C7 + + + \ No newline at end of file diff --git a/main/src/main/java/com/yunbao/main/activity/RedPacketActivity.java b/main/src/main/java/com/yunbao/main/activity/RedPacketActivity.java deleted file mode 100644 index 4de98d450..000000000 --- a/main/src/main/java/com/yunbao/main/activity/RedPacketActivity.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.yunbao.main.activity; - -import android.widget.TextView; - -import androidx.recyclerview.widget.RecyclerView; - -import com.yunbao.common.activity.AbsActivity; -import com.yunbao.main.R; - -public class RedPacketActivity extends AbsActivity { - private RecyclerView recyclerView; - @Override - protected int getLayoutId() { - return R.layout.activity_red_packet; - } - - @Override - public void init() { - super.init(); - ((TextView)findViewById(R.id.titleView)).setText("紅包記錄"); - recyclerView=findViewById(R.id.recyclerView); - } -} diff --git a/main/src/main/java/com/yunbao/main/activity/RedPacketInfoActivity.java b/main/src/main/java/com/yunbao/main/activity/RedPacketInfoActivity.java new file mode 100644 index 000000000..296212675 --- /dev/null +++ b/main/src/main/java/com/yunbao/main/activity/RedPacketInfoActivity.java @@ -0,0 +1,29 @@ +package com.yunbao.main.activity; + +import android.content.Intent; +import android.view.View; +import android.widget.TextView; + +import com.yunbao.common.activity.AbsActivity; +import com.yunbao.main.R; + +public class RedPacketInfoActivity extends AbsActivity implements View.OnClickListener{ + @Override + protected int getLayoutId() { + return R.layout.activity_red_packet_info; + } + + @Override + protected void main() { + super.main(); + findViewById(R.id.red_packet_info).setOnClickListener(this); + } + + @Override + public void onClick(View v) { + int id=v.getId(); + if(id==R.id.red_packet_info){ + startActivity(new Intent(this, RedPacketUsersActivity.class)); + } + } +} diff --git a/main/src/main/java/com/yunbao/main/activity/RedPacketListActivity.java b/main/src/main/java/com/yunbao/main/activity/RedPacketListActivity.java new file mode 100644 index 000000000..ad98ce1c3 --- /dev/null +++ b/main/src/main/java/com/yunbao/main/activity/RedPacketListActivity.java @@ -0,0 +1,49 @@ +package com.yunbao.main.activity; + +import android.widget.TextView; + +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.activity.AbsActivity; +import com.yunbao.main.R; +import com.yunbao.main.adapter.RedPacketListRecyclerAdapter; +import com.yunbao.main.bean.RedPacketListBean; + +import java.util.ArrayList; +import java.util.List; + +public class RedPacketListActivity extends AbsActivity { + private RecyclerView recyclerView; + private RedPacketListRecyclerAdapter adapter; + + @Override + protected int getLayoutId() { + return R.layout.activity_red_packet; + } + + @Override + public void main() { + super.main(); + ((TextView) findViewById(R.id.titleView)).setText("紅包記錄"); + recyclerView = findViewById(R.id.recyclerView); + + adapter = new RedPacketListRecyclerAdapter(this); + recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); + recyclerView.setAdapter(adapter); + initData(); + } + + private void initData() { + List list = new ArrayList<>(); + for (int i = 1; i <= 5; i++) { + RedPacketListBean bean = new RedPacketListBean(); + bean.setTitle("攢人氣紅包" + i); + bean.setTimer("X月X日 " + i); + bean.setMoney(i * 1000 + ""); + list.add(bean); + } + adapter.setList(list); + + } +} diff --git a/main/src/main/java/com/yunbao/main/activity/RedPacketUsersActivity.java b/main/src/main/java/com/yunbao/main/activity/RedPacketUsersActivity.java new file mode 100644 index 000000000..61a340b79 --- /dev/null +++ b/main/src/main/java/com/yunbao/main/activity/RedPacketUsersActivity.java @@ -0,0 +1,52 @@ +package com.yunbao.main.activity; + +import android.view.View; + +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.activity.AbsActivity; +import com.yunbao.main.R; +import com.yunbao.main.adapter.RedPacketUserRecyclerAdapter; +import com.yunbao.main.bean.RedPacketListBean; + +import java.util.ArrayList; +import java.util.List; + +public class RedPacketUsersActivity extends AbsActivity implements View.OnClickListener{ + private RecyclerView recyclerView; + private RedPacketUserRecyclerAdapter adapter; + + @Override + protected int getLayoutId() { + return R.layout.activity_red_packet_users; + } + + @Override + protected void main() { + super.main(); + recyclerView = findViewById(R.id.recyclerView); + + adapter = new RedPacketUserRecyclerAdapter(this); + recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); + recyclerView.setAdapter(adapter); + initData(); + } + + @Override + public void onClick(View v) { + int id=v.getId(); + } + private void initData() { + List list = new ArrayList<>(); + for (int i = 1; i <= 5; i++) { + RedPacketListBean bean = new RedPacketListBean(); + bean.setTitle("攢人氣紅包 - 主播昵稱的直播間" + i); + bean.setTimer("X月X日 " + i); + bean.setMoney(i * 1000 + ""); + list.add(bean); + } + adapter.setList(list); + + } +} diff --git a/main/src/main/java/com/yunbao/main/adapter/RedPacketListRecyclerAdapter.java b/main/src/main/java/com/yunbao/main/adapter/RedPacketListRecyclerAdapter.java new file mode 100644 index 000000000..a1a64e227 --- /dev/null +++ b/main/src/main/java/com/yunbao/main/adapter/RedPacketListRecyclerAdapter.java @@ -0,0 +1,69 @@ +package com.yunbao.main.adapter; + +import android.content.Context; +import android.content.Intent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.main.R; +import com.yunbao.main.activity.RedPacketInfoActivity; +import com.yunbao.main.bean.RedPacketListBean; + +import java.util.List; + +public class RedPacketListRecyclerAdapter extends RecyclerView.Adapter { + private List list; + private Context mContext; + + public RedPacketListRecyclerAdapter(Context mContext) { + this.mContext = mContext; + } + + public void setList(List list) { + this.list = list; + notifyDataSetChanged(); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ItemViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_red_packet, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.setData(list.get(position)); + } + + @Override + public int getItemCount() { + return list.size(); + } + + public class ItemViewHolder extends RecyclerView.ViewHolder { + private TextView title, timer, money; + private ImageView icon; + + public ItemViewHolder(@NonNull View itemView) { + super(itemView); + title = itemView.findViewById(R.id.title); + timer = itemView.findViewById(R.id.time); + money = itemView.findViewById(R.id.money); + icon = itemView.findViewById(R.id.icon); + itemView.setOnClickListener(v -> mContext.startActivity(new Intent(mContext, RedPacketInfoActivity.class))); + } + + private void setData(RedPacketListBean bean) { + title.setText(bean.getTitle()); + timer.setText(bean.getTimer()); + money.setText(bean.getMoney()); + itemView.setTag(bean); + } + } +} diff --git a/main/src/main/java/com/yunbao/main/adapter/RedPacketUserRecyclerAdapter.java b/main/src/main/java/com/yunbao/main/adapter/RedPacketUserRecyclerAdapter.java new file mode 100644 index 000000000..011a95a7a --- /dev/null +++ b/main/src/main/java/com/yunbao/main/adapter/RedPacketUserRecyclerAdapter.java @@ -0,0 +1,69 @@ +package com.yunbao.main.adapter; + +import android.content.Context; +import android.content.Intent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.main.R; +import com.yunbao.main.activity.RedPacketInfoActivity; +import com.yunbao.main.bean.RedPacketListBean; + +import java.util.List; + +public class RedPacketUserRecyclerAdapter extends RecyclerView.Adapter { + private List list; + private Context mContext; + + public RedPacketUserRecyclerAdapter(Context mContext) { + this.mContext = mContext; + } + + public void setList(List list) { + this.list = list; + notifyDataSetChanged(); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ItemViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_user_red_packet, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.setData(list.get(position)); + } + + @Override + public int getItemCount() { + return list.size(); + } + + public class ItemViewHolder extends RecyclerView.ViewHolder { + private TextView title, timer, money; + private ImageView icon; + + public ItemViewHolder(@NonNull View itemView) { + super(itemView); + title = itemView.findViewById(R.id.title); + timer = itemView.findViewById(R.id.time); + money = itemView.findViewById(R.id.money); + icon = itemView.findViewById(R.id.icon); + itemView.setOnClickListener(v -> mContext.startActivity(new Intent(mContext, RedPacketInfoActivity.class))); + } + + private void setData(RedPacketListBean bean) { + title.setText(bean.getTitle()); + timer.setText(bean.getTimer()); + money.setText(bean.getMoney()); + itemView.setTag(bean); + } + } +} diff --git a/main/src/main/java/com/yunbao/main/bean/RedPacketListBean.java b/main/src/main/java/com/yunbao/main/bean/RedPacketListBean.java new file mode 100644 index 000000000..16f3e0910 --- /dev/null +++ b/main/src/main/java/com/yunbao/main/bean/RedPacketListBean.java @@ -0,0 +1,33 @@ +package com.yunbao.main.bean; + +import com.yunbao.common.bean.BaseModel; + +public class RedPacketListBean extends BaseModel { + private String title; + private String timer; + private String money; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getTimer() { + return timer; + } + + public void setTimer(String timer) { + this.timer = timer; + } + + public String getMoney() { + return money; + } + + public void setMoney(String money) { + this.money = money; + } +} diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java index fcfa2000a..a5614849e 100644 --- a/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java +++ b/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java @@ -1,6 +1,8 @@ package com.yunbao.main.views; import android.content.Context; +import android.content.Intent; +import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; @@ -8,6 +10,7 @@ import android.widget.ImageView; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.utils.WordUtil; import com.yunbao.main.R; +import com.yunbao.main.activity.RedPacketListActivity; /** * Created by cxf on 2018/9/22. @@ -38,7 +41,13 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder { ImgLoader.display(mContext, "https://downs.yaoulive.com/gif_trophy.gif", img_trophy); - + img_trophy.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + mContext.startActivity(new Intent(mContext, RedPacketListActivity.class)); + return false; + } + }); } diff --git a/main/src/main/res/layout/activity_red_packet_info.xml b/main/src/main/res/layout/activity_red_packet_info.xml new file mode 100644 index 000000000..c2c0a9a58 --- /dev/null +++ b/main/src/main/res/layout/activity_red_packet_info.xml @@ -0,0 +1,184 @@ + + + + \ No newline at end of file diff --git a/main/src/main/res/layout/activity_red_packet_users.xml b/main/src/main/res/layout/activity_red_packet_users.xml new file mode 100644 index 000000000..6a9f8bfae --- /dev/null +++ b/main/src/main/res/layout/activity_red_packet_users.xml @@ -0,0 +1,105 @@ + ++ + + + + + + + + + + + + ++ + + + + + ++ + + + + + ++ + + + + ++ + + + + \ No newline at end of file From 501a7b482b38ea66ccab90aac0212415ea48e7e6 Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Tue, 27 Jun 2023 13:54:18 +0800 Subject: [PATCH 6/9] =?UTF-8?q?update=20=E7=BA=A2=E5=8C=85=E4=B8=93?= =?UTF-8?q?=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yunbao/common/bean/LiveBean.java | 12 + .../com/yunbao/common/bean/LiveTaskModel.java | 2 +- .../adapter/MainHomeRemFollLiveAdapter.java | 7 + .../com/yunbao/main/http/MainHttpUtil.java | 7 + .../views/MainHomeLiveItemViewHolder.java | 7 + .../views/MainHomeLiveWeekItemViewHolder.java | 7 + .../MainHomeRedPacketLiveViewHolder.java | 170 +++++++ .../yunbao/main/views/MainHomeViewHolder.java | 8 +- .../main/res/layout/item_main_home_lives.xml | 479 +++++++++--------- 9 files changed, 464 insertions(+), 235 deletions(-) create mode 100644 main/src/main/java/com/yunbao/main/views/MainHomeRedPacketLiveViewHolder.java diff --git a/common/src/main/java/com/yunbao/common/bean/LiveBean.java b/common/src/main/java/com/yunbao/common/bean/LiveBean.java index 7dbafa055..f4cec2ec4 100644 --- a/common/src/main/java/com/yunbao/common/bean/LiveBean.java +++ b/common/src/main/java/com/yunbao/common/bean/LiveBean.java @@ -5,6 +5,7 @@ import android.os.Parcelable; import android.text.TextUtils; import com.alibaba.fastjson.annotation.JSONField; +import com.google.gson.annotations.SerializedName; import java.util.ArrayList; import java.util.List; @@ -51,6 +52,8 @@ public class LiveBean implements Parcelable { private String recommendCardtype = ""; private String recommendCardIconSizeTwo = ""; private String recommendCardIconSizeThree = ""; + @SerializedName("red_packet_status") + private int redPacketStatus; private Map+ + + + + + + + + + + + + + + + + + params;//用于跳转Activity时扩展参数,例:从首页Banner跳转到直播间时需要根据携带参数判断是否弹出新人特惠对话框 @@ -382,6 +385,14 @@ public class LiveBean implements Parcelable { this.islive = islive; } + public int getRedPacketStatus() { + return redPacketStatus; + } + + public void setRedPacketStatus(int redPacketStatus) { + this.redPacketStatus = redPacketStatus; + } + /** * 显示靓号 */ @@ -529,6 +540,7 @@ public class LiveBean implements Parcelable { ", recommendCardtype='" + recommendCardtype + '\'' + ", recommendCardIconSizeTwo='" + recommendCardIconSizeTwo + '\'' + ", recommendCardIconSizeThree='" + recommendCardIconSizeThree + '\'' + + ", redPacketStatus=" + redPacketStatus + ", params=" + params + ", mWeekList=" + mWeekList + '}'; diff --git a/common/src/main/java/com/yunbao/common/bean/LiveTaskModel.java b/common/src/main/java/com/yunbao/common/bean/LiveTaskModel.java index 647c776a9..c33012e1f 100644 --- a/common/src/main/java/com/yunbao/common/bean/LiveTaskModel.java +++ b/common/src/main/java/com/yunbao/common/bean/LiveTaskModel.java @@ -68,7 +68,7 @@ public class LiveTaskModel extends BaseModel { '}'; } - public static class NewUser { + public static class NewUser implements Serializable{ @SerializedName("isNew") private int isNew; @SerializedName("endTime") diff --git a/main/src/main/java/com/yunbao/main/adapter/MainHomeRemFollLiveAdapter.java b/main/src/main/java/com/yunbao/main/adapter/MainHomeRemFollLiveAdapter.java index 461ec6c9f..5a6110abf 100644 --- a/main/src/main/java/com/yunbao/main/adapter/MainHomeRemFollLiveAdapter.java +++ b/main/src/main/java/com/yunbao/main/adapter/MainHomeRemFollLiveAdapter.java @@ -79,9 +79,11 @@ public class MainHomeRemFollLiveAdapter extends RefreshAdapter { ImageView dr_pk_ico; View views; ImageView bgs; + private View redPacket; public Vh(View itemView) { super(itemView); + redPacket = itemView.findViewById(R.id.red_packet); live_info_view = (LinearLayout) itemView.findViewById(R.id.live_info_view); mCover = (ImageView) itemView.findViewById(R.id.cover); mName = (TextView) itemView.findViewById(R.id.name); @@ -220,6 +222,11 @@ public class MainHomeRemFollLiveAdapter extends RefreshAdapter { if (bean.getIs_week() != null && bean.getIs_week().equals("1")) { views.setVisibility(View.GONE); } + if (bean.getRedPacketStatus() == 1) { + redPacket.setVisibility(View.VISIBLE); + } else { + redPacket.setVisibility(View.GONE); + } } } diff --git a/main/src/main/java/com/yunbao/main/http/MainHttpUtil.java b/main/src/main/java/com/yunbao/main/http/MainHttpUtil.java index 5283180ca..0dd121ac5 100644 --- a/main/src/main/java/com/yunbao/main/http/MainHttpUtil.java +++ b/main/src/main/java/com/yunbao/main/http/MainHttpUtil.java @@ -159,6 +159,13 @@ public class MainHttpUtil { .execute(callback); } + /** + * 首页红包专区 + */ + public static void getRedPacket(int p, HttpCallback callback) { + HttpClient.getInstance().get("Home.getRedPacket", MainHttpConsts.GET_RANDOM) + .execute(callback); + } /** * 首页 diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeLiveItemViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeLiveItemViewHolder.java index 740648c33..d852d4bec 100644 --- a/main/src/main/java/com/yunbao/main/views/MainHomeLiveItemViewHolder.java +++ b/main/src/main/java/com/yunbao/main/views/MainHomeLiveItemViewHolder.java @@ -32,6 +32,7 @@ public class MainHomeLiveItemViewHolder extends RecyclerView.ViewHolder { private ImageView mCover, liveType, mLiveIco, mType, pkico, drPkIco, pkAvatar, viewBg; private ImageView bgs; private View views; + private View redPacket; private TextView mLiveState, mTitle, mName, mNum; public MainHomeLiveItemViewHolder(@NonNull View itemView) { @@ -40,6 +41,7 @@ public class MainHomeLiveItemViewHolder extends RecyclerView.ViewHolder { itemView.findViewById(R.id.live_info_view).setVisibility(View.VISIBLE); itemView.findViewById(R.id.lt_week_list).setVisibility(View.GONE); mCover = itemView.findViewById(R.id.cover); + redPacket = itemView.findViewById(R.id.red_packet); bgs = itemView.findViewById(R.id.bgs); liveType = itemView.findViewById(R.id.live_type); views = itemView.findViewById(R.id.views); @@ -147,6 +149,11 @@ public class MainHomeLiveItemViewHolder extends RecyclerView.ViewHolder { } else { viewBg.setVisibility(View.GONE); } + if (bean.getRedPacketStatus() == 1) { + redPacket.setVisibility(View.VISIBLE); + } else { + redPacket.setVisibility(View.GONE); + } RxView.clicks(itemView) .throttleFirst(2, TimeUnit.SECONDS) // 才发送 2s内第1次点击按钮的事件 .subscribe(new Observer () { diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeLiveWeekItemViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeLiveWeekItemViewHolder.java index 7c00a8cb9..237223194 100644 --- a/main/src/main/java/com/yunbao/main/views/MainHomeLiveWeekItemViewHolder.java +++ b/main/src/main/java/com/yunbao/main/views/MainHomeLiveWeekItemViewHolder.java @@ -46,6 +46,7 @@ public class MainHomeLiveWeekItemViewHolder extends RecyclerView.ViewHolder { private List weekList = new ArrayList<>(); //轮询周星榜的下标 private int index = 0; + private View redPacket; public MainHomeLiveWeekItemViewHolder(@NonNull View itemView) { super(itemView); @@ -53,6 +54,7 @@ public class MainHomeLiveWeekItemViewHolder extends RecyclerView.ViewHolder { itemView.findViewById(R.id.live_info_view).setVisibility(View.GONE); itemView.findViewById(R.id.lt_week_list).setVisibility(View.VISIBLE); imgWeekHead = itemView.findViewById(R.id.img_week_head); + redPacket=itemView.findViewById(R.id.red_packet); weekSvga = (SVGAImageView) itemView.findViewById(R.id.week_svga); viewflipperBanner = itemView.findViewById(R.id.viewflipper_banner); imgWeekHead.setVisibility(View.GONE); @@ -119,6 +121,11 @@ public class MainHomeLiveWeekItemViewHolder extends RecyclerView.ViewHolder { } bannerHandler.removeCallbacks(mFlipRunnable); bannerHandler.postDelayed(mFlipRunnable, delayMillis); + if (bean.getRedPacketStatus() == 1) { + redPacket.setVisibility(View.VISIBLE); + } else { + redPacket.setVisibility(View.GONE); + } RxView.clicks(itemView) .throttleFirst(2, TimeUnit.SECONDS) // 才发送 2s内第1次点击按钮的事件 .subscribe(new Observer () { diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeRedPacketLiveViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeRedPacketLiveViewHolder.java new file mode 100644 index 000000000..b6d66fda7 --- /dev/null +++ b/main/src/main/java/com/yunbao/main/views/MainHomeRedPacketLiveViewHolder.java @@ -0,0 +1,170 @@ +package com.yunbao.main.views; + +import android.content.Context; +import android.view.ViewGroup; + +import androidx.recyclerview.widget.GridLayoutManager; + +import com.alibaba.fastjson.JSON; +import com.yunbao.common.CommonAppConfig; +import com.yunbao.common.Constants; +import com.yunbao.common.adapter.RefreshAdapter; +import com.yunbao.common.bean.AnchorRecommendModel; +import com.yunbao.common.bean.LiveBean; +import com.yunbao.common.custom.CommonRefreshView; +import com.yunbao.common.custom.ItemDecoration; +import com.yunbao.common.http.HttpCallback; +import com.yunbao.common.interfaces.OnItemClickListener; +import com.yunbao.common.utils.RouteUtil; +import com.yunbao.main.R; +import com.yunbao.main.activity.MainActivity; +import com.yunbao.main.activity.WeekWebViewActivity; +import com.yunbao.main.adapter.MainHomeRemFollLiveAdapter; +import com.yunbao.main.http.MainHttpConsts; +import com.yunbao.main.http.MainHttpUtil; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.util.Arrays; +import java.util.List; + +/** + * 首页红包专区 + */ +public class MainHomeRedPacketLiveViewHolder extends AbsMainHomeChildViewHolder implements OnItemClickListener { + private CommonRefreshView mRefreshView; + private MainHomeRemFollLiveAdapter mAdapter; + + public MainHomeRedPacketLiveViewHolder(Context context, ViewGroup parentView) { + super(context, parentView); + + } + + @Override + protected int getLayoutId() { + return R.layout.view_main_home_live_recom; + } + + public static int pp; + + //显示顶部商城tab时,显示底部tabGroup + @Subscribe(threadMode = ThreadMode.MAIN) + public void onUpdata(String str) { + if ("Updata".equals(str)) { + if (mRefreshView != null) { + mRefreshView.showRefreshBar(); + mRefreshView.mRecyclerView.scrollToPosition(0); + } + }else if ("blacklist".equals(str)) { + if (mRefreshView != null) { + mRefreshView.showRefreshBar(); + } + } + } + + @Override + public void init() { + + mRefreshView = (CommonRefreshView) findViewById(R.id.refreshView); + mRefreshView.setEmptyLayoutId(R.layout.view_no_data_live); + EventBus.getDefault().register(this); + GridLayoutManager gridLayoutManager = new GridLayoutManager(mContext, 2, GridLayoutManager.VERTICAL, false); + mRefreshView.setLayoutManager(gridLayoutManager); + ItemDecoration decoration = new ItemDecoration(mContext, 0x00000000, 5, 0); + decoration.setOnlySetItemOffsetsButNoDraw(true); + mRefreshView.setItemDecoration(decoration); + mRefreshView.setRecyclerViewAdapter(mAdapter); + mRefreshView.setDataHelper(new CommonRefreshView.DataHelper () { + @Override + public RefreshAdapter getAdapter() { + if (mAdapter == null) { + mAdapter = new MainHomeRemFollLiveAdapter(mContext, MainActivity.Height); + mAdapter.setOnItemClickListener(MainHomeRedPacketLiveViewHolder.this); + } + return mAdapter; + } + + @Override + public void loadData(int p, HttpCallback callback) { + pp = p; + MainHttpUtil.getRedPacket(p, callback); + } + + @Override + public List processData(String[] info) { + if(pp == 1){ + return JSON.parseArray(Arrays.toString(info), LiveBean.class); + }else{ + return null; + } + } + + @Override + public void onRefreshSuccess(List list, int count) { + EventBus.getDefault().post(new AnchorRecommendModel()); + } + + @Override + public void onRefreshFailure() { + + } + + @Override + public void onLoadMoreSuccess(List loadItemList, int loadItemCount) { + + } + + @Override + public void onLoadMoreFailure() { + + } + }); + + mRefreshView.initData(); + + + } + + + + + + @Override + public void onItemClick(LiveBean bean, int position) { + if ("1".equals(bean.getIslive())) { + watchLive(bean, Constants.LIVE_HOME, position); + }else if(bean.getIs_week()!=null&&bean.getIs_week().equals("1")){ + String url = CommonAppConfig.HOST + bean.getUrl()+"?a=1"; + WeekWebViewActivity.forward(mContext, url, true); + } else { + RouteUtil.forwardUserHome(mContext, bean.getUid(),0); + } + } + + @Override + public void loadData() { +// if (mRefreshView != null) { +// mRefreshView.initData(); +// } + } + + @Override + public void release() { + MainHttpUtil.cancel(MainHttpConsts.GET_RANDOM); + + } + + @Override + public void onDestroy() { + super.onDestroy(); + release(); + } + + @Override + public void onResume() { + super.onResume(); + + } +} diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java index a5614849e..9c7c0ce9c 100644 --- a/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java +++ b/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java @@ -8,7 +8,6 @@ import android.widget.FrameLayout; import android.widget.ImageView; import com.yunbao.common.glide.ImgLoader; -import com.yunbao.common.utils.WordUtil; import com.yunbao.main.R; import com.yunbao.main.activity.RedPacketListActivity; @@ -21,6 +20,7 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder { private MainHomeFollLiveViewHolder mainHomeFollLiveViewHolder; private MainHomeLiveViewHolder mainHomeLiveViewHolder; private MainHomeRecomLiveViewHolder mainHomeRecomLiveViewHolder; + private MainHomeRedPacketLiveViewHolder mainHomeRedPacketLiveViewHolder; private ImageView img_trophy; @@ -73,6 +73,9 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder { } else if (position == 2) { mainHomeRecomLiveViewHolder = new MainHomeRecomLiveViewHolder(mContext, parent); vh = mainHomeRecomLiveViewHolder; + }else if(position==3){ + mainHomeRedPacketLiveViewHolder=new MainHomeRedPacketLiveViewHolder(mContext,parent); + vh=mainHomeRedPacketLiveViewHolder; } if (vh == null) { @@ -90,7 +93,7 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder { @Override protected int getPageCount() { - return 3; + return 4; } @Override @@ -99,6 +102,7 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder { mContext.getString(R.string.follow), mContext.getString(R.string.hot), mContext.getString(R.string.recomment), + "红包专区", }; } diff --git a/main/src/main/res/layout/item_main_home_lives.xml b/main/src/main/res/layout/item_main_home_lives.xml index a9649e8ac..3bb1b799c 100644 --- a/main/src/main/res/layout/item_main_home_lives.xml +++ b/main/src/main/res/layout/item_main_home_lives.xml @@ -1,6 +1,7 @@ - + -- - - -+ android:layout_height="wrap_content" + android:orientation="vertical" + android:visibility="visible"> - - + android:layout_marginBottom="9dp" + android:paddingLeft="5dp"> - - - - - - + ++ + android:id="@+id/view_bg" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scaleType="fitXY" + android:visibility="gone" /> - + android:layout_marginLeft="8dp" + android:layout_marginTop="8dp" + android:gravity="center" /> - - + + ++ + + + + + + + ++ + + + + + + ++ + + + + android:id="@+id/pk_ico" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_alignParentRight="true" + android:layout_alignParentBottom="true" + android:layout_marginRight="33dp" + android:layout_marginBottom="60dp" + android:src="@mipmap/live_pk" /> - - - - - - -- - - - - - - - + - + - - - + + + -+ android:layout_height="wrap_content" + android:orientation="vertical" + android:visibility="gone"> - ++ android:layout_marginBottom="9dp" + android:paddingLeft="5dp"> - + + + - + - - - -+ android:layout_alignParentBottom="true" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:orientation="vertical"> - -+ android:layout_marginLeft="6dp" + android:layout_marginBottom="12dp"> - + - - + + + + + + +From 368b002db67efbff500f67236b85844d68f70f20 Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Tue, 27 Jun 2023 14:19:34 +0800 Subject: [PATCH 7/9] =?UTF-8?q?update=20=E7=9B=B4=E6=92=AD=E9=97=B4?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E8=BF=9B=E5=85=A5=E7=9A=84=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yunbao/live/views/PortraitLiveManager.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java index bcac77b9d..e7d202d4f 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -257,7 +257,14 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe public void run() { loading.setVisibility(View.GONE); enterRoomLeaveHandler.post(enterRoomLeaveRunnable); - ToastUtil.show(mContext.getString(R.string.net_error) + " :500" );//异常下播,等待加载时间过了后弹出 + } + }; + final Runnable loadTimeoutRunnableGone = new Runnable() { + @Override + public void run() { + loading.setVisibility(View.GONE); + enterRoomLeaveHandler.post(enterRoomLeaveRunnable); + ToastUtil.show(mContext.getString(R.string.net_error) + " :500");//异常下播,等待加载时间过了后弹出 } }; @@ -297,6 +304,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe AnimationDrawable frameAnimation = (AnimationDrawable) ivLoading.getBackground(); frameAnimation.start(); liveHandler.removeCallbacks(loadRunnableGone); + liveHandler.removeCallbacks(loadTimeoutRunnableGone); if (mLivePlayViewHolder == null) { mLivePlayViewHolder = new LivePlayRyViewHolder(mContext, playContainer, 1); mLiveRoomViewHolder = new LiveRoomViewHolder(false, 1, mContext, mContainer, mSecondPage.findViewById(R.id.gift_gif), mSecondPage.findViewById(R.id.gift_svga), mContainerWrap, mContext.getWindowManager()); @@ -310,6 +318,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe @Override public void onPlayer() { liveHandler.postDelayed(loadRunnableGone, 350); + liveHandler.removeCallbacks(loadTimeoutRunnableGone); } }); mLiveRoomViewHolder.subscribeActivityLifeCycle(); @@ -595,7 +604,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe } else if (!pkInfo.getString("end_pk_time").equals("0")) { if (mLiveRoomViewHolder != null) { mLiveRoomViewHolder.pkHandler = true; - mLiveRoomViewHolder.pkUid=pkUid; + mLiveRoomViewHolder.pkUid = pkUid; mLiveRoomViewHolder.initPkRank(null); } if (mLivePlayViewHolder != null) { @@ -660,7 +669,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe mLiveRoomViewHolder.showPrizePoolLevel(String.valueOf(giftPrizePoolLevel)); } } - liveHandler.postDelayed(loadRunnableGone, 15_000); + liveHandler.postDelayed(loadTimeoutRunnableGone, 15_000); if (TextUtils.equals(data.getEnterRoomInfo().getIsconnection(), "1")) { //通知心愿单位置换地方 EventBus.getDefault().post(new LiveAudienceEvent() From 6a6696f355634dd32673a3d0765ee641d79e91f4 Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Wed, 28 Jun 2023 16:43:26 +0800 Subject: [PATCH 8/9] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=9C=8Dios=E5=8F=91=E6=B6=88=E6=81=AF=E5=AE=89=E5=8D=93?= =?UTF-8?q?=E7=AB=AF=E6=94=B6=E4=B8=8D=E5=88=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- live/src/main/java/com/yunbao/live/socket/SocketRyClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java index 994c4d589..05a061da8 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java @@ -825,7 +825,7 @@ public class SocketRyClient { chatBean.setContentColor(map.getString("contentColor"));//文字内容颜色 chatBean.setAtUserName(map.getString("atUserName"));//@名字 chatBean.setAtUserID(map.getString("atUserID"));//@ID - if (!map.getString("guard_type").equals("undefined")) { + if (map.containsKey("guard_type")&&!map.getString("guard_type").equals("undefined")) { chatBean.setGuardType(map.getIntValue("guard_type")); } try { From da7ebb2663d4596f67aacfd99b010e54ae7e54dc Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Wed, 28 Jun 2023 16:44:42 +0800 Subject: [PATCH 9/9] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9E=E7=BA=A2=E5=8C=85?= =?UTF-8?q?=E4=B8=93=E5=8C=BA=20add=20=E6=96=B0=E5=A2=9E=E7=BA=A2=E5=8C=85?= =?UTF-8?q?=E4=B8=93=E5=8C=BA=E8=BF=9B=E5=8E=BB=E6=98=AF=E5=8F=AA=E6=9C=89?= =?UTF-8?q?=E5=8F=91=E6=94=BE=E7=BA=A2=E5=8C=85=E7=9A=84=E7=9B=B4=E6=92=AD?= =?UTF-8?q?=E9=97=B4=20add=20=E6=96=B0=E5=A2=9E=E9=A6=96=E9=A1=B5=E7=BA=A2?= =?UTF-8?q?=E5=8C=85=E6=B5=AE=E7=AA=97=20add=20=E6=96=B0=E5=A2=9E=E7=BA=A2?= =?UTF-8?q?=E5=8C=85=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/bean/AnchorRecommendModel.java | 30 ++++ .../common/bean/RedPacketDetailsBean.java | 165 ++++++++++++++++++ .../yunbao/common/bean/RedPacketListBean.java | 117 +++++++++++++ .../com/yunbao/common/http/PDLiveApi.java | 23 +++ .../common/http/live/LiveNetManager.java | 51 +++++- .../common/http/main/MainNetManager.java | 37 +++- .../com/yunbao/common/utils/RouteUtil.java | 37 +++- .../main/res/layout/item_user_red_packet.xml | 4 +- common/src/main/res/layout/view_title.xml | 20 ++- common/src/main/res/layout/view_title2.xml | 2 +- .../res/mipmap-mdpi/ic_red_packet_record.png | Bin 0 -> 746 bytes .../res/mipmap-xxhdpi/bg_float_red_packet.png | Bin 0 -> 1101 bytes .../icon_red_packet_float_text_en.png | Bin 0 -> 10887 bytes .../icon_red_packet_float_text_zh.png | Bin 0 -> 10898 bytes common/src/main/res/values-en-rUS/string.xml | 16 ++ common/src/main/res/values-zh-rHK/strings.xml | 16 ++ common/src/main/res/values-zh-rTW/strings.xml | 16 ++ common/src/main/res/values-zh/strings.xml | 16 ++ common/src/main/res/values/strings.xml | 16 ++ config.gradle | 4 +- .../live/activity/LiveAudienceActivity.java | 49 ++++-- .../yunbao/main/activity/MainActivity.java | 33 +++- .../main/activity/MyWalletActivity.java | 4 + .../main/activity/RedPacketInfoActivity.java | 63 ++++++- .../main/activity/RedPacketListActivity.java | 30 ++-- .../main/activity/RedPacketUsersActivity.java | 64 +++++-- .../adapter/RedPacketListRecyclerAdapter.java | 22 ++- .../adapter/RedPacketUserRecyclerAdapter.java | 33 ++-- .../yunbao/main/bean/RedPacketListBean.java | 33 ---- .../MainHomeRedPacketLiveViewHolder.java | 8 + .../yunbao/main/views/MainHomeViewHolder.java | 19 +- .../main/res/drawable/bg_float_red_packet.xml | 35 ++++ .../main/res/layout/activity_red_packet.xml | 2 +- .../res/layout/activity_red_packet_info.xml | 113 ++++++++---- .../res/layout/activity_red_packet_users.xml | 6 +- .../main/res/layout/view_float_red_packet.xml | 62 +++++++ main/src/main/res/layout/view_homemain.xml | 19 +- 37 files changed, 991 insertions(+), 174 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/bean/RedPacketDetailsBean.java create mode 100644 common/src/main/java/com/yunbao/common/bean/RedPacketListBean.java create mode 100644 common/src/main/res/mipmap-mdpi/ic_red_packet_record.png create mode 100644 common/src/main/res/mipmap-xxhdpi/bg_float_red_packet.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_red_packet_float_text_en.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_red_packet_float_text_zh.png delete mode 100644 main/src/main/java/com/yunbao/main/bean/RedPacketListBean.java create mode 100644 main/src/main/res/drawable/bg_float_red_packet.xml create mode 100644 main/src/main/res/layout/view_float_red_packet.xml diff --git a/common/src/main/java/com/yunbao/common/bean/AnchorRecommendModel.java b/common/src/main/java/com/yunbao/common/bean/AnchorRecommendModel.java index 21125ed50..80c69327c 100644 --- a/common/src/main/java/com/yunbao/common/bean/AnchorRecommendModel.java +++ b/common/src/main/java/com/yunbao/common/bean/AnchorRecommendModel.java @@ -17,6 +17,8 @@ public class AnchorRecommendModel extends BaseModel { //是否展示0=不展示1=展示 @SerializedName("list_show") private int listShow = 0; + @SerializedName("red_packet_show") + private int showRedPacket = 0;//是否显示首页红包浮窗 //是否支持换一批0=不支持 1=支持 @SerializedName("up_show") private int upShow = 0; @@ -24,6 +26,10 @@ public class AnchorRecommendModel extends BaseModel { private List list = new ArrayList<>(); @SerializedName("slide") private List slide = new ArrayList<>(); + @SerializedName("red_packet_total") + private int redPacketTotal = 100; + @SerializedName("red_packet_day_create_num") + private int redPacketNum = 0; public List getSlide() { return slide; @@ -52,6 +58,30 @@ public class AnchorRecommendModel extends BaseModel { return this; } + public int getShowRedPacket() { + return showRedPacket; + } + + public void setShowRedPacket(int showRedPacket) { + this.showRedPacket = showRedPacket; + } + + public int getRedPacketTotal() { + return redPacketTotal; + } + + public void setRedPacketTotal(int redPacketTotal) { + this.redPacketTotal = redPacketTotal; + } + + public int getRedPacketNum() { + return redPacketNum; + } + + public void setRedPacketNum(int redPacketNum) { + this.redPacketNum = redPacketNum; + } + public List getList() { return list; } diff --git a/common/src/main/java/com/yunbao/common/bean/RedPacketDetailsBean.java b/common/src/main/java/com/yunbao/common/bean/RedPacketDetailsBean.java new file mode 100644 index 000000000..671b61313 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/RedPacketDetailsBean.java @@ -0,0 +1,165 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; +import com.yunbao.common.CommonAppConfig; + +import java.util.List; + +public class RedPacketDetailsBean extends BaseModel { + @SerializedName("u_nicename") + private String niceName; + @SerializedName("avatar_thumb") + private String avatarThumb; + @SerializedName("avatar") + private String avatar; + @SerializedName("red_packet_money") + private long money;// 红包金豆总数量 + @SerializedName("red_packet_quantity") + private int quantity; // 领取的红包总数量 + @SerializedName("red_packet_quantity_already") + private int already; // 领取的红包总数量 + @SerializedName("red_packet_record_details") + private List details; + + public String getNiceName() { + return niceName; + } + + public void setNiceName(String niceName) { + this.niceName=niceName; + } + + public String getAvatarThumb() { + avatarThumb=avatarThumb.replace("\\",""); + if(!avatarThumb.startsWith("http")){ + avatarThumb= CommonAppConfig.HOST+"/"+avatarThumb; + } + return avatarThumb; + } + + public void setAvatarThumb(String avatarThumb) { + this.avatarThumb = avatarThumb; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public long getMoney() { + return money; + } + + public void setMoney(long money) { + this.money = money; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public int getAlready() { + return already; + } + + public void setAlready(int already) { + this.already = already; + } + + public List getDetails() { + return details; + } + + public void setDetails(List details) { + this.details = details; + } + + @Override + public String toString() { + return "RedPacketDetailsBean{" + + "niceName='" + niceName + '\'' + + ", avatarThumb='" + avatarThumb + '\'' + + ", avatar='" + avatar + '\'' + + ", money=" + money + + ", quantity=" + quantity + + ", already=" + already + + ", details=" + details + + '}'; + } + + public static class Detail extends BaseModel { + @SerializedName("receive_money") + private long money; + @SerializedName("user_nicename") + private String niceName; + @SerializedName("receive_time") + private String time; + @SerializedName("avatar_thumb") + private String avatarThumb; + @SerializedName("avatar") + private String avatar; + + + public long getMoney() { + return money; + } + + public void setMoney(long money) { + this.money = money; + } + + public String getNiceName() { + return niceName; + } + + public void setNiceName(String niceName) { + this.niceName=niceName; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getAvatarThumb() { + avatarThumb=avatarThumb.replace("\\",""); + if(!avatarThumb.startsWith("http")){ + avatarThumb= CommonAppConfig.HOST+"/"+avatarThumb; + } + return avatarThumb; + } + + public void setAvatarThumb(String avatarThumb) { + this.avatarThumb = avatarThumb; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + @Override + public String toString() { + return "Detail{" + + "money=" + money + + ", niceName='" + niceName + '\'' + + ", time='" + time + '\'' + + ", avatarThumb='" + avatarThumb + '\'' + + ", avatar='" + avatar + '\'' + + '}'; + } + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/RedPacketListBean.java b/common/src/main/java/com/yunbao/common/bean/RedPacketListBean.java new file mode 100644 index 000000000..8d37ab67f --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/RedPacketListBean.java @@ -0,0 +1,117 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +public class RedPacketListBean extends BaseModel { + public static final int RED_PACKET_STATUS_SUCCESS=1;//红包消费 + public static final int RED_PACKET_STATUS_BACK=2;//红包退回 + public static final int RED_PACKET_CURRENT_STATUS_SUCCESS=1;//红包已生效 + public static final int RED_PACKET_CURRENT_STATUS_TIMEOUT=2;//红包已过期 + @SerializedName("id") + private int id; + @SerializedName("live_nicename") + private String liveNicename; + @SerializedName("create_time") + private String createTime; + @SerializedName("red_packet_money") + private long redPacketMoney; + @SerializedName("red_packet_status") + private int redPacketStatus; + @SerializedName("current_status") + private int currentStatus; + @SerializedName("uid") + private long uid; + + @SerializedName("amount_diamond") + private long amountDiamond; + @SerializedName("amount_refund") + private long amountRefund; + + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getLiveNicename() { + return liveNicename; + } + + public void setLiveNicename(String liveNicename) { + this.liveNicename = liveNicename; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public long getRedPacketMoney() { + return redPacketMoney; + } + + public void setRedPacketMoney(long redPacketMoney) { + this.redPacketMoney = redPacketMoney; + } + + public int getRedPacketStatus() { + return redPacketStatus; + } + + public void setRedPacketStatus(int redPacketStatus) { + this.redPacketStatus = redPacketStatus; + } + + public long getUid() { + return uid; + } + + public void setUid(long uid) { + this.uid = uid; + } + + public int getCurrentStatus() { + return currentStatus; + } + + public void setCurrentStatus(int currentStatus) { + this.currentStatus = currentStatus; + } + + public long getAmountDiamond() { + return amountDiamond; + } + + public void setAmountDiamond(long amountDiamond) { + this.amountDiamond = amountDiamond; + } + + public long getAmountRefund() { + return amountRefund; + } + + public void setAmountRefund(long amountRefund) { + this.amountRefund = amountRefund; + } + + @Override + public String toString() { + return "RedPacketListBean{" + + "id=" + id + + ", liveNicename='" + liveNicename + '\'' + + ", createTime='" + createTime + '\'' + + ", redPacketMoney=" + redPacketMoney + + ", redPacketStatus=" + redPacketStatus + + ", currentStatus=" + currentStatus + + ", uid=" + uid + + ", amountDiamond=" + amountDiamond + + ", amountRefund=" + amountRefund + + '}'; + } +} diff --git a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java index 1e1fa32c3..4a4fba729 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -2,6 +2,7 @@ package com.yunbao.common.http; import com.alibaba.fastjson.JSONObject; import com.yunbao.common.bean.ActiveModel; +import com.yunbao.common.bean.AnchorRecommendItemModel; import com.yunbao.common.bean.AnchorRecommendModel; import com.yunbao.common.bean.BaseModel; import com.yunbao.common.bean.BlindBoxInfoModel; @@ -19,6 +20,7 @@ import com.yunbao.common.bean.ListInfoMessageModel; import com.yunbao.common.bean.LiveAiRobotBean; import com.yunbao.common.bean.LiveAnchorCallMeModel; import com.yunbao.common.bean.LiveAnchorSayModel; +import com.yunbao.common.bean.LiveBean; import com.yunbao.common.bean.LiveDataInfoModel; import com.yunbao.common.bean.LiveInfoModel; import com.yunbao.common.bean.LiveRoomActivityBanner; @@ -35,6 +37,8 @@ import com.yunbao.common.bean.PrankGiftBean; import com.yunbao.common.bean.PrankHttpTurntableBean; import com.yunbao.common.bean.RandomPkUserBean; import com.yunbao.common.bean.RankPkInfoBean; +import com.yunbao.common.bean.RedPacketDetailsBean; +import com.yunbao.common.bean.RedPacketListBean; import com.yunbao.common.bean.SearchModel; import com.yunbao.common.bean.SetAttentsModel; import com.yunbao.common.bean.SlideInBannerModel; @@ -730,4 +734,23 @@ public interface PDLiveApi { */ @GET("/api/public/?service=Live.getBlindBoxInfo") Observable >> getBlindBoxInfo(); + + /** + * 获取红包记录列表 + */ + @GET("/api/public/?service=Live.redPacketRecord") + Observable >> getRedPacketList(); + + /** + * 获取红包詳情 + */ + @GET("/api/public/?service=Live.redPacketRecordDetails") + Observable > getRedPacketDetails(@Query("red_packet_id") int id); + + /** + * 获取直播间上下滑动红包集合 + */ + @GET("/api/public/?service=Home.getRedPacket") + Observable >> getRedPacket(); + } diff --git a/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java b/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java index e68000a1b..0d072003c 100644 --- a/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java +++ b/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java @@ -34,6 +34,8 @@ import com.yunbao.common.bean.PrankGiftBean; import com.yunbao.common.bean.PrankHttpTurntableBean; import com.yunbao.common.bean.RandomPkUserBean; import com.yunbao.common.bean.RankPkInfoBean; +import com.yunbao.common.bean.RedPacketDetailsBean; +import com.yunbao.common.bean.RedPacketListBean; import com.yunbao.common.bean.SetAttentsModel; import com.yunbao.common.bean.StarChallengeStatusModel; import com.yunbao.common.bean.UserAreaBean; @@ -1550,7 +1552,54 @@ public class LiveNetManager { } }).isDisposed(); } - + /** + * 获取红包记录列表 + */ + public void getRedPacketList(HttpCallback > callback) { + API.get().pdLiveApi(mContext) + .getRedPacketList() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer
>>() { + @Override + public void accept(ResponseModel > listResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + } + }, new Consumer
() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + /** + * 获取红包记录列表 + */ + public void getRedPacketUserList(int id,HttpCallback callback) { + API.get().pdLiveApi(mContext) + .getRedPacketDetails(id) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer >() { + @Override + public void accept(ResponseModel listResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + } + }, new Consumer () { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } /** * 直播间取消网络请求 */ diff --git a/common/src/main/java/com/yunbao/common/http/main/MainNetManager.java b/common/src/main/java/com/yunbao/common/http/main/MainNetManager.java index 0807642a7..793a3ae88 100644 --- a/common/src/main/java/com/yunbao/common/http/main/MainNetManager.java +++ b/common/src/main/java/com/yunbao/common/http/main/MainNetManager.java @@ -2,8 +2,8 @@ package com.yunbao.common.http.main; import android.app.Activity; +import com.yunbao.common.bean.AnchorRecommendItemModel; import com.yunbao.common.bean.AnchorRecommendModel; -import com.yunbao.common.bean.BaseModel; import com.yunbao.common.bean.FaceBookUpModel; import com.yunbao.common.bean.IMLoginModel; import com.yunbao.common.bean.MsgSwitchDetailModel; @@ -13,7 +13,6 @@ import com.yunbao.common.http.API; import com.yunbao.common.http.ResponseData; import com.yunbao.common.http.ResponseModel; import com.yunbao.common.http.base.HttpCallback; -import com.yunbao.common.utils.ToastUtil; import java.util.List; @@ -207,13 +206,14 @@ public class MainNetManager { /** * 获取推送关注的设置和关注列表 + * * @param callback */ public void getMsgSwitchDetail(HttpCallback callback) { API.get().pdLiveApi(mContext).getMsgSwitchDetail() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(msgSwitchDetailModelResponseModel -> { + .subscribe(msgSwitchDetailModelResponseModel -> { if (callback != null) { MsgSwitchDetailModel msgSwitchDetailModel = msgSwitchDetailModelResponseModel.getData().getInfo(); callback.onSuccess(msgSwitchDetailModel); @@ -227,13 +227,14 @@ public class MainNetManager { /** * 推送开关设置 + * * @param callback */ - public void setMsgMasterSwitch(String status,String type,HttpCallback callback) { - API.get().pdLiveApi(mContext).setMsgMasterSwitch(status,type) + public void setMsgMasterSwitch(String status, String type, HttpCallback callback) { + API.get().pdLiveApi(mContext).setMsgMasterSwitch(status, type) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseModel -> { + .subscribe(BaseModel -> { if (callback != null) { ResponseData responseData = BaseModel.getData(); callback.onSuccess(responseData); @@ -247,13 +248,14 @@ public class MainNetManager { /** * 主播开播推送开关设置 + * * @param callback */ - public void setBeginShowMsgSwitch(String status,String isAll,String liveuid,HttpCallback callback) { - API.get().pdLiveApi(mContext).setBeginShowMsgSwitch(status,isAll,liveuid) + public void setBeginShowMsgSwitch(String status, String isAll, String liveuid, HttpCallback callback) { + API.get().pdLiveApi(mContext).setBeginShowMsgSwitch(status, isAll, liveuid) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseModel -> { + .subscribe(BaseModel -> { if (callback != null) { ResponseData responseData = BaseModel.getData(); callback.onSuccess(responseData); @@ -264,5 +266,22 @@ public class MainNetManager { } }).isDisposed(); } + /** + * 获取直播间上下滑动红包集合 + */ + public void getRedPacket(HttpCallback > callback) { + API.get().pdLiveApi(mContext).getRedPacket() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(msgSwitchDetailModelResponseModel -> { + if (callback != null) { + callback.onSuccess(msgSwitchDetailModelResponseModel.getData().getInfo()); + } + }, throwable -> { + if (callback != null) { + callback.onError(throwable.getMessage()); + } + }).isDisposed(); + } } diff --git a/common/src/main/java/com/yunbao/common/utils/RouteUtil.java b/common/src/main/java/com/yunbao/common/utils/RouteUtil.java index 9e442e132..aaae75cc4 100644 --- a/common/src/main/java/com/yunbao/common/utils/RouteUtil.java +++ b/common/src/main/java/com/yunbao/common/utils/RouteUtil.java @@ -10,6 +10,7 @@ import com.yunbao.common.CommonAppContext; import com.yunbao.common.Constants; import com.yunbao.common.HtmlConfig; import com.yunbao.common.bean.LiveBean; +import com.yunbao.common.bean.RedPacketListBean; import com.yunbao.common.manager.IMLoginManager; import java.util.Locale; @@ -39,6 +40,9 @@ public class RouteUtil { public static final String PATH_MYWEBVIEWACTIVTITY2 = "/main/MyWebViewActivity2"; public static final String PATH_LOGIN = "/main/LoginActivity"; public static final String PATH_CS = "/main/CustomerServiceWebViewActivity"; + public static final String PATH_RED_PACKET_LIST = "/main/RedPacketListActivity"; + public static final String PATH_RED_PACKET_INFO = "/main/RedPacketInfoActivity"; + public static final String PATH_RED_PACKET_USER = "/main/RedPacketUsersActivity"; public static void forwardFansActivity(String uid) { ARouter.getInstance().build(PATH_FANSACTIVITY) @@ -80,6 +84,7 @@ public class RouteUtil { .withBoolean("forwardEntry", true) .navigation(); } + /** * 只回到登录页,不提示东西 */ @@ -188,6 +193,7 @@ public class RouteUtil { ARouter.getInstance().build(PATH_EDITPROFILE) .navigation(); } + /** * 修改个人资料 */ @@ -256,9 +262,36 @@ public class RouteUtil { /** * 客服页面 */ - public static void forwardCustomerService(String url){ + public static void forwardCustomerService(String url) { ARouter.getInstance().build(PATH_CS) - .withString(Constants.URL,url) + .withString(Constants.URL, url) + .navigation(); + } + + /** + * 红包记录列表 + */ + public static void forwardRedPacketList() { + ARouter.getInstance().build(PATH_RED_PACKET_LIST) + .navigation(); + } + + /** + * 红包详情 + */ + public static void forwardRedPacketInfo(RedPacketListBean bean) { + ARouter.getInstance().build(PATH_RED_PACKET_INFO) + .withSerializable("bean", bean) + .navigation(); + } + + /** + * 红包发放情况 + * @param id 发放者uid + */ + public static void forwardRedPacketUser(int id) { + ARouter.getInstance().build(PATH_RED_PACKET_USER) + .withInt("id", id) .navigation(); } } diff --git a/common/src/main/res/layout/item_user_red_packet.xml b/common/src/main/res/layout/item_user_red_packet.xml index 882546cd4..3a11a1cd2 100644 --- a/common/src/main/res/layout/item_user_red_packet.xml +++ b/common/src/main/res/layout/item_user_red_packet.xml @@ -10,7 +10,6 @@ android:layout_width="40dp" android:layout_height="40dp" android:scaleType="centerCrop" - android:layout_marginStart="21dp" android:layout_marginTop="10dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" @@ -27,7 +26,7 @@ app:layout_constraintEnd_toStartOf="@+id/money" android:layout_marginEnd="2dp" app:layout_constraintTop_toTopOf="@+id/money" - app:srcCompat="@mipmap/diamond" /> + app:srcCompat="@mipmap/gold_coin" />
+ tools:visibility="visible" /> + + + diff --git a/common/src/main/res/layout/view_title2.xml b/common/src/main/res/layout/view_title2.xml index b4cffb8f2..d1d192362 100644 --- a/common/src/main/res/layout/view_title2.xml +++ b/common/src/main/res/layout/view_title2.xml @@ -26,7 +26,7 @@ android:layout_centerVertical="true" android:onClick="backClick" android:padding="9dp" - android:src="@mipmap/icon_dialog_charge_close" + android:src="@mipmap/icon_back" android:tint="@color/textColor" /> Px%q)9|URA@u(nT>JOFc5`bDhO1Nqyj<(Bo#m^fDQ;1kW>JvAfbXl1waKr1&~w# z6~KHmT1F>J^4jO0Gk9k_Imi0hxBGS_t@gBV*;}~&S^>=M!T-twuO*#?XH3I?lEicA znZ)aXFOrTu0}j~ctE9(m<9PtQmGn~5XG!Oh7 eHrp->k9(B?Lpoe~Y%1@1phw1WG@0b6;_#3pAsI&A}>3k|Ho zV10Nezdr~ShyC#3SBMSDH>Exs^G*SPY;&DK3$LLSg)7RI2<1fH TEm z830%rFCbR;Vc|l)2k)fa-bunBe`N{)@cB`JZ?VN`g5_($-l&&O0iZ3|@q(2si3zM< zlMS8c1OOeN7xalK1dYf}EOt4W96*UevEq~u5mGB2!xOo3expV^g$GJOY-@pWKmLms za)Ccf5T}cn(ZX(Gc(>aaf*20~U?bavPMy;z0})iV@U+BN@pHN;r45Y $X6(*OVf07*qoM6N<$f>-27bpQYW literal 0 HcmV?d00001 diff --git a/common/src/main/res/mipmap-xxhdpi/bg_float_red_packet.png b/common/src/main/res/mipmap-xxhdpi/bg_float_red_packet.png new file mode 100644 index 0000000000000000000000000000000000000000..e4f16244f6b1c6e1b584f04d9381dd9d8025182f GIT binary patch literal 1101 zcmeAS@N?(olHy`uVBq!ia0vp^Ux7H7gBeH`Xl+~qq!^2X+?^QKos)S9WakC=gt!6) z|3i?2!+$NU|0*i~EiL~W8~@kS`|sxVA1G*T{omaDzl#fqZDaG_% _7}431I^jJ32yD0vSMYpcbHFh#*8UkPQ@sh}hdB7(iJ#7a|KJfe0=L zVZb#)8~_xAFn|t#t3+las|TutaDgO*0aOV@n1XNxm<)(|xORw{a4uXuOqryc*H&PN zSCs_$1v4-*v9Pgoa&dF>@bd8s2nq{}h>D4eOUua0E2^lfscUFy>+0$08yFfHo0(f! zTHDy#IXb(zdw6;K`UeCC1&4%&hDSz5$Hd0PCnP2%r)6Yj=H}%W78RFQR8`m3)i*RY zHMh2Pbar+3^!D{nm@skD O$AA_fLj+@0}VD^8e>=q2T;uqF493i<*{NE?cqf^Q2eP`|khvV{aeT;E=abpGnp7 ztMCGi<$8?VMOofEeupV4IZwD6?C<2}KezpG)vNUmk$$oHjp0?@ciFdpy^_Ar+rL)w zhsyGOtUaezwl_|h^Goi4yJ;yOOZz1mhvUl@&C>KNJ-= PyA07*naRCr$PT?d?0)z$x>``*m#%of@fcIhHgRzwjL7DdrSEU`w#h!KP&wrJEu zjhaNTm&BGtH&HQ0QKPYI?4kk-QB<0WbZHB_be7$n_RjY^_mz3GePtt`y6 HrQf>Rs9OKax+fd>R4x(iMF9N9<)blqV?fs?g`3!i|yBiS>6@Y~f0OEpo zYXapS@y|Vfd;1$&LIEzH(;HnouR_(X)a_YWAQ~V$(tfp)0>sO&7>BIDQ>acj0C$1y z1GPvu%?#Xs?Po)keTfeC-Bwqf@afmp8 z7ts1aEwk{Xz8~y<@Vipq_pCAi=Jf~|B~ p`@Tzn=T$Q@&?#Jum~|a;GEc>>s%^-?0LmU!@ePp^#LLeghlu$UszqIORC?0@ zLMEWCdgn7w!aKkg<{;lESzESRy1NWR?hOQhn6(yU97?^fEB~ez)RyD$rdL-3J_!#M zgAxfpwjJ EIMOhglp^->hKrAjoaWgCwQ`c`4@aK&~hDi9NEzJe&Nty{@ zI+#p*F9LvT%4_G9fSnkiJOGD+=oo~925Q7C@JafB2_&tzsrQXP{D#g)n-0SpUsw$& zN5X4OCI(WIsNnc^z_%%-8-Lk%3h;@=jBPvZ#R}FeYcBx)%kkro8MFZ}(p)5a)OvvS zd*q_l>?tq5;!+Uq0+f-m_ci!;z~ZB6-`l=*o^39FHl@;Q?FBKAF^LLJYzKU64#ytc z`<()ObOB@M?!688vr;O(3;5b(DGiw3>aYhdyW~O;-3wBIlt*7X_%5eDf4pZ8_I b_B)kK7B@+I$cEEo_JJJsLwk0(2=ckQBme}yx2)8ACO|p~*J>7c1^N}W&58MC} zRo_wVm3Z&zA@p5;0nsy}Mto~7-tf31;XNm13@|29(HZT4|Auz49q?^SXyVU*G!B_! z!}|a)5`NJ0tp>bIjhFuHahS$D43L@w!dzH*1-++4iENi*Yc6Icl>a@9Wc+ME9ScSQ3~^4VDp+_Pk(#Hd%cYKy z1@QVueNH=x#VbiHnnXq8_ZaZZQxq^LEwn^*re=tGo|W%q!m`eTq9gP?Nqi { z_)9S6A|9HKzrRvTQ>NI#=sK5v2cFStp IV2 zbGySz904fVw|xP}JHI{2GYnqbm9~dLJ2W=pDqLA2SY-;8Un^03S4fC`xJ2OJ5W4 z6CQ`5#%s^LI3^@ VYUwfLmA4In5x4?b;dAwS<5nsPA@+GN095ODUyCT+Pkqnd!RsGd4Ms1YPa*~q zz)##G!1HHM2hk {p$vK`$Jzo;aW3?;67bw99qEg~5c?0HJ`#J9>o5C~@g+jf3| zB;SNU TT6()X#?5sl&PXNhe`WPYvOw(2Zt7^&s>kf3uf1Rjbv>tH2Cg6GN%$`UZ zFCe$eK}d=-S+i2W2mzZnF97iglv}dC-gukljDmqH5Xm@A(_iQ#UUm0!=gth&)Vzr# z-AM%_->&zbEoGAsi9D?7r~wIJ>kju&yIcV1kmW?ToHxk(H*dXz@ 2NN z0WYhR1z30z@#=|G{7k*nTV6FW1Ih4{fI3AVw1f}nb#nmR1RqlgL)ZdRH&CCO?-R|S zA&D w{jz|d58_Fqg!itd$pe8m8K{^9bDg&sG7jAUJaz&H(4DdWJ zfK6+rfz&xR;0efz0M)TVFn `Sdup7yi)JFUjVC{V5j~N*9N#49dCSaW zVc|Z6GWsDNcL3N-?uyJy7-2NN3d*{Qx{UgFlMJO|Miwaa6io932p|OL&0VtR`d;f5 z7{PO>^RONMN4}0q&lPj~fvlGiF#BtU<6c7JT{X`EITI+q*vsT`wHV$!`#LaP1JlgZ zfNJg%rj @5(u%9ZUmru({WyeJ^{O il5o )9I z*>V_apEQZs+~IV;SDH0HgKgV?O8t)aBz _Jhhs# zZ2A3Ky>un69C{&Ml6QmDGJv)Lia=ubQFkqEl?r(GYYeLxEFMe!?n!&UjKwRjI|Sfa zAZ6Mo+DQ=>sS@W+0IdNTtD#f{7()Qs2Zk!r{s)n4Y1)7Wg`H{FzIm z0jEJPrn=5wkeL5s5N!k*Ux0ZqfUbb*4?~4g2f#^kN?0=~f9&XbOm*$kVPxdK45f~? z{VFb_(3)2zn3n^z69lP)H~>tYK XMl#GJ$rLY4pNrR9NrU6i(w1b=(26oqoM0&ylPAgP;op*0quOJjEM%1TFikcfw zK1F#Wf6^ecsx12ji2jzwAT;ymIG9%fBz^{GbA%zI9}FWiO@p!Tzm{@KZq;Y6a`ssu zdH@z|2`@epLS`M$6N6D}+Zx{1C=lI9xg&4k$~i+3GC$U)S2|;ifoT!IPJw~eaYL|B z1XJ~{$8Z@NkQePsG^Un#(Qqd$=SaYi5($4l4KBO5HH?HmJ8nD_BqY}bmLoCrA;DZ4 z_~OWV2V}`lj)KBFscb$`A7x{#|ANe`5v%%`il0fTT}vhv!3dOq=zbjq&||m<5$_@t z_!0HE+pDPJRZ}uxRs9=Eosd%D9Z3o`4IH=+eHJbDM-F)9js0QJ1;~k9hMiG|AZh8w zF-Tah$K`tn_`d~E9&seR7#^-~#{=&MB-Q!omiZQuPugwyPY&X-BLKP)L_^YOCzNKI zOob=>BMpcf-Z&T;<~)yi3C%J>KyBhJ7=g>F%VD3TGvavxY>f?vmG~!=(boo~v!B2g z1daZbbLf_|XEx870LC=Wfus+(NNjw8q;(Af#tgrofj7?12jOridJu-u$penfRCZBb zNlt44&s*n=LehE~W}qldN@qrZs_J`?S8_#zW?$9Z0#qj#L8&|s@H#1mcf;Tbuy_vT z9k#)nk2YJ(VIbr82nCNqt;1OC_3i-T11WEGIakc+3d$G&vh2-GSi6y(H5b+XqCe~a z(Imjyo`#P^Vik2gVii}EJ&KIrxgPV;IH0uz^^x^!7x%PeM+t0 z4zh+&(S$~85P0p=-C!CE0qX35Q6Ey81(T1bypz4sGT!u`e;^c`U`q+fq!hc;`j85a zIkZU{Y?@mDif$AI%acD@nPLMUPx*&w^-xPPu`!dew?Q;4T|#0zEDWdok_Jrx{p_}x zLy$1$00?_?5zQ)=xPtOV-mULxfrRI6b9y7mlGxQbU4n{cX#Ekn9e+<$++gW8SC-w4 zjNoN;fGZl{Kq@L((j<*4%RYo@4)+*LhN#c6dnm8u@`j${RwmwXMcD!bi~~HoT{NJo z+Vd!XWExYihpo!8C0a{!^#+@f{tdb7E+$?yWE{dOrP7P$ViJ%c;i|@pWHbx6nTR;q zJp0&@RCerr4J vNa2m1$&!R>&LoYYq0>z7||I1AhSs#LB=bnR5;4#!X z-cxPM(+ukO;8ET|Tyfz;2nHr2>Nvk7qGe$-?R&4J12=i`+RMX8WQiSUOVLziU<^=` zsQ2&M0PvUw<=XHr4Pb%Pl~i=zUCqvM(^KOS3O|k-ImeFk%?tpw(SFq9Ob=wd>E&{S zf?YM^6Q&>@{vEZ0sq5Iq&5lv=ZaTBD9hz5B-sn3$I&Ya(jBt1{c8g}}%tP$PX!J*v zH|o_U0VAQSEpzV$a7mhU1%FDpB|}>Rc&?neA7Fk0L#0$~+f^&p;Gd|=$lo+J2WD2N z`Xq^3UvNO^Q(JQ}<&L_)S^8`)>juUuJNMkVGBQBfLmTvlwjS`a7a?HopAPuyNt8e8 zktXT7x$IOh 2x2JCO#UB-p$PnLLg9 zyqB)3IHU9D$IJ$)5>M5Z=PddUHdXzY#=PfFve7m1s#7{57WoXMB+O(Vw9Eid6Um@{ zf7ZLlOD9L6jG+C!H0=lhJL40n{{xRUw~_k!l~-S^vj$l>g{#s^EsL6hu z`iyCw&Kuu48(HD$sCEDm5>p`dcPcpQeDD30AKZ^n@Iuedv^9uNDQ}bpY;zY^&OQOb z;46^1yVv%eF&M#o@z^&k;UySw0O@Bzk7!NN4V}4Q2d<>Nl0P;Lj5(Jg7`WF{neAsQ zV21lsr-K?iyZ-m_vj2q8snc{2{n++*IObAK%|yyStll|mHQ*~}zk@*FD9 9FCScOewK9JO(Kk0cHoPrgS*XG>B>i!R>y>R?z6gpMpq!lV-r z3E$*t5d!#Vtdt6V=s9$`;@#yi%)TDr#Ae=IGnw*_nAVaBFwZctE|h}~MoKDLVGH*> zw?mRz8U(zA*LLn40>czF-mK#YlX%*>lvna(bK|oBN*PCaV6|1>Cy+bxoR%gV@#Z;K z0l3}MP_${v&r$BkAJ-kf)qt-kn~dzpL#V1wy~?JNtZ^e4&w$N4DF2X+&8^k_o_K!W zafrBHdJp7Dki66fdRM)7)m!m88Y)9eP;sESU12<1RNpw32LJcXG_Lsh;X{$6cXf!! z1rn(wEcyUStBXuvJpG3Hc2@&s(4FfT-AZG#;Rn(WOH#M4fnZ8sl~tzeFiw zZU&UHLp;%VDHR->0(@*PW4r5HRX}zou)BI7<&J6AG;7fs8?xc`gTx?C&$rZ(mFN}J z Jr@WHxdk*-|vOqg#LeYWs z!g89yn|3s5SM^2^UI1GXjadLIx`Xn^_&SF8_yy1J?bz_nhXG0Ez*`{o06?~FqL<=d zkJP`LqQmqD&|R{YkYV&dlo_nk>vS~Dw(;ZL>A(eEMiVa>aVQLW6HGa2W`m3?2R6-b zP`A^La}ad`0@=0r?m@L90%bJtg;D(Zk1s}s@fV$~C-HszyE!n_vD9yRi?Y)6b}qYM zEugx4O+a*Ntu=}I{<#eRzd1eeMm8><{3Z3g>aQ(3Yyhu)pc^`5t;0_7{5s6JV-_gu zta>&iZ+Pq!FkOXUaHLKrmJB}Eq3M}uE>m@wY+ch$tMt)QDm+mGo;SYH2U($&HpB7q z1!_TNAIcxoVyV;AdK;ARdMw9I_dhHENF;8f+>&dWqoIxz7!uk-I&&1-NZ7WemzWau zlXNyAkTsAx9lZ?0oo}?l3&vxg= z3lBL3#7_d0(Qu+oOZ)|Hi!FaLjy`Z}Xy7Zoc*#i@B4FN+n1t`WP~2Ro;Mmpye)4Nj zhGeL@PD;B0M&JAQ9PnS2+kp2+8fucmsMj?uE+giZf9ZuT;nmnF=D5QwbHbnw6Fk7% zdEt*<3+CTJ85vF+GW-6NsgiQI>Ce6OI@{*#iS|M#N~!Q<8}MsiJOCXs7ib$_(^-4; zH-l9%bsgI#U0fOkeB*#jKv@@3m%|#harN9c%*%xt`wWs3(Dv6R1Tm;?>#DB ZJN~T z!Xatw0Z!TtOPxn;`bMCri^r5)mA>$F8}OU{eE`B)3sCLGqO~Tq1r!+6c7T7U7jiqV z#tuo2bC=~;U|2f0q(rjKbasPy809t|R^y%Xa#7m=;0Xeh1`A?Zx-S5B!QvlL!6*qi zde_$lyeBNh-%%MlUpooG5<$uUAp=S&E%_Ug{yOI(`d?H SWr9m%iVldkFYn1hA@uPr{3RtZNu9qP{mh(9(m&YwqZa?C^5zil*uVI%R@#&QAe; z?O(P*sg7RGzR)xz;k(2%z<33W|5DG%USdhw0TnYKGxEIWBhY|Plv2?+8}MIE?}W}B zx1vfUyt6l=Ue Una5?`-MXyhFa>onGkDaW!^|N$PVdYbU2QA8b5{%;4>)@rBkT zQjkoPBc2#Sg`*pcc<}axoe;13!gd}zm!01GJS^+Q^oo{N&YBU26@G&Xho+6ar+`o2 zn|Zki#fHJc05A>&VK@{G(vDkymZ3akXFNWPiggz`fETBo6P6PRFU2#%%3BZkPx_38 zQj)0eG_=>C-wC20(t%4qw3))7Vi2T-mOp1a4y7j3;02GhlC%xp&I^wii7d0sHZMF) zU_ENhgJ|e$Eem-qIVl?mEd{8nt%+!r*;eWMJ+bG2UzzEP!@CJF_#5@T{eqU#fLGmk z3bMk_>k2|)usX4bS5nWb`f6IQy6Y@t1)sEAkNGr-7+-{L7nC;ViRLwroQ0h5lQ!TT zr(JEll)9gja@y6r%Gf4Kf}^SBWCA;4!>Q=xc`aFoHaXV+rymTromx 9&Iqb}Sn66RI=g=EJz21*sBHoN-)>zH3Vf#Pw^Q7>281)| zz?HgUhiCN8K&RjefQmdI36_}dq60qvbxVoJ^A3(6A*|fFq{Jn*tCosCkMU O<4*qJ`3 zzIPY5m |RFHrAmPt~+ud;8NMbw*mLvc)s8J$W1rxw2jXN!@XI z-QVv)DD*4s$rnKDLX1Qyb)T35{D$fCU>XPO)Lmf;V&_NWQ>k!Vy<({bLAT+RgF%>$ zh gbmA~=kInP4TX i)Z4esv#){?xII0^I4oI`6WSK=b35lCm??!4U48bJ zU14_6R~|@sLEl$FINm<&u6LI{0fk1>kcG_>nimf41Q@RY)ElJ4RWEOeKm|{w;xcUm z^WqUpp;SL_jF1!sp~Xc({Kav90F)gf6HmYGv9_C74tRdg0l!=_?Zj#4I63W(!E(^Y z(!PJ0-5ltde-XgyJkg#qyhEOq0aV2=q&`zh^|V*tv @#;< z7OAmzb2SVVOxf@upe9~QJ%648{JMYKf=K8ZoeQ8Dm(FP1NJVECHn#>n$MWaS1*wMs zX^SS8Houlp*B|Ytzt@1z@!9YM 2mlJ{?@ zYb{sK`VDgP??l4!kLWu2?a!lf-C0z8W~0CG }vraDJRex9ms2*PUQvlD_ zjnwn^e`uD*YwvjshIx*b+^$2=F10MBo)@J6zy9I=FpVX;p@{2~(YAi_2I_Y1^-YbV z0n=GM52cRx++;d=$hwOPPuAL=27IT;YV2^-bs>=k{OB~m>w7o9a}> BJ?4eZhPKKn`)=sCqQRle*6dFA%m9vH+5d26N|F}mvCkxoR zeFSwqyk0CnUBc^4+kud^UqgNAxnlNcWJcciif!y1fz>e7kd`z&;mX-hA{ac&riGgU z7`^R(0Qka{b|H;kkj=0ybps7um$v!*X^)R!(l8xQckk8lbsk8=RyUfo!JqU$9ofb+ zw$H&)0d**mrqYmwo*Kyu4#)@0r6AZf;HjAMDwr5f13zpu0f!flej7pa=z3juBrR0~ z{>?oH{L*SC@y4}Fo&RTtfF1EOG2r2U`^r|*&K$3} 89hg>rY+)8U& itgH3B2$feZtk`&-K-kFI+*7G3a zhiSiKAnaSIv#IF3=Nbjf`X_#d?8t+*)6Y2vI+s0^<*L-Y;n`m3nB%DQE{!rlnMc(F zyaxToH!ep;=&ls#opVUE9TpFxf}_)zJy*VeH$tJyyy7Aa4w*yr*OWJ^(V7P4mm}C- zuv>T2alvjk#F$5UCBqw9GuO=Lw5&N{4m)=aNA4&I#X9Sm3L?907FU)@a}C4uzDxRX zb#;^T($7_V*cFs4w`Hy~IVrrUsXn9a0snE~V=!@!?NN6$Gz L5jbL1tCZ+AX{UuOz1K6C8L~S|3nMovTI{^U!$E^sOgAnyewiL67 z!Qe?W;Jr2g{C1}v-UoO$vLRmdX!2o@dJv)LQp6~UWJr2ob%!!f0MV5o6|PhE8-ucr zp+0|p-;-V|ue=sP^Jblo;7Z?M5Qru3gQXrqJi3|&+_8&SP3Z`rBMj_^q;WAaGfuKA z1$~K7+J+bJzEw)Su1Is}^4dQi2hhuQc+3s^X)~f$YQzDWff$t|rmB&tx`M3kpul)^ z%$$rJo@dqW`m?k47V7?!>%27x;5$T8fR}k>3*e7w81Pf3C|r2x;~@G;nmunfsdyiW z+T+C;n0o)b2+XP_P^w2Ntfd$MlaNUM1I&+tjdehDBdU#TWCjWWYYd=n1tE|s`q6J> zBzaWbaGW<*;?}qeC{YQ}RzM0r^e?z}fvK`IBe6qdu4Z6?aTXo4{F%C3mFFGY z0fE|2K-eb@91{7HcQDpFV+gvlbO=sSAk~G&3oW|Zgl)qYf3W9(|FY880K=8gDhY!O zy++;c3nGOjG-!cH0G^AG**U#?4*^mhT$8+y_PzgCej4!F%R3`rZozJUyDaH~qJI@g z8h~sB)GpgGsWL&-6NX{x3P|ydgad@?WE> ^>CDaFr_c_|y@K4l)7u{KpB9Zm2(wV@ zYcHg&DAkijtgqLhlt1bE5)_@7N_FrN+^_0;#Pfw_1h^L6L Fyv5areS07nSfPRJ zZIEA$c0+EC>gP}G6*Z8kqmNm{po~dWJi845FPV0}7FW{zBgWThuR76z-dyYb-k+Dd zU<1Hz^Ys$-d-&uA)yU z{Gq{+Er0dL7ZEg0N;if4=9H^3cwx?zSw>U^Qm0eVq&L!-mH<9SvI!l)%a;Q9?2{V> zyaxT2XS>79T$?H%c5W99Cmz3p3Qq8vMA~ZbTXu^pU3KR_gLVF_|61paYVCnurrZ** z#Z`lQAw33Eayf{y>J Zf8^=5iF*nVbUQ8Tv0X&3Z-CQ32s9#Z~C*XFmNPwE?GqU zNx@H$V?JR!w*W{Sem5SZgE#!5_3yQx;ExN}AcJ~%EtT{;`3*X_{MZHw@p0kJAp9Hw z%G1xJ JaZY`@Eh3 zGEcWnmu}=41&oKN|6{*wiUz#=0!gj>9ZXSEeU4I(0XXjzNg#(eVSNrZFF>+t0gS9Q z2$~%<(-Xi~#UG@7Zm4%QJn!(D+iwEnLWBaH?ashH2A#%Wr0;?-D{VS0hB7arqMu8C zM%u+29_oe89n&Se{CaH0DNO=ipTmvMoeZKE>;x?zlb17=uuh?FCus+ 6X@m zP#;D^ns5lv-v#JlAo)7=xT3+IOy=@wc}OOo0Ml;A0W5`C5$bl{G0o9l_f0I{|0 K5~_>7sA5H08c L+9pY^u-L6Vp^_^BvziXtFk9wIQ@(z#v&YRp?K?`VR^Z+Mtp;-y9kgP0 znr){`b6spp{4@%W2T7i<{GG z8e}xGp4AgWU~@PuD+`tmpRR-%s0G!0ghzYF>i)2T{eue5HFYZC`YA0s8+tG0NNt^( zjjF(*V9o)l&R|*rWmcfa?j@KCtFa$)NIy$c6t2HM1&XOtsU^>8TKnf;Z!a7Ffep SmncQ;H=Qpy#|DK+9;+C?jrUZcSxC+CQ#wgu=Gq0K}*OK@=c~ zEReAramzwDu>c(olUCpI3nF#(hx!M)HJqyb-mgai8}K2=hIegC3F+`fH0b>n=hA<@ z(c7Q;K2xAsJLvmNod4C@wGF@6oCYPSwT_x;7cE^xgUi|h|Gy%9`+M6Z{N6YNHsCqE z#g%s2Sr^gZkJ
a*pu(eknMoq3p=d=Z&o=ryc>s?AMN0aXvi1sfZq#y z@_iYy9q@Z$r#0Y>9shudv%MI#sPr|~#dOfpW`6)-FHE_8$nOXR+5x{8Hj-z+M2Ftj zg6LT1hcYE(9RwM-(t%5#-wRV}AM$%bfp);}rH$rQy)zJ%Tvg}Vo+OwZYTRa@dudwj d!+ysp@PBVuZKqw!yi))G002ovPDHLkV1fy5$K(J2 literal 0 HcmV?d00001 diff --git a/common/src/main/res/mipmap-xxhdpi/icon_red_packet_float_text_zh.png b/common/src/main/res/mipmap-xxhdpi/icon_red_packet_float_text_zh.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ed1436f5d2bc28eb591cdd8d290de8b0437b53 GIT binary patch literal 10898 zcmV;DDs9z?P) PyA07*naRCr$PT?u#<)!BZ(nY$$+>{$%^q6i46*vewHuDD|Bu838vC{n4~s;#Yv zwzaLl73)G!D^&rlP*?n2DvDY`ttd-?A_#;n5E4`%WVy?H|8vePcV;s8-nlm+F2D0U zN|HHq=4|h`f8P*%Ud;1UU=0&Z(|kVit!c(zEbEBIeL-;kekwbv{#!G#94EpI!kT$O z4C>3yE`}$F=>OgM$Z;7xA0xk=@y@r#0(>$+3sKVJHKK!?{670lZpXV8wSyA=7c}$* z(Z^t|0t!|`qg6oDdMZA??wdTnT*l6OKkR}gZ3YNQ;>21I3CyC>(QoC_=XcNOE8q)| zy#AFiI)r8;7(5@bcmqH?0iKI39qy!~j*5Mo7n8RwJ{+C$mZ6~uAOaKu5(zQq9f)fe zQt2@te4FR*H8=iZaWAy*ScyIRlDESlprK(hbsat9|J!=B=6wADa>uK^5eROAW=bOj z1XUoWHGtHiRDAqr=?29-O#zNmT65s3`}&~}n_Qw)?r-Lr#qS^(JQlIIvlHfxR6M$0 z?md5VpXA;D>4Cz?7VNPJ2Lg~yu}M@ka^_b#Gv4+7tsw0ZFrr`OII?^<0kjfY!L|MX zx$Cv*h=i_}T*73kfdG)u=27t}7iM}n?_78$NI44%Yd|_&n)gx-E7h~c-x&!gc#^t~ z`cI}Y`MJ+EOO8W_c5gclo_MezPjG_^sLQDNe){>U+Hm!|L!qcAffN@tY2k=i>x@X` zb~M_wmVhcGhxq`%4Jd&Yz9IQIvjU>`sq4rO{q)H-OCCl+{zNo=gET5qfLL@X6!pZ6 zfaL8j^gt-I1sVe^7>@um0fHjd?d?k4&)J=6p}2bC9S8-df)g$&*?hfy7-{|{Z+W#f z{vOvf5H6>#qi1ItQ>OdOOsIW-HHZf4^ENJ35eKh|ibi+K)W=tSpKF&)MnV3AXli9< zA(kWVfpM`mN-GOOqR+ h*}3U^2ki7`>McI_npH#=zCD-wsuohJ+A#U4V0dEDhM?i(L1uUyUD#qF|apMaRtb zGp=-Pc-N8%AUq7fN$mx9tZy2RE?wpWd(@V`C#&bHcN0q9Z}4mB=Gw)R5DL%uMjcM~ zf=B|$)2L|V9e&p8TMbCAo!1Sqz#0JUbv%fJFAx77sEL78bnXsci&XvU?NDf%u7kQc zU~2-D1S^<8MaQ)Wki2zC9wPiM6!oa2-fYZN7 4zL2Wp04U=9YM%Pltxk6$p89j z&%6FT83hHc&mqOjC2@6KVr_)@g;rDH0aXQ}u{)_~)a}0JoQgw+f_@(VYT5`~HN`%L zLMNo N>OivN*9%`*bVsZ+;%Iw{aMij9BTXXRi715>Vog zt#05T1VBn}2eA@|inSVmzVvIo_cI51P>AlMt|K4t)83Oq1_MIGegcfID=NjoT8~Ej zDJ3Aea`r(81y+O532Xxjp%zNuXev2(qkVyx9}WUn$BCMgN3MGQw@_#*pa{9wxI8$e zj=_ir7iBP-bPk>3dHr4tnszmnp7OMx>x*JTHXZWjYcq-7%FYZ6j2 rt z=G=w+@UKyCatQ(=A)qlnoyso0(E-M-{~QW6F(1qi0$5DlF8U A6nE+wE z)3jw&e8!Qv_L 4OB $#6kfVCh~BaOU@sXw*HNT+ zPU9Gr{J_D;+%3Hax#RJ{U{pw@(NqV7ET7OeQ@6`{JHRM7N>ywrf`K8jZ9=OBVI`o> z#^-p7249esiI4aHi?PoHqyhvKAkGz3de+cZUY=&%@vb*72k@A#2)RHg2!q9;TMAGg zfE5HmShnp~YXDM+ &7KH` zh|bV0j$&iPd1hXOKyWM-UyxO38P~mP0MZzm^misIsPxAN6p*~*-6E)spMccv%|ul~ z6pRnSh&h4k@|!lZ_`8?a-XI+)WjyFWC`vbnp4KXWeE)W+ratfcD78&PdBzeIR6Hu@ zz0MktRf~I}Yhh(GU-N;OF<~=x9pzwX895|xn|U4>Pl1F2Y#37{^}{pRv;8s}Jk8>G zym@XX1Y_?4ILz`<>d!=xz*y>e+3VTPi|ZCJ_BGf75L6(pRnS4_<-AFL#=zCDy@p75 z3>wYp*^F2Tet=3(p5mvU)@sAGi~ovncuI0S0KNlc#^wE10g|`gn+JqGfI>rIMad}) z=0<>rQjf`w5INrZ$j?y_xexWWLoBFVTzihXPdGQ@>UlKaeJ?ZzWQ;4Q+XV* 4=1#kw{7R%r3+d!>Rk}+j5ytuFr7odk-KK`kBLrn4b?cHMYp8!!;fpQdrJAwznCv zGK^ZdulDRS&EH02V&q3i+8O+KJp{em-yqEWBH~1+e&2COr>xJL@4E&0!9StFjKUCx zoS+aRen#DX_K-tVU4MUjbZNH-`-P`L%Bs4!DmJ6rRcfwjIK1~+MxEf0MxW*;bsKj; z0Le8kU5o@h4j^Q`(|mWHG-8dXlGEno3anh8 o4)5d18tc?vnqv9Vt rIr;aV6 cW9FISQg!UqWJ{<7EK$f8E5elAeWzu|IIHb&6X`Dnw z$K;f`!aG+KK&e{@MH!JjAU92mfYiBA=p3Ef*@FP=&ifQUCtU$`VC^*O^~?8KbP)GE z$=D|VX^chcq=^dZepRahl6TJQ15JA$ppqmG4Z@ ZO>Ru zg$0@t2;hII%c-kVtrb_lVFRSG7D8l=)(@r5C%1q@{@aKvwkvvaZ{tZ3ErYBk0`Eay zalGOLi2(o1m()N>fn7}gIsr1;bS-rqU7mR&&0Fy9588uS7&Nm7r09+}PQ4APa;Gk~ zr2(O-E4tf+glNl;Q?FlMk;??^&+wPCl7JLom;O(#pzc?<3Lv@qsS+f#x1cD4EVqs| z027o1h&hROTZpx;Cx sM{*E~j|@>jcOaL> fZd8CzIOl~JCqz37w8kb% zQAJyWn##lJs7G2{J%GP>L lmndU2$UIY zp9*}gL+&JIQ4md_lCx6A-15#>JVe$AP#+&gB`5icW%WAtT=R}CuGpkEVvp@fEtvqy z`dN^K+2pjMnnIT8SMK14uL~e$ZfE?T(D)rt4!NC#2pHFZs8^1FytM?-gcwvLo%&*7 z1t0_v#o+3rtH7d$44oy?a~+@+Z5c;W@2SgLgKqK{GZ_19;d)YJ @cw wG zp$~|PtwZ~D0i-S!3GU;^fs<;YVhx CR z@rGYr15zG #xO<{|lpEqM3chRAB1J1Ng|1@*eM^#Qs2 z{`RO>uYnqvCBUe2&T<`)rkJV+P49-H4hIr7S Z%^3yaccjE@_{oXZ&qGg2B@qK?~AV#LEC$ z4|Z8#9cgoNl|{U>kav%QqV%=aMsi54f{I7yyw~5V&^fQe#-CmHJA~EWqRDhn8y3i> z#8kv$Gti-+7E!||sar(1Qonn8W_56Fjk)$NLu54$i|AA6kbS1+yh+)Ng||Iua7crD zNI+68f*4GtlZ3x6tBbck;Q;_83c>^`8=o4GRsX05QJ&pqg2Dn&yE9t|$OX4U5#>~D z#8vbtjXG(P!sV=uSIev(aUNW%qGi
2O<+T$Eq0%~#QtHxwgm`l-^)LTe z3LhJ xxq{V&UeWK5Id77`H|wo<^F5W) zTx}jwJwCS 5d@X1oiB`pKwj_2+`C@?iy zPQ^4-xdE2}Y?4E|3|i7U?=I!(!5QtKmzG-N-8zR{LnS8+&SuZ-ZMo(>qw1W^11Bp6 zcqb_5`kn*zoag59q8|p(t(ORH9*LN+@)?UP+#t+1QoqNhn*-w2*S142z80kDWf67j zXcWvprGsZ?U5=4=-Kqmp_M-qIBu`Myes{MKApcwm2&0b484Qs%%(($_Yx(U^g_}Xb z-7FNQTUpB{rUB&B&9hz-yqwB@azslG16MtBE)?ZF-K=jnLYdZFW3TmnG+yNrO<5^G zP(53(L})e i1)B24^2oS9KJUtc{yk5ci8*XKG%u6d^%;fSpa zB Gzkm0c7PL3_zNkLvs9Dgw-4Y`9M-+wN~3G#?@nT zYC!Ip?GZw#RZ#aU+hiTmom8$`&=sBXYIL`UTpu7D1e&5(Qt8?Lt*q6rtwKN@Y`J!V zvX49Ipi_NSnDZJVSHDw^yx=uxGB~6VL^}u$Ia~*1&A*>VmySPj#0Xm*x#8f!uVOKv zv0(yr8U1(J-|od%AR>a$bF7~w#Pr=?yg)^xf9ws&wHM3*(KrWIr3H BpwSOs1Aar6hg%@2n8=g)D$mGuF5m0 z Qtlnsygv?v zSztEO_p%(dG=#?IQqky3t&vE+ws!0xfcg)F1Bau@j1DnCq33sOLrCo@MM%L3#a}Fm z#cG$V-5Lo1jfp?dAy51^n<4VfDTc^u^r^qEg8DzyMu5Dn60qrzx-n}vR33piq-(_Y z)s&Y&9^DE>`BkzUid=RP88d-;+>ip0Gln8xU6BN&W!Zj`dS3ez-|sgXa?N9f*b~h| zLD*@y;0S}7+944TK4hExX~gh~8aGU$R+3(qS6)&YEkr1I1)?_nPuI0~p)kMLVK5TG zE)E~83_sV!cbPRLGD~cFr>XL2Jf03ZBkMFiu6`p0Adl7oS-ofu0_wPAJs>X~It@r= zF>d7m19HungMjd61eBmYP_xF9O=*{DS9T@dw4&MnW^n-hD^ZNSbjaKe*&HC=F^N$p zD5eXL2S404fZX_NCx_HIlm^Cb$ZsFo^(x!kEuG6oT}cr~u^m9-Ka<3Yf1^+^fqLBH z4ahC`jYTBzA{vd{RPm?~2^-@NQ_m^aWVN2+TaG&(oq>*p*SLJ4`Wg$sI4rKN{S?I4 zGRPYD#P3b=hRu{}#IlOMGKCOkx-TTMgeaKBqp57{maOJm{aR9oG~XlKMR}tPK)$7O zNO#zuP_wMdHZ4cBeX067s^fFbd*eVf3v4F18?GannBcZ#i<9Jv$n)Zml5(s$?PHK~ zq+XZU#__B$IXl%b?#q9SFJTGMQW$_N;}+?9XOngw9rE 1r3 |}uEKVp{9|-L*1RzXiXpNl*FyLpcLI`t+Arbm6A?_h z+fPo*Ssh;oBpV{D)kYlP^}4&zS^#rVN&!kr94P_0ddwXN(NqVZybhQyng}u|!pPzv z-U(7(0BbJ;>Le(1z7$2Qc6f&lefD_2i^|)tVAREJv8+ZJ$N^8Z5g>2y5Lw*^%!6Px zYiR*;XZc}> zCEf+7lcP`lfVl$ZQ_NLLm0kqM)?O#(h8%0P6_!C^@o;ienSV)U7J*?sl&-U+E+#UG zVu>f{pmRidPG1-ASfGonQZF^eAUI_HaRwk?p92yc(y%H^17zY!DjCyE72w^kv_~Sm z4nRo~km56U$?EuA^UgRx=#U17)R|Nzbv@QI6p?qm_XJesGV8M%5|9a}4k; JtZ{ zAg~(s30>TjUotYp5E+TXRRC=R({_M9g@VP12UpOL7q?m)zxJ#vp(uZofMk3Cs0*OP zo}&Q^*7{ma8DBbH2c)@}rVcq^ZrcFzv+KM$q+L=-D?wOPGQ|OwJ0>D^ZUxgJ0PP2~ zJs@Q}n1Uc0573CD+-C%2$of87f9iSj2ES`*?Th#v{no18Xcy_A<3a)UHGYwF8d|Am zbs+izY_c;s7Y(HB1dBSZ;&; uM=WZv;YIU=Up!vthIP{Hwr z$ok40sBS=Nb5L9~fynvsVXj)#6>3a;0nH$eCWln5&sA{EqH%!WkOGkA-iwkb$2TkY z$hrCqN4Mc zbisU^0U&uic*QAw5DH!gHTWd zD!&``VH5%@pM&B_IW!akRBA#)Q-e&4wGKsGL=5diXVqXS-Ss=&&u{emVO-w+_zDEn zp;iv10Aw^?PG#e-b)OC1F?Rt1!87&GA7Uc*(>&^T!5+V7h<7|^3k)#!PQ(BgoNNGc zfiAMjHD=vK$2 ~=t&=ncr)Is=e~ zIwE7W1t5=Y4oJU~_G-rr5_Qgb?U)O|bT|!s?bclS 9(UnjGLoBW!^uxy3OzM8cB+s){HG3ywi8H9z bXUdUp1_l`VvCNV=LkHx}XXik% zxjh8I*LV&}dUyj;5fY*ckRo-i=yU^+uZ)8x3}!ZwRRZ$V6oCBF#vz5dNLIv{OC=|G zh^!SymjJu~zzPsmfoTmCdV>bP|2eNX=4b@8vCtsOKz5S_qUfL@G _>}z@n0h&ZT@2<+!m;F9(yQ_=*Og2%GPPk3uO;Sp= zEW##bPitMZ5ez?uAXB{8eUN#M@1^J>xNg+Roa`+&p%w}sMF&mD7-YiR=9D8(SXpfx zQU>LZ)d5*Ge+~j 2zrxiE#(@nBw#6ZN z6P2FP*K5Cc=j)G&Tv&@ZiG9|D$a=B|AU`>x7dnS3vClXi1tMGym(t)5=5ob|DFEMR z85<(1(1XsRA@9G;t9~#V5xj>+!)mNA_}d`$EE@cFcHj2ca=M362Ng8v)iwg;B~A{h zAFNs^I52?RFh%$We+YsB99cd^{O>))@pn38y8K!a^E3sRCd@6qvJ$vzT30m1MO8ba z9Ek@9&ZGxhK(<7&q+7>2d^xy*nz_>KV0XRC4DJtzNU6&*5=7qixDgm&08%_JIAq~D z1|XlB1J&e^Ha*??6uUVV!)0Q9lE@mPqx^~vNX;#>+CJ@W^kWhpLv_``Y7}u}qyXfq zVPlXNcn$lFQRD}J{qgf?*s^DN +0O@C8_|qG@A;25KcopF1 z0R9C1I <4i2I#cxLZtu7!bkz zne$P3+uzF(5hAOt`n~{U`|}Mz&TbA!XV8Yzpw|4Jqx=e2KQ|5 1| UG~{EM zeZZ@R--t-?FK95p9G2PNf2F}6W)->5n@?b!LmL|_WqiRQ-)b8`u06-;hm;hWY9T1} z0T5Yz0doCy-O(wuRYoug15Y%u3!n{9a0~T);NPC2(fVH(L76^*G5`PyKuJVFREcdy zVMvIJ&2>~a_ypyyj~T{9Vgv&u_1ARV%yKPe0J-?wguCXiAlTwNAa+jc^|Kh~zQ!hm z!o8^EDp}tt-NjoTDMy}Z)G-K#0Az=Y4M09_v$A@K?1jl}|%QSCu5zrxk?Z8~HM z@Oct5V-|Xenz>YRrUxKb44#27O+u5Qd<#H+8SPC+{&zEfI=m~IVr~U@JDywKQ>MFC ze6I(B+7{t9wE>oC$Wk8_$dXIUmB%@CNL}f!puz994Iuw}wnw%HY7r13>+=~!rc4JW zm;1bK;u&ZcdKvp|Vwlh`W7@UU?;+1(zRVMYSQj1vRW*zzE@O-JtMLPC?Eyvj(>h7r zHL5)cl^zA#9QAVWsSG_{b(2N=U?UWsElYKnIl$84uf2o>?tvnM23*~`-l1>|U+n$R z{^hk)>&RPX8rdFp4w(n)FkT1b_Q#TdwD9P`!R?&UsauN^K7q={>42>IhaMPUT3LNX zIhnvUDm4flvgB+pKn_@lfO4X4hL^JM9w_Pn8nUXIUmse4(uDZ>m7(B@P8H!3JA#I- z+{R0XcR)C?P}WH?gNY-G*x2*vux0*3=QfRI)Y(EtWj-WT(2)1q2#{wq*CAyI5A~}9 z
wBkp}79h zEgP3~lq50kiGPfba~W-grFRl_yG%w*@%FhF0VoF `XAo8|khP1faIi2? zs)dMJp*Z!1DL0}p@)x~QgH12gQ@&~e`Xlwb=U%^i=x)cGrWzIW411LLqFQ5OCiR)> z>4(hqJ@O20zR#vZ8lY;Q2kQ7!9gvj|4TP$cAfTo(j-_$;u*PVNeM)_G@tHS1T7pP$ z04U_ZQu8^a>Qk8M64g|8k*MpF1SGHRS_q}nUa3FIJMyDC|3N#POb34^3jp!*0Tm!V z%%T`XjZo+k8uDLJ^&Grx(D_hAIS;b{vE-sv*xt~WPXEk|TTHv&yzzTpZjY5TWNB7G z#<^}PuRbZsA?1F`|J5MMhtaUF3Xqp>gi3v^2p*wFitmOW{6vOB;BOUp)8!Gw+uaVr zEygFXlV`xx6PXquZ~sN9N` j(ON*aer!8?mb=8*8_iz5B$YU9=Y`G!=Se^=@A+4# zG{yQ7nf}?i>2yTpjpn#`Mc=s~Tw(!IAJ@$^Y{UOpZI<_61%(D9Uj^zCUxJj5QgoG6 z-AEDhRD6v=iVy0#P0gackO-WzyvsaoJTKnWsI8?TO9y6qAm#8@9b<^BHvK~Mnc!U@ z xe%iF}%lAmwl{o$0I=FNzY& bWdd61O= Nl&!m3S4*($Vv>A2Whu&+QQ|yNYKKs79e)a=UhifSF-s_6)M`Z&L zpe0~*PVOBwfVB&0c$Gy7d0Eei2;pJNwIMkN{y;};w#szyvfdr(h)O-3W@X 2%CWcEe(ip?{6A#TIZx?oK^?q zC#91Bau+t<4OU0c@NL4?AunFq{paXH_eqge7=IhE6AB*1u&vXGk{>s>+JD? h0MKZmwtUolV{ro93v)VlJ#poOO%7LZl4{$2qT|p{sH#2F0t79)x_XcEr=VMHlN> zWD-?8K$e#B+S;cAw_dXUHVk~_4}QbwGM?fz4S3z9{{w}72@Uno=uA5F$wgkxdHsYP zU@A==n`%3#g<)WS^!wCr#z!p~o98$-+?wQ&enJCVHHyi7wmkrxE)H1GJqfgBrKf}G zVdPPFL`6QH{A(2*xl^yTY65a)NngYRM z?z@2JINZiBR+Dr^ckLrHxumQGq(Y;$bohTS%yqN5;>b&pN3$hocMyhjAz!Y|@Z})( z6jfb|U~3~waVB2Dzz$=HymL}>opZY9_|r=s0O&~?FgGQDc->{96zF*l(bR63Gk?}U zU-%I^#80H6> NM!UNCf1^R5f7L6 zk`km=@~ggl_I9F36_h#<_5ger4PNwATduKDvMOUhJFmO+=ZL8HH8TY16Vk<2qIzi9 z0MK|EFl$9y&f}Z%F8c{{jG0##wWGl`S!HT`Qzo6wIQf(QMF@vGAQtG10HryYnF{4* zx^Irk)s7Se4eDAtYN79}`E2IbT5Wml_&!kM Over the maximum value Insufficient balance, continue to recharge Time limit gag +Red packet record +Last 30 days record (as of yesterday) +Current status +Red packet Took effect +Red packet Expired +Red Packet Details +Check +Pay Time +Mode of Pay +diamond +opened +Residual return +None +Return to account +Popularity Red packet +Red packets diff --git a/common/src/main/res/values-zh-rHK/strings.xml b/common/src/main/res/values-zh-rHK/strings.xml index bee2faa9f..4a8ed2ef9 100644 --- a/common/src/main/res/values-zh-rHK/strings.xml +++ b/common/src/main/res/values-zh-rHK/strings.xml @@ -1191,4 +1191,20 @@超过最大值 餘額不足,繼續充值 期限禁言 +紅包記錄 +近30天記錄(截至到昨天) +當前狀態 +紅包已生效 +紅包已過期 +紅包詳情 +查看 +支付時間 +支付方式 +鉆石餘額 +已打開 +剩餘退回 +無 +退回賬戶 +攢人氣紅包 +紅包專區 diff --git a/common/src/main/res/values-zh-rTW/strings.xml b/common/src/main/res/values-zh-rTW/strings.xml index dc2735243..bd87f6cda 100644 --- a/common/src/main/res/values-zh-rTW/strings.xml +++ b/common/src/main/res/values-zh-rTW/strings.xml @@ -1190,4 +1190,20 @@超过最大值 餘額不足,繼續充值 期限禁言 +紅包記錄 +近30天記錄(截至到昨天) +當前狀態 +紅包已生效 +紅包已過期 +紅包詳情 +查看 +支付時間 +支付方式 +鉆石餘額 +已打開 +剩餘退回 +無 +退回賬戶 +攢人氣紅包 +紅包專區 diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml index 0870f2363..95b56959c 100644 --- a/common/src/main/res/values-zh/strings.xml +++ b/common/src/main/res/values-zh/strings.xml @@ -1191,4 +1191,20 @@超过最大值 餘額不足,繼續充值 期限禁言 +紅包記錄 +近30天記錄(截至到昨天) +當前狀態 +紅包已生效 +紅包已過期 +紅包詳情 +查看 +支付時間 +支付方式 +鉆石餘額 +已打開 +剩餘退回 +無 +退回賬戶 +攢人氣紅包 +紅包專區 diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 81850c6b9..0a3d0e170 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1197,4 +1197,20 @@ Limited ride And limited avatar frameOver the maximum value Insufficient balance, continue to recharge Time limit gag +Red packet record +Last 30 days record (as of yesterday) +Current status +Red packet Took effect +Red packet Expired +Red Packet Details +Check +Pay Time +Mode of Pay +diamond +opened +Residual return +None +Return to account +Popularity Red packet +Red packets diff --git a/config.gradle b/config.gradle index 013cf6403..1894327c6 100644 --- a/config.gradle +++ b/config.gradle @@ -5,7 +5,7 @@ ext { minSdkVersion : 21, targetSdkVersion : 31, versionCode : 430, - versionName : "6.5.2" + versionName : "6.5.3" ] manifestPlaceholders = [ //正式、 @@ -24,7 +24,7 @@ ext { baiduAppKey : "zgCgFhUKEOV7I3ZXDFpTfnRB", baiduAppSecretKey: "nEVSgmuGpU0pjPr6VleEGGAl0hzGW52S", // true表示谷歌支付 false - isGooglePlay : false, + isGooglePlay : true, //是否上报异常日志 isUploadLog : true, //是否打包成插件包模式 diff --git a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java index 1bbc86181..7b2ce69ef 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -159,6 +159,7 @@ public class LiveAudienceActivity extends LiveActivity { private View titleLine; private boolean liveIndex = true; private boolean isPk = false; + private boolean isRadPacetModle = false; @Override publicT findViewById(@IdRes int id) { @@ -183,6 +184,7 @@ public class LiveAudienceActivity extends LiveActivity { L.e(TAG, "直播sdk----->" + (mLiveSDK == Constants.LIVE_SDK_KSY ? "金山云" : "腾讯云")); mLiveType = intent.getIntExtra(Constants.LIVE_TYPE, Constants.LIVE_TYPE_NORMAL); mLiveTypeVal = intent.getIntExtra(Constants.LIVE_TYPE_VAL, 0); + isRadPacetModle = !StringUtil.isEmpty(intent.getStringExtra("redPacket")) && intent.getStringExtra("redPacket").equals("true"); initView(); setVolumeControlStream(AudioManager.STREAM_MUSIC); manager = new PortraitLiveManager(this, intent); @@ -267,21 +269,40 @@ public class LiveAudienceActivity extends LiveActivity { manager.resetLight(); Log.e(TAG, "mCurrentItem:" + mCurrentItem); if (mCurrentItem == itemModelList.size() - 1) { - MainNetManager.get(mContext) - .anchorRecommendType("30", new com.yunbao.common.http.base.HttpCallback () { - @Override - public void onSuccess(AnchorRecommendModel data) { - if (TextUtils.equals(data.getList().get(0).getUid(), mLiveBean.getUid())) { - data.getList().remove(0); + if (isRadPacetModle) {//从红包专区进去的走红包专区列表 + MainNetManager.get(mContext) + .getRedPacket(new com.yunbao.common.http.base.HttpCallback >() { + @Override + public void onSuccess(List
data) { + if (TextUtils.equals(data.get(0).getUid(), mLiveBean.getUid())) { + data.remove(0); + } + itemModelList.addAll(data); + mPagerAdapter.notifyDataSetChanged(); } - itemModelList.addAll(data.getList()); - mPagerAdapter.notifyDataSetChanged(); - } - @Override - public void onError(String error) { - } - }); + @Override + public void onError(String error) { + + } + }); + } else { + MainNetManager.get(mContext) + .anchorRecommendType("30", new com.yunbao.common.http.base.HttpCallback () { + @Override + public void onSuccess(AnchorRecommendModel data) { + if (TextUtils.equals(data.getList().get(0).getUid(), mLiveBean.getUid())) { + data.getList().remove(0); + } + itemModelList.addAll(data.getList()); + mPagerAdapter.notifyDataSetChanged(); + } + + @Override + public void onError(String error) { + } + }); + } } } @@ -861,7 +882,7 @@ public class LiveAudienceActivity extends LiveActivity { if (TextUtils.equals(htmlUrl, "recharge")) { RouteUtil.forwardMyCoin(mContext); } else if (TextUtils.equals(htmlUrl, "to_me_information")) { - RouteUtil.forwardEditProfileActivity(); + RouteUtil.forwardEditProfileActivity(); } else { if (!screen) { ZhuangBanActivity.forward(mContext, htmlUrl, false); diff --git a/main/src/main/java/com/yunbao/main/activity/MainActivity.java b/main/src/main/java/com/yunbao/main/activity/MainActivity.java index e4785c2ed..ede574312 100644 --- a/main/src/main/java/com/yunbao/main/activity/MainActivity.java +++ b/main/src/main/java/com/yunbao/main/activity/MainActivity.java @@ -26,6 +26,7 @@ import android.view.Window; import android.view.animation.DecelerateInterpolator; import android.widget.FrameLayout; import android.widget.ImageView; +import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; @@ -93,6 +94,7 @@ import com.yunbao.common.utils.RouteUtil; import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.VersionUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.common.views.APKUpdateCustomPopup; import com.yunbao.common.views.AbsMainViewHolder; import com.yunbao.common.views.floatingview.APPEasyFloat; @@ -191,6 +193,8 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene private FloatBannerView floatBanner; private boolean isfloatBannernet = true, isFirst = true; + private View floatRedPacket; + @Override protected int getLayoutId() { @@ -236,6 +240,8 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene rt_main_tab = (RelativeLayout) findViewById(R.id.rt_main_tab); v_table_redpoint = findViewById(R.id.v_table_redpoint); v_table_redpoint_me = (View) findViewById(R.id.v_table_redpoint_me); + floatRedPacket = findViewById(R.id.red_packet); + initRedPacket(); Display mDisplay = getWindowManager().getDefaultDisplay(); Height = mDisplay.getHeight(); @@ -485,12 +491,14 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene initAnchorRecommendBanner(); } else if (index == 2) { floatBanner.setVisibility(View.GONE); + floatRedPacket.setVisibility(View.GONE); findViewById(R.id.banner_click).setVisibility(View.GONE); isfloatBannernet = false; if (mainMessageViewHolder != null) mainMessageViewHolder.onResume(); } else { floatBanner.setVisibility(View.GONE); + floatRedPacket.setVisibility(View.GONE); findViewById(R.id.banner_click).setVisibility(View.GONE); isfloatBannernet = false; } @@ -561,6 +569,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene if (!isfloatBannernet) return; MainNetManager.get(mContext) .anchorRecommend("10", new com.yunbao.common.http.base.HttpCallback () { + @SuppressLint("SetTextI18n") @Override public void onSuccess(AnchorRecommendModel data) { if (isFinishing()) return; @@ -572,6 +581,14 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene floatBanner.setVisibility(View.GONE); findViewById(R.id.banner_click).setVisibility(View.GONE); } + if (data.getShowRedPacket() == 0) { + floatRedPacket.setVisibility(View.GONE); + } else { + floatRedPacket.setVisibility(View.VISIBLE); + ((ProgressBar) floatRedPacket.findViewById(R.id.progress)).setMax(data.getRedPacketTotal()); + ((ProgressBar) floatRedPacket.findViewById(R.id.progress)).setProgress(data.getRedPacketNum()); + ((TextView) floatRedPacket.findViewById(R.id.progressText)).setText(data.getRedPacketNum() + "/" + data.getRedPacketTotal()); + } } @@ -832,9 +849,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene //获取指导员引导逻辑 NoviceInstructorManager.get(mContext).getNoviceInstructor(); NoviceInstructorManager.get(mContext).checktHomeZdyPop(); - if (!isFirst) { - initAnchorRecommendBanner(); - } + initAnchorRecommendBanner(); } /** @@ -1232,6 +1247,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene } else { isfloatBannernet = false; floatBanner.setVisibility(View.GONE); + floatRedPacket.setVisibility(View.GONE); findViewById(R.id.banner_click).setVisibility(View.GONE); } } @@ -1374,4 +1390,15 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene } } + private void initRedPacket() { + ImageView title = floatRedPacket.findViewById(R.id.title); + if (WordUtil.isNewZh()) { + title.setImageResource(R.mipmap.icon_red_packet_float_text_zh); + } else { + title.setImageResource(R.mipmap.icon_red_packet_float_text_en); + } + floatRedPacket.setOnClickListener(v -> { + mainHomeViewHolder.setCurPosition(3); + }); + } } diff --git a/main/src/main/java/com/yunbao/main/activity/MyWalletActivity.java b/main/src/main/java/com/yunbao/main/activity/MyWalletActivity.java index 2d85ea59b..f2029490b 100644 --- a/main/src/main/java/com/yunbao/main/activity/MyWalletActivity.java +++ b/main/src/main/java/com/yunbao/main/activity/MyWalletActivity.java @@ -65,6 +65,10 @@ public class MyWalletActivity extends AbsActivity { GoogleBillingUtilNew.getInstance().initGooglePay(mContext); vp_content = (ViewPager) findViewById(R.id.vp_content); TextView rView = (TextView) findViewById(R.id.rView); + findViewById(R.id.redPacketMain).setVisibility(View.VISIBLE); + findViewById(R.id.redPacketMain).setOnClickListener(v -> { + RouteUtil.forwardRedPacketList(); + }); rView.setOnClickListener(v -> { LoadingDialog loadingDialog = new LoadingDialog(); loadingDialog.show(getSupportFragmentManager(), "LoadingDialog"); diff --git a/main/src/main/java/com/yunbao/main/activity/RedPacketInfoActivity.java b/main/src/main/java/com/yunbao/main/activity/RedPacketInfoActivity.java index 296212675..68271b00e 100644 --- a/main/src/main/java/com/yunbao/main/activity/RedPacketInfoActivity.java +++ b/main/src/main/java/com/yunbao/main/activity/RedPacketInfoActivity.java @@ -1,29 +1,82 @@ package com.yunbao.main.activity; +import android.annotation.SuppressLint; import android.content.Intent; +import android.graphics.Color; import android.view.View; +import android.widget.ImageView; import android.widget.TextView; +import com.alibaba.android.arouter.facade.annotation.Route; import com.yunbao.common.activity.AbsActivity; +import com.yunbao.common.bean.RedPacketListBean; +import com.yunbao.common.utils.RouteUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.main.R; -public class RedPacketInfoActivity extends AbsActivity implements View.OnClickListener{ +@Route(path = RouteUtil.PATH_RED_PACKET_INFO) +public class RedPacketInfoActivity extends AbsActivity implements View.OnClickListener { + private RedPacketListBean bean; + private ImageView icon; + private ImageView gold; + private TextView title; + private TextView money; + private TextView status; + private TextView info; + private TextView time; + private TextView model; + private TextView backAccountText; + @Override protected int getLayoutId() { return R.layout.activity_red_packet_info; } + @SuppressLint("SetTextI18n") @Override protected void main() { super.main(); - findViewById(R.id.red_packet_info).setOnClickListener(this); + bean = (RedPacketListBean) getIntent().getSerializableExtra("bean"); + icon = findViewById(R.id.icon); + title = findViewById(R.id.title); + money = findViewById(R.id.money); + status = findViewById(R.id.red_packet_status); + info = findViewById(R.id.red_packet_info); + time = findViewById(R.id.red_packet_timer); + model = findViewById(R.id.red_packet_model); + gold = findViewById(R.id.gold_icon); + backAccountText = findViewById(R.id.backAccountText); + findViewById(R.id.btn_back).setOnClickListener(this); + info.setOnClickListener(this); + + title.setText(bean.getLiveNicename()); + time.setText(bean.getCreateTime()); + + money.setText("-" + bean.getAmountDiamond()); + money.setTextColor(Color.parseColor("#000000")); + icon.setImageResource(R.mipmap.diamond); + + if (bean.getCurrentStatus() == RedPacketListBean.RED_PACKET_CURRENT_STATUS_SUCCESS) { + status.setText(R.string.red_packet_info_status_success); + } else { + status.setText(R.string.red_packet_info_status_timeout); + } + if (bean.getAmountRefund() == 0) { + gold.setVisibility(View.GONE); + backAccountText.setText(R.string.red_packet_info_residue_none); + } else { + gold.setVisibility(View.VISIBLE); + backAccountText.setText(mContext.getString(R.string.red_packet_info_residue_back) + " +" + bean.getAmountRefund()); + } } @Override public void onClick(View v) { - int id=v.getId(); - if(id==R.id.red_packet_info){ - startActivity(new Intent(this, RedPacketUsersActivity.class)); + int id = v.getId(); + if (id == R.id.red_packet_info) { + RouteUtil.forwardRedPacketUser(bean.getId()); + } else if (id == R.id.btn_back) { + finish(); } } } diff --git a/main/src/main/java/com/yunbao/main/activity/RedPacketListActivity.java b/main/src/main/java/com/yunbao/main/activity/RedPacketListActivity.java index ad98ce1c3..36338fd3e 100644 --- a/main/src/main/java/com/yunbao/main/activity/RedPacketListActivity.java +++ b/main/src/main/java/com/yunbao/main/activity/RedPacketListActivity.java @@ -5,14 +5,18 @@ import android.widget.TextView; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.alibaba.android.arouter.facade.annotation.Route; import com.yunbao.common.activity.AbsActivity; +import com.yunbao.common.bean.RedPacketListBean; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.RouteUtil; import com.yunbao.main.R; import com.yunbao.main.adapter.RedPacketListRecyclerAdapter; -import com.yunbao.main.bean.RedPacketListBean; -import java.util.ArrayList; import java.util.List; +@Route(path = RouteUtil.PATH_RED_PACKET_LIST) public class RedPacketListActivity extends AbsActivity { private RecyclerView recyclerView; private RedPacketListRecyclerAdapter adapter; @@ -25,7 +29,7 @@ public class RedPacketListActivity extends AbsActivity { @Override public void main() { super.main(); - ((TextView) findViewById(R.id.titleView)).setText("紅包記錄"); + ((TextView) findViewById(R.id.titleView)).setText(mContext.getString(R.string.red_packet_list_title)); recyclerView = findViewById(R.id.recyclerView); adapter = new RedPacketListRecyclerAdapter(this); @@ -35,15 +39,17 @@ public class RedPacketListActivity extends AbsActivity { } private void initData() { - List list = new ArrayList<>(); - for (int i = 1; i <= 5; i++) { - RedPacketListBean bean = new RedPacketListBean(); - bean.setTitle("攢人氣紅包" + i); - bean.setTimer("X月X日 " + i); - bean.setMoney(i * 1000 + ""); - list.add(bean); - } - adapter.setList(list); + LiveNetManager.get(mContext) + .getRedPacketList(new HttpCallback >() { + @Override + public void onSuccess(List
data) { + adapter.setList(data); + } + @Override + public void onError(String error) { + + } + }); } } diff --git a/main/src/main/java/com/yunbao/main/activity/RedPacketUsersActivity.java b/main/src/main/java/com/yunbao/main/activity/RedPacketUsersActivity.java index 61a340b79..083a4f309 100644 --- a/main/src/main/java/com/yunbao/main/activity/RedPacketUsersActivity.java +++ b/main/src/main/java/com/yunbao/main/activity/RedPacketUsersActivity.java @@ -1,21 +1,36 @@ package com.yunbao.main.activity; +import android.annotation.SuppressLint; import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.alibaba.android.arouter.facade.annotation.Route; +import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.activity.AbsActivity; +import com.yunbao.common.bean.RedPacketDetailsBean; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.RouteUtil; import com.yunbao.main.R; import com.yunbao.main.adapter.RedPacketUserRecyclerAdapter; -import com.yunbao.main.bean.RedPacketListBean; - -import java.util.ArrayList; -import java.util.List; +@Route(path = RouteUtil.PATH_RED_PACKET_USER) public class RedPacketUsersActivity extends AbsActivity implements View.OnClickListener{ private RecyclerView recyclerView; private RedPacketUserRecyclerAdapter adapter; + private int redPacketId; + + private RoundedImageView avatar; + private TextView title; + private TextView money; + private ImageView icon; + private TextView open; + @Override protected int getLayoutId() { @@ -25,8 +40,14 @@ public class RedPacketUsersActivity extends AbsActivity implements View.OnClickL @Override protected void main() { super.main(); + findViewById(R.id.btn_back).setOnClickListener(this); recyclerView = findViewById(R.id.recyclerView); - + avatar = findViewById(R.id.avatar); + title = findViewById(R.id.title); + money = findViewById(R.id.money); + icon = findViewById(R.id.avatar); + open = findViewById(R.id.open_packet); + redPacketId=getIntent().getIntExtra("id",0); adapter = new RedPacketUserRecyclerAdapter(this); recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); recyclerView.setAdapter(adapter); @@ -36,17 +57,32 @@ public class RedPacketUsersActivity extends AbsActivity implements View.OnClickL @Override public void onClick(View v) { int id=v.getId(); + if(id==R.id.btn_back){ + finish(); + } } private void initData() { - List list = new ArrayList<>(); - for (int i = 1; i <= 5; i++) { - RedPacketListBean bean = new RedPacketListBean(); - bean.setTitle("攢人氣紅包 - 主播昵稱的直播間" + i); - bean.setTimer("X月X日 " + i); - bean.setMoney(i * 1000 + ""); - list.add(bean); - } - adapter.setList(list); + LiveNetManager.get(mContext) + .getRedPacketUserList(redPacketId, new HttpCallback () { + @Override + public void onSuccess(RedPacketDetailsBean data) { + setData(data); + adapter.setList(data.getDetails()); + } + + @Override + public void onError(String error) { + + } + }); + + } + @SuppressLint("SetTextI18n") + private void setData(RedPacketDetailsBean bean){ + ImgLoader.display(mContext,bean.getAvatarThumb(),avatar); + title.setText(bean.getNiceName()); + money.setText(bean.getMoney()+""); + open.setText(mContext.getString(R.string.red_packet_user_tips)+" "+bean.getAlready()+"/"+bean.getQuantity()); } } diff --git a/main/src/main/java/com/yunbao/main/adapter/RedPacketListRecyclerAdapter.java b/main/src/main/java/com/yunbao/main/adapter/RedPacketListRecyclerAdapter.java index a1a64e227..3dfa1bc92 100644 --- a/main/src/main/java/com/yunbao/main/adapter/RedPacketListRecyclerAdapter.java +++ b/main/src/main/java/com/yunbao/main/adapter/RedPacketListRecyclerAdapter.java @@ -1,7 +1,8 @@ package com.yunbao.main.adapter; +import android.annotation.SuppressLint; import android.content.Context; -import android.content.Intent; +import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -11,10 +12,11 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.yunbao.common.bean.RedPacketListBean; +import com.yunbao.common.utils.RouteUtil; import com.yunbao.main.R; -import com.yunbao.main.activity.RedPacketInfoActivity; -import com.yunbao.main.bean.RedPacketListBean; +import java.util.ArrayList; import java.util.List; public class RedPacketListRecyclerAdapter extends RecyclerView.Adapter { @@ -23,6 +25,7 @@ public class RedPacketListRecyclerAdapter extends RecyclerView.Adapter (); } public void setList(List list) { @@ -56,13 +59,18 @@ public class RedPacketListRecyclerAdapter extends RecyclerView.Adapter mContext.startActivity(new Intent(mContext, RedPacketInfoActivity.class))); + itemView.setOnClickListener(v -> { + RouteUtil.forwardRedPacketInfo((RedPacketListBean) itemView.getTag()); + }); } + @SuppressLint("SetTextI18n") private void setData(RedPacketListBean bean) { - title.setText(bean.getTitle()); - timer.setText(bean.getTimer()); - money.setText(bean.getMoney()); + title.setText(bean.getLiveNicename()+"|"+bean.getId()); + timer.setText(bean.getCreateTime()); + money.setText("-" + bean.getAmountDiamond()); + money.setTextColor(Color.parseColor("#000000")); + icon.setImageResource(R.mipmap.diamond); itemView.setTag(bean); } } diff --git a/main/src/main/java/com/yunbao/main/adapter/RedPacketUserRecyclerAdapter.java b/main/src/main/java/com/yunbao/main/adapter/RedPacketUserRecyclerAdapter.java index 011a95a7a..ddd7b1dbf 100644 --- a/main/src/main/java/com/yunbao/main/adapter/RedPacketUserRecyclerAdapter.java +++ b/main/src/main/java/com/yunbao/main/adapter/RedPacketUserRecyclerAdapter.java @@ -1,32 +1,36 @@ package com.yunbao.main.adapter; +import android.annotation.SuppressLint; import android.content.Context; -import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.makeramen.roundedimageview.RoundedImageView; +import com.yunbao.common.bean.RedPacketDetailsBean; +import com.yunbao.common.glide.ImgLoader; import com.yunbao.main.R; -import com.yunbao.main.activity.RedPacketInfoActivity; -import com.yunbao.main.bean.RedPacketListBean; +import java.util.ArrayList; import java.util.List; public class RedPacketUserRecyclerAdapter extends RecyclerView.Adapter { - private List list; + private List list; private Context mContext; public RedPacketUserRecyclerAdapter(Context mContext) { this.mContext = mContext; + list = new ArrayList<>(); } - public void setList(List list) { - this.list = list; + public void setList(List list) { + if (list != null) { + this.list = list; + } notifyDataSetChanged(); } @@ -48,21 +52,22 @@ public class RedPacketUserRecyclerAdapter extends RecyclerView.Adapter mContext.startActivity(new Intent(mContext, RedPacketInfoActivity.class))); + icon = itemView.findViewById(R.id.avatar); } - private void setData(RedPacketListBean bean) { - title.setText(bean.getTitle()); - timer.setText(bean.getTimer()); - money.setText(bean.getMoney()); + @SuppressLint("SetTextI18n") + private void setData(RedPacketDetailsBean.Detail bean) { + title.setText(bean.getNiceName()); + timer.setText(bean.getTime()); + money.setText(bean.getMoney()+""); + ImgLoader.display(mContext,bean.getAvatarThumb(),icon); itemView.setTag(bean); } } diff --git a/main/src/main/java/com/yunbao/main/bean/RedPacketListBean.java b/main/src/main/java/com/yunbao/main/bean/RedPacketListBean.java deleted file mode 100644 index 16f3e0910..000000000 --- a/main/src/main/java/com/yunbao/main/bean/RedPacketListBean.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.yunbao.main.bean; - -import com.yunbao.common.bean.BaseModel; - -public class RedPacketListBean extends BaseModel { - private String title; - private String timer; - private String money; - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getTimer() { - return timer; - } - - public void setTimer(String timer) { - this.timer = timer; - } - - public String getMoney() { - return money; - } - - public void setMoney(String money) { - this.money = money; - } -} diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeRedPacketLiveViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeRedPacketLiveViewHolder.java index b6d66fda7..a8bad6643 100644 --- a/main/src/main/java/com/yunbao/main/views/MainHomeRedPacketLiveViewHolder.java +++ b/main/src/main/java/com/yunbao/main/views/MainHomeRedPacketLiveViewHolder.java @@ -28,7 +28,9 @@ import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 首页红包专区 @@ -134,6 +136,12 @@ public class MainHomeRedPacketLiveViewHolder extends AbsMainHomeChildViewHolder @Override public void onItemClick(LiveBean bean, int position) { if ("1".equals(bean.getIslive())) { + Map map = bean.getParams(); + if(map==null){ + map=new HashMap<>(); + } + map.put("redPacket","true"); + bean.setParams(map); watchLive(bean, Constants.LIVE_HOME, position); }else if(bean.getIs_week()!=null&&bean.getIs_week().equals("1")){ String url = CommonAppConfig.HOST + bean.getUrl()+"?a=1"; diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java index 9c7c0ce9c..f04befa48 100644 --- a/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java +++ b/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java @@ -41,14 +41,11 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder { ImgLoader.display(mContext, "https://downs.yaoulive.com/gif_trophy.gif", img_trophy); - img_trophy.setOnLongClickListener(new View.OnLongClickListener() { - @Override - public boolean onLongClick(View v) { - mContext.startActivity(new Intent(mContext, RedPacketListActivity.class)); - return false; - } - }); + + } + public void setCurPosition(int position){ + mViewPager.setCurrentItem(position); } @Override @@ -73,9 +70,9 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder { } else if (position == 2) { mainHomeRecomLiveViewHolder = new MainHomeRecomLiveViewHolder(mContext, parent); vh = mainHomeRecomLiveViewHolder; - }else if(position==3){ - mainHomeRedPacketLiveViewHolder=new MainHomeRedPacketLiveViewHolder(mContext,parent); - vh=mainHomeRedPacketLiveViewHolder; + } else if (position == 3) { + mainHomeRedPacketLiveViewHolder = new MainHomeRedPacketLiveViewHolder(mContext, parent); + vh = mainHomeRedPacketLiveViewHolder; } if (vh == null) { @@ -102,7 +99,7 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder { mContext.getString(R.string.follow), mContext.getString(R.string.hot), mContext.getString(R.string.recomment), - "红包专区", + mContext.getString(R.string.main_tabs_red_packet), }; } diff --git a/main/src/main/res/drawable/bg_float_red_packet.xml b/main/src/main/res/drawable/bg_float_red_packet.xml new file mode 100644 index 000000000..5470ff1b1 --- /dev/null +++ b/main/src/main/res/drawable/bg_float_red_packet.xml @@ -0,0 +1,35 @@ + + + + \ No newline at end of file diff --git a/main/src/main/res/layout/activity_red_packet.xml b/main/src/main/res/layout/activity_red_packet.xml index 19ed25a3b..b2430f744 100644 --- a/main/src/main/res/layout/activity_red_packet.xml +++ b/main/src/main/res/layout/activity_red_packet.xml @@ -19,7 +19,7 @@ android:paddingStart="15dp" android:paddingEnd="0dp" android:background="#F5F5F5" - android:text="近30天記錄 (截至到昨天)" + android:text="@string/red_packet_list_tips" android:textColor="#000000" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/include3" /> diff --git a/main/src/main/res/layout/activity_red_packet_info.xml b/main/src/main/res/layout/activity_red_packet_info.xml index c2c0a9a58..8c397a9cc 100644 --- a/main/src/main/res/layout/activity_red_packet_info.xml +++ b/main/src/main/res/layout/activity_red_packet_info.xml @@ -13,7 +13,7 @@ android:layout_marginTop="24dp" android:onClick="backClick" android:padding="9dp" - android:src="@mipmap/icon_dialog_charge_close" + android:src="@mipmap/icon_back" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:tint="@color/textColor" /> @@ -54,6 +54,15 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/title" /> +- + +
+ + ++ ++ + - +
+ ++ ++ ++ ++ + + + + app:layout_constraintTop_toBottomOf="@+id/Popularity" /> + + + \ No newline at end of file diff --git a/main/src/main/res/layout/activity_red_packet_users.xml b/main/src/main/res/layout/activity_red_packet_users.xml index 6a9f8bfae..f100b3e63 100644 --- a/main/src/main/res/layout/activity_red_packet_users.xml +++ b/main/src/main/res/layout/activity_red_packet_users.xml @@ -14,7 +14,7 @@ android:layout_marginTop="24dp" android:onClick="backClick" android:padding="9dp" - android:src="@mipmap/icon_dialog_charge_close" + android:src="@mipmap/icon_back" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:tint="@color/textColor" /> @@ -65,7 +65,7 @@ android:layout_marginEnd="6dp" app:layout_constraintEnd_toStartOf="@+id/money" app:layout_constraintTop_toTopOf="@+id/money" - app:srcCompat="@mipmap/diamond" /> + app:srcCompat="@mipmap/gold_coin" />+ + + + + + ++ + + + + + \ No newline at end of file diff --git a/main/src/main/res/layout/view_homemain.xml b/main/src/main/res/layout/view_homemain.xml index 175475a58..981e0b6f7 100644 --- a/main/src/main/res/layout/view_homemain.xml +++ b/main/src/main/res/layout/view_homemain.xml @@ -1,5 +1,6 @@+ + + ++ + + + + + + + android:visibility="gone" + tools:visibility="visible" /> + android:visibility="gone" + tools:visibility="visible" /> + +