From 0d1e2c4e6be5dff4386a774b86ecbae09ad83ef5 Mon Sep 17 00:00:00 2001 From: Martin <13046765170@163.com> Date: Thu, 22 Aug 2024 10:45:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E6=92=AD=E5=BC=80=E6=92=AD=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/views/LiveClarityCustomPopup.java | 12 + .../main/res/drawable/bg_gift_progressbar.xml | 23 + .../res/layout/dialog_live_interaction.xml | 73 +- .../res/mipmap-xxhdpi/icon_live_close_3.png | Bin 1383 -> 2362 bytes common/src/main/res/values-en-rUS/strings.xml | 6 +- common/src/main/res/values-zh/strings.xml | 2 +- common/src/main/res/values/strings.xml | 6 +- config.gradle | 4 +- .../live/activity/LiveSwAnchorActivity.java | 9 +- .../yunbao/live/adapter/LiveChatAdapter.java | 93 ++- .../com/yunbao/live/bean/LiveChatBean.java | 18 + .../yunbao/live/bean/LiveWishlistBean.java | 12 +- .../presenter/LiveSwLinkMicPkPresenter.java | 2 +- .../yunbao/live/socket/SocketSwChatUtil.java | 2 + .../yunbao/live/socket/SocketSwClient.java | 2 + .../yunbao/live/views/LiveEndViewHolder.java | 2 +- .../live/views/LiveNewReadySwViewHolder.java | 35 +- .../yunbao/live/views/LiveRoomViewHolder.java | 663 ++++++++---------- .../live/views/LiveRyAnchorViewHolder.java | 13 +- .../live/views/PortraitLiveManager.java | 2 +- live/src/main/res/drawable/bg_live_item.xml | 2 +- .../src/main/res/drawable/bg_live_item_an.xml | 5 + .../res/drawable/bg_live_room_mic_num.xml | 9 + .../main/res/drawable/bg_push_time_point.xml | 2 +- live/src/main/res/layout/item_live_chat.xml | 593 ++++++++-------- .../main/res/layout/view_live_audience.xml | 1 - .../src/main/res/layout/view_live_play_sw.xml | 4 +- .../src/main/res/layout/view_live_push_sw.xml | 10 +- live/src/main/res/layout/view_live_room.xml | 554 +++++++++------ .../main/res/layout/view_new_live_ready.xml | 2 +- live/src/main/res/layout/view_noble_seat.xml | 4 +- .../main/res/layout/view_ry_live_anchor.xml | 4 +- .../res/mipmap-mdpi/icon_live_close_3.png | Bin 2448 -> 0 bytes .../main/res/mipmap-mdpi/live_users_more.png | Bin 3817 -> 10298 bytes .../mipmap-xhdpi/bg_live_room_wishlist.png | Bin 0 -> 30648 bytes .../src/main/res/mipmap-xhdpi/voice_close.png | Bin 0 -> 2487 bytes live/src/main/res/mipmap-xhdpi/voice_open.png | Bin 0 -> 2164 bytes live/src/main/res/values-zh/strings.xml | 5 +- live/src/main/res/values/dimen.xml | 2 +- live/src/main/res/values/strings.xml | 5 +- main/src/main/res/values-en/strings.xml | 2 +- 41 files changed, 1210 insertions(+), 973 deletions(-) create mode 100644 common/src/main/res/drawable/bg_gift_progressbar.xml create mode 100644 live/src/main/res/drawable/bg_live_item_an.xml create mode 100644 live/src/main/res/drawable/bg_live_room_mic_num.xml delete mode 100644 live/src/main/res/mipmap-mdpi/icon_live_close_3.png create mode 100644 live/src/main/res/mipmap-xhdpi/bg_live_room_wishlist.png create mode 100644 live/src/main/res/mipmap-xhdpi/voice_close.png create mode 100644 live/src/main/res/mipmap-xhdpi/voice_open.png diff --git a/common/src/main/java/com/yunbao/common/views/LiveClarityCustomPopup.java b/common/src/main/java/com/yunbao/common/views/LiveClarityCustomPopup.java index d4df1c650..228256384 100644 --- a/common/src/main/java/com/yunbao/common/views/LiveClarityCustomPopup.java +++ b/common/src/main/java/com/yunbao/common/views/LiveClarityCustomPopup.java @@ -33,11 +33,16 @@ public class LiveClarityCustomPopup extends BottomPopupView implements View.OnCl private TextView titleSDText, titleHDText, titleFHDText, mTips; private int banSelect; private boolean isUser = false; + private SelectPositionListener selectPositionListener; public int getSelectClarity() { return selectClarity; } + public void setSelectPositionListener(SelectPositionListener selectPositionListener) { + this.selectPositionListener = selectPositionListener; + } + /** * @param banSelect 禁止选项,{@link #BAN_720} 禁止高清和超高清。 {@link #BAN_1080} 禁止超高清 * @param isUser 是否为观众,true 观众,false 主播 @@ -227,6 +232,13 @@ public class LiveClarityCustomPopup extends BottomPopupView implements View.OnCl iconFhd.setVisibility(VISIBLE); break; } + if(selectPositionListener!=null){ + selectPositionListener.onSelect(selectClarity); + } + } + + public interface SelectPositionListener{ + void onSelect(int position); } private Handler netHandler = new Handler(); diff --git a/common/src/main/res/drawable/bg_gift_progressbar.xml b/common/src/main/res/drawable/bg_gift_progressbar.xml new file mode 100644 index 000000000..f91038a92 --- /dev/null +++ b/common/src/main/res/drawable/bg_gift_progressbar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/dialog_live_interaction.xml b/common/src/main/res/layout/dialog_live_interaction.xml index 9ab43f338..e4e6317fb 100644 --- a/common/src/main/res/layout/dialog_live_interaction.xml +++ b/common/src/main/res/layout/dialog_live_interaction.xml @@ -8,8 +8,8 @@ + android:layout_height="wrap_content" + android:orientation="vertical"> @@ -63,9 +64,10 @@ android:src="@mipmap/icon_interaction_wish" /> @@ -74,8 +76,8 @@ @@ -86,9 +88,10 @@ android:src="@mipmap/icon_interaction_mic" /> @@ -97,8 +100,8 @@ @@ -108,9 +111,10 @@ android:src="@mipmap/icon_interaction_game" /> @@ -126,8 +130,8 @@ @@ -137,9 +141,10 @@ android:src="@mipmap/icon_interaction_anchor_say" /> @@ -148,8 +153,8 @@ @@ -159,17 +164,19 @@ android:src="@mipmap/icon_interaction_qa" /> + + android:layout_height="match_parent" + android:layout_weight="2" /> @@ -177,8 +184,8 @@ + android:layout_height="wrap_content" + android:orientation="vertical"> @@ -231,9 +239,10 @@ android:src="@mipmap/icon_interaction_robot" /> @@ -241,9 +250,10 @@ + android:layout_height="match_parent" + android:layout_weight="2" /> + + @@ -273,9 +284,10 @@ android:src="@mipmap/icon_interaction_beauty" /> @@ -284,8 +296,8 @@ @@ -295,9 +307,10 @@ android:src="@mipmap/icon_interaction_camera" /> @@ -306,8 +319,8 @@ @@ -319,17 +332,19 @@ + + android:layout_height="match_parent" + android:layout_weight="1" /> diff --git a/common/src/main/res/mipmap-xxhdpi/icon_live_close_3.png b/common/src/main/res/mipmap-xxhdpi/icon_live_close_3.png index 5af2a67559833a8dfbcd073c4ac48e64800105a6..35bc16bc875009c691bf21d656a6630ce31b6a2f 100644 GIT binary patch literal 2362 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 literal 1383 zcmah}YfzF26h)NGXBu0rFHA-8m734B!dV2ad_5UwWtJNG1XZ^q6a=BWq7Vv-i^eG;XFDokp zMl>3&zP_H#W($Qv27^&hPyiSzmCESo==u41jYhM5`*x{RYHe-Z)YJsDz-ghQz#Tbke8Py5D02(Yk`fx7TbimY``drM!*w6U5CRDfg^BuY%m5Lc0fNA zLhvzLM~xgwJ!lj0y{jq0AL?af;vM9-&A=TF+w|$mii)wJDND$?e4clim7W{Z5xqOee;*=HA zJth}DKoWAXo7+uGY-2Fy4$_*sI#fyZtU;i#1k!HMk{|QKWJ$T+&<)u(hbHW-I*S5> z!?-i|vosJEi43K7xO<8#8}eOAXC=uj{`yXl*%MGs{=P}l#Na~506n8?9QW3d`;wfS z@7|x`BI$c*S3| zFjS0_AF5}{;}LVF=|(=)ibj#kSz6$w*IKJE_VL;o^TM4TO>xj=5@}`G@r2pCmAGCe zeX#R>uVNS#uw0}#msuEsPR`^P_v}?z;0DT7Q%M0jDT-{~Rp^e~I@}rWsQ0sOU}#K8 zvQIupdQ5r7JA!1@Zcx6^AAT(RqHryrVAO?QJ!mZHVXB^&o>jn*>Nm2RT^cPy5+r zs@KJS`Yq4zMWFq=gIts_qj6$(y48Nhn<8bjB+|-Q)M6a4#J1o-h{)baB8f+IzT<=k z>kfNVB~tyn>o9&ze0qDrRmP?%9?QwLOnno7Iw6qxq3{|Rf z+B%F~5uR_D)Z9CL!w|?bO#S9ohC&qwcD1n7HY0i`Pz+y4Lo9{4F4*r{TJx+wZ6_YJuSdegB1f?WLY(DXzvv>4brbiw zi+w%B<(_HAc4-;*X;TigaL2SKPHE20G@ie8+p&8(_x?Ek3*9}L5(uLox6hWkv1hfq YcFgd-%WYfEe)&?EU_7e!z|YKo0gBURNdN!< diff --git a/common/src/main/res/values-en-rUS/strings.xml b/common/src/main/res/values-en-rUS/strings.xml index 98fc5640c..20c78fa58 100644 --- a/common/src/main/res/values-en-rUS/strings.xml +++ b/common/src/main/res/values-en-rUS/strings.xml @@ -290,7 +290,7 @@ Flip Mirroring Trickster - MultiplayerPK + Multi PK Voice connection billboard leave temporarily @@ -1105,7 +1105,7 @@ Limited ride And limited avatar frame Month Wishes Seasonal Wishes Wish%s - aristocrat + noble sure Reset Your: Day Reset Wish: Week @@ -1488,5 +1488,5 @@ Limited ride And limited avatar frame * Non-real-time calculation of data Historical data can be viewed in the anchor center - This live data statistics + This live information diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml index c9650bf66..f317ff396 100644 --- a/common/src/main/res/values-zh/strings.xml +++ b/common/src/main/res/values-zh/strings.xml @@ -1617,6 +1617,6 @@ 收益 * 人數及新增相關數據非实时计算 歷史數據可在主播中心查看 - 本場直播數據統計 + 本場直播信息 diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 95f5af5b2..47489669e 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -233,7 +233,7 @@ A maximum of 10 entries can be set Flip Trickster - MultiplayerPK + Multi PK Voice connection billboard leave temporarily @@ -929,7 +929,7 @@ Limited ride And limited avatar frame Month Wishes Seasonal Wishes Wish%s - aristocrat + noble sure Reset Your: Day Reset Wish: Week @@ -1426,5 +1426,5 @@ Limited ride And limited avatar frame * Non-real-time calculation of data Historical data can be viewed in the anchor center - This live data statistics + This live information diff --git a/config.gradle b/config.gradle index 6b8b5a680..75f504a8f 100644 --- a/config.gradle +++ b/config.gradle @@ -4,8 +4,8 @@ ext { buildToolsVersion: "29.0.2", minSdkVersion : 23, targetSdkVersion : 34, - versionCode : 550, - versionName : "6.8.0", + versionCode : 560, + versionName : "6.8.2", namespace : "com.pandoralive.shayu" ] manifestPlaceholders = [ diff --git a/live/src/main/java/com/yunbao/live/activity/LiveSwAnchorActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveSwAnchorActivity.java index ce2b88438..f4a11a348 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveSwAnchorActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveSwAnchorActivity.java @@ -921,6 +921,9 @@ public class LiveSwAnchorActivity extends LiveActivity implements LiveFunctionCl //初始化天梯数据 mLiveRoomViewHolder.initRankPKInfo(mLiveUid,""); + //初始化心愿单数据 + mLiveRoomViewHolder.initWishListView(); + mLiveRoomViewHolder.initWishData(); } mLiveSwLinkMicPkPresenter.setmLiveRoomViewHolder(mLiveRoomViewHolder); } @@ -1793,7 +1796,11 @@ public class LiveSwAnchorActivity extends LiveActivity implements LiveFunctionCl .build() .show(); break; - + case WISH_LIST_PROGRESS: + if(mLiveRoomViewHolder!=null){ + mLiveRoomViewHolder.wishListProgress(event.getWishListProgress(), event.getUname(), event.getLiveType()); + } + break; } } diff --git a/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java b/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java index 3c739cc9f..459e07b92 100644 --- a/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java @@ -32,6 +32,7 @@ import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.RelativeLayout; import android.widget.TextView; import androidx.annotation.NonNull; @@ -41,6 +42,10 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.makeramen.roundedimageview.RoundedImageView; +import com.opensource.svgaplayer.SVGADrawable; +import com.opensource.svgaplayer.SVGAImageView; +import com.opensource.svgaplayer.SVGAParser; +import com.opensource.svgaplayer.SVGAVideoEntity; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.Constants; import com.yunbao.common.bean.IMLoginModel; @@ -51,6 +56,7 @@ import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.DpUtil; +import com.yunbao.common.utils.SVGAViewUtils; import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.WordUtil; @@ -64,6 +70,8 @@ import com.yunbao.live.utils.LiveTextRender; import com.yunbao.live.utils.LoadDian9TuUtil; import com.yunbao.live.views.LiveRoomViewHolder; +import java.net.MalformedURLException; +import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -221,9 +229,13 @@ public class LiveChatAdapter extends RecyclerView.Adapter { LinearLayoutCompat attentionLayout; ClipPathCircleImage clipImage2; - LinearLayoutCompat prank_open_live_layout; - TextView prank_open_live_msg; - TextView prank_to_setting; + LinearLayoutCompat prank_open_live_layout; + TextView prank_open_live_msg; + TextView prank_to_setting; + + RoundedImageView msg_avatar; + SVGAImageView avatar_gift_svga; + RelativeLayout avatarLayout; public Vh(View itemView) { super(itemView); @@ -255,6 +267,9 @@ public class LiveChatAdapter extends RecyclerView.Adapter { prank_open_live_msg = itemView.findViewById(R.id.prank_open_live_msg); prank_to_setting = itemView.findViewById(R.id.prank_to_setting); + msg_avatar = itemView.findViewById(R.id.msg_avatar); + avatar_gift_svga = itemView.findViewById(R.id.avatar_gift_svga); + avatarLayout = itemView.findViewById(R.id.avatarLayout); } void setData(final LiveChatBean bean, int position) { @@ -262,9 +277,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter { @Override public boolean onLongClick(View v) { if (!TextUtils.isEmpty(bean.getId()) && !TextUtils.isEmpty(bean.getUserNiceName())) { - Bus.get().post(new LiveAudienceEvent() - .setType(LiveAudienceEvent.LiveAudienceType.INPUT_DIALOG) - .setOlineUserlistModel(new OlineUserlistModel().setId(bean.getId()).setUserNicename(bean.getUserNiceName()))); + Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.INPUT_DIALOG).setOlineUserlistModel(new OlineUserlistModel().setId(bean.getId()).setUserNicename(bean.getUserNiceName()))); } Log.e("eqwewqeweq", bean.toString()); return true; @@ -327,7 +340,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter { int length2 = builder.length(); builder.append(bean.getAnchorName()); builder.setSpan(new ForegroundColorSpan(0xFF73FFFF), length2, length2 + bean.getAnchorName().length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - builder.append(WordUtil.isNewZh() ? "發出了 " + bean.getContent(): "Sent out " + bean.getContent()); + builder.append(WordUtil.isNewZh() ? "發出了 " + bean.getContent() : "Sent out " + bean.getContent()); mTextView.setText(builder); } else if (bean.getType() == -4) { String str1 = WordUtil.isNewZh() ? "成功拯救了 " : "Succeeded in saving"; @@ -529,7 +542,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter { if (!StringUtil.isEmpty(bean.getBubble())) { new LoadDian9TuUtil().loadDian9Tu(mContext, mBg, bean.getBubble(), 1); } - } else if(bean.getType() == TYPE_TO_ANCHOR_PRANK){ + } else if (bean.getType() == TYPE_TO_ANCHOR_PRANK) { /*String str1 = "娛樂整蠱"; String str2 = "全新升級,快去設置整蠱内容,給直播間增加更多趣味吧!"; String str3 = ">>立即前往>>"; @@ -542,16 +555,47 @@ public class LiveChatAdapter extends RecyclerView.Adapter { mBg.setLayoutParams(params3); prank_open_live_layout.setVisibility(View.VISIBLE); - }else if(bean.getType() == TYPE_TO_ANCHOR_PRANK_GIFT){ + } else if (bean.getType() == TYPE_TO_ANCHOR_PRANK_GIFT) { StringBuffer stringBuffer = new StringBuffer(); - stringBuffer.append(""+(WordUtil.isNewZh()?"整蠱來了!":"Tricky is coming")+""); - stringBuffer.append(" "+bean.getUserNiceName()+""); - stringBuffer.append(""+(WordUtil.isNewZh()?"送出":"send")+"【"+bean.getGiftName()+"*"+bean.getHot_num()+"】"); - stringBuffer.append(","+(WordUtil.isNewZh()?"主播需完成":",and the anchor needs to complete ")+""); - stringBuffer.append( "【"+bean.getContent()+"】"); + stringBuffer.append("" + (WordUtil.isNewZh() ? "整蠱來了!" : "Tricky is coming") + ""); + stringBuffer.append(" " + bean.getUserNiceName() + ""); + stringBuffer.append("" + (WordUtil.isNewZh() ? "送出" : "send") + "【" + bean.getGiftName() + "*" + bean.getHot_num() + "】"); + stringBuffer.append("," + (WordUtil.isNewZh() ? "主播需完成" : ",and the anchor needs to complete ") + ""); + stringBuffer.append("【" + bean.getContent() + "】"); mTextView.setText(Html.fromHtml(stringBuffer.toString())); new LoadDian9TuUtil().loadDian9TuAssets(mContext, mBg, 1); - }else{ + } else { + /*avatar_gift_svga.setImageDrawable(null); + ImgLoader.display2(mContext, bean.getAvatar(), msg_avatar); + avatarLayout.setVisibility(View.VISIBLE); + msg_avatar.setVisibility(View.VISIBLE); + if (!StringUtil.isEmpty(bean.getU_gift_svga())) { + avatar_gift_svga.setVisibility(View.VISIBLE); + if (bean.getU_gift_svga().contains("svga")) { + try { + new SVGAParser(mContext).parse(new URL(bean.getU_gift_svga()), new SVGAParser.ParseCompletion() { + @Override + public void onComplete(SVGAVideoEntity videoItem) { + SVGADrawable drawable = new SVGADrawable(videoItem); + avatar_gift_svga.setImageDrawable(drawable); + SVGAViewUtils.playEndClear(avatar_gift_svga, false); + } + + @Override + public void onError() { + } + }); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + } else { + ImgLoader.display2(mContext, bean.getU_gift_svga(), avatar_gift_svga); + } + } else { + avatar_gift_svga.setVisibility(View.GONE); + avatarLayout.setVisibility(View.GONE); + msg_avatar.setVisibility(View.GONE); + }*/ if (bean.getBubble() != null && !bean.getBubble().equals("")) { //加载.9图聊天气泡 new LoadDian9TuUtil().loadDian9Tu(mContext, mBg, bean.getBubble(), 1); @@ -577,8 +621,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter { if (bean == null) { return; } - if (bean.getType() == LiveChatBean.TYPE_TO_USER_MSG - && !CommonAppConfig.getInstance().getUid().equals(bean.getAtUserID())) { + if (bean.getType() == LiveChatBean.TYPE_TO_USER_MSG && !CommonAppConfig.getInstance().getUid().equals(bean.getAtUserID())) { return; } // Log.i(TAG, "insertItem: " + bean.getContent()+" size = "+(mList.size()+1)); @@ -599,14 +642,10 @@ public class LiveChatAdapter extends RecyclerView.Adapter { if (isBottom || mRecyclerViewScrolledDy == 0) { scrollToBottom(); } else { - Bus.get().post(new LiveAudienceEvent() - .setType(LiveAudienceEvent.LiveAudienceType.NEW_MESSAGE_REMINDER)); + Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.NEW_MESSAGE_REMINDER)); - if (bean.getType() != LiveChatBean.TYPE_TO_USER_MSG && - bean.getAtUserID() != null - && bean.getAtUserID().contains(String.valueOf(model.getId()))) { - Bus.get().post(new LiveAudienceEvent() - .setType(LiveAudienceEvent.LiveAudienceType.AT_MESSAGE)); + if (bean.getType() != LiveChatBean.TYPE_TO_USER_MSG && bean.getAtUserID() != null && bean.getAtUserID().contains(String.valueOf(model.getId()))) { + Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.AT_MESSAGE)); mPosition = size; } } @@ -675,8 +714,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter { notifyDataSetChanged(); } - public class ListAdapter extends - RecyclerView.Adapter { + public class ListAdapter extends RecyclerView.Adapter { private LayoutInflater mInflater; private List mDatas; @@ -707,8 +745,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter { */ @Override public ListAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { - View view = mInflater.inflate(R.layout.item_chat_active, - viewGroup, false); + View view = mInflater.inflate(R.layout.item_chat_active, viewGroup, false); ListAdapter.ViewHolder viewHolder = new ListAdapter.ViewHolder(view); return viewHolder; diff --git a/live/src/main/java/com/yunbao/live/bean/LiveChatBean.java b/live/src/main/java/com/yunbao/live/bean/LiveChatBean.java index 322fff5fe..b4c92a519 100644 --- a/live/src/main/java/com/yunbao/live/bean/LiveChatBean.java +++ b/live/src/main/java/com/yunbao/live/bean/LiveChatBean.java @@ -60,6 +60,8 @@ public class LiveChatBean { private String giftName; private String giftname_en; private String toUid; + private String avatar; //头像 + private String u_gift_svga; // public int getNORMAL() { return NORMAL; @@ -82,6 +84,22 @@ public class LiveChatBean { return this; } + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getU_gift_svga() { + return u_gift_svga; + } + + public void setU_gift_svga(String u_gift_svga) { + this.u_gift_svga = u_gift_svga; + } + public String getToUid() { return toUid; } diff --git a/live/src/main/java/com/yunbao/live/bean/LiveWishlistBean.java b/live/src/main/java/com/yunbao/live/bean/LiveWishlistBean.java index 1df2b87ca..582036575 100644 --- a/live/src/main/java/com/yunbao/live/bean/LiveWishlistBean.java +++ b/live/src/main/java/com/yunbao/live/bean/LiveWishlistBean.java @@ -26,6 +26,8 @@ public class LiveWishlistBean { private String wishlist_num; private String wishlist_progress; private String wishlist_name; + private int price; + @JSONField(name = "id") public String getId() { @@ -107,6 +109,12 @@ public class LiveWishlistBean { this.wishlist_name = wishlist_name; } - - + @JSONField(name = "price") + public int getPrice() { + return price; + } + @JSONField(name = "price") + public void setPrice(int price) { + this.price = price; + } } diff --git a/live/src/main/java/com/yunbao/live/presenter/LiveSwLinkMicPkPresenter.java b/live/src/main/java/com/yunbao/live/presenter/LiveSwLinkMicPkPresenter.java index 2c25aac46..30a5ec967 100644 --- a/live/src/main/java/com/yunbao/live/presenter/LiveSwLinkMicPkPresenter.java +++ b/live/src/main/java/com/yunbao/live/presenter/LiveSwLinkMicPkPresenter.java @@ -1726,7 +1726,7 @@ public class LiveSwLinkMicPkPresenter extends AbsLinkMicPkPresenter implements V if (livePushSwViewHolder.timeTitle.getVisibility() == View.GONE && isShowTimeTitle) { mHandler.removeMessages(WHAT_PK_TIME2); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) livePushSwViewHolder.timeTitle.getLayoutParams(); - layoutParams.topMargin = DpUtil.dp2px(123); + layoutParams.topMargin = DpUtil.dp2px(165); livePushSwViewHolder.timeTitle.setLayoutParams(layoutParams); livePushSwViewHolder.timeTitle.setVisibility(View.VISIBLE); String pkTime = StringUtil.getDurationText(time * 1000); diff --git a/live/src/main/java/com/yunbao/live/socket/SocketSwChatUtil.java b/live/src/main/java/com/yunbao/live/socket/SocketSwChatUtil.java index f193d2724..759833414 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketSwChatUtil.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketSwChatUtil.java @@ -95,6 +95,8 @@ public class SocketSwChatUtil { .param("isAnchor", isAnchor ? 1 : 0) .param("level", u.getLevel()) .param("uname", u.getUserNiceName()) + .param("u_avatar", u.getAvatar()) + .param("u_gift_svga", u.getDress().getAvatar_frame()) .param("bubble", u.getDress().getBubble()) .param("medal_honor", u.getMedal_no_display_src()) .param("medal", u.getDress().getMedal()) diff --git a/live/src/main/java/com/yunbao/live/socket/SocketSwClient.java b/live/src/main/java/com/yunbao/live/socket/SocketSwClient.java index 0727bafa9..e0d56e245 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketSwClient.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketSwClient.java @@ -946,6 +946,8 @@ public class SocketSwClient { LiveChatBean chatBean = new LiveChatBean(); chatBean.setId(map.getString("uid")); chatBean.setUserNiceName(map.getString("uname")); + chatBean.setAvatar(map.getString("u_avatar")); + chatBean.setU_gift_svga(map.getString("u_gift_svga")); chatBean.setLevel(map.getIntValue("level")); chatBean.setAnchor(map.getIntValue("isAnchor") == 1); chatBean.setManager(map.getIntValue("usertype") == Constants.SOCKET_USER_TYPE_ADMIN); diff --git a/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java index 5b510d164..751383509 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java @@ -307,7 +307,7 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList @Override public void onClick(View v) { String url = CommonAppConfig.HOST + "/h5/Grade/index.html?" + "token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&for"; - WebViewActivity.forward(mContext, url,false); + WebViewActivity.forward(mContext, url,true); } }); findViewById(R.id.go_anchor_center).setOnClickListener(new View.OnClickListener() { diff --git a/live/src/main/java/com/yunbao/live/views/LiveNewReadySwViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveNewReadySwViewHolder.java index 632eca47f..1c4ff4d9b 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveNewReadySwViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveNewReadySwViewHolder.java @@ -110,12 +110,14 @@ public class LiveNewReadySwViewHolder extends AbsViewHolder implements View.OnCl private LiveClassBean classBean; private FaceManager manager; private TextView faceTextView;//提示人脸未检测到的TextView - private ImageView selectorProtocol; + private ImageView selectorProtocol; private int selectClarity = 1; private LiveOpenCustomPopup liveOpenCustomPopup; private boolean selector = true; private String mLiveUid; private ViewFlipper liveOpenVf; + private ImageView btn_live_clarity; + private int select; public LiveNewReadySwViewHolder(Context context, ViewGroup parentView, int liveSdk) { super(context, parentView, liveSdk); @@ -138,6 +140,7 @@ public class LiveNewReadySwViewHolder extends AbsViewHolder implements View.OnCl mRootView = (ConstraintLayout) findViewById(R.id.traceroute_rootview); selectorProtocol = (ImageView) findViewById(R.id.selector_protocol); anchorAgreement = (TextView) findViewById(R.id.anchor_agreement); + btn_live_clarity = findViewById(R.id.btn_live_clarity); mRootView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -245,8 +248,24 @@ public class LiveNewReadySwViewHolder extends AbsViewHolder implements View.OnCl LiveClarityCustomPopup liveClarityCustomPopup = new LiveClarityCustomPopup(mContext, - IMLoginManager.get(mContext).getSelectClarity(), - IMLoginManager.get(mContext).getClarity() ? 0 : LiveClarityCustomPopup.BAN_1080, false); + select); + liveClarityCustomPopup.setSelectPositionListener(new LiveClarityCustomPopup.SelectPositionListener() { + @Override + public void onSelect(int position) { + select = position; + switch (position) { + case 0: + btn_live_clarity.setImageResource(R.mipmap.icon_sd); + break; + case 1: + btn_live_clarity.setImageResource(R.mipmap.icon_hd); + break; + case 2: + btn_live_clarity.setImageResource(R.mipmap.icon_fhd); + break; + } + } + }); new XPopup.Builder(mContext) .setPopupCallback(new XPopupCallback() { @Override @@ -317,8 +336,8 @@ public class LiveNewReadySwViewHolder extends AbsViewHolder implements View.OnCl LiveNetManager.get(mContext).getLiveOpenTips(new com.yunbao.common.http.base.HttpCallback>() { @Override public void onSuccess(List data) { - if(data!=null){ - for (int i = 0; i wishlist = new ArrayList<>(); private TextView mHourRank, mHotText; private LinearLayout msg; //默认悬浮窗布局 - private LinearLayout mAnchorLayout, hourRankLayout, liveRankPk2; + private LinearLayout mAnchorLayout, liveRankPk2; private ImageView mGoodNumberIcon; private View msg2; //悬浮窗来私信的布局 private ConstraintLayout msgLayout; //悬浮窗 @@ -395,7 +411,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis //接口整合新加参数 private GuardUserModel guardUserModel; - private static ViewFlipper flipper, wksAndGiftWall; + private static ViewFlipper flipper; private TextView mRandomPkTimer; //全服通知 @@ -423,9 +439,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis //整蛊进度列表功能 private View prank_group; - public TextView prank_group_title,prank_group_turntable; + public TextView prank_group_title, prank_group_turntable; private RecyclerView recycler_prank; - private ImageView prank_group_bottom_icon,prank_group_turntable_icon; + private ImageView prank_group_bottom_icon, prank_group_turntable_icon; private GifImageView prank_small_icon; private PrankAdapter prankAdapter; private List prankAndComboList = new ArrayList<>(); @@ -444,6 +460,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis public static SVGAVideoEntity drawableTitleEn; public static SVGAVideoEntity drawableBg; + private LinearLayout giftLayout; + private TextView gift_number; + private TextView gift_total; + private ProgressBar gift_progressbar; + + private LinearLayout wishlistLayout; + private ImageView wish_icon; + private TextView wish_number; + private TextView wish_total; + private ProgressBar wish_progressbar; + public LiveRoomViewHolder setGuardType(int guardType) { this.guardType = guardType; return this; @@ -617,7 +644,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis System.err.println("-------------SVGA报错了"); } }, null); - if(WordUtil.isNewZh()){ + if (WordUtil.isNewZh()) { new SVGAParser(mContext).decodeFromAssets("gift_live_naming_title_cn.svga", new SVGAParser.ParseCompletion() { @Override public void onComplete(@NonNull SVGAVideoEntity videoItem) { @@ -629,7 +656,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis System.err.println("-------------SVGA报错了"); } }, null); - }else{ + } else { new SVGAParser(mContext).decodeFromAssets("gift_live_naming_title_en.svga", new SVGAParser.ParseCompletion() { @Override public void onComplete(@NonNull SVGAVideoEntity videoItem) { @@ -661,14 +688,88 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis mic_view.setVisibility(View.VISIBLE); mic_ids.add(bean.getId()); ImgLoader.display2(Contexts, bean.getAvatar(), mic_ico); + userName.setText(bean.getUserNicename()); + mic_gift_svga.setImageDrawable(null); + if (bean.getDressAvatar() != null) { + if (bean.getDressAvatar().contains("svga")) { + + try { + new SVGAParser(mContext).parse(new URL(bean.getDressAvatar()), new SVGAParser.ParseCompletion() { + @Override + public void onComplete(SVGAVideoEntity videoItem) { + SVGADrawable drawable = new SVGADrawable(videoItem); + mic_gift_svga.setImageDrawable(drawable); + SVGAViewUtils.playEndClear(mic_gift_svga, false); + } + + @Override + public void onError() { + } + }); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + } else { + ImgLoader.display2(mContext, bean.getDressAvatar(), mic_gift_svga); + } + } } else if (i == 2) { mic_view1.setVisibility(View.VISIBLE); mic_ids.add(bean.getId()); ImgLoader.display2(Contexts, bean.getAvatar(), mic_ico1); + userName1.setText(bean.getUserNicename()); + mic_gift_svga1.setImageDrawable(null); + if (bean.getDressAvatar() != null) { + if (bean.getDressAvatar().contains("svga")) { + + try { + new SVGAParser(mContext).parse(new URL(bean.getDressAvatar()), new SVGAParser.ParseCompletion() { + @Override + public void onComplete(SVGAVideoEntity videoItem) { + SVGADrawable drawable = new SVGADrawable(videoItem); + mic_gift_svga1.setImageDrawable(drawable); + SVGAViewUtils.playEndClear(mic_gift_svga1, false); + } + + @Override + public void onError() { + } + }); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + } else { + ImgLoader.display2(mContext, bean.getDressAvatar(), mic_gift_svga1); + } + } } else if (i == 3) { mic_view2.setVisibility(View.VISIBLE); mic_ids.add(bean.getId()); ImgLoader.display2(Contexts, bean.getAvatar(), mic_ico2); + userName2.setText(bean.getUserNicename()); + mic_gift_svga2.setImageDrawable(null); + if (bean.getDressAvatar() != null) { + if (bean.getDressAvatar().contains("svga")) { + try { + new SVGAParser(mContext).parse(new URL(bean.getDressAvatar()), new SVGAParser.ParseCompletion() { + @Override + public void onComplete(SVGAVideoEntity videoItem) { + SVGADrawable drawable = new SVGADrawable(videoItem); + mic_gift_svga2.setImageDrawable(drawable); + SVGAViewUtils.playEndClear(mic_gift_svga2, false); + } + + @Override + public void onError() { + } + }); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + } else { + ImgLoader.display2(mContext, bean.getDressAvatar(), mic_gift_svga2); + } + } } } mic_view.setOnClickListener(new View.OnClickListener() { @@ -814,7 +915,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis @Override public void run() { RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) sud_layout_name.getLayoutParams(); - params1.width = mChatRecyclerView.getWidth()-DpUtil.dp2px(85); + params1.width = mChatRecyclerView.getWidth() - DpUtil.dp2px(85); sud_layout_name.setLayoutParams(params1); } }); @@ -827,7 +928,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis mLiveGiftAnimPresenter = new LiveGiftAnimPresenter(mContext, mContentView, mGifImageView, mSVGAImageView, mLiveGiftPrizePoolContainer, windowManager); mLiveGiftAnimPresenter.startGiftTipAnimatormSud(); } - },2000); + }, 2000); } @@ -1275,12 +1376,24 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis mic_view1 = (RelativeLayout) findViewById(R.id.mic_view1); mic_view2 = (RelativeLayout) findViewById(R.id.mic_view2); flipper = (ViewFlipper) findViewById(R.id.hour_rank_list); - wksAndGiftWall = (ViewFlipper) findViewById(R.id.live_wks_and_gift_wall); mic_ico = (ImageView) findViewById(R.id.mic_ico); newMessage = (ImageView) findViewById(R.id.new_message); atMessage = (ImageView) findViewById(R.id.at_message); mic_ico1 = (RoundedImageView) findViewById(R.id.mic_ico1); mic_ico2 = (RoundedImageView) findViewById(R.id.mic_ico2); + + mic_gift_svga2 = findViewById(R.id.mic_gift_svga2); + mic_gift_svga1 = findViewById(R.id.mic_gift_svga1); + mic_gift_svga = findViewById(R.id.mic_gift_svga); + + userVoice2 = findViewById(R.id.userVoice2); + userVoice1 = findViewById(R.id.userVoice1); + userVoice = findViewById(R.id.userVoice); + + userName2 = findViewById(R.id.userName2); + userName1 = findViewById(R.id.userName1); + userName = findViewById(R.id.userName); + ViewClicksAntiShake.clicksAntiShake(newMessage, () -> { chatScrollToBottom(); newMessage.setVisibility(View.GONE); @@ -1358,11 +1471,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis room_hot = (TextView) findViewById(R.id.room_hot); fans = (TextView) findViewById(R.id.fans); fans_btn = (LinearLayout) findViewById(R.id.fans_btn); - wishListLayout = (LinearLayout) findViewById(R.id.wish_list_layout); - wishListLayout2 = (LinearLayout) findViewById(R.id.wish_list_layout2); - liveWksLayout = (LinearLayout) findViewById(R.id.live_wks_layout2); mAnchorLayout = (LinearLayout) findViewById(R.id.group_1); - hourRankLayout = (LinearLayout) findViewById(R.id.hour_rank_layout2); liveRankPk2 = (LinearLayout) findViewById(R.id.live_rank_pk2); mGoodNumberIcon = (ImageView) findViewById(R.id.good_nub_ico); pkRankLayout = (FrameLayout) findViewById(R.id.live_rank_pk); @@ -1454,26 +1563,24 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis ((LiveActivity) mContext).sendChatMessage("Hi~", null, null); } else if (bean.getType() == -5) { String url = CommonAppConfig.HOST + "/h5/activity/Turntable/index.html"; - url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" - + CommonAppConfig.getInstance().getToken() + - "&active_id=6"; + url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&active_id=6"; Log.i("tag", url); Bundle bundle1 = new Bundle(); bundle1.putString("url", url); LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment(); liveHDDialogFragment.setArguments(bundle1); - if(mContext instanceof LiveAudienceActivity){ + if (mContext instanceof LiveAudienceActivity) { liveHDDialogFragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); - }else if(mContext instanceof LiveRyAnchorActivity){ + } else if (mContext instanceof LiveRyAnchorActivity) { liveHDDialogFragment.show(((LiveRyAnchorActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); - }else if(mContext instanceof LiveSwAnchorActivity){ + } else if (mContext instanceof LiveSwAnchorActivity) { liveHDDialogFragment.show(((LiveSwAnchorActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); } } else if (bean.getType() == RECOMMEND_CARD_NOTIFY) { gotoLive(bean.getMsgModel().getAnchorId()); } else if (bean.getType() == bean.STAR_CHALLENGE_UPGRADE_NOTIFY) { gotoLive(bean.getMsgModel().getLiveUid()); - } else if(bean.getType()==bean.TYPE_TO_ANCHOR_PRANK){ + } else if (bean.getType() == bean.TYPE_TO_ANCHOR_PRANK) { LivePrankDialogFragment fragment = new LivePrankDialogFragment(); fragment.setOnPrankResultListener(new LivePrankDialogFragment.onPrankResultListener() { @Override @@ -1482,17 +1589,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } }); fragment.setmLiveUid(mLiveUid); - if(mContext instanceof LiveRyAnchorActivity){ - fragment.show(((LiveRyAnchorActivity)mContext).getSupportFragmentManager(), "LivePrankDialogFragment"); - }else if(mContext instanceof LiveSwAnchorActivity){ - fragment.show(((LiveSwAnchorActivity)mContext).getSupportFragmentManager(), "LivePrankDialogFragment"); + if (mContext instanceof LiveRyAnchorActivity) { + fragment.show(((LiveRyAnchorActivity) mContext).getSupportFragmentManager(), "LivePrankDialogFragment"); + } else if (mContext instanceof LiveSwAnchorActivity) { + fragment.show(((LiveSwAnchorActivity) mContext).getSupportFragmentManager(), "LivePrankDialogFragment"); } - if(mContext instanceof LiveRyAnchorActivity){ + if (mContext instanceof LiveRyAnchorActivity) { com.yunbao.live.activity.LiveRyAnchorActivity.mLiveAnchorViewHolder.closeMenuRed(); - }else if(mContext instanceof LiveSwAnchorActivity){ + } else if (mContext instanceof LiveSwAnchorActivity) { com.yunbao.live.activity.LiveSwAnchorActivity.mLiveAnchorViewHolder.closeMenuRed(); } - }else{ + } else { showUserDialog(bean.getId()); } } @@ -1630,7 +1737,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis avatar_r1 = (RoundedImageView) findViewById(R.id.avatar_r1); avatar_r2 = (RoundedImageView) findViewById(R.id.avatar_r2); avatar_r3 = (RoundedImageView) findViewById(R.id.avatar_r3); - redPacket = findViewById(R.id.red_packet); + redPacket = findViewById(R.id.red_packet); redPacketCountdown = (TextView) findViewById(R.id.red_packet_countdown); redSchedule = (TextView) findViewById(R.id.red_schedule); redPacketQueue = (LinearLayout) findViewById(R.id.red_packet_queue); @@ -1644,7 +1751,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis findViewById(R.id.ft_hot_add).setOnClickListener(this); ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.open_sidebar), () -> Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SIDEBAR))); //点击心愿单 - ViewClicksAntiShake.clicksAntiShake(wishListLayout, () -> Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.WISH_LIST))); + //ViewClicksAntiShake.clicksAntiShake(wishListLayout, () -> Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.WISH_LIST))); mBanner1.setOutlineProvider(new ViewOutlineProvider() { @Override @@ -1715,7 +1822,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis findViewById(R.id.btn_follow).setVisibility(View.GONE); findViewById(R.id.live_rank_pk).setVisibility(View.GONE); } - if (mContext instanceof LiveRyAnchorActivity ||mContext instanceof LiveSwAnchorActivity) { + if (mContext instanceof LiveRyAnchorActivity || mContext instanceof LiveSwAnchorActivity) { findViewById(R.id.open_sidebar).setVisibility(View.GONE); findViewById(R.id.btn_follow).setVisibility(View.GONE); findViewById(R.id.live_rank_pk).setVisibility(View.GONE); @@ -1725,7 +1832,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis reloadIM(); // initStarChallengeStatus(); - new LoadDian9TuUtil().loadDian9TuAssets2(mContext, wishListLayout2, "rectangle_new.png", 1); pa_pao_layout = (FrameLayout) findViewById(R.id.pa_pao_layout); combo_layout = (LinearLayout) findViewById(R.id.combo_layout); combo_number = (TextView) findViewById(R.id.combo_number); @@ -1765,8 +1871,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis // dragonImmediateParticipation.setVisibility(View.GONE); //整蛊转盘优化更新 - prank_top_layout= (LinearLayout) findViewById(R.id.prank_top_layout); - prank_group_top_icon= (ImageView) findViewById(R.id.prank_group_top_icon); + prank_top_layout = (LinearLayout) findViewById(R.id.prank_top_layout); + prank_group_top_icon = (ImageView) findViewById(R.id.prank_group_top_icon); prank_group = findViewById(R.id.prank_group);//浮窗 prank_group_title = (TextView) findViewById(R.id.prank_group_title);//浮窗标题 recycler_prank = (RecyclerView) findViewById(R.id.recycler_prank);//列表 @@ -1776,53 +1882,53 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis prank_small_icon = (GifImageView) findViewById(R.id.prank_small_icon);//收起后图标 try { - if (WordUtil.isNewZh()){ - mGifDrawable = new pl.droidsonroids.gif.GifDrawable(mContext.getResources(),R.drawable.pran_zh); - }else { - mGifDrawable = new pl.droidsonroids.gif.GifDrawable(mContext.getResources(),R.drawable.pran_en); + if (WordUtil.isNewZh()) { + mGifDrawable = new pl.droidsonroids.gif.GifDrawable(mContext.getResources(), R.drawable.pran_zh); + } else { + mGifDrawable = new pl.droidsonroids.gif.GifDrawable(mContext.getResources(), R.drawable.pran_en); } prank_small_icon.setImageDrawable(mGifDrawable); mGifDrawable.stop(); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } //点击文字转盘整蛊(跳转转盘整蛊) - prank_group_turntable.setOnClickListener(v->{ + prank_group_turntable.setOnClickListener(v -> { prankAnisShow = !prankAnisShow; - if(isPrank==1){ + if (isPrank == 1) { prankAdapter.setViewType(PrankAdapter.TYPE_GIFT); - }else{ + } else { prankAdapter.setViewType(PrankAdapter.TYPE_COMBO); } - if(prankAnisShow){ - prankAdapter.showAnView(completedList,prankAnisShow); + if (prankAnisShow) { + prankAdapter.showAnView(completedList, prankAnisShow); prank_group_turntable.setText(R.string.prank_progress); - if (!completedList.isEmpty()){ - limitItem(1,Math.min(completedList.size(), 4)); - }else { + if (!completedList.isEmpty()) { + limitItem(1, Math.min(completedList.size(), 4)); + } else { recycler_prank.setVisibility(View.GONE); } - prank_group_title.setText(WordUtil.isNewZh()?"待完成整蠱":"To do"); - prank_group_turntable.setText(WordUtil.isNewZh()?"整蠱進度":"progress"); + prank_group_title.setText(WordUtil.isNewZh() ? "待完成整蠱" : "To do"); + prank_group_turntable.setText(WordUtil.isNewZh() ? "整蠱進度" : "progress"); - }else{ - prankAdapter.showAnView(prankAndComboList,prankAnisShow); - prank_group_title.setText(WordUtil.isNewZh()?"整蠱進度":"progress"); - prank_group_turntable.setText(WordUtil.isNewZh()?"待完成整蠱":"To do"); + } else { + prankAdapter.showAnView(prankAndComboList, prankAnisShow); + prank_group_title.setText(WordUtil.isNewZh() ? "整蠱進度" : "progress"); + prank_group_turntable.setText(WordUtil.isNewZh() ? "待完成整蠱" : "To do"); recycler_prank.setVisibility(View.VISIBLE); - limitItem(1,Math.min(prankAndComboList.size(), 4)); + limitItem(1, Math.min(prankAndComboList.size(), 4)); } }); //点击收起 - prank_group_bottom_icon.setOnClickListener(v->{ + prank_group_bottom_icon.setOnClickListener(v -> { prank_group.setVisibility(View.INVISIBLE); prank_small_icon.setVisibility(View.VISIBLE); - if (CommonAppConfig.getInstance().getUid().equals(mLiveUid)){ + if (CommonAppConfig.getInstance().getUid().equals(mLiveUid)) { switchGifDrawable(!completedList.isEmpty()); - }else { + } else { switchGifDrawable(false); } }); @@ -1835,8 +1941,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis //点击图片转盘整蛊(跳转转盘整蛊) prank_group_turntable_icon.setOnClickListener(v -> { - Bus.get().post(new LiveAudienceEvent() - .setType(LiveAudienceEvent.LiveAudienceType.WE_CHEAT)); + Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.WE_CHEAT)); }); recycler_prank.setLayoutManager(new LinearLayoutManager(mContext)); @@ -2115,7 +2220,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis Log.i("红包", "run: 红包倒计时 " + redTimeCountdown); if (redTimeCountdown > 1) { timeHandler.postDelayed(timeRunnable, 1000); - redPacketCountdown.setText(String.format(mContext.getString(R.string.red_packet_countdown), TimeUtils.getTime(redTimeCountdown))); + redPacketCountdown.setText(TimeUtils.getTime(redTimeCountdown)); redTimeCountdown = redTimeCountdown - 1; } else { redTimeCountdown = 0; @@ -2217,7 +2322,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis redPacketCountdown.setVisibility(View.VISIBLE); mCountdown = redPacketModel.getCountdown(); redTimeCountdown = mCountdown - 180; - redPacketCountdown.setText(String.format(mContext.getString(R.string.red_packet_countdown), TimeUtils.getTime(redTimeCountdown))); + redPacketCountdown.setText(TimeUtils.getTime(redTimeCountdown)); timeHandler.post(timeRunnable); } else { redTimeCountdown = 0; @@ -2636,37 +2741,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis });*/ } - //获取心愿单列表 - private void loadWishlistData() { - LiveHttpUtil.getWishList(mLiveUid, new HttpCallback() { - @Override - public void onSuccess(int code, String msg, String[] info) { - if (code == 0 && info.length > 0) { - try { - JSONObject obj = JSON.parseObject(info[0]); - String giftJson = obj.getString("wishlist"); - List mWishlist = JSON.parseArray(giftJson, LiveWishlistBean.class); - if (mWishlist.size() > 0) { - //心单 - BannerBean bannerBean2 = new BannerBean(); - bannerBean2.setImageUrl(obj.getString("img")); - bannerBean2.setLink("xyd"); - mBannerList1.add(bannerBean2); - } - - showBanner(); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - @Override - public void onFinish() { - } - }); - } - public void showLiveRoomActivityBanner() { LiveNetManager.get(mContext).getLiveRoomActivityBanner(new com.yunbao.common.http.base.HttpCallback>() { @Override @@ -2744,33 +2818,53 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } } + public void initWishData() { + LiveHttpUtil.getWishList(new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 0 && info.length > 0) { + try { + JSONObject obj = JSON.parseObject(info[0]); + String giftJson = obj.getString("wishlist"); + List mWishlist = JSON.parseArray(giftJson, WishModel.class); + if (mWishlist.size() > 0) { + List tempList = new ArrayList<>(); + for (int i = 0; i < mWishlist.size(); i++) { + if (Integer.parseInt(mWishlist.get(i).getWishlistProgress()) < Integer.parseInt(mWishlist.get(i).getWishlistNum())) { + tempList.add(mWishlist.get(i)); + } + } + WishModel wishlistBean = tempList.get(0); + for (int i = 0; i < tempList.size(); i++) { + //未达成 + if (wishlistBean.getPrice() < tempList.get(i).getPrice()) { + wishlistBean = tempList.get(i); + } + } + initWishListData(wishlistBean); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + @Override + public void onFinish() { + } + }); + } + /** * 初始化心愿单列表轮播 */ public void initWishList(List wishlist) { if (wishlist.size() > 0) { this.wishlist = wishlist; - wishListLayout.setVisibility(View.VISIBLE); + wishlistLayout.setVisibility(View.VISIBLE); } else { - wishListLayout.setVisibility(View.GONE); + wishlistLayout.setVisibility(View.GONE); } - ((Activity) mContext).runOnUiThread(() -> { - wishListFlipper = (ViewFlipper) findViewById(R.id.wish_list_vf); - for (int i = 0; i < wishlist.size(); i++) { - View wish = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null); - wish.setTag(wishlist.get(i).getId()); - ImageView wishPic = wish.findViewById(R.id.wish_pic); - TextView wishIndex = wish.findViewById(R.id.wish_index); - ImgLoader.display2(mContext, wishlist.get(i).getWishlistIcon(), wishPic); - wishIndex.setText(wishlist.get(i).getWishlistNumP()); - if (wishListFlipper != null) { - wishListFlipper.addView(wish); - } - } - if (wishListFlipper != null) { - wishListFlipper.startFlipping(); - } - }); } public void initHourRank(RankHourModel model) { @@ -2790,6 +2884,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis mHotText = hotView.findViewById(R.id.wish_index); mHourRank = hourView.findViewById(R.id.wish_index); mHotText.setText("0"); + mHourRank.setText("熱度加成"); mHotText.setLayoutParams(textParams); mHourRank.setLayoutParams(textParams); mHotText.setGravity(Gravity.CENTER); @@ -2821,7 +2916,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis liveHDDialogFragment.setArguments(bundle); liveHDDialogFragment.show(((AbsActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); }); - new LoadDian9TuUtil().loadDian9TuAssets2(mContext, hourRankLayout, "rectangle_new.png", 1); } /** @@ -2876,7 +2970,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } }, Throwable::printStackTrace).isDisposed(); - new LoadDian9TuUtil().loadDian9TuAssets2(mContext, hourRankLayout, "rectangle_new.png", 1); } private void showUrlHDDialog(String path) { @@ -2945,7 +3038,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } pkRankLayout.setTag(mLiveUid); pkUidTmp = pkUid; - new LoadDian9TuUtil().loadDian9TuAssets2(mContext, liveRankPk2, "rectangle_new.png", 1); } @@ -3099,9 +3191,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis */ public void setHotData(String hot) { if (mHourRank != null && !TextUtils.isEmpty(hot)) { + L.eSw("setHotData-" + hot); mHourRank.setText(hot); } - } public void setHotNum(String hotNum) { @@ -3122,12 +3214,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis model.setWishlistProgress(String.valueOf(number)); } } - if (wishListLayout != null) { - wishListLayout.removeAllViews(); - } initWishList(wishlist); } - } //点击头像 @@ -3699,53 +3787,26 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis * 设置礼物墙和周星榜 */ public void setGiftWall(String giftWallLightenNumber, String giftWallLightenTotal) { - if (wksAndGiftWall.getChildCount() > 0) { - wksAndGiftWall.removeAllViews(); - } - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DpUtil.dp2px(16), DpUtil.dp2px(16)); - LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); - textParams.leftMargin = DpUtil.dp2px(5); - textParams.rightMargin = DpUtil.dp2px(5); - params.leftMargin = DpUtil.dp2px(5); - View weekView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null); - ImageView weekViewPic = weekView.findViewById(R.id.wish_pic); - TextView week = weekView.findViewById(R.id.wish_index); - week.setLayoutParams(textParams); - week.setGravity(Gravity.CENTER); - week.setText(mContext.getString(R.string.live_wks)); - weekViewPic.setImageResource(R.mipmap.live_icon_zhouxing); - weekViewPic.setLayoutParams(params); + giftLayout = findViewById(R.id.giftLayout); if (!TextUtils.isEmpty(giftWallLightenNumber) && !TextUtils.isEmpty(giftWallLightenTotal)) { - StringBuffer stringBuffer = new StringBuffer(); - stringBuffer.append(mContext.getString(R.string.gift_wall)).append(giftWallLightenNumber).append("/").append(giftWallLightenTotal); - View giftWall = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null); - ImageView giftWallPic = giftWall.findViewById(R.id.wish_pic); - TextView giftText = giftWall.findViewById(R.id.wish_index); - giftText.setText(stringBuffer.toString()); - giftText.setGravity(Gravity.CENTER); - giftText.setLayoutParams(textParams); - giftWallPic.setImageResource(R.mipmap.icon_gift_wall); - giftWallPic.setLayoutParams(params); - wksAndGiftWall.addView(giftWall); - ViewClicksAntiShake.clicksAntiShake(giftWall, new ViewClicksAntiShake.ViewClicksCallBack() { + giftLayout.setVisibility(View.VISIBLE); + gift_number = findViewById(R.id.gift_number); + gift_total = findViewById(R.id.gift_total); + gift_progressbar = findViewById(R.id.gift_progressbar); + + gift_number.setText(giftWallLightenNumber); + gift_total.setText("/" + giftWallLightenTotal); + gift_progressbar.setMax(Integer.parseInt(giftWallLightenTotal)); + gift_progressbar.setProgress(Integer.parseInt(giftWallLightenNumber)); + ViewClicksAntiShake.clicksAntiShake(giftLayout, new ViewClicksAntiShake.ViewClicksCallBack() { @Override public void onViewClicks() { - //Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.GIFT_WALL).setUid(mLiveUid).setVoicePress(true).setAvatar(mAvatarUrl).setUname(mAnchorName)); - new com.yunbao.common.dialog.GiftWallDialog(mContext, mLiveUid, mAnchorName, mLiveUid,true).setFullWindows(false).showDialog(); + new com.yunbao.common.dialog.GiftWallDialog(mContext, mLiveUid, mAnchorName, mLiveUid, true).setFullWindows(false).showDialog(); } }); + } else { + giftLayout.setVisibility(View.GONE); } - - ViewClicksAntiShake.clicksAntiShake(weekView, new ViewClicksAntiShake.ViewClicksCallBack() { - @Override - public void onViewClicks() { - MobclickAgent.onEvent(mContext, "live_room_week", "周星榜按钮"); - Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIVE_WKS)); - } - }); - // wksAndGiftWall.addView(weekView); - // wksAndGiftWall.startFlipping(); - new LoadDian9TuUtil().loadDian9TuAssets2(mContext, liveWksLayout, "rectangle_new.png", 1); } /** @@ -4453,30 +4514,30 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis * @param bean */ public void showBuyVipMessage(LiveReceiveGiftBean bean) { - L.eSw("showBuyVipMessage:"+bean.getRoomnum()+"__"+mLiveUid); + L.eSw("showBuyVipMessage:" + bean.getRoomnum() + "__" + mLiveUid); noble.setVisibility(View.VISIBLE); switch (bean.getNobilityid()) { case "1": - noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.BARON).setCallBack(() -> gotoLive(bean.getRoomnum())); + noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(), mLiveUid).setRoleType(NobleNoticeView.RoleType.BARON).setCallBack(() -> gotoLive(bean.getRoomnum())); break; case "2": - noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.VISCOUNT).setCallBack(() -> gotoLive(bean.getRoomnum())); + noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(), mLiveUid).setRoleType(NobleNoticeView.RoleType.VISCOUNT).setCallBack(() -> gotoLive(bean.getRoomnum())); break; case "3": - noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.MARQUIS).setCallBack(() -> gotoLive(bean.getRoomnum())); + noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(), mLiveUid).setRoleType(NobleNoticeView.RoleType.MARQUIS).setCallBack(() -> gotoLive(bean.getRoomnum())); break; case "4": - noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.DUKE).setCallBack(() -> gotoLive(bean.getRoomnum())); + noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(), mLiveUid).setRoleType(NobleNoticeView.RoleType.DUKE).setCallBack(() -> gotoLive(bean.getRoomnum())); break; case "5": - noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.KING).setCallBack(() -> gotoLive(bean.getRoomnum())); + noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(), mLiveUid).setRoleType(NobleNoticeView.RoleType.KING).setCallBack(() -> gotoLive(bean.getRoomnum())); break; case "6": - noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.EMPEROR).setCallBack(() -> gotoLive(bean.getRoomnum())); + noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(), mLiveUid).setRoleType(NobleNoticeView.RoleType.EMPEROR).setCallBack(() -> gotoLive(bean.getRoomnum())); break; case "7": - noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.BETTER_EMPEROR).setCallBack(() -> gotoLive(bean.getRoomnum())); + noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(), mLiveUid).setRoleType(NobleNoticeView.RoleType.BETTER_EMPEROR).setCallBack(() -> gotoLive(bean.getRoomnum())); break; } } @@ -4730,15 +4791,15 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis mRefreshUserListCallback = null; mTimeChargeCallback = null; Contexts = null; - if(drawableBg!=null){ + if (drawableBg != null) { drawableBg.clear(); } drawableBg = null; - if(drawableTitleCn!=null){ + if (drawableTitleCn != null) { drawableTitleCn.clear(); } drawableTitleCn = null; - if(drawableTitleEn!=null){ + if (drawableTitleEn != null) { drawableTitleEn.clear(); } drawableTitleEn = null; @@ -5509,7 +5570,39 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis updatePkRankInfo((PkRankBean) event.getObject()); break; } + } + public void initWishListData(WishModel model) { + ImgLoader.display(mContext, model.getWishlistIcon(), wish_icon); + wish_number.setText(model.getWishlistProgress()); + wish_total.setText("/" + model.getWishlistNum()); + wish_progressbar.setMax(Integer.parseInt(model.getWishlistNum())); + wish_progressbar.setProgress(Integer.parseInt(model.getWishlistProgress())); + wishlistLayout.setVisibility(View.VISIBLE); + ViewClicksAntiShake.clicksAntiShake(wishlistLayout, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + MobclickAgent.onEvent(mContext, "live_room_wish", "心愿单按钮"); + IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo(); + String type = ""; + StringBuffer htmlUrl = new StringBuffer(); + String link = CommonAppConfig.HOST + "/index.php"; + htmlUrl.append(link).append(link.contains("?") ? "&uid=" : "?uid=").append(userInfo.getId()).append("&token=").append(userInfo.getToken()).append("&anchorUid=").append(mLiveUid).append("&liveUid=").append(mLiveUid).append("&t=").append(System.currentTimeMillis()).append("&g=Appapi&m=Wish&a=index").append("&isZh=").append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); + if (TextUtils.equals(type, "1")) { + ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1); + } else { + Bundle bundle = new Bundle(); + bundle.putString("url", htmlUrl.toString()); + LiveHDDialogFragment fragment = new LiveHDDialogFragment(); + fragment.setArguments(bundle); + if (mContext instanceof LiveAudienceActivity) { + fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); + } else if (mContext instanceof LiveSwAnchorActivity) { + fragment.show(((LiveSwAnchorActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); + } + } + } + }); } public void wishListProgress(WishModel wishModel, String userNiceName, int level) { @@ -5518,22 +5611,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } wishListProgress = null; WishModel model = wishModel; - if (!TextUtils.isEmpty(model.getWishlistName()) || !TextUtils.isEmpty(model.getWishlistProgress())) { - for (BannerBean bannerBean : mTopBannerList) { - if (bannerBean.getType() == 1) { - mTopBannerList.remove(bannerBean); - } - } - - /*topBanner1.update(mTopBannerList); - topBanner2.update(mTopBannerList);*/ + if (wishlistLayout != null) { + initWishListData(model); new Handler().postDelayed(new Runnable() { @Override public void run() { - BannerBean bannerBean = new BannerBean(); - bannerBean.setWishlistIcon(model.getWishlistIcon()).setWishlistName(model.getWishlistName()).setWishlistNum(model.getWishlistNum()).setWishlistProgress(model.getWishlistProgress()).setmLink(CommonAppConfig.HOST + "/index.php").setType(1); - bannerBean.setShow_type("2"); - mTopBannerList.add(bannerBean); LiveChatBean bean = new LiveChatBean(); bean.setContent(model.getLuid()); bean.setUserNiceName(userNiceName); @@ -5541,37 +5623,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis bean.setType(LiveChatBean.WISH_LIST_PROGRESS); bean.setLevel(level); mLiveChatAdapter.insertItem(bean); - if (mTopBannerList.size() == 0) { - topBanner1.setVisibility(View.GONE); - } else { - topBanner1.update(mTopBannerList); - topBanner2.update(mTopBannerList); - } } }, 500); - - } else { - for (BannerBean bannerBean : mTopBannerList) { - if (bannerBean.getType() == 1) { - mTopBannerList.remove(bannerBean); - } - } -// LiveChatBean bean = new LiveChatBean(); -// bean.setContent(model.getLuid()); -// bean.setUserNiceName(userNiceName); -// bean.setAtUserName(model.getWishlistName()); -// bean.setType(LiveChatBean.WISH_LIST_PROGRESS); -// mLiveChatAdapter.insertItem(bean); - if (mTopBannerList.size() == 0) { - topBanner1.setVisibility(View.GONE); - topBanner2.setVisibility(View.GONE); - } else { - topBanner1.update(mTopBannerList); - topBanner2.update(mTopBannerList); - } - } - } /** @@ -6213,8 +6267,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis isHinde = true; mAnchorSay.setVisibility(View.GONE); if (!TextUtils.isEmpty(wishListProgress.getWishlistName()) || !TextUtils.isEmpty(wishListProgress.getWishlistProgress())) { - topBanner2.setVisibility(View.VISIBLE); - }else{ + //topBanner2.setVisibility(View.VISIBLE); + } else { topBanner2.setVisibility(View.GONE); } topBanner1.setVisibility(View.GONE); @@ -6246,179 +6300,22 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis public void updateTopBanner() { if (wishListProgress == null) return; if (!TextUtils.isEmpty(wishListProgress.getWishlistName()) || !TextUtils.isEmpty(wishListProgress.getWishlistProgress())) { - if (mTopBannerList == null) { - mTopBannerList = new ArrayList<>(); - } - // if(sayModel!=null&&sayModel.getLivePreview().getIsShow()==1&&sa) - if (!isHinde) { - topBanner1.setVisibility(View.VISIBLE); - } - mTopBannerList = new ArrayList<>(); - BannerBean bannerBean = new BannerBean(); - bannerBean.setWishlistIcon(wishListProgress.getWishlistIcon()).setWishlistName(wishListProgress.getWishlistName()).setWishlistNum(wishListProgress.getWishlistNum()).setWishlistProgress(wishListProgress.getWishlistProgress()).setmLink(CommonAppConfig.HOST + "/index.php").setType(1); - bannerBean.setShow_type("2"); - mTopBannerList.add(bannerBean); - /*if (mTopBannerList.size() == 1 || mTopBannerList.size() == 0) { - mTopBannerList.add(bannerBean); - } else { - mTopBannerList.set(1, bannerBean); - }*/ - topBanner1.update(mTopBannerList); - topBanner2.update(mTopBannerList); + initWishListData(wishListProgress); + wishlistLayout.setVisibility(View.VISIBLE); + } else { + wishlistLayout.setVisibility(View.GONE); } - } - public void initTopBanner() { - checkNewLetter(); - if (mTopBannerList == null) { - mTopBannerList = new ArrayList<>(); - } - if (!mTopBannerList.isEmpty()) { - return; - } - topBanner1.setVisibility(View.GONE); - topBanner1.setAutoPlay(true).setPages(mTopBannerList, new TopBannerCustomViewHolder()).setDelayTime(3000).setBannerStyle(BannerConfig.NOT_INDICATOR).setOnBannerClickListener(new OnBannerClickListener() { - @Override - public void onBannerClick(List datas, int position) { - if (datas.size() > 0 && mTopBannerList != null && mTopBannerList.size() > 0) { - if (mTopBannerList.get(position).getType() == TopBannerCustomViewHolder.TYPE_CALL_ANCHOR) { - MobclickAgent.onEvent(mContext, "live_room_contact", "联系方式按钮"); - Dialog loading = DialogUitl.loadingDialog(mContext); - loading.show(); - LiveNetManager.get(mContext).getContactInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() { - - @Override - public void onSuccess(LiveAnchorCallMeModel data) { - if (data.getIsGet() == 1) { - new LiveUserAnchorMailBoxWebInfoPopDialog(mContext, mAnchorName, data.getLink()).setOnDismissListener(dialog -> { - checkNewLetter(); - loading.dismiss(); - }).showDialog(); - return; - } - new LiveContactDetailsSendGiftDialog(mContext).setGiftId(data.getGiftId()).setAnchorName(mAnchorName).setStream(mStream).setLiveUid(mLiveUid).setOnDismissListener(dialog1 -> { - checkNewLetter(); - }).showDialog(); - loading.dismiss(); - } - - @Override - public void onError(String error) { - loading.dismiss(); - } - }); - - } else { - MobclickAgent.onEvent(mContext, "live_room_wish", "心愿单按钮"); - BannerBean bean = mTopBannerList.get(position); - IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo(); - String type = ""; - StringBuffer htmlUrl = new StringBuffer(); - htmlUrl.append(bean.getLink()).append(bean.getLink().contains("?") ? "&uid=" : "?uid=").append(userInfo.getId()).append("&token=").append(userInfo.getToken()).append("&anchorUid=").append(mLiveUid).append("&liveUid=").append(mLiveUid).append("&t=").append(System.currentTimeMillis()).append("&g=Appapi&m=Wish&a=index").append("&isZh=").append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); - if (TextUtils.equals(type, "1")) { - ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1); - } else { - Bundle bundle = new Bundle(); - bundle.putString("url", htmlUrl.toString()); - LiveHDDialogFragment fragment = new LiveHDDialogFragment(); - fragment.setArguments(bundle); - fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); - } - } - } - - } - }).start(); - topBanner2.setAutoPlay(true).setPages(mTopBannerList, new TopBannerCustomViewHolder(false)).setDelayTime(3000).setBannerStyle(BannerConfig.NOT_INDICATOR).setOnBannerClickListener(new OnBannerClickListener() { - @Override - public void onBannerClick(List datas, int position) { - if (datas.size() > 0) { - if (position >= mTopBannerList.size()) { - position = 0; - } - if (mTopBannerList.get(position).getType() == TopBannerCustomViewHolder.TYPE_CALL_ANCHOR) { - MobclickAgent.onEvent(mContext, "live_room_contact", "联系方式按钮"); - Dialog loading = DialogUitl.loadingDialog(mContext); - loading.show(); - LiveNetManager.get(mContext).getContactInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() { - - @Override - public void onSuccess(LiveAnchorCallMeModel data) { - if (data.getIsGet() == 1) { - new LiveUserAnchorMailBoxWebInfoPopDialog(mContext, mAnchorName, data.getLink()).setOnDismissListener(dialog -> { - checkNewLetter(); - loading.dismiss(); - }).showDialog(); - return; - } - new LiveContactDetailsSendGiftDialog(mContext).setGiftId(data.getGiftId()).setAnchorName(mAnchorName).setStream(mStream).setLiveUid(mLiveUid).setOnDismissListener(dialog1 -> { - checkNewLetter(); - }).showDialog(); - loading.dismiss(); - } - - @Override - public void onError(String error) { - loading.dismiss(); - } - }); - - } else { - MobclickAgent.onEvent(mContext, "live_room_wish", "心愿单按钮"); - BannerBean bean = mTopBannerList.get(position); - IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo(); - String type = ""; - StringBuffer htmlUrl = new StringBuffer(); - htmlUrl.append(bean.getLink()).append(bean.getLink().contains("?") ? "&uid=" : "?uid=").append(userInfo.getId()).append("&token=").append(userInfo.getToken()).append("&anchorUid=").append(mLiveUid).append("&liveUid=").append(mLiveUid).append("&t=").append(System.currentTimeMillis()).append("&g=Appapi&m=Wish&a=index").append("&isZh=").append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); - if (TextUtils.equals(type, "1")) { - ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1); - } else { - Bundle bundle = new Bundle(); - bundle.putString("url", htmlUrl.toString()); - LiveHDDialogFragment fragment = new LiveHDDialogFragment(); - fragment.setArguments(bundle); - fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); - } - } - } - - } - }).start(); - //updateCallMe(); + public void initWishListView() { + wishlistLayout = findViewById(R.id.wishlistLayout); + wish_icon = findViewById(R.id.wish_icon); + wish_number = findViewById(R.id.wish_number); + wish_total = findViewById(R.id.wish_total); + wish_progressbar = findViewById(R.id.wishlist_progressbar); } - private void updateCallMe() { - - LiveNetManager.get(mContext).getContactInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() { - @Override - public void onSuccess(LiveAnchorCallMeModel data) { - System.out.println(">>>>> 获取联系方式:" + data); - if (data.getIsShow() == 1) { - if (!isHinde) { - topBanner1.setVisibility(View.VISIBLE); - } - BannerBean call = new BannerBean(); - call.setData(data); - call.setType(TopBannerCustomViewHolder.TYPE_CALL_ANCHOR); - mTopBannerList.add(0, call); - topBanner1.update(mTopBannerList); - topBanner2.update(mTopBannerList); - } - - - } - - @Override - public void onError(String error) { - System.out.println("!>>>>> 获取联系方式:" + error); - } - }); - } - - private synchronized void checkNewLetter() { - LiveNetManager.get(mContext).getContactMsg(1, new com.yunbao.common.http.base.HttpCallback>() { @Override public void onSuccess(List data) { @@ -6432,16 +6329,12 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis } else { ((LiveAudienceActivity) mContext).showMsgRed(-1); } - - } @Override public void onError(String error) { } }); - - } public void blindBoxAllServerNotify(AllServerNotifyEvent event) { diff --git a/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java index 9a991c022..f2f039cc3 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java @@ -229,7 +229,7 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder { findViewById(R.id.btn_task).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - ((LiveSwAnchorActivity) mContext).showFunctionDialog(); + ((LiveSwAnchorActivity) mContext).showTaskDialog(); } }); findViewById(R.id.btn_fz).setOnClickListener(new View.OnClickListener() { @@ -313,17 +313,6 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder { * 设置连麦pk按钮是否可见 */ public void setPkBtnVisible(boolean visible) { - if (mBtnPk != null) { - if (visible) { - if (mBtnPk.getVisibility() != View.VISIBLE) { - mBtnPk.setVisibility(View.VISIBLE); - } - } else { - if (mBtnPk.getVisibility() == View.VISIBLE) { - mBtnPk.setVisibility(View.INVISIBLE); - } - } - } } /** 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 9065b078a..e88bcd3b1 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -639,7 +639,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe //心愿单顶部bannner mLiveRoomViewHolder.setWishListProgress(data.getWishListProgress()); //初始化顶部banner - mLiveRoomViewHolder.initTopBanner(); + mLiveRoomViewHolder.initWishListView(); mLiveRoomViewHolder.updateTopBanner(); mLiveRoomViewHolder.setVoteData(data.getEnterRoomInfo().getVoteModel()); mLiveRoomViewHolder.updateFansMessageRed(); diff --git a/live/src/main/res/drawable/bg_live_item.xml b/live/src/main/res/drawable/bg_live_item.xml index 0d9ba5ac0..ea074f6b6 100644 --- a/live/src/main/res/drawable/bg_live_item.xml +++ b/live/src/main/res/drawable/bg_live_item.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/live/src/main/res/drawable/bg_live_item_an.xml b/live/src/main/res/drawable/bg_live_item_an.xml new file mode 100644 index 000000000..f94242069 --- /dev/null +++ b/live/src/main/res/drawable/bg_live_item_an.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/live/src/main/res/drawable/bg_live_room_mic_num.xml b/live/src/main/res/drawable/bg_live_room_mic_num.xml new file mode 100644 index 000000000..daa9cd940 --- /dev/null +++ b/live/src/main/res/drawable/bg_live_room_mic_num.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/drawable/bg_push_time_point.xml b/live/src/main/res/drawable/bg_push_time_point.xml index ebd424d9a..a19e47ba2 100644 --- a/live/src/main/res/drawable/bg_push_time_point.xml +++ b/live/src/main/res/drawable/bg_push_time_point.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/live/src/main/res/layout/item_live_chat.xml b/live/src/main/res/layout/item_live_chat.xml index 906d01b89..de1ca3bbd 100644 --- a/live/src/main/res/layout/item_live_chat.xml +++ b/live/src/main/res/layout/item_live_chat.xml @@ -2,303 +2,346 @@ + android:orientation="horizontal"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_marginEnd="1dp" + android:layout_marginBottom="11dp" + android:scaleType="centerCrop" + android:src="@drawable/m_chu_xia" + android:visibility="gone" + app:riv_oval="true" + tools:visibility="visible" /> - + - + - - + android:gravity="center_vertical" + android:orientation="vertical"> + tools:ignore="RtlHardcoded" + tools:text="aaaaaaaaa111111111111111111111111111111111111111111111111111111111" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/layout/view_live_audience.xml b/live/src/main/res/layout/view_live_audience.xml index 4189b37da..324dca45f 100644 --- a/live/src/main/res/layout/view_live_audience.xml +++ b/live/src/main/res/layout/view_live_audience.xml @@ -36,7 +36,6 @@ - + android:layout_marginTop="165dp"> diff --git a/live/src/main/res/layout/view_live_push_sw.xml b/live/src/main/res/layout/view_live_push_sw.xml index be9c1d054..6aa05101e 100644 --- a/live/src/main/res/layout/view_live_push_sw.xml +++ b/live/src/main/res/layout/view_live_push_sw.xml @@ -42,7 +42,7 @@ android:id="@+id/dr_pk_view" android:layout_width="match_parent" android:layout_height="270dp" - android:layout_marginTop="130dp" + android:layout_marginTop="165dp" android:orientation="horizontal" android:visibility="gone" tools:visibility="visible"> @@ -126,7 +126,7 @@ android:id="@+id/pk_container" android:layout_width="match_parent" android:layout_height="270dp" - android:layout_marginTop="130dp"> + android:layout_marginTop="165dp"> + + - @@ -162,18 +161,18 @@ @@ -236,50 +235,6 @@ android:visibility="gone" /> - - - - - - - - - - - - - + android:visibility="gone"> + + + + + + + + + + + + + + + + + + @@ -351,7 +359,6 @@ android:inAnimation="@anim/anim_marquee_in" android:outAnimation="@anim/anim_marquee_out" /> - @@ -359,7 +366,7 @@ @@ -369,47 +376,52 @@ android:layout_width="82dp" android:layout_height="match_parent" android:layout_marginStart="12dp" - android:layout_marginEnd="7dp" android:background="@mipmap/bg_live_room_task" - android:gravity="center"> + android:gravity="center" + android:visibility="gone" + tools:visibility="visible"> + + android:layout_width="40dp" + android:layout_height="match_parent" + android:layout_marginStart="12dp" + android:visibility="gone" + tools:visibility="visible"> + android:textSize="7sp" + android:visibility="visible" /> - + - + - + + android:visibility="gone" + tools:visibility="visible"> + android:gravity="center_vertical" + android:orientation="vertical" + android:paddingStart="6dp"> + android:textSize="12dp" /> + android:layout_marginTop="2dp" + android:progressDrawable="@drawable/bg_gift_progressbar" /> + android:layout_marginStart="10dp" + android:src="@mipmap/icon_live_room_gift" /> + + + + + + + + + + + + + + + + + + + + + + @@ -578,14 +665,12 @@ android:layout_below="@id/lin" android:layout_marginLeft="10dp" android:layout_marginTop="8dp" - android:layout_toRightOf="@id/hour_rank_layout" android:background="@drawable/bg_live_item" android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="8dp" android:paddingRight="5dp" - android:visibility="gone" - tools:visibility="visible"> + android:visibility="gone"> + android:visibility="gone"> - - - @@ -704,15 +775,12 @@ android:visibility="gone" /> - - - - - + @@ -878,7 +931,6 @@ android:id="@+id/live_time" android:layout_width="wrap_content" android:layout_height="20dp" - android:layout_below="@id/hour_rank_layout" android:layout_alignParentRight="true" android:layout_marginEnd="10dp" android:background="@drawable/bg_live_push_time" @@ -912,9 +964,9 @@ android:id="@+id/goto_room_view" android:layout_width="wrap_content" android:layout_height="27dp" - android:layout_below="@id/open_sidebar" + android:layout_below="@id/topLayout2" android:layout_alignParentRight="true" - android:layout_marginTop="20dp" + android:layout_marginTop="15dp" android:layout_marginRight="9dp" android:background="@drawable/bg_live_other_ico" android:gravity="center"> @@ -1008,7 +1060,6 @@ android:id="@+id/btn_red_pack" android:layout_width="40dp" android:layout_height="50dp" - android:layout_below="@id/hour_rank_layout" android:layout_alignParentRight="true" android:layout_marginTop="80dp" android:layout_marginRight="10dp" @@ -1098,7 +1149,6 @@ - @@ -1179,7 +1228,6 @@ android:id="@+id/gif_gift_tip_group" android:layout_width="wrap_content" android:layout_height="26dp" - android:layout_below="@id/hour_rank_layout" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_marginRight="10dp" @@ -1716,7 +1764,7 @@ android:layout_height="28dp" android:layout_alignTop="@+id/live_video" android:layout_centerHorizontal="true" - android:layout_marginTop="40dp" + android:layout_marginTop="80dp" android:src="@mipmap/icon_rank_top_box" android:visibility="visible" /> @@ -1724,7 +1772,7 @@ android:id="@+id/lt_pk_line" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="@dimen/live_top" + android:layout_marginTop="148dp" android:visibility="gone" tools:visibility="visible"> @@ -2464,116 +2512,215 @@ android:visibility="gone" /> - + - - + android:visibility="invisible" + tools:visibility="visible"> + + + + + android:gravity="center"> + + + + + + - - + android:visibility="invisible" + tools:visibility="visible"> + + + + + android:gravity="center"> + + + + + + - - + android:visibility="invisible" + tools:visibility="visible"> + + + + + android:gravity="center"> + + + + + + @@ -2598,8 +2745,7 @@ + android:visibility="gone" /> diff --git a/live/src/main/res/layout/view_noble_seat.xml b/live/src/main/res/layout/view_noble_seat.xml index 738e26e86..5a4574087 100644 --- a/live/src/main/res/layout/view_noble_seat.xml +++ b/live/src/main/res/layout/view_noble_seat.xml @@ -2,14 +2,14 @@ diff --git a/live/src/main/res/layout/view_ry_live_anchor.xml b/live/src/main/res/layout/view_ry_live_anchor.xml index 1762c8a72..9e942a9e8 100644 --- a/live/src/main/res/layout/view_ry_live_anchor.xml +++ b/live/src/main/res/layout/view_ry_live_anchor.xml @@ -10,7 +10,7 @@ android:id="@+id/live_time" android:layout_width="wrap_content" android:layout_height="23dp" - android:layout_marginTop="100dp" + android:layout_marginTop="90dp" android:layout_gravity="end" android:layout_centerVertical="true" android:layout_marginEnd="10dp" @@ -286,7 +286,7 @@ android:textColor="#fff" android:textSize="10sp" android:translationY="-4dp" - android:visibility="visible" /> + android:visibility="gone" /> diff --git a/live/src/main/res/mipmap-mdpi/icon_live_close_3.png b/live/src/main/res/mipmap-mdpi/icon_live_close_3.png deleted file mode 100644 index 53d041f5ebada58354de0a76015b0b92329523d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2448 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 M07*qoM6N<$f*MG@B>(^b literal 3817 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

V(HvY6U{uw0LT4Iz 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

yU3DYAYPW#=ALuuvAN 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 literal 0 HcmV?d00001 diff --git a/live/src/main/res/mipmap-xhdpi/voice_close.png b/live/src/main/res/mipmap-xhdpi/voice_close.png new file mode 100644 index 0000000000000000000000000000000000000000..8d000db8aefc1693371e978653c34f5aa46e3bb0 GIT binary patch literal 2487 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未完成 直播熱度 主播經驗 - 本場直播數據統計 + 本場直播信息 歷史數據可在主播中心查看 * 人數及新增相關數據非实时计算 来自%s的信 @@ -162,5 +162,8 @@ 分鐘 本場總計鑽石: 打賞人數: + 禮物牆 + 心願 + 新手任務 diff --git a/live/src/main/res/values/dimen.xml b/live/src/main/res/values/dimen.xml index cd03d0c4e..dc168c0bf 100644 --- a/live/src/main/res/values/dimen.xml +++ b/live/src/main/res/values/dimen.xml @@ -1,5 +1,5 @@ 250dp - 120dp + 165dp \ No newline at end of file diff --git a/live/src/main/res/values/strings.xml b/live/src/main/res/values/strings.xml index c8ec86bf1..7a8b9a2ea 100644 --- a/live/src/main/res/values/strings.xml +++ b/live/src/main/res/values/strings.xml @@ -31,7 +31,7 @@ incomplete hot exp - This live data statistics + This live information Historical data can be viewed in the anchor center * Non-real-time calculation of data @@ -165,4 +165,7 @@ minute Get diamonds: Gift givers: + Gift Wall + Wishlist + Newb job \ No newline at end of file diff --git a/main/src/main/res/values-en/strings.xml b/main/src/main/res/values-en/strings.xml index 843734054..e47fd1b95 100644 --- a/main/src/main/res/values-en/strings.xml +++ b/main/src/main/res/values-en/strings.xml @@ -31,7 +31,7 @@ incomplete hot exp - This live data statistics + This live information Historical data can be viewed in the anchor center * Non-real-time calculation of data