From 57bda40a82445716fa93784aff8634b3d0ef2303 Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Sat, 2 Sep 2023 11:16:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=AD=E8=8B=B1=E6=96=87?= =?UTF-8?q?=20=E8=B0=83=E6=95=B4=E5=BC=80=E6=92=AD=E9=A2=91=E9=81=93?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yunbao/common/bean/LiveClassBean.java | 11 ++++++ .../yunbao/common/utils/MicStatusManager.java | 12 +++++- .../com/yunbao/common/utils/WordUtil.java | 17 ++++++++- .../res/layout/dialog_live_mic_invite.xml | 2 +- .../mipmap-b+en+us/icon_user_home_living.gif | Bin 0 -> 38265 bytes common/src/main/res/values-en-rUS/string.xml | 29 +++++++------- common/src/main/res/values-zh-rHK/strings.xml | 3 ++ common/src/main/res/values-zh-rTW/strings.xml | 3 ++ common/src/main/res/values-zh/strings.xml | 3 ++ common/src/main/res/values/strings.xml | 29 +++++++------- .../live/activity/LiveAudienceActivity.java | 2 +- .../live/activity/LiveTRTCAnchorActivity.java | 3 +- .../live/adapter/FreePkRecyclerAdapter.java | 36 +++++++++++++++--- .../com/yunbao/live/adapter/GuardAdapter.java | 3 ++ .../live/dialog/FreePkDialogFragment.java | 12 ++++++ .../dialog/LiveMicAnchorDialogFragment.java | 26 ++++++++++--- .../dialog/LiveMicUserDialogFragment.java | 13 +++++-- .../LiveNewRoomClassDialogFragment.java | 8 +--- .../live/dialog/RandomPkDialogFragment.java | 22 +++++++++-- .../yunbao/live/socket/SocketRyChatUtil.java | 3 +- .../yunbao/live/socket/SocketRyClient.java | 31 ++++++++++++--- .../yunbao/live/views/CustomViewHolder.java | 7 ++++ .../live/views/LiveAudienceViewHolder.java | 2 +- .../live/views/LiveNewReadyRyViewHolder.java | 7 ++-- .../live/views/LivePlayRyViewHolder.java | 32 ++++++++++++---- .../live/views/LivePushRyViewHolder.java | 4 ++ .../live/views/LiveReadyRyViewHolder.java | 5 ++- .../live/views/LiveReadyViewHolder.java | 5 ++- .../main/res/layout/anchor_open_mic_view.xml | 2 + .../res/layout/dialog_anchor_mic_list.xml | 4 +- .../main/res/layout/dialog_user_mic_list.xml | 4 +- live/src/main/res/layout/guard_list.xml | 1 + .../res/layout/item_random_pk_rv_head.xml | 5 +++ .../yunbao/main/activity/MainActivity.java | 2 +- .../PDLiveConversationListActivity.java | 3 +- .../main/dialog/MainStartDialogFragment.java | 9 ++++- 36 files changed, 274 insertions(+), 86 deletions(-) create mode 100644 common/src/main/res/mipmap-b+en+us/icon_user_home_living.gif diff --git a/common/src/main/java/com/yunbao/common/bean/LiveClassBean.java b/common/src/main/java/com/yunbao/common/bean/LiveClassBean.java index cc05b3bff..3ff79aa6f 100644 --- a/common/src/main/java/com/yunbao/common/bean/LiveClassBean.java +++ b/common/src/main/java/com/yunbao/common/bean/LiveClassBean.java @@ -1,6 +1,7 @@ package com.yunbao.common.bean; import com.alibaba.fastjson.annotation.JSONField; +import com.google.gson.annotations.SerializedName; /** * Created by cxf on 2018/9/25. @@ -16,6 +17,8 @@ public class LiveClassBean { private boolean checked; private String chinese; private String english; + @SerializedName("channel_show") + private int channel_show; public String getChinese() { return chinese; @@ -92,4 +95,12 @@ public class LiveClassBean { public void setChecked(boolean checked) { this.checked = checked; } + + public int getChannel_show() { + return channel_show; + } + + public void setChannel_show(int channel_show) { + this.channel_show = channel_show; + } } diff --git a/common/src/main/java/com/yunbao/common/utils/MicStatusManager.java b/common/src/main/java/com/yunbao/common/utils/MicStatusManager.java index 78ee85a88..66c3043ed 100644 --- a/common/src/main/java/com/yunbao/common/utils/MicStatusManager.java +++ b/common/src/main/java/com/yunbao/common/utils/MicStatusManager.java @@ -134,7 +134,11 @@ public class MicStatusManager { new Handler(Looper.getMainLooper()).post(new Runnable() { public void run() { MicStatusManager.getInstance().clear(); - ToastUtil.show("已成功退出語音連麥"); + if(WordUtil.isNewZh()) { + ToastUtil.show("已成功退出語音連麥"); + }else{ + ToastUtil.show("You have successfully exited the voice connection"); + } } }); } @@ -193,7 +197,11 @@ public class MicStatusManager { * 显示退出连麦状态对话框 */ public void showDownMicDialog(Context context) { - DialogUitl.showSimpleDialog(context, "當前正在連麥中", new DialogUitl.SimpleCallback() { + String content="當前正在連麥中"; + if(!WordUtil.isNewZh()){ + content="Currently connecting the wheat"; + } + DialogUitl.showSimpleDialog(context, content, new DialogUitl.SimpleCallback() { @Override public void onConfirmClick(Dialog dialog, String content) { // downMic(); //不做下麦跳转 diff --git a/common/src/main/java/com/yunbao/common/utils/WordUtil.java b/common/src/main/java/com/yunbao/common/utils/WordUtil.java index 9d58b9973..2c48546a4 100644 --- a/common/src/main/java/com/yunbao/common/utils/WordUtil.java +++ b/common/src/main/java/com/yunbao/common/utils/WordUtil.java @@ -1,5 +1,6 @@ package com.yunbao.common.utils; +import android.content.res.Configuration; import android.content.res.Resources; import com.yunbao.common.CommonAppContext; @@ -31,8 +32,20 @@ public class WordUtil { String language = locale.getLanguage(); return language.endsWith("zh"); } - public static boolean isNewZh(){ - return IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE; + + public static boolean isNewZh() { + return IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE; + } + + public static String getNewString(int res) { + Configuration config = new Configuration(); + Configuration tmp = sResources.getConfiguration(); + config.setToDefaults(); + config.locale = IMLoginManager.get(CommonAppContext.sInstance).getLocaleLanguage(); + sResources.updateConfiguration(config, sResources.getDisplayMetrics()); + String str = sResources.getString(res); + sResources.updateConfiguration(tmp, sResources.getDisplayMetrics()); + return str; } /** diff --git a/common/src/main/res/layout/dialog_live_mic_invite.xml b/common/src/main/res/layout/dialog_live_mic_invite.xml index 8da222dd4..6c94c267d 100644 --- a/common/src/main/res/layout/dialog_live_mic_invite.xml +++ b/common/src/main/res/layout/dialog_live_mic_invite.xml @@ -15,7 +15,7 @@ zuf*_KQ-XcLFS{g#S zgdmZ69-sTUzxVI?UM%g@BivKrROG5(0kz1S(=%pe_z>yz_kp}`L03Q(mBM$h9 z0T?kLQWkK913scaums>C3|x^0Tm*qIDZo<*h>`^y1c0DRnG%4n2;jg6_=^M4@_?@x z5O8UOEZ{5vgh&A4Qh)Kx>V1us764qZH*3WMB{oblK%%g@zmX z#`<19we=FQzW!GNV&Q%PK_L-3LSOFwBLok@=mfMT zH84VYx^V48&BSnQctET#JTW{hB1SV&N5~fw=@+1RS^u|NUI_kQB(Ya?g!KP?0smL0 zVPtdwTvZMs>yJPv!qqh76jYU!R1q?8MT8&_t+dDk{SNy9ixsi^c?M z+8G)Dx30^Uj!OHF-Z}zzKOCCF~a|m zU=$GJA02{?4T+3^|0~hgFETDxN9fYh|91%C*#8k55hM3s!;$lk43|&z#mXzlA^siG ze+aFt{_mvW;r~M&6Kfanf9(DL6&&M`gbk3l3y6t~i}nw=Bp3cy6;{(QI>0wJGTI?B zGVDLIhz^d7jf@G7#KIL7RiS>=}4=^**5xNv17ZQTe zM5$<~DH$uME34}pC@7#%2KxF2C`AP&bz@_FWd(hM|L__``p1O_M8y7w7xRC3HU3xL zf3Xmbz0_Mm^DNGcUx5dS9$-f+T3`${^ar6>dK>s%MX?o7v|??XQrnnC;qvAZ~X4q=*XSnp~2e& z{e8E3Z}xO|-RSISZ)i?qp*12F!6zCPYwo*wRQt}f0_jt=&AwrCq`D@zM= zGgA{|l#!uDIqQ|qX7N8hl8j9Tt*h2kex%!f^jIx zL4-`y96eGhDk~@xDC=q{Ew6`Ik}N_nmKcjp3##rO>fT$_&I3WWgB%>L+_?jG0N?*- z!W$eA;O%X-uo%m}%)LN6Y<9VQ=t22yOR@X zX*b(%-)w){1_#?(gUAB8Oc7Vh@X$(aTg5kvV=m!-ApzAep_+GsxM>)jF&xfq zHqg3gKrd$r6TFenZ&ogIbi-~D)Mi=t8F8{6A}%3jVZet*4YKt(50rVi-d^9}_L^v> z{AIAb#i8y}u5uf9=<2NDGPBSxMp@u```Jqzt=glj?y+cKc_!|OHH}u%>0odZF|x5v zBJ^4(wals+`!pF7#B5}>$$vhz!E`3EUy+AC>}T-1C#VUSFuip?f7-hla++kjm?YP> zA!4m^fY(@g-nT~$IySXJhJl@3j$K|iHM`C%dtZ+wo1Kdmj4Jpo4!V(8a=6%o9#0ji zNVhZ8gopf7C{4BL;gJyd_;tTlq}RRVcHCn?9zzf*4|d#-HGlWfp$t2;(Oq#$34+*~5#ikiOmH z%gg5c{Ofx31GW}_t~J5ibV^jcxO zZlztYRdB+737)z5gJ3T0s4z=aE_|BLj99(A2Yl}u0Zzj6GrC-qHSm3&L|F>FG;+^X zKUpugL0*rhk-9ge{`_jcMBG)`yAniykb{mh9j~^~v?a@m@{`Jvrx>!ArO!%Ytdl;} zynV#}X;x|_#o_bqV!g~8Q7-9TV#BNY@mmUWeT+=%GIbojIX;1r10g5@`A^6of*!Oa zD3slAYc6zqcrKfG>jlOvd@wv(h^raV)!ZT{6o-;2-7vK%97D!Qwoe5oTgJL4Q9M)* z$aZ9R+l_nj5c;wvsDbDGS|xu)qFK{yPqOFxVnEk5(2O&ETx!n6kY2~AG&9%_Gmu3m zbs-bvgq@fg6jLe5f-!nr4G-mtxYBgz=Azi=u=?Qryu7RJk9n@jjy>+RGrw7CA&>qN zeZ$d_iHz9M;O6WZA6=kwtYSKR=%hj2;&0q-^OEf&4fC|Kg5L0svjFm*Sk>Jr_ zLy?Z!u&nUVzS>U5N>o_3w47=f#fX6P!%8@oS3_5p$n_`ka`JSz0b-FDOK9#uoYThS~koI~ikd z#H})y9O_p^>-?6O$0e80ZfkP;B8PN?BnP=qDk|L`hZ;I#*FQHii6DF?xi=;#Cui_| z1J}uDKA?#nTbWcYsGe}7E8 zvqi;XYLS)!$ML^(R=U`ubI-^Z`jhCCjg4Xm*4JWMGfKz@Hw%SO6mUGjmhx`Ac%X4@ z%&ntt^%gv!!!+OqUbRGoAu5rKZ`$5vr-Fl##jeNiB-4vltxCY_{ag4y%;<#%7*n2d zv|`N|raeF!c${A9p^nNX)znE;bgy?OU>9anD7 ziM|S*9=6{+blN-s(<%(L>P@hn_5>PdGpmiu|BeY(w%q9V1 zp~ZDvyccBnYHyW;P-9^{U^J=)c6r4wsPgSZ@?*Wpg=M{!ZONCWLTt5!KQ+Wus$|h{ zJ>9;pJhN+iWgQ$AiMHs1sjA8k($Kh*XnQE@A6L%3HD9^yST&x+`FGjD5)gD+$Z4}L z`+>zGMH)r-Bv+uz_67>*F1z|I8{2(LQb$j7W8jpVBSRNU?XFpVy4|3>kZge|(`&Xc z{afZQ9&k?AytuzLLWho^6cRlKWRfh9|@ltOU*nCh!j5?9HME<&tRcDNMSo?E(FNn4SuJBzfO>5_wZ z60FN&bf8l?;BRJMCo;|Zxdc)=_jC!Z_2-z8n%OO7By8=aHSorM*C!nd#Ws@CkH z4xT0&0y?VhC`Z|u6EB`NODFP^iivHQqg*CrolpvGneGZA1Om=&tR2uS37R8N+(4!KOp7v`;ty_ZJCD6{mtT z_!_EX#4gWtkE+F1snjbDyomOR$80u6j^5^~P^*2ltxuc~>>^Cu#y%CFt4+<_M z@v{nLXb33#yg@Od;^fO%9T2|yoxIc?*b6%qEPK%Gn`HkEkHFHP5PiRcOp{(_s|3Mt z@fp=YApv^z=qcyuKYPLZC~L`ioxN{5i_Gdu91i?7A;uf7o8q9O;k5R^&=+cv?Qu$g zgI-^hqbie7Pb-TjJI%-WBr>A=7l`oJEZ%Ws#=SwOp>kiQ1K;^GVEP zDa(dEvT@xZDOZVG(Z~7Ft>JZ~Mh)fa7W$||xui_s29I2}>tp9BuUX+Vs922O~SSdgDt zRXP?-jZ_|ELSFxlw-lz;A7R~b$yjMJzL=M{aLE&3r}qK*aS`ZuVcC9UfK|{b109|} zR7t@elCVRNele(U)!5#=)?QPE^3mG_ohrpEH6hm~70(>KDQoK#;ZS-kIqi0(&9D(8 z0*p1QVj*$MmkQp}XK`sa{~1_+=RFk*vTW!OO|I-jDdMYGR>&6Ut1ybiQi?1*wQXyz zp}@z#Lu;?G)!Gd3i#g;+JmDCQ4)!oemLs$oVOAHQwAko{CKKns`YPx(padfMb@=+8bG{`C*AAO7hMT|q#&bH+vF^(_}(ZoqrgGC_w`8i|PJ90KqwP+A5 zQ8-g7C?_z{dUx8Z)zz%pDDkYa&YBxsiy_b0h0K_S(*4j)UImfwfVKx@xv6<7ku3H8 zEN+_D=#k2;Fq*4VG}s%Uh6H4|o3R}Aby_M*T&+sfQ#NtUDjtv@JRqL3MI@<$LAXNo zfnh#DOhCS}7Ft<77I@?lV2?muRF3!w40Evf+M(B>uK@QzJ297>5HcKcrIomA&qIb(JO>FTO`2p6(qSSo5 zn?Z%1Y))OP?YY5)G_YYB9EkNz(*Vo$sT`HY0Rrz`zNaO5?GSD7mb2(b1}i@fKJkXl zL+!jnyV$ok(~sOU7VnP~oU&)MmLE~APb$6&^ z352{3qS8bSwJ3vpM={*J78JlM^Mf_;Bd>y)7E^`F{7gUOwXM&zrCGEe;b#y7{*IlH zLb!kU_cg{CDj3c^+OGyCm2gATT~X)F?ej%=k#raOgX_kXduFqVbU(Z;Fx~u9+n9~Ip7SE~Y&>*?V< zZ@PKJ7TYm5K=#${W|<&A3o^fM0Hh3KL!qaa^&t{yGRzM!Ij*0}y_xqaInVBNdI^~% z%>X%km>dD2MMEBFYFk-W!Eq1~pPS@ph%B;-3kQOL`~d{mPP5 z#KaI}NOuya4@9dC3|Z~tE|09|toaz+|3ackBZU^_&|LL{kW| zomj;tfjK8ulv0+VATmkNnt$y))^$FLu3BM&D%ukQA%PL3RdF1c^LRN{W($H&yq*nI zZgSMW5O+fdC|N(_))Iaq?ALvL6-^W9elI^4vA=kQwEFWCt*%a$3Jla6M(3iilfDY+ zri*&2uquJ1k0$Ljc|5%%xh#Zy#@@gJEd>Nr zt+X4=$G1UK2rhP5=9r+uhCpZ(AE%dqA6ry$;pp5)j(a?NNuJFO~mkaO6xDL;LBzui~e;m^*; zL5Dt1Rd&n0>8pj{5EdK=J^@zkqIenle1d*~5WDP(d)|F>{5KsWZn+ok1I)A8KJ-t5 z>{wMHCcH#pWDulL5$&ka)yJD1j}vNckDdf>+=*kVeES>3@L2hK!~`&ulbunoQ|k$KC$97T%?WT8mBfCYNR?F1n(4KKA$w2D+=?TlBu`KK$}ft!GC91{#0)kp_PE zR$;Rm_1;{>QyP*8b`%^HHQ)|Av76X<%ukW@@}_S75htkiB_&AA=iTlj!+E-D+2avI z)`K@O7z%3QnJB2G;brYzBP*USJdc@e9(}0lX>UCa7#jZa?ax%7Puwr7DnTr5Yr(1m zeAoXyg#6XVZ!dhkCi?{rRp?($`71$~{y}_#okYEai1vZWC-$G{R$~50&%dSFve);|R&<2Z?)f0sF-f1?Ua{XD?~(k5c*syK0f!vh z?sMBzkt0nv`8QM!Il)uU7hgoD!as}m$#DBXK7Clz)4k`Iw6Mtou6*`5ek<$dhpw~N z2VLnX?Uf7CsblMO_iwos(?(i4QV;9#JedGU7xyC~hfV|z76AqIa(qhtIqbK4=5MxV z^MYO2=bb1BijK%~r%flOGv~tH>@Iz&Y`J{4T)7<9wMnilx#{K{<>oEsHV9c!g(jk? zP3o;w&Rp@Zp)l^Wuu%osTqP&*Tu!GM&pA&fruoH14uE2Xab=Zponn2Hv0=x0nm95lmTf{7=Y+U^knGqir%dhSuKwCehwwhQ{$(I+f`p!3XO^He8NZm(jAWA8(z>H7p?4nA`t#)~Yq6Tg0tz47*jaqfc}rC+f3 z;xlY`6zp8nsL2<^Dp{KP0}?d(&L~zp{rAE)BS2H;hZZjD8#t_ILXYPj6Q&BelzN%M zkIn1}6(l8X+Yic%1a5It#sGzrF>*tGNL|Q64Nr-{ja+D|MV;;DkoO&~0n(QzQ0T-+jV_E0off31r@o>f;7N5r`9% z&~Ya+W*%1`FgyIIaXCcAA;&0^ICA#bLW{3#no@!w4xw(q^-WS%B|bJ_4Q5@mr-J8} zqu2*zvXFVrlQ0oVPUZKD)DX@*B#lzfArX{jv`AB>z>05FjJ|hFq)qtK;S5e*{edKV zuZ*5;c!kaEP^Ygb-)h`Zo?u|XhyYS6&E>Y8h1q1bwlFpqL4#=`7>4wvrB!a)?~wg^ zAS6U<2{tZLonw98*(}?a%~~1S(kft@RsHBnx^^upe!mrwQ)B#Sis-=Vx5`iT-e;HH z!)b zop~OUGQ)J0R(%&l?c$>kqM;!nLCk(N$`sVeUv#GSC-nE!shL5&6O;@GXCGqh9B@b~ zJ{fUVDmFrqg1s0Ft53xN+cjcuBL3}XcFm3ZNzHi?`jq9;xlRTVUwt$wjUZ>lQ_6lX zg;0u~73tH7EkAEyL-?#}9YMxLH$B9ZkLLy0E~p+VZ|K5EuyHRqIY)TnsTE8h_*5VE zMrMQv)~{$J;0q-+SHQo&HzIX^ZOya&JShfy`O*jBobR!ZaOYVPgxG3%_%1~2i_VU+ zTqLfU(FOG}hygOb=-fpM-UJqjFtB)FiGelZZSGqngxM|EfKDN&zYQZqTRYO!tNU%t z&fze=7lf0(K=QjBXVRODqfW4ERAQPdG-r#6R`7(k2}WU;A*zXw!Qb|YWn(S6(XCA_WOeZW3XZh&FWU8F7jMjBY`UyEFI&Y+HP1_ zx&0hFaZpM3XLJ|})!0fZitF|7X3Sdl7g6RyZairK{aDsp4J`pVRNoA>e-OA%FG$S+=59kWNnyJyaIKf1LPWoRawVo}*!(biUSL%PRc zMkvQ=(0n=jl>N6+$bN_G0z3yaDE_RO`#fdcC-nOL_l1+6zFkWZqH6Fiun5H-G(|EYt^8jdm=Nz#(?vPfywe6 zCItdHz3+`zZ60sUG*X#AA@15ON3bW{dA5WrbfI+_{IqPneB<=ZYW7?Gla7b^794)k z&yGq-Zr-eDHH~X?x|w7n|FHFHu(Ig&+-I@<>F==dff@<=iWgY>Q=lsv_X5>^)W}R7 ztncsdJU;MlUSIB7C-9SJE*rK;Knj+#S-dLVai$HI>5ZqR+nlR)E7;=?~WoRy8~ zEPH1u-@#Y5pd~qzc}I|=#T__%@12#*nAi7D`5gT#Tzr2Ar;+09sCqu%{j(NwSG%JSsvLuVo_G(FoAJAg~asZk7gu-FmF=N=W z$YVZ^xX3s4U&_M*ls{6izWF7fh{clvIC;3@L)96-xYw@mUdPXMy=JPUjMjVeyj=Vv zNS3k0@UNlars!A*uLjc?lk%Ai_aD*8l10H7gjgH9dGn0d(NJ8z3M(y9L|Hi=b|+;x z*22>%%I4T^@+}RQNg&k8&8juT64=aJi@Oi^rRW}D>KDZQ-c%~DaAo}kbc4CUO37tfIS zO{bJwG{H>&ra*T@KHFOd*icm8$iOreFNmVMhR3ZaVT>%0&v*}`uv)qh8 zTM6zdZ>$`59nz-Kp0VR|GyNpz7!Kb$ej!PezYW&q@F$YP0`Q*nQL(0KYDNqGY%@ab z9fVFbiW?lZ)GY`^KcZ!jLhVG#YQy~O(AG!Xj=qK}@U6GEX%vFOG8F`(G!DdWDn=)` z(Qi=QU_)U8DO8cfxD6cxVcq@dX!B`zw4*gnESR>;(UQbjOvQK^x%WNv__od%be?WV zl^1!QgbG%J#+h-DQ>IiV8(tozM6qNGUTtT|Qn9!~R0=0PTc|DjcU!>dU;wKcrFmcc zL~JHyjuB;&{ZgwB&ldlU!<>ZgmWw5*83}j#UC>4!;E-IJmYS28+8q8W2(&kEt)3up zxM@O^NcvGyhEXwHV~cetLDmI%R=sgjmPE7Y6XH>3RF!$Z1J!|Vl#S#pYKrDXF$V1z ztcRL+S7LF0j<+@J%CAFmDV&8{RlGdP=l%>;U}DZKq;^!b{rH0Y5>>%>eeyN6Qnv#t zHW*c6sr%9bN9cN5%5heflZQ~ANBW@0HYe9#GUP{9Q82Wa07a*P{lt@Mbg|o|uY9am6a8MsdmQNCg*tYNfDNli#`qpG>`%nYP20Ye9OgS4`jr|r^yxBy_=o|o} z${cOCaI$4n47fU+cr_@|KB&Khj?zl+DV2N)*wmazUji}Mt&(yHm!CIIfjJ5}IbIbn zJbcXH9arWzR928{TKzqO@Iw%@(}W7nOFQ*{>(X5E!`YrAztgzEL^9iR)4b=ve8?og zsVcx#weGh>j_hpwotDb8(YoeJ+OVyhpBf+qWPSNkf*um`YKES&&UkyH)W$x>Srq>| zsIW|}DeZmm$2)lFK}2PsfA^Xbq%9IY@^I(Blx#o7^B14)k~8b#{?vc&3?OpR?_J9-~T}V*-Y( zGp>5kwq7H}ZVv0ei9M>d8xgzOq0wkGSZQ|FlAp}(%Y~B1w!+=(CD7!_BgFK0_yl#X zh-x~)CH>%z#2KkK{~hBes_VyNNjG?>TS% z4+H0se9I_4%y%3Ns`Y2YRg^4n!szOdX=<}d0?$Vyc`P{O*%%EPYyzrY&Lv5?JJLKJ zSUBWNjV(NFE&SjFBz<|CTd`rIV-b1&!SlBtAyL$et0M2kd$f3+7euQs+tKCgmaQCl zkKjb-?((dRMGjAjYClg;C`+8T09t&oHLnx8f*!qEK z6^}KSHoR$>>r(Z*jhIg~AyjAS`Q&*Rw@8hgnwS9R#^zhe=dtF&QvBq7LPizs4*A_1 zan#RhOAaf3J@xj2_RFYHI!lgC99#(;z8a)J1woJ-<8Gcx{{zEt{ zVejL&{2)>|GSW*Jo#B;*4$N>5jK~Ufw|lLgA^kSPPTK7g-Yw%YNi5Vh+xmjw>Y8PP zv@vghatoKNuz*tOL@j6fnx=^`VDQG*j(k);D}X3FSeR(g;uBWzRm?3gQ*6+cWeWIU z(`ie1bj|fLm&(eO;h&0r$L>6v#u-WqT0Dj8n%=__hOXBItE^#L#=l3~t?Id=vRdg3 zIx6|b^}g*kfq5c(xYO~gQu_523vkhRpyD@|Qm%~wD3L>Kos`K~ugAR=T*K1ew`XWF zVyZmTM$=M&|IAs!n^$J4U#IxT>{PrBZX@S;-ysfFvaA=>>!D$II7o86MfY&&JcylF zeJK9x08W%H5|eR2&SA(aSz{pFZkkP_QeQ8-Ic&PQLr)baxxQBVr$v;eu0Laa_1En$ z#Vq=v6kuCsH0;+X?aALgG8}p;J7WvV-n!QZyJy_siGYfr9c}pVr}Y^D?7MIC`O-AZ>sS|F=hv(@^vn;V zA5fPSs-j20v+N%_4Mh_0rfZLYctWBYf3j;Q8mjl{&neL(`p*fu=bwU10iN`S9o{~_ zPc~m=1oIn^;K|svcE511K{zG_X+RxVgP!6N$HYF~hLgAke2JZFGv?AacW2Nb&21sm zf@$SFcNTV7Km|N{K`;k9lNt3~G0XJ4f2d=zb}k^ zfhZ_)?x)GJX8i`sS^<*KRd2oA@gpkEf{^p2L+>9<&H4gq6{*n~l0c^7ZP1642{;vl z`hrouKBcQL%)E;Fj!1wpWl%=V+1oXI=l-6+dxoic$kO4Gecr`~ajw*m6&hAryC`kj^_Z8goJtj9tpTH}BMymgc=jm0yX-vAkvHMuhi% zGm*|f9CHiZUUtff2)G!eRZwD%Go8p<7c?!}c2If>4XLM@J;e`NLE}Fl>6~Wwx4Uw5 zb4cgJd7H2wCO{fhQb;vC`P?yDK)l*)f!FD5ZI+jSidZ01vbamC|LyO!E3~ahZYozw z4Gj>YZ-4!y(dlt*6)!2I13Am(p`hi06iLw9zW(L24$MmrV9^EVt#Z7%_>?N$&;Gu=^;Q11_ zWeYF)4=)h!`h@(?3}AC0GIl}?FK<#POh&tgmKw~UgwE!DB1q`LLZ!cud{f@))6R|0 zHw=wX0T}lI+O#TDnZLiY<^Sk!z^l%woTgUt2@(?mG{+!U?kOZ$7uOJMCKnWO8Pl#S z5v!V@79+I=hszj2__qWZ@AWFHX1cq>X@xx0MAM0`Jo*4hgYsL49mOpXmF__ zZZF{GV57{b2^?~GE6_t5CP%TCS%5TF+%78+JwCf#0q;|iiW0tbo^m@{qK#t0I6hPM zmm442!eS+i6@I^a*do$mZ^pEx++I?61#Za`k@zU4C{`rzCerL(Zl%M?@Vz5?Apuw5 z9S^Kfonw;CPjD8}?K2nJuGF?n^I*V$!{hR*-X0Q2K{{Oi${`!fWPr@yZZqaL%neg$ zR&0^xTl1KjK*}ny@kaA0n+;ONdm>PhkF)PxT$uPSOAyQztoau5wBKldNm8&3>RRWz zW6-nfTQMH06I}T;^=rB8XJ1BSDymxi+AWyPbJ|67>d}i?oAj7>1{^#2?V~h8y^Nim z{QEeR+WWoH6&>^t^BEN*VX(Sv;fd*TaFeo2t^t(`AGy||R82h>_a5Jz(JA0Rkb=J1`81;(Q;s5uzIc>WB+Socv}(>gXic(KCM5b; zm_M;wzb0f$C~;G{sWBvm2~RMfUW!Z>&TS6&)5Bo>F zC%GgX=j7aLn@tHnshNL%O0ESH%A4liNc+v)t}CMKnx)>&>Z$6nN3*GSQGZBwtAgT(igCCu>JnRx0+>Pl#q2hpW{%p<7IUi*lx&$VJa_B9LZ$qDKn$X8I2 z?ND!h@4g1N%h#InzPAC}bO$8CvT;RdvfWeuB*T@S_0uZBr8Z|*?pH`tzzjNhJo!kJ zjLwisfmkgm-OO~s$R3o0VwN{`Tb+Um_PFORajrfmz!z5|e%C7dNrW7DZn7Dz=L=4M zWWPO9$DeRgPP)jsujiPrSn`z>)pgAMVAQ;1OL7OI=O|rnH0?YbwAjt?D}}$@f<5pV zKlS(giX7>U#jW}KAxgc|55Atd0kF(UJ(1q|n};|WxRQ#akwW;wb{5T9t`;^zv0Spn zR5{AB_0WaY%5e6h^&0oiLt|Tq?(EM6zgdzOJMB=lwp)FDk^$O>Tn^U0wt5!1fB))F zpt|;^2d7&VwI=xk1#Mm}+%EQDYA!d2=Y~^BIfX8cg6X{;`5q*FA>*%n3Hd}$ zw@9NtG|Wh%)mDP-OircAYlA>LJTHWpvU0a)ojRq$AIMLX3TGkcWgJp3-JQ=#0j`v0 z?w3)SLx!`1)EIH7%Tt9{_Rud)qGTu-G}9eDC?H3MBK83?ONt($ZB7||(LJn8MQZR1 zmf%IU;P4V#$}(q-+e&AfOerOhpK95XNM8{CS{7)VW9HDU}N=TwR>W%vAg|NEUuh zX5X2ihh%;cAcx}c;)zbqLFlv0(AbiN#>EOHia=$vLbWL9eokQoMN~cR(Dge><;T)H zoMbvPF>FmDRL%n8SlF|U`K+;KQ|$_`%EN*MFR^C`BNv21_Z%O#E2`$=lZJyNzvHLb zz$aTU>|tKcvB$&87`Bu2qDcz=UB8lVOc|@7TQwP%Nmuv)=0+dQnkwaGWr;2YlUoS= zK5-Q^3uZ_#E~`YPWS{4&3Y3o^dH=hl)rlneG|Z6MttTtsEt1chJ&*ur3`LhqCGy84 zFs=`XE6rOp;vh0%-+9i;N`G0fc{MX^$wHeoZHD5;8OP3lGRlF?yOQRg1_iLa} z2|4%t<<%)9zZ*d7vskZ}RWJFfE|cjvD6p-ZWV$icZ0#|8LaS*jOFLzk>nV#SeCJPg zHaY{#M7JweCgCOQqeToozAWNz9z@H`!!FdJEGof^ZN<57(tin)U#Mks!0WHaQ2lU* zQvZ~_LB=h?Bw=~m4&lq)4GtCk3NxLR(WI2YPy`>`Vwu$a}s(quzN4s>FxOC$rlx%qn0wc2#D$e+8 z29AL@h7Rmi9)Twc!+fiaJBqBA=(P+JF$_WPFtVjAKN<ovAu^soJ2pW(1*a2Q$3$<1N@!4MO=Qf_`ROrF(e@{=ZcP+Q znN&hQkq;N_CV<*2jV)0@A$d5Lws`yGC%_Q>y1~1Vo!A?T~=(ze3ZdjAKi2i z)VW=XtV(24Q^8lkCJXHty{U7+jW zHsn`iV}ar}^R8A2izqbc=8rl_7`aDD9cA;NFFCbUeZ)v!wlRwr!=%3jamasU2xh^v zV?@W;nIhmOOkh?0?r6G(poez{giTA0ydk>!-h3|D@=8CKh`r-lBFdB_8X<;%!_r&k ziuQ+a(hm9RkC>-%~1D%}XRRl~2N)f-SEjl^ft=5KgB4 zwe}h6jyuO*pHcG92U8MjtNm%OkRJCVn^iY{7#I!EZ)@n7`>9#kslCW$+;fGhC*S!3 zR-eCgq&sp{E%_diY2-NTtv{%}wiHbYY3z6C`k8kts;@1luWf9G0%CFh%%mg_M(wu) zh|?32b65R)`{b^e3k|GR5lB3vnb(S^R1AHgs{4|OZl(s=1_Hl?^_dyys^ej5H!~#I z@2N8GmfFB96Oc3IEP=Y_A{EvS6}AVHIpQd@pZM)LbBmqUugM-!D*24ZWW-~#@UQ9e zGSGCKC*z4H%HFs(Ud}JLbO<~{@UiboQE|UL=KJ8 zY)6qIbH5NloeP(P##&OLW4W{Bj^l^MyM~Bpaw6#(pLq}C8f$imK|nP${39Th3kuUb zgUvo;SD1ixJ%@1>h@FkpHYcO5(#G^xG-mgSjS-+tPeub{jScOU?cHf)*j5=b7lzhg z6EUl-7cf(h(ufmh({I?7Dk#Ms>}U}-;E~smpC^>6cT(4AqVAVBQS8E{@$sXqgs&!D ztEIF`=_;MYXB1uR1kdv`7-x-G{WWO$0gOp@P3|EquReTJ8mdNWv~wj4D*MF*SP*?K zKLpu41hQ-wCU#W9T<6cVZ#QsT0{Mw78~Kn3qPt(3qH`U}fP;p;70{wr5(}zj+M7GB zgOb#5{ZI;~n?$+4hs8Cobes+jj4(g=z4CrPTc&Vmikj)3lDrTXApBEtgDmw)`#BL- znw5JTMc-7U{_9R<%{J5F?Kd2CiXDwt3}OV+M%AZbx*eM}lUxJA-8dl$!sBeb4m8$* zQ}e`2P7$hbGiBC16ANWBK|w!>4CL(PKj@fl{1uzW}Z^TgJddRJkfGb4`u7hzxn{12JE&ha1wS24J^#`3jQt^ zTq97LIwvUYgFd-%aLK^4NigqB43v*wXT{JB5o06z=;rkU8^);H?6MCgMH91*=OX!T zeYdwjaX#+MeO-7AwY$j-vu?*vDZ?DbAU8`(PffDXyq2F}v(?uA*Uida%)0Fd-uL6= ziHCB~Yalth5TB!4M&DhKCH;)Cs0ex!?3KX)=6>0h-E+F!ileD#P?|^PX<$(7>myigIpNtu*o%j-6gy_p+8e!>?+-lnbE0VTe@pm=yXL@oO}&nu zgg}cbjspHLJPU!^MMRZZfryCDG*P76zAtzp*D;$QCw$70`$ zR_2yrX^%@5$2G$l{t0e2$v$S889Pqgfo-oE5KAr{)6ePG-V)&-iAavAEU4(6jg_0x z=hR&a4D&uOTi>hA%h)KXbyN~p;gmBlDe%y~flIJ~*4rb2`%U(Yf)I-aUN-*k-<0mH zyfBx4`T45!;MrLEVkMNk*)RTloljvJh39%T1T5?Ee^=gxX{fOJ@-eB%A}I0J^pkh# zCXdp~pO@1!@fAZyyr5_AZa>j^%@XI4>@%NpOcpWamvP*cbKEsIPSxoR?JQ<~R>`au z$w~hV<~{M0PG3^tdJ4x?C~@$iq|vK95?fUxlE@gNDoDh zFEQ63x!6&T%r;_Q8~mKsj_ZA!XQCy9MX~F}UspQPsh|>~`7HmhhJ9&-=lfkp@6bN}f zEX>`73Uv&W=LcZYOa3REj{GIF(AS86Ux#=GmNOt~3mBGtA1ddtQI1u{y=OV{F zY*$N=WH;;SZeo3zV(}C@ryf(lZ{^8h^Q+i$(i(MM*;8zU=Jd=giz(^X2-O*(cgZwj zY6?7EZD#VjL@ZJf#p=+((MRl4=0UVL#v@jpnuO+kmAGuwf(agcX!Z&y-|ulx&+uuU zCf%g(ulgfhT5q)-C@?8rOy=yc`+4OG8w!8ouSu4>fY6|92~_RUG!bVhaDJ^GHiYC; zr+$H=?)p6r6t4I9-sbvMvHWJc;^T&4Mvq5@0Z_cwCQIB=6`WLUuJn;{N_n!}vu?L9?fJB+uP~H{D zB`K0It8^IblAc(k*txE0>9&aa(I~`Z*`yqkhZ7)mcBc-hF#H4dPQm0yg{|^9_gJ;k zOp}(4)9bF`rz+&=Fiy1?hE<+qjE`k0n8vzRqk(^i_$U=nQ2Jc+RYfwvlk&}dLNLyC zqyPbm+TR+EG7#%HtPrX+jKY1w58(HXGL* z`IC+jyv9`H!*P>j1Nnd;KiMq`^280p5S57xjiBSR4n#3xU7M_8X9Q8o2wU{-8|&^z z2VMnCn;YVYN9ic*IGsP#iNpp2EBaFv{Zw~V{2<>mWzF$=D+xzIlxu0mCa9+O>-TKG zjMRt1_8!4!_Gp?Ds)ZQOUmeMW0sP>}k(IZ5HBJ|?@y7MK{@3HW&qn0A9ylqSgcz4f z5J~y(alWP=BbWm3Wi-P1qysG>7tr)@=nX2S6%TzZX45RRyDBAiv3rJJ;_fI$LA&6g zGh(#PC-{5=*V0(h1#Qd3=i`C;Hm}yMTL}t(iRiX+4@^kzK-ggQDd3^4?$R4|%h;g=9?&4#?r+@zYCsl?#MMH>5z|fEzbSfqv zjjM`e*hf3rN8jshTj5JP=A`5{;kI`Kni(8P$7+b=%iFxiApCKQnUCec^LWQm+ zHXZ|27KwL1Xg%CpP>;oOk!B6HG3Y8cI%`B~K%tTd<#H;S&OhXPB5I$ragib-VdY{0 zjKJz;bBt_kotpS;=O*+^9!!3Uvy@n4VmtS|lJra(er7AH!vk94sqP<7=W^Tj^iky1 zB)^vA_T#jdQJvL{{n;B_%VsuZKC1hxr$Br3(-q3VYz+VcCyGe>?K00j&7h7-lZ*Z~j{@ z;qLgOQ0ym; zFLz^7g~W5R&yzmd0BzQps~a>&6YN*G6TMd{(qdzi9!Wa#Vh%^F&*-%HM(1JU(Y)oB zfj70ma!jZ8j#dC_sql*}|Er}hiP&k0nuFeK`*`>Z|4_PeNKWe%>Z%kksM()@CEIy> zL9Pus_P1&j^(Q}jy&-$0d#lGh-Dv?)18y~kl*AAVvGo8BK`_SLNq&n$HqtwHO2Zo- zef#uFqn^&VEiZea1h$s2<}q>Gwz7KSf*5|Sp%P$(#Pn{2<%Qg;ljaPgcaEjGdDBru zhr#Wq-=iYOy zAV?AN+Wo!OAKVCHR5cWL{<4cTYIsaUQwXMdk1QIK#D6}nKB3%lG@&}Nu_Qg^aoY2- z?i0tmH8%}JP4L@_rMKfJ0`%f}B=bOdyJWYrd<-_)nW(lr>MY52jXq-jbwUV9gEkTlC?QQ}T4R^$Ij& z%&%XTkCKVEjjuM#M|oK5k-PosUdaFG;udNgb6O~NvFLwE+No6Lmq;&rzak`d*M!yN z?uJkou{7;TPw|5Bk$S2CF*=;z9`#=z_P$sl?)e$boV!zXha7Wp5*Z8W9`p{c+nFM)X9IDb5Q^LQQ!5=_p?QTo_8-IuA{HEq@RRAdz z$ndxfz})izjC#Ttt!vZS*BBigs4Z>_pXFo1HiyW4&hcVv!&ev;gws@$#*@;5i7hG0p{O?X;LUcxQc-^hm zph>9cLt6yP@%fYwQ<>@a`X@*wkfc*`^i5?R9!$4i6 z?ETgIzt(v3n1R8=cR&BJ!)f<7u7(}=fB(j=9;g$mvnry1DfMS=D(iev5I!9H^b;9B zy{?4Q;mxg^32dzerwK+QY61+Fpjb+>N9)6mH+|ae3Ie(`X#8R)chHZhk8#FybDoiA zx6P^0J%7*+ig&6wnxZMPz`~x~dA1OSqx(b8B*YM`EH&K$@o5b|9eZ*d-?FRt*+6hV z;_?$02x@^(%%4;qq;=0J{ZYN_H!w%msHz81?l)VAgC1la&L3A>{MWwAKX$iT$RxhX*rFn*Aj zIGdRIhSCL>pe8<CU+Ty;GgxFc!t89UsOp+NAOdaVHOtaic#g&GDxCqLWT3E)y>eCMh9 z_+llUFd~j%Dz*~SRLI6Zaw%^%ErkHF^#_{^dlvhXYRu2k(zI%XF6IxU+X_1VO_4Np z7G!Qgb{9+T!i*O9gwBuXyq}Se)=XLK^ma{T7qT*bL~)~TvmILVTuTDB`LHlW5!O;Y zIblRN9erCCirqe2tffIH7p2rH&9>mEZXOy3ffx2qPU{1Rc`aXo@MWa1C&{27Rv>uE zqi8QovOR?S*HtIb>B>?9Aid7@ZrD*}{R%6f(DyTnf;FyXoZlGakr)@|#LXHpv8&x34j{FDg&Z#mWdDSXbvL^EL&7QyBC=mNUrRh z!8Ic{cT|H>^1dL~0Gxc#v`$Q5RAd0)rl^plc{Q}u<_n+Rzvj_j%z5#+Y=piD$GnJm zXhJTZXweE=;VOHqzXoe!3^ZG5R>4Ce+4OUR={IKsWhTD@d5nOw_?aN_O^j#HFvLJw zqIgYakzQt|sH3=a!GS{l+=}l>Hu}Ckfd5xS{YE(V{U&ci(TX*5_~-$lJsk9%$s~yu za7Z}&XIn&y%E)R-=yCzl;HKq#(yc4{lv-)Q^uocULOO%*<}f(KB|>K!a<1M?JLK9y z4xm3M_c?$J!l?P`L!9Ov8L|}KyFxz6z}s!`WW-fk?bX0U`1QF^$)BNnTB&sZvqz|e zyl%xv4HY7 zxcZPYN$jb3c48{KeOUzlv}HMUkBD}5R4@rbgt+5x62roXQ6v|TOAZKsY98S)IFKEZ zgocIi0eBB`Al@Gz_&?|o{{N##GWfT6KP)~LyL=k8YEKPSK-t9(0F#8dS!%y4CuXl)BG>LBf7ZZmmi2flE~qxFp+#s23kt z)I67sYrtMt9<`k+)zyE6^|Vk4B%H-3?fhbHX}yCS?j&mpVH~wvp0Z|F+J;~2jr_n~ z30n`%JBRdU@B7^lGRA@Q+Wdp-Nm27wI67e;dx3%iLqujyo{ZhbS`-a0(Y-Q)8M$F9 z_A9AwVqgcsA*3d>+c_>Xjub;!{&IFIg4^LIjzN}G`!+MMZGr8en6C1*o42bydlFkz zeQ1PL_M6WZrjbd*vVH#F7M*VfZV6-rIbikUrd~vs#=RVtC`ntWTF$f_&1&? zFZIsMlNAIjku95s`TLMa$`X666iVdWkYYJ9F8&LQlkJdKi^{_n@c2c*?L02 zm}8XT~CDbMxUFL7$h0{+y9+K&N|e*-Lgqn*~}5&6ACbU2&PAvmN2>I4Z} zt4F_qH!uq86kE=8w<4}QR+&&`$nTB`%e%d)hg-pVN}RN*9LjAo0P2PKJAbw_2C>!) zrAc^+NgmI|5Sq$~CytM~CT(p?`TY-N&esre-#C1|ap%8bf?IWb!n; z2>FZJPZ8iN&(S|FCa=Dw|Icx#SJ=vXz5zo2|GUj8fY z-K(FK>I=U90HMM&_Fv=Uhlk?vv{r{Lou=D=*7QA^GG5;FugqS*)vG=k{N#YFFfqO+ znjnn)8?MxRf?~=C4R$}f{VmO(e&jyUJDbwwu|XZh4N5KW)my!)e|r>jy-|gXQAYNf zc``?QLA_A)3(Rf)ldZd(Vd>B+1gm}bl{ap{T{LS%nlpIof~_XIPzAEHjS-jr{_x3F zr#|KQ3J`~1*Gof2fP*)qgt_INh1)m-eOUyJyIzM-Z-OlH*b%)kLq(?vW`ty3fSX2A9^Z`zA zH7Hv8eBzO1V+{jm-xyNdF}p;l|J`V*_Uqmk5ZlC!zp6!WmU%7Y83d~>dR5`2@hU1b z+E>2hfL1Y~4r=jqVfNdhxlhRp^$c06rMLrG@1=#)f~T7T1^Pt-0x;u%Y+FSED0wa}EcP{DP+Qa*@>SS_^%p zq)tL|KAXH$`y{MzOG8Af=!^l~)w9<^=<$2!xT;3JQi6Z^kHMDqyu3t2^@*#9LNjDU zt5|45L%+wI7gg3JpyT^7sW3K3o^WlNpQ0#`8(7r~C8@F2e+Yko86$FVRkSrGbmiR+ z*>-vi#l*29^vrmMqlsi)ZD?D8RAGZ_zdGOO=s#(Sw1?&8&jiztYL|zMJf6_ZK(d26Fj7F-zoU9_(*Bi$Y?c!>*Rh&)OpwWxFTV zB#$a+=@}uya^D)_WQ?kj<~a-sI&J-*KQV}xxx0$Dk9o)XhH0Qb&=Zzk!7|!k3yG3U zT#aVEciuz@Nm(1X!P^;*nI+4kk+BsbvrUsFwJO1hx*S?(U_x^gNzIV#<-@#dD`<>M zHHf_~mUPba7ds=`ggz@h*_M$B{#JT*cHS3?ykU%L&d0d+x0YlVOzTPi#pB| z&#!S!a%njpFg#H{>G0Y!ZB`ph(#PBC)`*gpLLY#il8e9RD`PbBw?eRG&?c}wRClht z4t-2idMm(H(=FiWCK0HCGIJH|O1Y4O=9wb#d?K8=6KJtLDEl9lH?ofRx2%>JEq-`L zcq36t0AriCrs_YhMPpoA3`-Da*Ct@nbY(8fJ@L5~M0(kGVkXf96btK!BhAa8WTb(Z zY8R_2Qt``%IaSWD9q!j}q1*fuYPMp8>_YmENLTJ=Oluv-1@m&XHcka zo*5aHa9m0cpKC&$&Bev@u?zmu^3e1C;P@0(es(4%f7@q7DX^d$bqdU#eCgd?k@<}P zJX0WL`;u_7T7sb6QQ~F2RM;PFz=uhFMVc=a&R3CYUd&`~(}3U#=Afeh8KMzfi*uI> z+=BzfM5QAkY|c?B#+gtl6n+j#u`TRTyUi*j?W?SbUx~c_HFW z+CHC#fQ}DCH=KzStklDKsrLQUjDC9hM%XCZNg7NuoVU>DMF=TJPoc!hu(Atg?9KdnjvhKvm3K-a*!_V?8yrFX0UP6>)jef?K#o z*p-XPa1WQuFZ+P0AF$W+z&g>;5Nv;mg4rpLZ8k8HoIyDEcrwQP|o)x=(Pmq8ibBIZxMzyO;e6i!Pu594A%jsBV zo8fi$6ylt=xVRMhqTKsOws+Q)@aHvXaJ}i*M65!&{9IW=)Tb~qHiouLCojwArE33= za_Ts3Yu6XUOA$Iyt)NrNNf-+VYw!yMlAE%{+NRYjQ*t$Q&xXbE53msU;*o}Z zoE{#@$8LZx!0tHBWjxH~Hst9CmQ4)e;ZEfF9H;MSnZ3*K3Td`jL&R6=6uH*N2PBlI z-hGlk zT6$?v0!XM~vYx=x`;uH(fX)O}&0 z!Fz003HsdSUg3r3LqmCqgPQok^LVVmmz`{x9^qG&(ZA!br);37Xl^7WOD*j-*pCL+ zr0{c|;cRitRyS)DYQxKRYLXHvx6{BkB7qxKka|%ujh!2OF!6qPGqslU?v!*!BV%|+ zxAz_w$EK&VP}wHg(XBait<#zW*W?OIIWOlbzR4;XAsN1*vZ>jct_igekcxjoQzFS1 z&9+X}rz(q_6t8VId{iRkw8TuXT_#R3U9YO)Hi!GvS~hUp5LON#PaYpP+x1i5=9Csj30r-Bi#(OTNZ@&gL z;ttDp!WbkeH<7;=afC7HQnzCVu%#5N^p9p|t1hLn!gjib;LZ=O$B{0FO_^=XY`3*6 zq<>`&3iAe2Q=G<3K3GI&4#}maK?g#hHyS(mLa~G$DQSJ+JQ>hEB1*B7%x~V-SV()? zbOJWJR5GVc(9z*gIEk zVqnh&ngP3J<)YxMIphVFx*rsoSG5uViJOFtTZZeu)Xx5n212uCdG2~Svq{E&QK8rh zCq&Vt4_O7M2Fg8mkETtRy&nDDDJLjc&W9H3FBLD}P0P;&E;F=q8O${ElM(KsbhP;4;>( zXyM2@(r1SS9*AjxjDaOAH+_zKWgC^U7ed>1 z=?zT56={kYbP&9Xe2V1A1X`+{RPIQ}{A5Siymz`AK#J%gvm&`1IPyzh}InY@4FZ%P8xFzmW=~!*kz6m{(*u{3aQJJrbU2YPZy0L^i$&r zeL2M)#l)N4!CO}_uXS5?fnG2%O!PN{cBvsNfsA3h=UHUiJzpB1k)+d$17_Ic70%1O z?Q}S^&fW$7!l$rl6}tajSXU7YR70zEBaR1{Ro!0o3_svcq!R2ni_UGUDAqBYnkufU z%?GjAT2jryT#uAIm@;{B7ovwW}&c{JWx2SlvO3mhe%C3=N*{CWLQ`Z zl-oqmp#0a3rX&LKhwin|l?lo+6NT}Droq*Qnd8NQ=!4WNh`IUU_`Ihgdkv31xAs)s zO#7IpO@k|B_@-&50A;o6s=i|N=2J%^MyqlswE`~p`H=!|pP#+7KDEE55tavhW1NSs zyrwdxLO~1i*1*gDRI0`T{%*r#A4{?xkkHhl*lZS8PvQmfx%mQeP3hM;{i@jga@6jF z--;;LOLK^N+V{5yGCg>*2ek?TmbV>w|N& z%y%efo0pnvAn|R9sXJ_5L5*URX7&Bq`9GHyhJ9rI$lG&7K;sQzJCNP4GdauV&tyM_ zb8`*vbds3_{VRZ=R_j~4C}=iw{?Lh#^wCQh=MMJ5BD6z~;r)gv%PYjVm0t}p>olNo zPn)KpjxPW%_oZ7~+jGm-=BWmwVe)j3aEHST`b`h!GTgZUNK5D?1zx2xf9hT{msM}?7K8r{y*5$13PZf~p}xiy zfn|O}mszCdxM9nY0N3S5@6`a~r1wI6(;TzSOhufZ%)KLli5zfYsq!L(GISiA5g_$z?&WB7$Ov1utbIy zJzL^U%maLyw3O0Bu5NAoco*<63&^Y<`0^%=-r2Y*46~~lu~kvLiA-u$bSA_59v1{t zmXU26_n!=XedHJS^v`L@^4gzjamMD`tQVje2mCe#UOxCn?Zm!5y8a)3%!famL(1^g@kkU_ywt5Ctg2J^rf-;l2pmd}9cYT`cHILcd^0Tm`KC zt?$uZlP?^02%Kz7hK|!R2gWTM&G9pN8)h!w;m?i5C`C?`NBiXeUUIy57~T2l>kSNi zy~Ydsmcw-V8(YiK_(H2)rpF!1rtW<-A@PsBY4HLS;yy?sCaCaTIOa5#J5 z8VUSnx#MHbqHCO<-VOe89^i*3g(k)R^f>g;rie2Er(8YJ!6871h7TZnkV&U=*Qnl|tfE*@jPIAruH zOEgw9c%({jcJH%jlb+9C7o<@EJ0hCg`zPCO^IEM=>a#DtD4X{Usd&D*-#ww+rbw5# zKfl4-cIHGpA0)7s&X7=rouK)2a12a=I5>i@cdVdA&FT4ap_XEkO)0*Yj*|I({zO2B z=(Ta%#=4Xbe$~T7bd7^as=hO@3o%M9VE4tcsYwMlo&TZk)$TR)_`SO@@?%J{TJyJT z$vxu4-)W0}?ll!EZ}@LZ+z z&3(WTzb`u{mC~!_qe9Bp^mW3h9nGmd`{HyaZ8;*jwDbd8kBvJ%--;{a`6i48A7M0E zdF_nd9hdZ37B0UQm5^wKf6qX?bjSLI|3MM@(qI%AwtlFED*S% z(9%#;+CxK!E>Uc*1EV7x>tF&mt{;wvOJ?tbqdFo2oT72>6m#KsEs?qW>8*9A6Lv@u zKXmZ>dM?A_j}Ar^uQ>0Mh}UR}?zaCTJt6VPBS7%%V<6Cyb^h|IT;=myG(U+gn?11b zE~I_~9=Cdz273EW^RwRSVVFCfxILzjeQAg!;(v9Wg~ROF;5E5H5JSZVmqZ-WBns&( z+o9K8SKGpG+&-+g4sAV{;7~c9?y{{XySMVcGUnt9ee_SxziS6( zA$`IE>{w_dt$K-K(M*S-wG<=CwEj6sGzNI82LmO|Q@765i?jCjJD)*0eGOa5_Voy~s%bKj_W2fosA>$ou`(9t`|fb$bwB8e zoWS|$v|-^|R!wy3t!zmy;&r%KUn}v_3W`ivl^V8c<1W2p0p*_;$C%d-remO?1fqyZ zw({%EJNbPP^X+jB>}8ub^~=7_%lHL=SHpRPPO^-jvR1BEdu>WHjCvfmx)VCSw|0By z89!lpvaY5*MB@x@TOZisx3Ilsr#||dg@5_S4P;WcU+~_n3?I}aML=0|-~VmEuR1j0 zc?TD3-rUeGm6EgZJ%Gr>LN|0S^yLY>T%TQNZMIsdd2=i7>9NI?xII4a7qapiOOp<1 zrIeap)D^X$Wvq|<^?KQ{q^WzJFK>mM`5LVdJ~UONJmgffrx7GdGAPd6{9@FGREs>! z4!C@O2dvcyk}&*MyvQt8VfJFA_P`*-m^n@aEmsH?)M9;K1-Db3bAn!(C~0nHDm3$G zM3(`#5moVAj#O;M)y#Vu9F%kr5CB;Q}7Y76;cJl#Ju=nd600$nfUL?G$fNkO2MF7l2}whmokap;O3 z_tQ>4J$j=mm?+RoNv!R;za2eR-6}V#HJ2{gVp?Cc^Nwu%b<*Eqiv~@D$Sq!3XaNas zp8YO@HaQ&Yzs$7G3%%3?hqGAjBJA&Te~miR+!=^`I3&GmH2qs~x^TLaUH6G`n{A{l zz&ID{Mx3y?okTQ0a0)ayPiJE~NizgqCGWvz3vH7(YVUK`=neMpk5)w9%}Gd4H;rry zzTa7|hLi|5n(;zsehZ4pQ5LDM zFnWemw71~7cKbB)2*h1ioNio-{Ui2X>?)<+^{?}nlf}cE6E_D5COC>t&OZN3Zd#(Y zijdk?6lXL2K-qEH|CSW&gvNJ!)*e@|J~Lqc%J$7Ti+jN=mv-B$ptq08$Tjazpukg+ABlEg8vxgPsXFmYe6bReD z#9`UPp2GW{%I(O9=vl?~Tjz^D_?10EDUlcT=c2kUPD2WkMIRa}KG`pgh17GeIOW~j z=vmHSzev@{UvPim_3+FIvHNap87+JBib&X+rx5f{=g-v)fE+vloB7U=)vBtDeJkP8 zFoO=Dh+=}owDHEF?+RwFH-wf&PZYBitrLT1-5Fv@wHID~-oLJDw)M@^=@(18>q$;f z{^a1DFe7CF3!WBr@^VyS_xT~Wvyo*AOnt`LFrQ;-k+3){iNGtLs+jdz@AMdja3HXz zZ3nCXVnn4c{19gb5ymh54;oT41-n2t`<>`?wU$jC$q`8qzo+SG7~tHxt&$S#VAmhK zwC*`EbGr8)H#ZdNJd7V03?UD)MI$Iv8U%K0h=)b!3C=hL746$3e3i-PrM4nmUxcej zB=!dcTABq7IROaZw4x!Pv|eLw!Ci4eRDn;^j{zB+OQV-+29Am?e-bm1_antcG?<&~ z!JM^Rol(2=jC~G`;&X3C!F*&g0d4p?A;huOb_J#0DQvS&JT0{R|4m3at~iX=Ig_FYs!hlevP&w368fR}3{%bqQOdZ| zuFOedE%B1n4(y5*(5lH-xS`oyXU{yR{JBrujA(BCIRcd(Y#HEyWzV>wTl}TsihYkH z=aV>fvieso-T#KqL)qOTTNF%7&c>(c!4*=kViRg>Q}cFgS+k)zaR@ByC2j)t zrZ&~Lp-WmEVNd1f+t|=-pV54#Q_wMtVF~6qhv1)?Bbl!FRq2wslE}RT)#tmD63dO{ z*Tb215#9kb%D?r5dwmqY9)(zNwzzQCh+yStUr9G1by7btfkm_sWXismnl`4v(^X2< zV|%dgo);!2I|j)UEHDlg@0|Ad8k+uaN2c8$JgfyUEt^~7kk5Cmep*$t8Ui*`QBl(8 zJxjU6tsv)uqYqcTB|aM;qin+#&o13d1?||zdc>?+n7Z0PGWe_bhwN$s^T`@!L$Xde z6f@$0nMpILTUv#lR-o9%p{r}P?JD~kEntZg_@jikMijFt1KIz_Z7(@a0VKQYRlF;y zh?JR$PbJ#p*{{{$BTj8s5}4FT1UD1i@el~UBh1A;s)q;~pc7B~7JS^JxHzJa1AaV! z{1oqz;DPr~K5blx&KI4D7l|^bV9RnWKJ=4!sFM>}#mnm(&WrdxJQ9ae;z3Tp}~^u}Wj1D+*w? zf+KCr$}lxc)--hQa~+j-=@-}XRDHweS2TIn>Ae;Qgt`xw?_uH0!wtR#S*>)>}>KpxsP(j8+V5T4@4Ire{l^rI2>9}qPUd0W1 zLl)OHC(6oMqQoNPn?fh0l(Q!$qbf&(r4_W^hZZ|NXw#ZdL5=Y}yQuY7^PSZA_wMS1 zNBby2%~{WRdrcA@#O`sbc?g{peT1!!=@UyvUK@OF4EvBl>Ku8Q={2`@`tCoa;DHE| z-v1bw+qA?$l*<7)DPB`WYhei;^Ofr)ft^7q@q{{BL@RfZm!PCXy%SwgYY1)M^GViO zxs^#+2HPQPK8Fjtg`04CU@%sFHpE(Y!ez!2ib-~dNL!`)i;BLM3M;5BNQ*$WmH7|{ z*@QE8dbQmV;jF*G7cLmqVJcaFSS`XSO0Z@A(*naPXvU4YELCW;4zDKq7|{jKE}uhy zKdbvU$haO%b}`%pV^LC$FEDE#qv{qp|jCt zq^ssQmSUOg5kiqY(e;LDjis%c*nBXE{r>AUe5=!9!RY8XKvm4K_t;AEM+jmMe#Ex_ zk$-AK6_A4b30Us?fI?4@-W>!`1i3N(qydTfxDgg<(bX_nd{V_5*&=Kp!7l&F=$q&W z0t&OJvMU>rU+kDGAQ<)zMTzHBdB>{h{72K5;og)>5oza}d9N!z@~g1}PfnB**klxc zfd4B|#4CnpeQ?!`f>p-`5Dypj;7m~K+E+X{j3?=>UPUFmS*F92+g?T*31X|To0$6& zs742ux0Xzvxu9)m9doD!({udIeq5~7d5nqMjS7!kgWDizGFR$se{gC}pcQ=Gggo>c z;a0J(FHYLC|Jk`N9MLi6=Iyj;Yi+pIOL7-rd`x@=FS&a35n;ePv-omxxU3(FG`#qy zjyKV~cKSXc`?Vkn%&W+BV;>4OH5v3F-1LeV=%iWs5cwz-3lFjDVp%V!kmF&9a>j1G zE0d)ndb(tf2P1KYtycJ6#aqoz1-iUqL+0$zOE>k6(tOV#)^0J*v^nDA;mRTIPvIAC zzusxTA3kJ~5l|_1++|r>sFe8It}Kv=pbhF!BD}8xt_}R?V9{&k^kph%Ihi7eTVrJf zWna`-JL}E_t3~+?o}rtkwL&k&K+nNy>ZvXK?*yb{G=7aV$=Z}46}e#CK`+lrz8;aE zS~(H%&~QZ@9F+c>G|stXE`94^;bX;^A?_6omfLd{<@a5tC66|x*MSw@;2-0mp@Cc| zp#~@|sokMunyFeTJBE+V)MTSMB(Pe#PeB@2t$q`O%^0-)#Iy2x>bxw1^;>u zO4@K#gQC742n<19$I8ZdxYHD~TTugzx(eOGkFAI9m>Jx>pw3l+CGK+6&#mgeIC<8> z%`(`aWpIloRLg>}Z_*D7w&J?|<_UZtUWlfAMWQ?U8KR#IWLfjz9kJQ|tVL{(Lmf3o z?I&!I?!Z$trt*EllwE_(?DNr`O1DlWO6L)+#;uGR#4GBM7%HhrrcotHY`u`88+S;&BqPRRq-Utok_{Y4D3h3+kckjJBJ@sHLwylOU| z-ffhzbLxD?(JapE^RH9LqvJsH;C?C8A|mY6Hp_N2giY_PAnT)`({Jd#=isLYqpoc* z-8wowaB}dt^R2Ulo(jFqlUtXxORzz^mfRHm@W2t)fP2>|vCu&Qz@?bbn$NGt)YV^e{vm&|d?-Y`^ZV#3Urpyf zez&y2SLlnMs>)XBuy~wzpgXLfU@Pe%e$ZejqA&WY= z#1DRy>>%Zi$w;H@k$B61r_B6s=JyZ1xHicMI{!$nggSef;T$M#IY5rTK^C{S46>Ul z_?UUXch6rmPwJ4=+s&>8jA}HS8)!p=SvPBQDy}41U6C*1tuU|pTgM5bhYlF--ba~t zJpK8}nH?0ur^>r!(IHA+@MGEd2)X)Pxo8eiq(Il5W6mI(S0DyX?!P+E7Ua^bEU4Yf z%zkbHlr@hn@+ve?+2$IKBgb({zOxdxk(b1+rC!j2s!SQ*~@u92Sp?t?#Wu zJFgcu-)6LlRrzE*1_3-m0Uiiu_@XtRtaS>qn=Cq6Sfz1Plmb;A4 zx!O}VyO4@Isu4K5m0FD})t_z8By`!WIl0mQVfcmGT=jf->ByJL8s}9Af@dfYKj?|3 zfAz(}7uM3YfTRE>vG{Dgz07f=e;1g9w@JIDco3qZk(=eVSfpv|gLeVae%A(!h$Jgx zE1_YE)SVJnPB#lj-^HS1dq;jJN7>*wEmy0pr|pe(U4w0WIoSFc{`Y}$5*m)sIZMDJ ziPstoP5*@ZyW<{MA~GxObS>0FIa$rk3b1m{p5C{Q6L1h+WaCQ!xc${LnL~sHbW3$X z&r*r}Qx}lQ>P1*ZOV`xy6(e@2-nH6zv2t;0+)3zJK7m_t?6L|8_(3K};^hH<@8>W< zSP<7EIqdtr1kF^-cm&d6ZPhTq~v4a=Z0vN)wA7{D3*|;&gVH_c*LDT4!W`q0E!aa?0DVnMl z3*iSNyp9Yu)@I#0$kZS)E$WBpI&x-%S@L3$2M3I3&%t$DEBBwQyOpNoc z3j~rZWb4Ui+;M1#Yv6mhWVR5GvXIuZKFNVV%SX(-9;0@@7+?*4ZE9WK56z1yogxrW zW_2hKHV0k^3{ITzc%G(1>dc14Ig@H>Z}!1mBhHm$3T&MP&x9dgyVcbeFHi?{<%yT5 zgJ(_CnH&UjuIdOxyOmtDxH{{6l_T*gDNf(L%VeqW%-=)hx67L1ENs|S&EMmAwK4{> zTrvsgE2<0ZGl`^6X|>(;)hX6CuuzK(hl5w;Bj%jS1A@0p&1YCI$VSlG`XfnD zN)pZdT;%V!nmw9KGT0M|JcM$BU@yqk6oUCwaAZ2=j`|z-_CBWSCEVNRyfq%Q~_5*^BJ5_&VpTn0H2Cr*(rK){)^|R=| z7?WfODalMs(|KuAKll?2?JTP7Du9z{?1s{V!GzN-^u-3Q8UfkhPx}5-f_Qmue2`BJ#dMMlcM)b8n=Og7a_{sw z=PwOdyGt?LL>?$QnTBG7x3uGI@*_u`CL+qU`^;OOWX`N-?)x*^&-TeB;mk&g>>dnC>8$0Q?%EiYK|#!-QS}(9D$xY3Y$73Z zyQ!KySgo-QUiB=%S9<=k1Xeg2vWOv9YYX0nE2wuF6+Ug~25}tlMGw8cavQ4@RaQA= zL3Wsqe$2#`=q%V!d4oErzanEgy$xpd76Rp#)`YRMPU0^jgoXMHdX^|7TB`d{)d!8& zGMmg|Cd))2`7;R^l|HqpU_c}dV0=nWlm-UDM(+$O)RkK41hI87$Woh81ss*ya-z6X zRAW1Tc1J8neb>uuK&h-%=0`<>akoXoszsw{Up*icREKWuMH5HTKTW4!Fw**m+018= zCli^`_Sx>9hrID?Gl!odVI>|M3Fh=qx2VvfS4+uLN6Av~R$@fTPd44|L;$Jl@58vR zvV%xvu{VzI_stj1zrCsHU^0&w)O0 zs|4Q}Ea@38C(=~=&#KDhA>rX&xkU=_Ye@C+CLz}IB1B76{Ehun)`#TIYKEW{Y`L1` ze}QVAa^!kFC?A-z8o)z)G*p08e@Ldr9V&y_RE*^ z+CmOaoVz_x);+Q>JJgi87ZbNLBC{5_Io+8WFdCZ2n>B4oh2IJoP1=7g5|V_8Y`k@R zATNP%o?TCFl^=Ta6KrS+V4EM#LyC{tqI#R3ke0#sW}l>qVDCI88n7 z#aIMX--~`Y)%aBb+h8L&KlGTs9R?0DZIxv-+x@=)(-JK0Xy2r)|{ zcsK|RKsMbAY>03Gy#X9S0iV0Dq=irfhrn`Gv5%fHK2Cxbns*4S$Po=%4;>M2KoA4F z@IM=|Zw53W*2;Us3!Q>n2!T040&NI>6baF1C`Z+0yP#U}ih~;Qo*QA&o5>NRxzrtj z1b?OxD8@7y)u0_gu^OQ>EzJhIdz>2))9|IY)0CoPY+1uMork~$>w=RSF+wj$2#QjJ zVwOVgLVJ-hSg_ z%@J)3)NXA;m+D|d+FFDV6d_j#6b%~HV+dl!TOk$=d&4wakQQ5z0~#S+wX_ksc?bnD zSQ^0waH$bOLxId#2us$=16RSZ9n1f`O}ju6Xr0y?L5_!12>G&Lw*i#9fIJc%+=TGL zppkh0R0yYn+@PD>uX=MRrgLwF2n*0Ss9jh45Rn@p5KVUoXkrKkWIBsww*v=9&?&tA zyx17rQ{MX6kX86Yc~HBc&4kc-s%r=f zehAaO0ZHfJhM`?eM@*MC;o>5)%&43sdADZAhy5Ia2*)Qm4QoTS3yIjql+6i>v`$Mv zHas!RzyZ-_hTlZF+KzWBdkqbH))7w<(mA(t2hKEHq{$lLA3Jujm8Ry-bZXBTa2p=w zh5&+5_N^_s3w~l6C2lC=*yUjsHaVdiIdPc~jb?%;+^cys&NPFKfmlLE1DC*N}@Fmnkr;aO@r7 z#~a~Ef1o{vaBZg<>V|-dgWwiWROfcCGH0rQ1FZiT*S*?Ierm1#b-vfdbNI^sd_gVQ zt+iZbe{wFnU`X%XlQ!X#x52{f_;Hei?1P}+pOJX(Co0k$9R&qGtID4n(N=QKwOm^z z8qqkUy+3?@2wR<4=%o=Nn>2j6oO1%keRv4@)uI}KW#`h} zw}POpjE!Gq{RdaB)6(Y|TZ8gG3+4}2?7k5rJlHy)?F%wK2->sPeghiRjuyDjH4Xn|!>3sramItv-k5Myh!7L&l%A?}JmTW- zg@6R1s?nXR49Q(29pMe5UhP-H5k%Y()h#Yjw-IfE;aPmLw?62y+|PRmm=#3ZgRp|% z81HSo5eOyoRyxRhHHcYprw@-baWOLVSg5;g&RTG}&g?k1x zo+(V2nM-73g$KR%o}`~;u7pj0tzll_no`NjA1?+=nK88G(+WpuqM-5Qq!0{XS$=tX zqGXIPTzrTXgEhxfmp{k4s65#v0t7-rwh^j!?GH_xdcIZSkw_7jDm*SYy1;Xf(Lx^_ zCHY03_ZA3pysx2e`*>M z^0N)1pFmR-O2PBa9YcGPc+xblP}K9Dt`gd+HNllLX2B8?6(HZI0BsAkg%h_Qp;iL5 zLWo^>6+%!Qh7dG`7b6sskQ;88Var0fY++$!e`vA7Lk|%m5g|^f;lziY{h`8VgkV(K zAE}+j;vXInqS_y{@j)YPe-xuZF>LfF$Ms9*vLjmv+AZ}C4C%&QXjqnsiZSVLgS1hIygt=A938&Tp{0Jhov6Z zd9cTp;}EikcanVfodHZ}qRCU3q(R0zoGejKRB;lbULjY!M+g;l7DC0H_>h7hTxIa* zPZMKR-%OzT2PjuC!J2@L};I_NSbIaD&b-w z9=*oL6S2k0hmJVX2xK2Eqx45fx#n7kaK9G$f+H<#lg&(p#L?+wwtb2@Xh<~SYmrpMq2xnadz5)77|bxdl4cBV1NBF z1%igW(I7&JEi9p8P*^C1E{0InVIh_!9z|x0gX%;@DvSmU%7mawh)2S_YNH{s=D4Ge zo`+sYNrl+PTX8KF`AiFy=pbbw)zI`n9MREU2p7;Q(ngnwc;Eq+(;7AHACeew2NT~F z@($MInJbl5e|)XgR&Tm{#u{SvQlEZ~$mPl^0MjLCU55H)$Ow8bm=Hn+ZDEER7E(wE zWR^bGA!Yb`SdoYoJq}uFqRGN(fFQEUy@(K<`@?HsgTNaRgBUP#1ds>;Iw8$LI4W62 zaduXT1}y()8wH?AHFEMZM<}8YyF201#Nh~|Yzs_GFn|n+_Xjd`D;`aeN}HsT6|O~( zEABDG8MY!HDr^rF`1!&Y*j9!>g~4C02tzCCk{9veL_%s|2>5woaE9Q}AMO{0 zGFD`9nn4k0)F?nhwCE3ZK+VZ0R|z)M%8s=m1O#UW(=VeL2!~yh^7ab*e(%&7z7tm z$im=NVR(edmhtW&iEc5a5LPp24L6}Ctv$~XTRG)d;A4;NZSM<#`qLBP;tDL>Qcwl@ z%M|>AFof()VTeHtLmJ{3DLllbW6Y4n5~qgFMAHx`5)EkvXuvU0?wi73pdJ+%5+2d$ zR)(-bNt9|cmN0`5&p1vgY7oK@YGWokd6FKiW1T8d@}HFm9`T^22?JnaTv3q+Js3&| z>9v(zS`h_B%`%o!EOCj1XiHrBv#+-SY%h4BVk`_s2)*%b1dw{zA0lK3OA)RR`MduN z;w&=}M~KQ1))e51Sme`GrKW+f0p~b#)G`g6QyD<|&FOlh5)i;b0?mn?O`=mz*cl=x zxcfvc0&*8I zc-Omp@ykfnXOLiWu`%##sUuuUu?@)-GnN_AO*cm06jhFZf0!JMJmMP736(~j(+wU? zOF`YBB!fi)j!Kji0Sxd$2eDO7?V|LDaBOvHxJ%)*#_>B(3=~WOWlB?Q$du*PuqvQ* z#2KU~ma-VpUa)9OTh_KGfHmQ59}R3StB6Heyn#`AYY-IpRtUyAtRY~WpW**j5Ctui z(L;!u;!Zr zEf^$BNil{}7jlea9z$vkO{P;fee#q|RS44Dw^XUJLq}#rR2Tt(Hg*KF9e3n1+ZZ^H zfaFaxPGW+4G$1CkZRB!Hh&z2s5?XtZ)}1Ty!Was-OigLZxgNS)^}LCq?~(2rR_O^P z{^4weP}{iy^$&i$&5C*{lp})NpavzT5P;i4gz(_7!eMHRsHTiFLnQxY5E&vP)-(-f zx5=uLdAWfA<`HdRX6D`01{u5}5=yKvfI{A*1qN_V9JHadL+rD{(E5W1(6Pcxh6%(> z;T8>@^5;!3As$n?N}ISQN=JmHl<$HuKJF@GjAE1!7LW^o24rbD$N?{PIMm$;L68wB zh>H)Zg^>yI*v7h7LzGEeA!=&V(2VNfBE#>CTofbL0N}qX!!dYP9hpBks~(iMkT~? zRl;zUXv1lv+2n?_=L}9DgTwK@`~B~3p6#-gmNc&RM7LZJleL7mCF8}=+GINJ5^h*S zowv0fZ(2{BhWM_Zo26`}$cMW7#Gig7{U1`a7q?Uw-_;ie;(9>l1%@$X1_2?%#8QQD zA%viNh+{F8QAU;3F*em|0fZ3-4bA|8~>>)2ts2}FGL}&9Sg+PV0^dG3_T~tI6gjHAva}WyHMGs>bjiC#pmMNs> zUQZTwoAEd{B`TW*GKCN_pT#1|_XHzYM}>eJzE=Ncf7BZTPy^0r3Isq&`Gi|t5)P8I zCE@o8+OlWF(=Aj(V(y?O^Dt-+wTbRQMCJ%D^KpNT=6Pz9AClG&@tAtu^%rwvfFwnA zgdt@2rWjmQ2zVeF6KE;8STRrLOr23#Hzj+7hBS%rPj&WBASpuzkPg5#Rt7aLH58Llu_l@4CYv`s?g1|pO<1--dQ>AOcpEu#T4yGRZVCSj4L|~2QfG#Tjk>iZy#*%015m|7HN&M` z$Mrlixi#^pXjJeOKIeJ(;1>D9QG4YI{@_tpI3Tico^}Hm1YuH$#ejsc7!4smT$f}O z15>Q&WKcFDpV2=kGBUuR1VErF5BVBnX@>|D5*5jt6ITdD!T~NAob~_%Jn#)wuvJH+ z2mrO5*Wx9QC^eWcgjZvEpd?DwV~$`!e=mk7`aok!q&7{k4^RXU0?}>+QZQH$b(uzW z`N)9fMTRVODNkuX7Xx;y`DC0C1^dZrI;B&kf*L;sBdQ^hDFbE|X-5-BV6`y-O#-3L z2m%6-1S(XQDwhb3xFulnc$?%cH6+R|AKFPNR%k#JJrM;jq1c3Ikwks6FG!~fR(P2L zA`4H)dOCU#grSd(LSzw$7>!Yjmr_4WmP}1X2+*{FrJ+WIz>qR>8ga;F%cn=1vuk-Y z8v{@QFTtf;dI1Y?1U#?@il-&K6$#TKLj;vc(HVq9h&9#eesIDrUU3CwAr?Z{ooT~= zkH&5{HXs2rSUvU!b>L$O!)XrUk6biNq!uxdRR|lxWNGLb1Gh$n5E}VqK&{phV3~aT W#i?cKK&CYSCcptkV5)x*2mm{tyJ_SA literal 0 HcmV?d00001 diff --git a/common/src/main/res/values-en-rUS/string.xml b/common/src/main/res/values-en-rUS/string.xml index e784a8e72..f869347b6 100644 --- a/common/src/main/res/values-en-rUS/string.xml +++ b/common/src/main/res/values-en-rUS/string.xml @@ -1,16 +1,16 @@ - Drop down to refresh - Refreshing + Pull down to refresh + Loading... Loading - Release refresh now + Release to refresh Refresh finish refresh failed M-d HH:mm Pull up to load more Release load now Loading - Refreshing + Loading... Load complete Failed to load Are you sure to use the data? @@ -181,7 +181,7 @@ You are the current anchor\'s annual guardian \ n the guardian date expires Special gift for annual guard You haven\'t guarded - 您為當前主播的月守護\n無法開通周守護 + You are the monthly guardian of the current anchor\nUnable to enable weekly guard You are the monthly guard of the current anchor. Opening the annual guard will cover your monthly guard time. Do you want to open it? You will spend%1$s%2$s to open%3$s for the anchor @@ -832,14 +832,14 @@ Heat addition Hot & Time - 熱度可以給主播的房間增加曝光度,熱度越高的直播間,在首頁的排名也越靠前,從而帶來更多的進房用戶,幫助主播在一段時間內迅速提高房間熱度,送出之後立即生效。 - 熱度卡如何獲得? - 1、周星榜主播冠軍的第一名用戶每週可自動獲得; - 2、通過參與官方活動,具體活動可留意官方消息。 - 熱度卡如何使用? - 前往「個人中心」-「我的包裹」中,即可使用熱度卡。 - 熱度卡生效多久? - 對指定主播使用熱度卡後,將會立即生效,效果時長為24小時,不管主播是否在線,熱度時長都將會持續減少 + The popularity can increase the exposure to the anchor\'s room. The higher the live broadcast room, the more popular on the homepage, which will bring more users in the house and help the anchor to quickly increase the room heat in a period of time. Immediately after the delivery Effective. + How to get the heat card? + 1. The first user of Zhou Xingbang\'s anchor champion can automatically get it every week; + 2. By participating in the official activities, the official news can be paid attention to. + How to use the heat card? + Go to the \"Personal Center\"-\"My Package\" to use the heat card. + How long does the heat card take effect? + After using the hot card for the designated anchor, it will take effect immediately. The effect time is 24 hours. Regardless of whether the anchor is online, the heat time will continue to decrease Rewards coming! Receive free Limited ride And limited avatar frame @@ -1312,6 +1312,9 @@ Limited ride And limited avatar frame cancel settings Too many gifts + Current + Apply for list + Anchor: diff --git a/common/src/main/res/values-zh-rHK/strings.xml b/common/src/main/res/values-zh-rHK/strings.xml index 3742dc4ea..4c68ff849 100644 --- a/common/src/main/res/values-zh-rHK/strings.xml +++ b/common/src/main/res/values-zh-rHK/strings.xml @@ -1308,4 +1308,7 @@ 不再設置 去設置 重複添加禮物 + 當前連麥 + 連麥申請 + 主播: diff --git a/common/src/main/res/values-zh-rTW/strings.xml b/common/src/main/res/values-zh-rTW/strings.xml index df1963a96..8840d0477 100644 --- a/common/src/main/res/values-zh-rTW/strings.xml +++ b/common/src/main/res/values-zh-rTW/strings.xml @@ -1307,4 +1307,7 @@ 不再設置 去設置 重複添加禮物 + 當前連麥 + 連麥申請 + 主播: diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml index 673c59614..d0c7ec49b 100644 --- a/common/src/main/res/values-zh/strings.xml +++ b/common/src/main/res/values-zh/strings.xml @@ -1307,6 +1307,9 @@ 不再設置 去設置 重複添加禮物 + 當前連麥 + 連麥申請 + 主播: diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index c802d3fd7..5e3511060 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1,16 +1,16 @@ - Drop down to refresh - Refreshing + Pull down to refresh + Loading... Loading - Release refresh now + Release to refresh Refresh finish refresh failed M-d HH:mm Pull up to load more Release load now Loading - Refreshing + Loading... Load complete Failed to load Are you sure to use the data? @@ -181,7 +181,7 @@ You are the current anchor\'s annual guardian \ n the guardian date expires Special gift for annual guard You haven\'t guarded - 您為當前主播的月守護\n無法開通周守護 + You are the monthly guardian of the current anchor\nUnable to enable weekly guard You are the monthly guard of the current anchor. Opening the annual guard will cover your monthly guard time. Do you want to open it? You will spend%1$s%2$s to open%3$s for the anchor @@ -832,14 +832,14 @@ Heat addition Hot & Time - 熱度可以給主播的房間增加曝光度,熱度越高的直播間,在首頁的排名也越靠前,從而帶來更多的進房用戶,幫助主播在一段時間內迅速提高房間熱度,送出之後立即生效。 - 熱度卡如何獲得? - 1、周星榜主播冠軍的第一名用戶每週可自動獲得; - 2、通過參與官方活動,具體活動可留意官方消息。 - 熱度卡如何使用? - 前往「個人中心」-「我的包裹」中,即可使用熱度卡。 - 熱度卡生效多久? - 對指定主播使用熱度卡後,將會立即生效,效果時長為24小時,不管主播是否在線,熱度時長都將會持續減少 + The popularity can increase the exposure to the anchor\'s room. The higher the live broadcast room, the more popular on the homepage, which will bring more users in the house and help the anchor to quickly increase the room heat in a period of time. Immediately after the delivery Effective. + How to get the heat card? + 1. The first user of Zhou Xingbang\'s anchor champion can automatically get it every week; + 2. By participating in the official activities, the official news can be paid attention to. + How to use the heat card? + Go to the \"Personal Center\"-\"My Package\" to use the heat card. + How long does the heat card take effect? + After using the hot card for the designated anchor, it will take effect immediately. The effect time is 24 hours. Regardless of whether the anchor is online, the heat time will continue to decrease Rewards coming! Receive free Limited ride And limited avatar frame @@ -1313,5 +1313,8 @@ Limited ride And limited avatar frame cancel settings Too many gifts + Current + Apply for list + Anchor: 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 b21768400..721fbc339 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -1133,7 +1133,7 @@ public class LiveAudienceActivity extends LiveActivity { fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveUserMoreDialogFragment"); LiveMicUserDialogFragment.activity = ((LiveAudienceActivity) mContext); } else { - ToastUtil.show(R.string.no_mic_opn); + ToastUtil.show(mContext.getString(R.string.no_mic_opn)); } } }); diff --git a/live/src/main/java/com/yunbao/live/activity/LiveTRTCAnchorActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveTRTCAnchorActivity.java index 662aa547e..b75013a91 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveTRTCAnchorActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveTRTCAnchorActivity.java @@ -29,6 +29,7 @@ import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.L; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.R; import com.yunbao.common.bean.LiveRoomTypeBean; import com.yunbao.live.dialog.LiveBeautyDialogFragment; @@ -208,7 +209,7 @@ public class LiveTRTCAnchorActivity extends TRTCBaseActivity { */ private void createRoom() { if (mLiveClassID == 0) { - ToastUtil.show(R.string.live_choose_live_class); + ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class)); return; } String title = mEditTitle.getText().toString().trim(); diff --git a/live/src/main/java/com/yunbao/live/adapter/FreePkRecyclerAdapter.java b/live/src/main/java/com/yunbao/live/adapter/FreePkRecyclerAdapter.java index b746ca54e..ca94b19df 100644 --- a/live/src/main/java/com/yunbao/live/adapter/FreePkRecyclerAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/FreePkRecyclerAdapter.java @@ -18,6 +18,7 @@ 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.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.R; import com.yunbao.live.activity.LiveRyAnchorActivity; import com.yunbao.common.http.LiveHttpUtil; @@ -81,10 +82,17 @@ public class FreePkRecyclerAdapter extends RefreshAdapter { public HeadViewHolder(@NonNull View itemView) { super(itemView); + } public void setData(RandomPkUserBean bean, int position) { - + if (!WordUtil.isNewZh() && itemView.findViewById(R.id.text1)!=null) { + ((TextView) itemView.findViewById(R.id.text1)).setText("number"); + ((TextView) itemView.findViewById(R.id.text2)).setText("user"); + ((TextView) itemView.findViewById(R.id.text3)).setText("status"); + ((TextView) itemView.findViewById(R.id.text4)).setText("Controls"); + ((TextView) itemView.findViewById(R.id.text5)).setText("follow"); + } } } @@ -115,7 +123,7 @@ public class FreePkRecyclerAdapter extends RefreshAdapter { } if (freePkNum == 0 && mDrPkNum == -1) { ToastUtil.show(R.string.free_pk_num_null); - // return; + // return; } LiveHttpUtil.getMicList(LiveRyAnchorActivity.mLiveUid, 0, new com.yunbao.common.http.HttpCallback() { @@ -125,7 +133,11 @@ public class FreePkRecyclerAdapter extends RefreshAdapter { //非0认为未开通连麦权限 if (code != 0) { if (mDrPkNum == -1) { - ToastUtil.show("邀请 " + bean.getUserNiceName() + " 发送成功"); + if (WordUtil.isNewZh()) { + ToastUtil.show("邀请 " + bean.getUserNiceName() + " 发送成功"); + } else { + ToastUtil.show("invite " + bean.getUserNiceName() + " successful"); + } mOnItemClickListener.onItemClick(bean, -1); ((LiveRyAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(), ((LiveRyAnchorActivity) mContext).buildLinkMicJSON().toString() @@ -133,13 +145,21 @@ public class FreePkRecyclerAdapter extends RefreshAdapter { return; } if (mDrPkNum <= 0) { - ToastUtil.show("多人次數已用完"); + if (WordUtil.isNewZh()) { + ToastUtil.show("多人次數已用完"); + } else { + ToastUtil.show("Multiple times have been used up"); + } return; } ((LiveRyAnchorActivity) mContext).linkDrMicAnchorApply(bean.getId(), bean.getId()); } else { - ToastUtil.show("請先關閉語言連麥"); + if (WordUtil.isNewZh()) { + ToastUtil.show("請先關閉語音連麥"); + } else { + ToastUtil.show("Please disable the voice connection first"); + } } } }); @@ -192,9 +212,15 @@ public class FreePkRecyclerAdapter extends RefreshAdapter { if (bean.isPk()) { mStatus.setText("PK中"); ImgLoader.display(mContext, R.mipmap.ic_random_pk_pk, mPkStatus); + if (!WordUtil.isNewZh()) { + mStatus.setText("PK"); + } } else { mStatus.setText("空闲"); ImgLoader.display(mContext, R.mipmap.ic_random_pk_pk_unselect, mPkStatus); + if (!WordUtil.isNewZh()) { + mStatus.setText("free"); + } } if (bean.isAttention()) { ImgLoader.display(mContext, R.mipmap.ic_random_pk_like, mFollow); diff --git a/live/src/main/java/com/yunbao/live/adapter/GuardAdapter.java b/live/src/main/java/com/yunbao/live/adapter/GuardAdapter.java index 378b172d1..3136aad50 100644 --- a/live/src/main/java/com/yunbao/live/adapter/GuardAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/GuardAdapter.java @@ -137,6 +137,9 @@ public class GuardAdapter extends RefreshAdapter { mSex = (ImageView) itemView.findViewById(R.id.sex); mLevel = (ImageView) itemView.findViewById(R.id.level); mVotes = (TextView) itemView.findViewById(R.id.votes); + if(!WordUtil.isNewZh()) { + ((TextView) itemView.findViewById(R.id.votesTitle)).setText("Contribution"); + } } void setData(GuardUserBean bean) { diff --git a/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java index 7ce43981a..b1395ffc9 100644 --- a/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java @@ -27,6 +27,7 @@ import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.common.utils.WordsTypeUtil; import com.yunbao.live.R; import com.yunbao.live.adapter.FreePkRecyclerAdapter; @@ -128,8 +129,15 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl } }); + if(!WordUtil.isNewZh()){ + mPkNumText.setText("Free PK remaining number"); + ((TextView)findViewById(R.id.tmp_text2)).setText("Updated daily at 6am"); + } if (mDrPkNum != -1) { mPkNumText.setText("多人PK剩余次數"); + if(!WordUtil.isNewZh()){ + mPkNumText.setText("multi-user PK remaining number"); + } } initRecycler(); } @@ -183,6 +191,10 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl searchTag.setText("主播搜索"); listTag.setTag(TAB_STATUS_FOLLOW); listTag.setText("關注列表"); + if (!WordUtil.isNewZh()) { + searchTag.setText("search"); + listTag.setText("follow list"); + } tabLayout.addTab(searchTag); tabLayout.addTab(listTag); tabStatus = TAB_STATUS_SEARCH; diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveMicAnchorDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveMicAnchorDialogFragment.java index d05c2a20d..e4cf9f13f 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveMicAnchorDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveMicAnchorDialogFragment.java @@ -27,6 +27,7 @@ import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.ResponseModel; import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.DpUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.adapter.AnchorUserMicInfoAdapter; @@ -151,7 +152,17 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi mOpenMicBtn = mRootView.findViewById(R.id.open_mic); mNoMoreDesc = mRootView.findViewById(R.id.no_more_desc); Tips = bundle.getString("By"); - + requestMicBtn = mRootView.findViewById(R.id.guard_btn); + mDisconnectMic = mRootView.findViewById(R.id.apply_btn); + inviteMicBtn = mRootView.findViewById(R.id.fans_btn); + if (!WordUtil.isNewZh()) { + listMicbtn.setText("connection"); + requestMicBtn.setText("apply list"); + mDisconnectMic.setText("apply"); + inviteMicBtn.setText("invite"); + ((TextView) mRootView.findViewById(R.id.title)).setText("Open the voice permission"); + ((TextView) mRootView.findViewById(R.id.des)).setText("fan level 5 or above can apply for voice"); + } listMicbtn.setOnClickListener(view -> { if (!MicStatusManager.getInstance().isAnchorOpenRoom()) { return; @@ -161,7 +172,6 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi type = "guanzhong"; mRefreshView.initData(); }); - requestMicBtn = mRootView.findViewById(R.id.guard_btn); requestMicBtn.setOnClickListener(view -> { if (!MicStatusManager.getInstance().isAnchorOpenRoom()) { return; @@ -171,7 +181,7 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi type = "guard"; mRefreshView.initData(); }); - inviteMicBtn = mRootView.findViewById(R.id.fans_btn); + inviteMicBtn.setVisibility(View.VISIBLE); inviteMicBtn.setOnClickListener(view -> { if (!MicStatusManager.getInstance().isAnchorOpenRoom()) { @@ -202,13 +212,13 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi mRefreshView = mRootView.findViewById(R.id.refreshView); view_no = mRootView.findViewById(R.id.view_no); - mDisconnectMic = mRootView.findViewById(R.id.apply_btn); + mDisconnectMic.setBackgroundResource(R.drawable.background_eb6877); mDisconnectMic.setText(R.string.close_mic); mDisconnectMic.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogUitl.showSimpleDialog(mContext, "是否確認關閉語音連麥", new DialogUitl.SimpleCallback() { + DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh()?"是否確認關閉語音連麥":"Whether to disable the voice", new DialogUitl.SimpleCallback() { @Override public void onConfirmClick(Dialog dialog, String content) { MicStatusManager.getInstance().closeMic(mContext); @@ -340,12 +350,18 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi requestMicBtn.setTextColor(Color.parseColor("#fff6f7fb")); inviteMicBtn.setTextColor(Color.parseColor("#ff646464")); mNoMoreDesc.setText("當前沒有人申請"); + if (!WordUtil.isNewZh()) { + mNoMoreDesc.setText("No one has applied at the moment"); + } type = "guard"; } else if (Tips.equals("3")) { listMicbtn.setTextColor(Color.parseColor("#ff646464")); requestMicBtn.setTextColor(Color.parseColor("#ff646464")); inviteMicBtn.setTextColor(Color.parseColor("#fff6f7fb")); mNoMoreDesc.setText("當前沒有觀眾"); + if (!WordUtil.isNewZh()) { + mNoMoreDesc.setText("No audience at the moment"); + } type = "fans"; } } diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveMicUserDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveMicUserDialogFragment.java index 4a7cffde4..0922fa572 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveMicUserDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveMicUserDialogFragment.java @@ -28,6 +28,7 @@ import com.yunbao.common.http.HttpClient; import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.activity.LiveAudienceActivity; @@ -150,13 +151,13 @@ public class LiveMicUserDialogFragment extends AbsDialogFragment implements View apply_btn = mRootView.findViewById(R.id.apply_btn); if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_DEFAULT) { apply_btn.setBackgroundResource(R.drawable.background_0fdab8); - apply_btn.setText(R.string.apply_for_lianmai); + apply_btn.setText(mContext.getString(R.string.apply_for_lianmai)); } else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_REQUEST) { apply_btn.setBackgroundResource(R.drawable.background_00a0e9); - apply_btn.setText(R.string.cancel_application); + apply_btn.setText(mContext.getString(R.string.cancel_application)); } else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) { apply_btn.setBackgroundResource(R.drawable.background_eb6877); - apply_btn.setText(R.string.quit_mic); + apply_btn.setText(mContext.getString(R.string.quit_mic)); } apply_btn.setOnClickListener(new View.OnClickListener() { @Override @@ -277,8 +278,12 @@ public class LiveMicUserDialogFragment extends AbsDialogFragment implements View }); } else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) { + String content="連麥中,退出將斷開語音連麥!"; + if(!WordUtil.isNewZh()){ + content="Connect, exit will disconnect voice connect!"; + } //退出连麦 - DialogUitl.showSimpleDialog(mContext, "連麥中,退出將斷開語音連麥!", new DialogUitl.SimpleCallback() { + DialogUitl.showSimpleDialog(mContext,content , new DialogUitl.SimpleCallback() { @Override public void onConfirmClick(Dialog dialog, String content) { Log.e("ry", "退出112"); diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveNewRoomClassDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveNewRoomClassDialogFragment.java index d248207cc..fb7bb102d 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveNewRoomClassDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveNewRoomClassDialogFragment.java @@ -64,13 +64,7 @@ public class LiveNewRoomClassDialogFragment extends AbsDialogFragment implements if (configBean != null) { List list1 = configBean.getLiveClass(); for (int i = 0; i < list1.size(); i++) { - if (!list1.get(i).getName().equals("New") && - !list1.get(i).getName().equals("新秀") && - !list1.get(i).getName().equals("熱門") && - !list1.get(i).getName().equals("Hot") && - !list1.get(i).getName().equals("男神") && - !list1.get(i).getName().equals("Mr.Right") - ) { + if(list1.get(i).getChannel_show()==1){ list.add(list1.get(i)); } } diff --git a/live/src/main/java/com/yunbao/live/dialog/RandomPkDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/RandomPkDialogFragment.java index b92cb921d..cdcc39d41 100644 --- a/live/src/main/java/com/yunbao/live/dialog/RandomPkDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/RandomPkDialogFragment.java @@ -19,6 +19,7 @@ import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.R; import com.yunbao.common.manager.RandomPkManager; import com.yunbao.live.activity.LiveRyAnchorActivity; @@ -223,7 +224,13 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On if (data.getCode() == 0) { setSwitchBtn(!(boolean) mRandomPkSwitch.getTag()); } else if (data.getCode() == 500) { - DialogUitl.showSimpleDialog(mContext, "您因拒绝随机PK,被限制关闭中", "随机PK可打开时间:" + data.getMsg(), false, new DialogUitl.SimpleCallback() { + String title="您因拒絕隨機PK,被限制關閉中"; + String content="隨機PK可打開時間:"; + if(!WordUtil.isNewZh()){ + title="You are restricted for refusing random PK"; + content="Random PK can open time:"; + } + DialogUitl.showSimpleDialog(mContext,title , content + data.getMsg(), false, new DialogUitl.SimpleCallback() { @Override public void onConfirmClick(Dialog dialog, String content) { dialog.dismiss(); @@ -248,7 +255,12 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On */ private void randomPk() { if (mRandomPkSwitch.getTag() == null || !(boolean) mRandomPkSwitch.getTag()) { - ToastUtil.show("未开启随机PK开关"); + if (WordUtil.isNewZh()) { + ToastUtil.show("未開啟隨機PK開關"); + } else { + ToastUtil.show("The random PK switch is not enabled"); + } + return; } if ((mPkBtn.getTag() != null && (boolean) mPkBtn.getTag()) || RandomPkManager.getInstance().isRequestPk()) { @@ -267,7 +279,11 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On mPkBtn.setTag(true); } } else { - ToastUtil.show("請先關閉語言連麥"); + if (WordUtil.isNewZh()) { + ToastUtil.show("請先關閉語音連麥"); + } else { + ToastUtil.show("Please disable the voice connection first"); + } } } }); diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java b/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java index f5dac9e82..69d0313e3 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java @@ -11,6 +11,7 @@ import com.yunbao.common.bean.UserBean; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.R; import com.yunbao.common.http.LiveHttpUtil; @@ -168,7 +169,7 @@ public class SocketRyChatUtil { .param("medal_name", u.getMedalName()) .param("medal_level", u.getMedalLevel()) .param("good_num", u.getGoodnum()) - .param("ct", CommonAppContext.sInstance.getBaseContext().getString(R.string.live_lighted)); + .param("ct", WordUtil.getNewString(R.string.live_lighted)); msg.create(); String targetId = "g" + mLiveUid; Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM; 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 052f37821..f3968ff14 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java @@ -46,6 +46,7 @@ import com.yunbao.common.manager.RandomPkManager; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.L; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.R; import com.yunbao.live.activity.LiveAudienceActivity; import com.yunbao.live.activity.LiveRyAnchorActivity; @@ -100,7 +101,11 @@ public class SocketRyClient { @Override public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) { Log.i("tx", "加入" + "失败" + coreErrorCode); - ToastUtil.show("網絡不佳無法連接,請重新進入"); + if(WordUtil.isNewZh()) { + ToastUtil.show("網絡不佳無法連接,請重新進入"); + }else{ + ToastUtil.show("The network is not connected, please re-enter"); + } } }); @@ -194,13 +199,21 @@ public class SocketRyClient { .setObject(JSONArray.parseArray(mic_data.getJSONArray("userlist").toString(), LinkMicUserBean.class)) ); } else if (actions == 6) { - ToastUtil.show("主播已關閉當前語音連麥功能"); + if(WordUtil.isNewZh()) { + ToastUtil.show("主播已關閉當前語音連麥功能"); + }else{ + ToastUtil.show("The host has disabled the voice connection function"); + } EventBus.getDefault().post("endMic"); Bus.get().post(new LiveAudienceEvent() .setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_CLOSE) .setObject(map.toJavaObject(LinkMicUserBean.class))); } else if (actions == 8) { - ToastUtil.show("您已被移出多人語音連麥"); + if(WordUtil.isNewZh()) { + ToastUtil.show("您已被移出多人語音連麥"); + }else { + ToastUtil.show("You have been removed from Multi-Voice Connection"); + } EventBus.getDefault().post("endMic"); } else if (actions == 3) { Bus.get().post(new LiveAudienceEvent() @@ -1315,7 +1328,11 @@ public class SocketRyClient { IMRTCManager.getInstance().requestJoinOtherRoom(map.getString("uid"), true, msg1.toString(), new IRCRTCResultCallback() { @Override public void onSuccess() { - ToastUtil.show("邀请 " + map.getString("uid") + " 发送成功"); + if(WordUtil.isNewZh()) { + ToastUtil.show("邀请 " + map.getString("uid") + " 发送成功"); + }else{ + ToastUtil.show("invite " + map.getString("uid") + " successful"); + } runOnUiThread(new Runnable() { @Override public void run() { @@ -1334,7 +1351,11 @@ public class SocketRyClient { }); //todo 安卓端状态码说明文档:https://docs.rongcloud.cn/v4/views/rtc/call/code/android.html Log.e("ry", rtcErrorCode + "aaaaaa" + CommonAppConfig.getInstance().getUid() + "VDSSSS" + map.getString("uid")); - ToastUtil.show("邀请 " + map.getString("uid") + " 发送失败 :" + rtcErrorCode); + if(WordUtil.isNewZh()) { + ToastUtil.show("邀请 " + map.getString("uid") + " 发送失败 :" + rtcErrorCode); + }else{ + ToastUtil.show("invite " + map.getString("uid") + " lose :" + rtcErrorCode); + } } }); break; diff --git a/live/src/main/java/com/yunbao/live/views/CustomViewHolder.java b/live/src/main/java/com/yunbao/live/views/CustomViewHolder.java index 085d8de5a..b7acd825c 100644 --- a/live/src/main/java/com/yunbao/live/views/CustomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/CustomViewHolder.java @@ -12,6 +12,7 @@ import com.bumptech.glide.Glide; import com.ms.banner.holder.BannerViewHolder; import com.yunbao.common.bean.BannerBean; import com.yunbao.common.utils.StringUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.common.views.weight.ProgressView; import com.yunbao.live.R; @@ -37,6 +38,7 @@ public class CustomViewHolder implements BannerViewHolder { TextView targetAssist = contextView.findViewById(R.id.target_assist_num); TextView currentAssist = contextView.findViewById(R.id.current_assist_num); TextView title = contextView.findViewById(R.id.title); + if (data.isStart()) { startContext.setVisibility(View.VISIBLE); Glide.with(context).load(R.mipmap.start_level).into(bannerBack); @@ -63,6 +65,11 @@ public class CustomViewHolder implements BannerViewHolder { targetAssist.setText("/" + targetAssistNum); currentAssist.setText(String.valueOf(currentAssistNum)); title.setText(String.format(context.getString(R.string.star_change),data.getModel().getTaskNum())); + + if(!WordUtil.isNewZh()){ + ((TextView)contextView.findViewById(R.id.total_star_value)).setText(context.getString(R.string.total_star_value)); + ((TextView)contextView.findViewById(R.id.number_of_people_assisted)).setText(context.getString(R.string.number_of_people_assisted)); + } } else { if(data!=null&&!StringUtil.isEmpty(data.getImageUrl())) { String imagerUrl = data.getImageUrl().replace("qny", "downs"); diff --git a/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java index e71075a0a..1fa338911 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java @@ -140,7 +140,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder { fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveUserMoreDialogFragment"); LiveMicUserDialogFragment.activity = ((LiveAudienceActivity) mContext); } else { - ToastUtil.show(R.string.no_mic_opn); + ToastUtil.show(mContext.getString(R.string.no_mic_opn)); } } }); diff --git a/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java index d5e7e7572..891b108b9 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java @@ -46,6 +46,7 @@ import com.yunbao.common.utils.ProcessImageUtil; import com.yunbao.common.utils.RouteUtil; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.common.views.AbsViewHolder; import com.yunbao.common.views.LiveClarityCustomPopup; import com.yunbao.common.views.LiveNewWishListPopup; @@ -391,7 +392,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl return; } if (mLiveClassID == 0) { - ToastUtil.show(R.string.live_choose_live_class); + ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class)); return; } // startLive(); @@ -890,7 +891,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl // return; // } if (mLiveClassID == 0) { - ToastUtil.show(R.string.live_choose_live_class); + ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class)); return; } createRoom(); @@ -905,7 +906,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl if (!isHttpBack) { isHttpBack = true; if (mLiveClassID == 0) { - ToastUtil.show(R.string.live_choose_live_class); + ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class)); return; } String title = mEditTitle.getText().toString().trim(); diff --git a/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java index 1107de3b5..9b9a91db4 100644 --- a/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java @@ -44,6 +44,7 @@ import com.yunbao.common.utils.MicStatusManager; import com.yunbao.common.utils.ScreenDimenUtil; import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.common.views.LiveClarityCustomPopup; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; @@ -688,11 +689,19 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder { } }); } else if ("inviteMic".equals(str)) { + String content="邀請您進行語音連麥"; + String confirm="接受"; + String cancel="拒絕"; + if(!WordUtil.isNewZh()){ + content="You are invited to join the voice connection"; + confirm="accept"; + cancel="cancel"; + } DialogUitl.Builder builder = new DialogUitl.Builder(mContext) - .setContent("邀請您進行語音連麥") + .setContent(content) .setTitle(mLiveBean.getUserNiceName()) - .setConfirmString("接受") - .setCancelString("拒絕") + .setConfirmString(confirm) + .setCancelString(cancel) .setView(R.layout.dialog_live_mic_invite) .setClickCallback(new DialogUitl.SimpleCallback() { @Override @@ -771,7 +780,11 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder { onPrepared(); rcrtcRoom = null; MicStatusManager.getInstance().clear(); - ToastUtil.show("已成功退出語音連麥"); + if(WordUtil.isNewZh()) { + ToastUtil.show("已成功退出語音連麥"); + }else{ + ToastUtil.show("You have successfully exited the voice connection"); + } resumePlay(); if (onMicCallback != null) { onMicCallback.onMikUpdate(); @@ -854,8 +867,13 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder { } private void showToast() { - DialogUitl.showToast(mContext, "設置成功\n" + - "正在為你轉換中", 3000); + if(WordUtil.isNewZh()) { + DialogUitl.showToast(mContext, "設置成功\n" + + "正在為你轉換中", 3000); + }else{ + DialogUitl.showToast(mContext, "successful\n" + + "It's being converted for you", 3000); + } } @Override @@ -1137,7 +1155,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder { "timestampNs:" + videoFrame.getTimestampNs() + "\n" + "分辨率:" + videoFrame.getBuffer().getHeight() + "x" + videoFrame.getBuffer().getWidth() + "\n" + "当前时间:" + new SimpleDateFormat("HH:mm:ss", Locale.CHINA).format(new Date()) + "\n"; - Log.d("ry", "onFrame: " + debugText); + //Log.d("ry", "onFrame: " + debugText); new Handler(Looper.getMainLooper()).post(() -> { debugView.setText(debugText); diff --git a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java index f35464cf0..9a0de895b 100644 --- a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java @@ -51,6 +51,7 @@ import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.L; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.activity.LiveRyAnchorActivity; @@ -988,6 +989,9 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX return; } String ct = "由於" + uname + "退出比賽," + pkname + "獲得勝利"; + if(!WordUtil.isNewZh()){ + ct= "because" + uname + "To leave a race," + pkname + "win"; + } SocketSendBean seed_msg = new SocketSendBean() .param("_method_", Constants.SOCKET_SYSTEM) diff --git a/live/src/main/java/com/yunbao/live/views/LiveReadyRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveReadyRyViewHolder.java index 941cc4270..de5eb23a8 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveReadyRyViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveReadyRyViewHolder.java @@ -29,6 +29,7 @@ import com.yunbao.common.utils.L; import com.yunbao.common.utils.ProcessImageUtil; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.common.views.AbsViewHolder; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; @@ -423,7 +424,7 @@ public class LiveReadyRyViewHolder extends AbsViewHolder implements View.OnClick // return; // } if (mLiveClassID == 0) { - ToastUtil.show(R.string.live_choose_live_class); + ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class)); return; } if (mLiveShareAdapter != null) { @@ -466,7 +467,7 @@ public class LiveReadyRyViewHolder extends AbsViewHolder implements View.OnClick if(isHttpBack == false) { isHttpBack = true; if (mLiveClassID == 0) { - ToastUtil.show(R.string.live_choose_live_class); + ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class)); return; } String title = mEditTitle.getText().toString().trim(); diff --git a/live/src/main/java/com/yunbao/live/views/LiveReadyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveReadyViewHolder.java index dd836fa14..699d3019a 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveReadyViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveReadyViewHolder.java @@ -41,6 +41,7 @@ import com.yunbao.common.utils.L; import com.yunbao.common.utils.ProcessImageUtil; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.common.views.AbsViewHolder; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; @@ -447,7 +448,7 @@ public class LiveReadyViewHolder extends AbsViewHolder implements View.OnClickLi // return; // } if (mLiveClassID == 0) { - ToastUtil.show(R.string.live_choose_live_class); + ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class)); return; } if (mLiveShareAdapter != null) { @@ -487,7 +488,7 @@ public class LiveReadyViewHolder extends AbsViewHolder implements View.OnClickLi */ private void createRoom() { if (mLiveClassID == 0) { - ToastUtil.show(R.string.live_choose_live_class); + ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class)); return; } String title = mEditTitle.getText().toString().trim(); diff --git a/live/src/main/res/layout/anchor_open_mic_view.xml b/live/src/main/res/layout/anchor_open_mic_view.xml index 7d11c3aa3..8141f4e93 100644 --- a/live/src/main/res/layout/anchor_open_mic_view.xml +++ b/live/src/main/res/layout/anchor_open_mic_view.xml @@ -29,6 +29,7 @@ android:orientation="vertical"> @@ -35,7 +35,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" - android:text="連麥申請" + android:text="@string/user_apply_for_lianmai" android:textColor="#ff646464" android:textSize="16sp" /> diff --git a/live/src/main/res/layout/dialog_user_mic_list.xml b/live/src/main/res/layout/dialog_user_mic_list.xml index 606882d63..007229277 100644 --- a/live/src/main/res/layout/dialog_user_mic_list.xml +++ b/live/src/main/res/layout/dialog_user_mic_list.xml @@ -25,7 +25,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" - android:text="當前連麥" + android:text="@string/list_for_lianmai" android:textColor="#fff6f7fb" android:textSize="16sp" /> @@ -35,7 +35,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" - android:text="連麥申請" + android:text="@string/user_apply_for_lianmai" android:textColor="#ff646464" android:textSize="16sp" /> diff --git a/live/src/main/res/layout/guard_list.xml b/live/src/main/res/layout/guard_list.xml index 88a7a25b1..4ddacbe33 100644 --- a/live/src/main/res/layout/guard_list.xml +++ b/live/src/main/res/layout/guard_list.xml @@ -85,6 +85,7 @@ 2000) { mLastClickBackTime = curTime; - ToastUtil.show(R.string.main_click_next_exit); + ToastUtil.show(WordUtil.getNewString(R.string.main_click_next_exit)); return; } APPEasyFloat.getInstance().dismiss(mContext); diff --git a/main/src/main/java/com/yunbao/main/activity/PDLiveConversationListActivity.java b/main/src/main/java/com/yunbao/main/activity/PDLiveConversationListActivity.java index 1aad43d74..368939ae1 100644 --- a/main/src/main/java/com/yunbao/main/activity/PDLiveConversationListActivity.java +++ b/main/src/main/java/com/yunbao/main/activity/PDLiveConversationListActivity.java @@ -48,6 +48,7 @@ import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.ProcessResultUtil; import com.yunbao.common.utils.SVGAViewUtils; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.activity.SystemMessageActivity; import com.yunbao.live.bean.ImUserBean; @@ -502,7 +503,7 @@ public class PDLiveConversationListActivity extends AbsActivity implements View. long curTime = System.currentTimeMillis(); if (curTime - mLastClickBackTime > 2000) { mLastClickBackTime = curTime; - ToastUtil.show(R.string.main_click_next_exit); + ToastUtil.show(WordUtil.getNewString(R.string.main_click_next_exit)); } else { EventBus.getDefault().post(new PDLiveConversationListEvent().setPage(11)); finish(); diff --git a/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java b/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java index 5c36c21d7..03412ff6a 100644 --- a/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java +++ b/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java @@ -29,6 +29,7 @@ import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.PluginManager; import com.yunbao.common.utils.ProcessResultUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; import com.yunbao.live.LiveConfig; import com.yunbao.live.activity.LiveAnchorActivity; import com.yunbao.live.activity.LiveRyAnchorActivity; @@ -242,10 +243,14 @@ public class MainStartDialogFragment extends AbsDialogFragment implements View.O LiveHttpUtil.getLiveSdk(mGetLiveSdkCallback); }); } else { - DialogUitl.showSimpleDialog(mContext, "需要下载开播插件,是否下载", new DialogUitl.SimpleCallback() { + String tips="需要下载开播插件,是否下载"; + if(!WordUtil.isNewZh()){ + tips="You need to download the plug-in, whether to download"; + } + DialogUitl.showSimpleDialog(mContext, tips, new DialogUitl.SimpleCallback() { @Override public void onConfirmClick(Dialog dialog, String content) { - Dialog downloadDialog = DialogUitl.loadingDialog(mContext, "下载中"); + Dialog downloadDialog = DialogUitl.loadingDialog(mContext, "Downloading..."); downloadDialog.show(); PluginManager.getInstance().loadAnchorPlugin(it -> { LiveHttpUtil.getLiveSdk(mGetLiveSdkCallback);