pdlivexp/live/src/main/java/com/yunbao/live/socket/SocketSwClient.java
2024-11-01 14:53:14 +08:00

1531 lines
88 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.yunbao.live.socket;
import static com.yunbao.common.Constants.SOCKET_LINK_MIC_PK;
import static com.yunbao.common.Constants.SOCKET_LIVE_MSG_TO_USER;
import static com.yunbao.live.activity.LiveSwAnchorActivity.isDRPK;
import static com.yunbao.live.activity.LiveSwAnchorActivity.DRPKing;
import static com.yunbao.live.bean.LiveChatBean.TYPE_TO_ANCHOR_PRANK_GIFT;
import static com.yunbao.live.views.LiveRoomViewHolder.getIsHot;
import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.GsonUtils;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.AiAutomaticSpeechModel;
import com.yunbao.common.bean.BanDownLiveEvent;
import com.yunbao.common.bean.FansModel;
import com.yunbao.common.bean.GuardMaturityDateRemindModel;
import com.yunbao.common.bean.LinkMicUserBean;
import com.yunbao.common.bean.LiveInfoModel;
import com.yunbao.common.bean.LiveUserGiftBean;
import com.yunbao.common.bean.MsgModel;
import com.yunbao.common.bean.PkRankBean;
import com.yunbao.common.bean.RedPacketInfoModel;
import com.yunbao.common.bean.RedPacketModel;
import com.yunbao.common.bean.SendMoneyLongModel;
import com.yunbao.common.bean.SocketModel;
import com.yunbao.common.bean.SudGameDateModel;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.bean.WishModel;
import com.yunbao.common.bean.XydCompleteModel;
import com.yunbao.common.event.AllServerNotifyEvent;
import com.yunbao.common.event.AllServerNotifyFFGGGDJANEvent;
import com.yunbao.common.event.AnchorInfoEvent;
import com.yunbao.common.event.CustomFullServiceNotifyEvent;
import com.yunbao.common.event.GiftWallIlluminateEvent;
import com.yunbao.common.event.QuickGiftingEvent;
import com.yunbao.common.event.SendBlindGiftEvent;
import com.yunbao.common.event.SendMoneyLongEndEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.MicUserManager;
import com.yunbao.common.manager.MicedUserManager;
import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.manager.RandomPkManager;
import com.yunbao.common.utils.Bus;
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.live.activity.LiveAudienceActivity;
import com.yunbao.live.activity.LiveSwAnchorActivity;
import com.yunbao.live.adapter.LiveChatAdapter;
import com.yunbao.live.bean.LiveBuyGuardMsgBean;
import com.yunbao.live.bean.LiveChatBean;
import com.yunbao.live.bean.LiveDanMuBean;
import com.yunbao.live.bean.LiveEnterRoomBean;
import com.yunbao.live.bean.LiveGiftPrizePoolWinBean;
import com.yunbao.live.bean.LiveLuckGiftWinBean;
import com.yunbao.live.bean.LivePKUserListBean;
import com.yunbao.live.bean.LiveReceiveGiftBean;
import com.yunbao.live.bean.NewAllServerNotifyGuardEvent;
import com.yunbao.live.bean.SendQuickGiftModel;
import com.yunbao.live.event.LiveAnchorEvent;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.presenter.LiveSwLinkMicPkPresenter;
import com.yunbao.live.views.LiveEndViewHolder;
import com.yunbao.live.views.LivePlayKsyViewHolder;
import com.yunbao.live.views.LivePlaySwViewHolder;
import com.yunbao.live.views.LivePushSwViewHolder;
import com.yunbao.live.views.LiveRoomViewHolder;
import org.greenrobot.eventbus.EventBus;
import java.lang.ref.WeakReference;
import java.util.List;
import io.agora.beautyapi.faceunity.agora.SWManager;
import io.rong.imlib.IRongCallback;
import io.rong.imlib.IRongCoreCallback;
import io.rong.imlib.IRongCoreEnum;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.chatroom.base.RongChatRoomClient;
import io.rong.imlib.model.Conversation;
import io.rong.message.TextMessage;
public class SocketSwClient {
private final String TAG = "socket";
private String mLiveUid;
private String mStream;
public static SocketSwClient.SocketHandler mSocketHandler;
private Context mContext;
public SocketSwClient(String mLiveUid, SocketMessageListener listener, Activity mContext) {
this.mContext = mContext;
mSocketHandler = new SocketSwClient.SocketHandler(listener);
mSocketHandler.setLiveUid(mLiveUid);
RongChatRoomClient.getInstance().joinChatRoom("g" + mLiveUid, -1, new IRongCoreCallback.OperationCallback() {
@Override
public void onSuccess() {
Log.i("tx", "加入成功");
}
@Override
public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
Log.i("tx", "加入" + "失败" + coreErrorCode);
if (WordUtil.isNewZh()) {
ToastUtil.show("網絡不佳無法連接,請重新進入");
} else {
ToastUtil.show("The network is not connected, please re-enter");
}
}
});
}
public void setLivePushSwViewHolder(LivePushSwViewHolder livePushSwViewHolder) {
if (mSocketHandler != null) {
mSocketHandler.setLivePushSwViewHolder(livePushSwViewHolder);
}
}
public void disConnect() {
// V2TIMManager.getInstance().
mLiveUid = null;
mStream = null;
mSocketHandler = null;
}
public class SocketHandler extends Handler {
private SocketMessageListener mListener;
private LivePushSwViewHolder livePushSwViewHolder;
private String mLiveUid;
public SocketHandler(SocketMessageListener listener) {
mListener = new WeakReference<>(listener).get();
}
public void setLiveUid(String liveUid) {
mLiveUid = liveUid;
}
public void setLivePushSwViewHolder(LivePushSwViewHolder livePushSwViewHolder) {
this.livePushSwViewHolder = livePushSwViewHolder;
}
@Override
public void handleMessage(Message msg) {
if (mListener == null) {
return;
}
try {
switch (msg.what) {
case Constants.SOCKET_WHAT_CONN:
mListener.onConnect((Boolean) msg.obj);
break;
case Constants.SOCKET_WHAT_BROADCAST:
processBroadcast((String) msg.obj);
break;
case Constants.SOCKET_WHAT_DISCONN:
mListener.onDisConnect();
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void processBroadcast(String socketMsg) {
L.e("收到socket--->" + socketMsg);
Log.i("SocketRyClient", "socketMsg" + socketMsg);
if (Constants.SOCKET_STOP_PLAY.equals(socketMsg)) {
mListener.onSuperCloseLive();//超管关闭房间
return;
}
if (socketMsg.contains("LivePK_UnreadCount")) {
return;
}
SocketReceiveBean received = JSON.parseObject(socketMsg, SocketReceiveBean.class);
JSONObject map = received.getMsg().getJSONObject(0);
L.e("收到IM数据--->" + map.toString());
String ct="";
switch (map.getString("_method_")) {
//用户连麦
case Constants.LIAN_MAI:
int actions = map.getIntValue("action");
L.eSw("用户连麦:actions" + actions);
//主播邀请用户连麦消息
if (actions == 1) {
EventBus.getDefault().post("inviteMic");
//主播同意用户连麦申请
} else if (actions == 4) {
EventBus.getDefault().post("UsertoRY");
} else if (actions == 5) {
JSONObject mic_data = map.getJSONObject("ct");
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_UPDATE_MIC_LIST).setObject(JSONArray.parseArray(mic_data.getJSONArray("userlist").toString(), LinkMicUserBean.class)));
MicedUserManager.get().upDataMicUserList(JSONArray.parseArray(mic_data.getJSONArray("userlist").toString(), LinkMicUserBean.class));
} else if (actions == 6) {
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) {
//提下買,退出
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().setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC).setObject(map.toJavaObject(LinkMicUserBean.class)));
MicUserManager.get().upDataMicUser(map);
} else if (actions == 7) {//取消连麦
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_CANCEL));
MicUserManager.get().removeMiscUser(map);
}
break;
case Constants.UP_USER_LIST:
mListener.onUpUserList(map.getJSONObject("ct"));
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_UPDATE_AUDIENCE_LIST).setObject(JSON.parseArray(map.getJSONObject("ct").getString("userlist"), LiveUserGiftBean.class)));
break;
case Constants.CARD:
// LiveLinkMicPresenter.setHD(map.getString("ct"));
break;
case Constants.SOCKET_SYSTEM://系统消息
ct=map.getString("ct");
if(map.containsKey("ct_en")&&!WordUtil.isNewZh()){
ct=map.getString("ct_en");
}
if (ct.contains("甜蜜不停")) {
break;
}
UserBean us = CommonAppConfig.getInstance().getUserBean();
if (map.getString("uid") != null && us != null && map.getString("uid").equals(us.getId())) {
int num = LiveAudienceActivity.fansNum + 1;
LiveRoomViewHolder.setFansNum(num);
}
if (ct.contains("堅決維護青少年群體精神文明健康") ||ct.contains("click to register if you like. PoYo conducts")) {
systemChatMessage(ct);
} else {
if (!WordUtil.isNewZh() && ct.contains("退出比賽") && ct.contains("獲得勝利")) {
String ctTmp = map.getString("ct");
ct = ctTmp.replace("由於", "Due to").replace("退出比賽", "withdrawing from the competition").replace("獲得勝利", "won");
}
systemChatMessage2(ct);
}
int action21 = map.getIntValue("action");
//主播離開
if (action21 == 13 && ct.contains("離開")) {
if (LivePlayKsyViewHolder.leave != null) {
LivePlayKsyViewHolder.leave.setVisibility(View.VISIBLE);
}
if (LivePlaySwViewHolder.leave != null) {
LivePlaySwViewHolder.leave.setVisibility(View.VISIBLE);
}
} else if (action21 == 13 && ct.contains("回來")) {
if (LivePlayKsyViewHolder.leave != null) {
LivePlayKsyViewHolder.leave.setVisibility(View.GONE);
}
if (LivePlaySwViewHolder.leave != null) {
LivePlaySwViewHolder.leave.setVisibility(View.GONE);
}
}
break;
case Constants.PrankSendData:
//整蛊礼物刷新
L.e("整蛊礼物刷新 整蛊礼物刷新 整蛊礼物刷新");
if (map.getIntValue("action") == 13 && map.getString("msgtype").equals("4")){
String ctString = map.getString("ct");
L.e("整蛊礼物刷新 整蛊礼物刷新 整蛊礼物刷新 "+ctString);
JsonElement jsonElement = JsonParser.parseString(ctString);
if (jsonElement == null) break;
// LogUtils.e("yqw=====>整蛊礼物列表:"+ctString);
JsonObject jsonObject = jsonElement.getAsJsonObject();
String content = WordUtil.isNewZh() ? jsonObject.get("msg").getAsString() : jsonObject.get("msg_en").getAsString();
if(jsonObject.get("is_complete")!=null){
String is_complete = jsonObject.get("is_complete").getAsString(); //0.未达成整蛊需要的数量 1.已达成整蛊
if(is_complete.equals("1")){
String user_name = jsonObject.get("user_name").getAsString(); //用户昵称
String prank_content = jsonObject.get("prank_content").getAsString(); //整蛊内容
String gift_count = jsonObject.get("gift_count").getAsString(); // 礼物数量
LiveChatBean chatBean = new LiveChatBean();
chatBean.setUserNiceName(user_name);
chatBean.setGiftName(jsonObject.get("gift_name").getAsString());
chatBean.setGiftname_en(jsonObject.get("gift_name_en").getAsString());
chatBean.setHot_num(gift_count);
chatBean.setContent(prank_content);
chatBean.setType(TYPE_TO_ANCHOR_PRANK_GIFT);
mListener.onChat(chatBean, 1);
}
}else{
if (!TextUtils.isEmpty(content)){
systemChatMessage2(content);
}
}
if(CommonAppConfig.getInstance().getUid().equals(mLiveUid)&&"完成1次".equals(jsonObject.get("msg").getAsString())){
Toast toast = Toast.makeText(mContext,WordUtil.isNewZh()?jsonObject.get("msg").getAsString():jsonObject.get("msg_en").getAsString(),Toast.LENGTH_LONG);
toast.show();
}
mListener.onUpdatePrankProgress(ctString);
}
break;
case Constants.SOCKET_KICK://踢人
systemChatMessage2(map.getString("ct"));
mListener.onKick(map.getString("touid"));
break;
case Constants.SOCKET_SHUT_UP://禁言
ct = map.getString("ct");
systemChatMessage2(ct);
mListener.onShutUp(map.getString("touid"), ct);
break;
case Constants.SOCKET_SEND_MSG://文字消息,点亮,用户进房间,这种混乱的设计是因为服务器端逻辑就是这样设计的,客户端无法自行修改
wordLightEnterRoom(map, received);
L.e("收到socket---> 文字消息" + socketMsg);
break;
case Constants.SOCKET_LIGHT://飘心
mListener.onLight();
break;
case Constants.SOCKET_SEND_GIFT://送礼物
sendGiftInSameRoom(map);
break;
// case Constants.SOCKET_SEND_GIFT://送礼物
// ////////pk
// break;
case Constants.SOCKET_LIVE_DRPK_RANDOM:
case Constants.SOCKET_LIVE_DRPK://多人PK
L.eSw("多人PK map" + new Gson().toJson(map));
int action3 = map.getIntValue("action");
//收到多人PK邀请
if (action3 == 1) {
UserBean u = new UserBean();
u.setUserNiceName(map.getString("uname"));
u.setId(map.getString("uid"));
mListener.onLinkDRMicPkApply(u);
} else if (action3 == 2) {
//收到对方同意多人PK邀请
UserBean u = new UserBean();
// u.setUserNiceName(map.getString("uname"));
u.setId(map.getString("pkuid"));
L.eSw("action3 == 2:" + u.getId());
L.eSw("收到对方同意多人PK邀请");
DRPKing = 0;
mListener.onLinkDRMicPkApplyOk(u);
} else if (action3 == 6) {//开始Pk
if (LiveRoomViewHolder.mHandler != null) {
LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
}
// LiveRoomViewHolder.UpPkBar(map.getJSONArray("userlist"), mLiveUid, map.getIntValue("drpk_time"));
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LEAVE_PK_SCORE).setPkScores(map.getJSONArray("userlist")).setUid(mLiveUid).setTime(map.getIntValue("drpk_time")));
if (livePushSwViewHolder == null) {
// LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
}
DRPKing = 1;
} else if (action3 == 5) {//结束PK
// endDRGif();
L.eSw("PK结束");
LiveRoomViewHolder.d_pk_view.setVisibility(View.GONE);
if (LiveSwAnchorActivity.mLiveAnchorViewHolder != null) {
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
params.topMargin = 0;
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LEAVE_DR_ROOM));
isDRPK = 0;
} else {
// LiveAudienceActivity.getmLivePlayViewHolder().setPkEndview();
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_END_VIEW));
}
SWManager.get().setDrPkNumClarity(1);//退出直播间,将分别率设置为 VD_840x480
//創建了多人房間
} else if (action3 == 3) {
L.eSw("創建了多人房間action3 == 3");
/* if (LiveAudienceActivity.getmLivePlayViewHolder() != null) {
LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
}*/
isDRPK = 1;
DRPKing = 0;
if (livePushSwViewHolder == null) {
if ("4".equals(map.getString("msgtype"))) {
return;
}
UserBean u = new UserBean();
// u.setUserNiceName(map.getString("uname"));
u.setId(map.getString("uid"));
if (StringUtil.isEmpty(u.getId())) {
return;
}
L.eSw("通知用户 action3 == 3:" + u.getId());
mListener.onLinkDRMicPKToUser(u);
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
}
} else if (action3 == 10) {
//显示pk分数
if (!map.getString("uid").equals(CommonAppConfig.getInstance().getUid())) {
// LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
}
} else if (action3 == 7) {
L.eSw("主播退出直播間:"+map.getString("uid"));
mListener.onLinkDRMicPkQuit(map.getString("uid"));
//清除已邀请人数
if(LiveSwAnchorActivity.mLiveAnchorViewHolder!=null){
LiveSwAnchorActivity.mLiveAnchorViewHolder.removeYaoqing(map.getString("uid"));
}
}
break;
case Constants.SOCKET_ALL_SERVER_NOTIFY://全服通知
int action2 = map.getIntValue("action");
if (action2 == 71) {
LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
receiveGiftBean.setVipName(map.getString("ct"));
receiveGiftBean.setSendtype(map.getIntValue("action"));
receiveGiftBean.setAllServerNotify(true);
mListener.onSys(receiveGiftBean);
} else if (action2 == 61) {//赠送礼物
sendGiftByNotify(map);
} else if (action2 == 62) {//购买守护
// buyGuardByNotify(map);
// }else if (action2 == 63){
} else if (action2 == 63) {//购买vip
buyVipByNotify(map);
} else if (action2 == 64) {//购买靓号
buyLiangNameByNotify(map);
} else if (action2 == 65) {//购买坐骑
buyZuoJiByNotify(map);
} else if (action2 == 66) {//购买贵族
buyVipByNotify(map);
} else if (action2 == 88) {
JSONObject mCt = map.getJSONObject("ct");
String boxType = map.getString("box_type");
String boxTypeName = "";
if (TextUtils.equals(boxType, "1")) {
boxTypeName = WordUtil.isNewZh() ? "迷你盲盒" : "Mini blind box";
} else if (TextUtils.equals(boxType, "2")) {
boxTypeName = WordUtil.isNewZh() ? "典藏盲盒" : "Collection blind box";
} else {
boxTypeName = WordUtil.isNewZh() ? "POYO盲盒" : "POYO blind box";
}
AllServerNotifyEvent allServerNotifyEvent = new AllServerNotifyEvent().setBlindBoxId(map.getString("blind_box_id")).setBoxType(boxType).setBoxTypeName(boxTypeName).setDressName(WordUtil.isNewZh() ? map.getString("dress_name") : TextUtils.isEmpty(map.getString("dress_nameen")) ? map.getString("dress_name") : map.getString("dress_nameen")).setGiftNotification(map.getString("gift_notification")).setGiftName(WordUtil.isNewZh() ? mCt.getString("giftname") : mCt.getString("giftnameen")).setUserNiceName(map.getString("uname")).setGiftIcon(map.getString("gifticon")).setAnchorName(map.getString("ancherName")).setDisplaySrc(map.getString("display_src"));
Log.e("AllServerNotifyEvent", allServerNotifyEvent.toString());
Log.e("AllServerNotifyEvent", map.toJSONString());
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.BLIND_BOX).setAllServerNotifyEvent(allServerNotifyEvent));
} else if (action2 == 89) {//红包
JSONObject mCt = map.getJSONObject("ct");
AllServerNotifyEvent allServerNotifyEvent = new AllServerNotifyEvent().setUserNiceName(mCt.getString("user_nicename")).setGiftName(WordUtil.isNewZh() ? map.getString("giftname") : map.getString("giftname_en")).setGiftIcon(mCt.getString("gifticon")).setRedPacket(true);
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.BLIND_BOX).setAllServerNotifyEvent(allServerNotifyEvent));
} else if (action2 == 90) {
NewAllServerNotifyGuardEvent notifyGuardEvent = GsonUtils.fromJson(map.toString(), NewAllServerNotifyGuardEvent.class);
Bus.get().post(notifyGuardEvent);
if(mLiveUid.equals(map.getString("liveuid"))){
buyGuardInSameRoom(map);
}
} else if (action2 == 91) {
AllServerNotifyFFGGGDJANEvent notifyFFGGGDJANEvent = GsonUtils.fromJson(map.toString(), AllServerNotifyFFGGGDJANEvent.class);
Bus.get().post(notifyFFGGGDJANEvent);
}
break;
case Constants.SOCKET_SEND_BARRAGE://发弹幕
LiveDanMuBean liveDanMuBean2 = new LiveDanMuBean();
liveDanMuBean2.setAvatar(map.getString("uhead"));
liveDanMuBean2.setUserNiceName(map.getString("uname"));
liveDanMuBean2.setContent(map.getString("ct"));
if (map.containsKey("fansLevel")) {
liveDanMuBean2.setFensLevel(map.getInteger("fansLevel"));
}
mListener.onSendDanMu(liveDanMuBean2);
break;
case Constants.SOCKET_LEAVE_ROOM://离开房间
UserBean u = JSON.parseObject(map.getString("ct"), UserBean.class);
mListener.onLeaveRoom(u);
break;
case Constants.SOCKET_LIVE_END://主播关闭直播
int action = map.getIntValue("action");
if (action == 18) {
mListener.onLiveEnd();
LiveEndViewHolder.upData(map.getString("votes"), map.getString("length"), map.getIntValue("nums"), map.getString("uname"));
if(map.containsKey("riskhType")){
Bus.get().post(new BanDownLiveEvent(
WordUtil.isNewZh()?map.getString("riskDescription"):map.getString("enRiskDescription"),
WordUtil.isNewZh()?map.getString("riskDescription"):map.getString("enRiskDescription"),
WordUtil.isNewZh()?map.getString("riskhType"):map.getString("enRiskhType"),
map.getString("date")
));
}
} else if (action == 19) {
mListener.onAnchorInvalid();
}
//主播强制下播
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIVE_END).setVotes(map.getString("votes")).setLength(map.getString("length")).setNums(map.getIntValue("nums")).setUname(map.getString("uname")));
break;
case Constants.SOCKET_CHANGE_LIVE://主播切换计时收费类型
mListener.onChangeTimeCharge(map.getIntValue("type_val"));
break;
case Constants.SOCKET_UPDATE_VOTES:
mListener.onUpdateVotes(map.getString("uid"), map.getString("votes"), map.getIntValue("isfirst"));
break;
case Constants.SOCKET_FAKE_FANS:
JSONObject obj = map.getJSONObject("ct");
String s = obj.getJSONObject("data").getJSONArray("info").getJSONObject(0).getString("list");
L.e("僵尸粉--->" + s);
List<LiveUserGiftBean> list = JSON.parseArray(s, LiveUserGiftBean.class);
mListener.addFakeFans(list);
break;
case Constants.SOCKET_SET_ADMIN://设置或取消管理员
systemChatMessage2(map.getString("ct"));
mListener.onSetAdmin(map.getString("touid"), map.getIntValue("action"));
break;
case Constants.SUPER_VISION://设置或取消管理员
systemChatMessage2(map.getString("ct"));
break;
case Constants.SOCKET_BUY_GUARD://购买守护
buyGuardInSameRoom(map);
break;
case Constants.SOCKET_LINK_MIC://连麦-old
processLinkMic(map);
break;
case Constants.SOCKET_LINK_MIC_ANCHOR://主播连麦
processLinkMicAnchor(map);
break;
case Constants.SOCKET_LINK_MIC_PK://主播PK
processAnchorLinkMicPk(map);
break;
case Constants.SOCKET_RED_PACK://红包消息
String uid = map.getString("uid");
if (TextUtils.isEmpty(uid)) {
return;
}
LiveChatBean liveChatBean = new LiveChatBean();
liveChatBean.setType(LiveChatBean.RED_PACK);
liveChatBean.setId(uid);
String name = uid.equals(mLiveUid) ? mContext.getString(R.string.live_anchor) : map.getString("uname");
liveChatBean.setContent(name + map.getString("ct"));
mListener.onRedPack(liveChatBean);
break;
case Constants.SOCKET_LUCK_WIN://幸运礼物中奖
mListener.onLuckGiftWin(map.toJavaObject(LiveLuckGiftWinBean.class));
break;
case Constants.SOCKET_PRIZE_POOL_WIN://奖池中奖
mListener.onPrizePoolWin(map.toJavaObject(LiveGiftPrizePoolWinBean.class));
break;
case Constants.SOCKET_PRIZE_POOL_UP://奖池升级
mListener.onPrizePoolUp(map.getString("uplevel"));
break;
case Constants.SOCKET_HOUR://小时榜
liveChatBean = new LiveChatBean();
liveChatBean.setId("-1");
liveChatBean.setType(LiveChatAdapter.MSG_HOUR_RANK_CHANGE);
liveChatBean.setContent(map.getJSONObject("ct").getString("text"));
mListener.onHourRank(liveChatBean, map.getJSONObject("ct").getJSONObject("new_rank"));
break;
//游戏socket
case Constants.SOCKET_GAME_ZJH://游戏 智勇三张
if (CommonAppConfig.GAME_ENABLE) {
mListener.onGameZjh(map);
}
break;
case Constants.SOCKET_GAME_HD://游戏 海盗船长
if (CommonAppConfig.GAME_ENABLE) {
mListener.onGameHd(map);
}
break;
case Constants.SOCKET_GAME_ZP://游戏 幸运转盘
if (CommonAppConfig.GAME_ENABLE) {
mListener.onGameZp(map);
}
break;
case Constants.SOCKET_GAME_NZ://游戏 开心牛仔
if (CommonAppConfig.GAME_ENABLE) {
mListener.onGameNz(map);
}
break;
case Constants.SOCKET_GAME_EBB://游戏 二八贝
if (CommonAppConfig.GAME_ENABLE) {
mListener.onGameEbb(map);
}
break;
case Constants.SOCKET_SEND_ACTIVE_MSG://新增,活动聊天显示
sendActiveMsg(map, received);
break;
case Constants.SOCKET_PRANKTURNTABLE://新增,整蛊消息
mListener.prankTurntable(map.getString("msgtype"), map.getIntValue("time"), JSON.parseObject(map.getString("ct")));
String msgtype = map.getString("msgtype");
JSONObject jsonObject = JSON.parseObject(map.getString("ct"));
// if ("1".equals(msgtype)) {//新年大作战活动
LiveChatBean chatBean = new LiveChatBean();
chatBean.setId(jsonObject.getString("uid"));
chatBean.setUserNiceName(jsonObject.getString("user_nicename"));
if ("1".equals(map.getString("msgtype"))) {
chatBean.setType(-3);
} else {
chatBean.setType(-4);
}
chatBean.setContent(jsonObject.getString("content"));
chatBean.setBubble(jsonObject.getString("display_src"));
chatBean.setMedal(jsonObject.getString("hope_nicename"));//做为拯救人名字
chatBean.setAnchorName(jsonObject.getString("anchor_nicename"));
mListener.onChat(chatBean, 1);
// }
break;
case Constants.SOCKET_USEHOTCARD://新增,热度卡消息
// mListener.prankTurntable(map.getString("msgtype"), map.getIntValue("time"), JSON.parseObject(map.getString("ct")));
JSONObject jsonObject2 = JSON.parseObject(map.getString("ct"));
LiveChatBean chatBean2 = new LiveChatBean();
chatBean2.setType(-6);
chatBean2.setBubble(jsonObject2.getString("system_bubble"));
chatBean2.setId(jsonObject2.getString("user_id"));
chatBean2.setUserNiceName(jsonObject2.getString("user_name"));
chatBean2.setHot_num(jsonObject2.getString("hot_num"));
chatBean2.setHot_card(jsonObject2.getString("hot_card"));
getIsHot();
mListener.onChat(chatBean2, 1);
break;
case Constants.LOVE_CHECK://甜蜜
JSONObject jsonObject3 = JSON.parseObject(map.getString("ct"));
LiveChatBean chatBean3 = new LiveChatBean();
chatBean3.setType(-7);
chatBean3.setBubble(jsonObject3.getString("system_bubble"));
chatBean3.setId(jsonObject3.getString("user_id"));
chatBean3.setUserNiceName(jsonObject3.getString("user_name"));
chatBean3.setHot_num(jsonObject3.getString("gift_name"));
mListener.onChat(chatBean3, 1);
break;
case Constants.TRUMPET_NOTIFY://全站喇叭
SocketModel model = GsonUtils.fromJson(socketMsg, SocketModel.class);
List<MsgModel> msg = model.getMsg();
if (msg.size() > 0) {
// EventBus.getDefault().post(msg.get(0));
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.TRUMPET_NOTIFY).setMsgModel(msg.get(0)));
}
break;
case Constants.RECOMMEND_CARD_NOTIFY://推荐卡消息通知
SocketModel recommendCardNotifyModel = GsonUtils.fromJson(socketMsg, SocketModel.class);
List<MsgModel> recommendCardNotifyMsg = recommendCardNotifyModel.getMsg();
if (recommendCardNotifyMsg.size() > 0) {
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.RECOMMEND_CARD_NOTIFY).setMsgModel(recommendCardNotifyMsg.get(0)));
}
break;
case Constants.STAR_CHALLENGE_UPDATE://星级助力
// SocketModel starChallengeModel = GsonUtils.fromJson(socketMsg, SocketModel.class);
// List<MsgModel> starChallengeMsg = starChallengeModel.getMsg();
// if (starChallengeMsg.size() > 0) {
//
// Bus.get().post(new LiveAudienceEvent()
// .setType(LiveAudienceEvent.LiveAudienceType.START_MESSAGE)
// .setMsgModel(starChallengeMsg.get(0)));
// }
break;
case Constants.AI_AUTOMATIC_SPEECH:
case Constants.AI_AUTOMATIC_SPEECH_LIVE:
//{"name_color":"#f19ec2","ai_name":"助手小小P","content":"@1 ","user_name":"1","icon":"https://downs.yaoulive.com/xzs_tab.png","system_bubble":"https://downs.yaoulive.com/xzs_qipao.9.png"}
AiAutomaticSpeechModel aiAutomaticSpeechModel = GsonUtils.fromJson(map.getString("ct"), AiAutomaticSpeechModel.class);
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.AI_AUTOMATIC_SPEECH).setAiAutomaticSpeechModel(aiAutomaticSpeechModel));
break;
case Constants.STAR_CHALLENGE_UPGRADE_NOTIFY:
SocketModel starChallengeUpgradeNotify = GsonUtils.fromJson(socketMsg, SocketModel.class);
List<MsgModel> starChallengeUpgradeNotifyMsg = starChallengeUpgradeNotify.getMsg();
if (starChallengeUpgradeNotifyMsg.size() > 0) {
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.STAR_CHALLENGE_UPGRADE_NOTIFY).setMsgModel(starChallengeUpgradeNotifyMsg.get(0)));
}
break;
case Constants.LuckyAngel:
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LUCKY_ANGEL).setMsgModel(GsonUtils.fromJson(map.getJSONObject("ct").toString(), MsgModel.class)));
break;
case Constants.Lucky100Check:
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LUCKY_100_CHECK).setMsgModel(GsonUtils.fromJson(map.getJSONObject("ct").toString(), MsgModel.class)));
break;
case Constants.PK_RANK_UPDATE:
Log.i("PK排位", map.toString());
JSONObject item = map.getJSONObject("ct");
PkRankBean pkRankBean = new PkRankBean();
pkRankBean.setId(Integer.parseInt(item.getString("new_rank_id")));
pkRankBean.setName(item.getString("new_rank_name"));
pkRankBean.setImg(item.getString("new_rank_img"));
pkRankBean.setNewRankNameEn(item.getString("new_rank_name_en"));
EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_RANK_UPDATE).setObject(pkRankBean));
break;
case Constants.CUSTOM_FULL_SERVICE_NOTIFY:
Log.e("全服通知", map.toString());
CustomFullServiceNotifyEvent customFullServiceNotifyEvent = GsonUtils.fromJson(map.toString(), CustomFullServiceNotifyEvent.class);
EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.CUSTOM_FULL_SERVICE_NOTIFY).setCustomFullServiceNotifyEvent(customFullServiceNotifyEvent));
break;
case Constants.XYD_COMPLETE:
// xydComplete(map);
XydCompleteModel xydCompleteModel = GsonUtils.fromJson(map.toString(), XydCompleteModel.class);
EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.XYD_COMPLETE).setXydCompleteModel(xydCompleteModel).setLiveReceiveGiftBean(JSON.parseObject(map.toString(), LiveReceiveGiftBean.class)));
break;
case "GuardSpecialEffect":
LiveReceiveGiftBean giftBean = JSON.parseObject(map.toString(), LiveReceiveGiftBean.class);
giftBean.setMedal_name(map.getString("medal_name"));
EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.GuardSpecialEffect).setLiveReceiveGiftBean(giftBean));
break;
case Constants.WISH_LIST_PROGRESS:
StringBuffer conString = new StringBuffer();
conString.append(WordUtil.isNewZh() ? map.getString("msg") : map.getString("msg_en"));
EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.WISH_LIST_PROGRESS).setWishListProgress(new WishModel().setWishlistProgress(map.getString("wishlist_progress")).setWishlistIcon(map.getString("wishlist_icon")).setWishlistName(map.getString("wishlist_name")).setWishlistNum(map.getString("wishlist_num")).setGiftType(map.getInteger("giftId")).setLuid(conString.toString())).setUname(map.getString("userName")).setLiveType(Integer.parseInt(map.getString("level"))));
break;
case Constants.LIVE_VOTE_CREATE:
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.VOTE_CREATE).setObject(map));
break;
case Constants.LIVE_VOTE_END:
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.VOTE_END).setObject(map));
EventBus.getDefault().post(new LiveAnchorEvent().setType(LiveAnchorEvent.LiveAnchorType.VOTE_ANCHOR_END).setObject(map));
break;
case Constants.LIVE_VOTE_UPDATE:
//通知给观众
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.VOTE_UPDATE).setObject(map));
//通知给主播
EventBus.getDefault().post(new LiveAnchorEvent().setType(LiveAnchorEvent.LiveAnchorType.VOTE_ANCHOR_UPDATE).setObject(map));
break;
case Constants.LIVE_PK_END:
mListener.onEndPk(map.getLong("uid"), map.getLong("pkuid"), map.getLong("uid_score"), map.getLong("pkuid_score"), JSONObject.parseObject(map.getJSONObject("ct").getJSONObject("pk_top_users").toJSONString(), LivePKUserListBean.class));
break;
case Constants.RED_PACKET:
RedPacketModel redPacketModel = GsonUtils.fromJson(map.toString(), RedPacketModel.class);
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.RED_PACKET).setRedPacketModel(redPacketModel));
break;
case Constants.RED_PACKET_SUPER_JACKPOT:
RedPacketInfoModel redPacketInfoModel = GsonUtils.fromJson(map.toString(), RedPacketInfoModel.class);
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.RED_PACKET_SUPER_JACKPOT).setRedPacketInfoModel(redPacketInfoModel));
break;
case "GiftWallIlluminate":
Log.e("GiftWallIlluminate", map.toString());
Bus.get().post(new GiftWallIlluminateEvent().setNewNumber(map.getInteger("new_number")).setMaxNumber(map.getInteger("max_number")));
break;
case SOCKET_LIVE_MSG_TO_USER:
sendToUserMsg(map);
break;
case "SudGameCreateRoom":
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SUD_GAME_CREATE_ROOM).setAvatar(WordUtil.isNewZh() ? map.getString("sud_game_name") : map.getString("sud_game_name_en")).setCreateSudRoomModel(GsonUtils.fromJson(map.toString(), SudGameDateModel.class)));
break;
case "sendQuickGift":
SendQuickGiftModel sendQuickGiftModel = GsonUtils.fromJson(map.toString(), SendQuickGiftModel.class);
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(sendQuickGiftModel.getUserNicename()).append(WordUtil.isNewZh() ? " 送出了 " : " sent ").append(sendQuickGiftModel.getQuickGiftNumber()).append(WordUtil.isNewZh() ? " 個小熊 " : " small pandas ");
systemChatMessage2(stringBuffer.toString());
Bus.get().post(new QuickGiftingEvent().setHotNum(sendQuickGiftModel.getHotNum()));
break;
case Constants.LIVE_PK_RANDOM_START:
item = map.getJSONObject("ct");
item.getString("text");
item.getString("pktt_img");
item.getString("uid_win_continuity");
item.getString("pkuid_win_continuity");
pkRankBean = new PkRankBean();
pkRankBean.setBlueVal(item.getString("pkuid_win_continuity"));
pkRankBean.setRedVal(item.getString("uid_win_continuity"));
pkRankBean.setPkTopImgUrl(item.getString("pktt_img"));
EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_RANK_START).setObject(pkRankBean));
break;
case "guardMaturityDateRemind":
GuardMaturityDateRemindModel maturityDateRemindModel = GsonUtils.fromJson(map.toString(), GuardMaturityDateRemindModel.class);
Bus.get().post(maturityDateRemindModel);
break;
case "SendMoneyLong":
SendMoneyLongModel sendMoneyLongModel = GsonUtils.fromJson(map.toString(), SendMoneyLongModel.class);
Bus.get().post(sendMoneyLongModel);
break;
case "SendMoneyLongEnd":
Bus.get().post(new SendMoneyLongEndEvent());
break;
case Constants.SOCKET_LIVE_ANCHOR_PK_DIALOG:
item = map.getJSONObject("ct");
//DialogUitl.showSimpleDialog(mContext,WordUtil.isNewZh()?item.getString("text"):item.getString("text_en"),null);
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.LIVE_DIALOG_ANCHOR_TIPS)
.setObject(WordUtil.isNewZh() ? item.getString("text") : item.getString("text_en")));
case Constants.SOCKET_SEND_NEW_TASK_PUSH:
item = map.getJSONObject("ct");
if(CommonAppConfig.getInstance().getUid().equals(item.getString("uid"))){
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIVE_AUTHOR_NEW_TASK_PUSH).setUid(item.getString("uid")).setHrefUrl(item.getString("href")));
}
break;
case Constants.SOCKET_SEND_NEW_TASK_IM:
item = map.getJSONObject("ct");
if(CommonAppConfig.getInstance().getUid().equals(item.getString("uid"))){
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIVE_AUTHOR_GIFT_PUSH).setUid(item.getString("uid")).setHrefUrl(item.getString("href")));
}
break;
}
}
private void buyGuardInSameRoom(JSONObject map) {
if (TextUtils.isEmpty(map.getString("ancherName")) || TextUtils.isEmpty(map.getString("uname")))
return;
String guardName = WordUtil.isNewZh() ? "星之守護" : "Star Guardian";
switch (map.getIntValue("guard_type")) {
case 1:
guardName = WordUtil.isNewZh() ? "星之守護" : "Star Guardian";
break;
case 2:
guardName = WordUtil.isNewZh() ? "王之守護" : "King Guardian";
break;
case 3:
guardName = WordUtil.isNewZh() ? "神之守護" : "God Guardian";
break;
}
String content = WordUtil.isNewZh() ? "%s在%s的直播間開通了%s" : "%s has been opened in %s live broadcast room %s";
content = String.format(content, map.getString("uname"), map.getString("ancherName"), guardName);
LiveBuyGuardMsgBean buyGuardMsgBean = new LiveBuyGuardMsgBean();
buyGuardMsgBean.setUid(map.getString("uid"));
buyGuardMsgBean.setUserName(content);
buyGuardMsgBean.setVotes(map.getString("votestotal"));
buyGuardMsgBean.setGuardNum(map.getIntValue("guard_nums"));
buyGuardMsgBean.setGuardType(map.getIntValue("guard_type"));
mListener.onBuyGuard(buyGuardMsgBean);
}
private void buyGuardByNotify(JSONObject map) {
if (mLiveUid.equals(map.getString("liveuid"))) {
// buyGuardInSameRoom(map);
//同一直播间,玩家自己开通,也能看到全服通知
String userId = CommonAppConfig.getInstance().getUid();
String uid = map.getString("uid");
if (userId.equals(uid)) {
LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
receiveGiftBean.setUserNiceName(map.getString("uname"));
receiveGiftBean.setAncherName(map.getString("ancherName"));
receiveGiftBean.setmLiveUId(mLiveUid);
receiveGiftBean.setRoomnum(map.getString("liveuid"));
receiveGiftBean.setmTypeBuyGuard(true);
receiveGiftBean.setUid(uid);
receiveGiftBean.setGuardType(map.getString("guard_type"));
receiveGiftBean.setSendtype(map.getIntValue("action"));
mListener.onSendGift(receiveGiftBean, null);
}
} else {
LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
receiveGiftBean.setUserNiceName(map.getString("uname"));
receiveGiftBean.setAncherName(map.getString("ancherName"));
receiveGiftBean.setmLiveUId(mLiveUid);
receiveGiftBean.setRoomnum(map.getString("liveuid"));
receiveGiftBean.setmTypeBuyGuard(true);
receiveGiftBean.setUid(map.getString("uid"));
receiveGiftBean.setGuardType(map.getString("guard_type"));
receiveGiftBean.setSendtype(map.getIntValue("action"));
mListener.onSendGift(receiveGiftBean, null);
}
}
private void buyZuoJiByNotify(JSONObject map) {
LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
receiveGiftBean.setUserNiceName(map.getString("nickname"));
receiveGiftBean.setCarName(map.getString("carname"));
receiveGiftBean.setSendtype(map.getIntValue("action"));
mListener.onBuyZuoji(receiveGiftBean);
}
private void buyLiangNameByNotify(JSONObject map) {
LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
receiveGiftBean.setUserNiceName(map.getString("nickname"));
receiveGiftBean.setLiangName(map.getString("liangname"));
receiveGiftBean.setSendtype(map.getIntValue("action"));
mListener.onBuyLiangName(receiveGiftBean);
}
private void buyVipByNotify(JSONObject map) {
LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
receiveGiftBean.setUserNiceName(map.getString("nicename"));
receiveGiftBean.setVipName(map.getString("ct"));
receiveGiftBean.setAvatar(map.getString("notice"));
receiveGiftBean.setAllServerNotify(true);
receiveGiftBean.setmLiveUId(map.getString("anchorUid"));
receiveGiftBean.setGifUrl(map.getString("special_src"));
receiveGiftBean.setVipTime(map.getString("viplength"));
receiveGiftBean.setRoomnum(map.getString("anchorUid"));
receiveGiftBean.setAncherName(map.getString("ancherName"));
receiveGiftBean.setNobilityid(map.getString("nobilityid"));
receiveGiftBean.setNobilityname(map.getString("nobilityname"));
receiveGiftBean.setOpentype(map.getString("opentype"));
receiveGiftBean.setSendtype(map.getIntValue("action"));
receiveGiftBean.setSendtype(map.getIntValue("action"));
receiveGiftBean.setUname(map.getString("uname"));
receiveGiftBean.setUhead(map.getString("uhead"));
if (map.getString("notice").equals("1")) {
LiveRoomViewHolder.paygzGif(map.getString("special_src"), map.getString("anchorUid"));
}
mListener.onBuyVip(receiveGiftBean);
}
private void sendActiveMsg(JSONObject map, SocketReceiveBean received) {
String msgtype = map.getString("msgtype");
if ("1".equals(msgtype)) {//新年大作战活动
LiveChatBean chatBean = new LiveChatBean();
chatBean.setId(map.getString("uid"));
chatBean.setMedalLevelImageUrl(map.getString("monster_str"));//昵称暂时做为活动图片地址
chatBean.setContent(map.getString("url"));//暂时做为活动链接地址
chatBean.setUserNiceName(map.getString("activename"));
chatBean.setType(6);
mListener.onChat(chatBean, 0);
}
}
/**
* 七日留存新用户主播端弹幕显示接口
*/
private void sendToUserMsg(JSONObject map) {
LiveChatBean bean = new LiveChatBean();
bean.setId(map.getString("uid"));
bean.setAtUserID(map.getString("toUserID"));
bean.setContent(map.getString("ct"));
bean.setType(LiveChatBean.TYPE_TO_USER_MSG);
bean.setUserNiceName(map.getString("user_nicename"));
bean.setToUid(CommonAppConfig.getInstance().getUid());
mListener.onChat(bean, 1);
}
private void wordLightEnterRoom(JSONObject map, SocketReceiveBean received) {
String msgtype = map.getString("msgtype");
if ("2".equals(msgtype)) {//发言,点亮
if ("409002".equals(received.getRetcode())) {
ToastUtil.show(WordUtil.isNewZh() ? "你已經被禁言" : "You\'ve been banned");
return;
}
//禁言别人,自己发言只能自己看到
if ("409100".equals(received.getRetcode())) {
String uid = map.getString("uid");
if (uid == null || !uid.equals(CommonAppConfig.getInstance().getUid())) {
return;
}
}
LiveChatBean chatBean = new LiveChatBean();
chatBean.setId(map.getString("uid"));
chatBean.setUserNiceName(map.getString("uname"));
chatBean.setLevel(map.getIntValue("level"));
chatBean.setAnchor(map.getIntValue("isAnchor") == 1);
chatBean.setManager(map.getIntValue("usertype") == Constants.SOCKET_USER_TYPE_ADMIN);
chatBean.setContent(map.getString("ct"));
int heart = map.getIntValue("heart");
chatBean.setHeart(heart);
if (heart > 0) {
chatBean.setType(LiveChatBean.LIGHT);
}
chatBean.setLiangName(map.getString("liangname"));
chatBean.setBubble(map.getString("bubble"));
chatBean.setMedal(map.getString("medal"));
chatBean.setMedal_new(map.getString("medal_new"));
chatBean.setVipType(map.getIntValue("vip_type"));
chatBean.setVipType(map.getIntValue("vip_type"));
chatBean.setMedal_honor(map.getString("medal_honor"));
chatBean.setGood_nub(map.getString("good_num"));
chatBean.setNobleId(map.getString("noble_id"));//貴族ID
chatBean.setStartColor(map.getString("startColor"));//昵称开始颜色
chatBean.setEndColor(map.getString("endColor"));//昵称结束颜色
chatBean.setContentColor(map.getString("contentColor"));//文字内容颜色
chatBean.setAtUserName(map.getString("atUserName"));//@名字
chatBean.setAtUserID(map.getString("atUserID"));//@ID
if (map.containsKey("guard_type") && !map.getString("guard_type").equals("undefined")) {
chatBean.setGuardType(map.getIntValue("guard_type"));
}
try {
//增加粉丝徽章信息
chatBean.setMedalNmae(map.getString("medal_name"));
chatBean.setMedal_new_en(map.getString("medal_new_en"));
FansModel fansMedalBean = new NewLevelManager(mContext).getFansModel(map.getIntValue("medal_level"));
if (fansMedalBean != null)
chatBean.setMedalLevelImageUrl(fansMedalBean.getThumb());
} catch (Exception e) {
e.printStackTrace();
}
if (!"".equals(map.getString("prankIcon")) && map.getString("prankIcon") != null) {
chatBean.setPrankIcon(map.getString("prankIcon"));
chatBean.setType(-5);
}
mListener.onChat(chatBean, 1);
} else if ("0".equals(msgtype)) {//用户进入房间
JSONObject obj = JSON.parseObject(map.getString("ct"));
LiveUserGiftBean u = GsonUtils.fromJson(obj.toJSONString(), LiveUserGiftBean.class);
UserBean.Vip vip = new UserBean.Vip();
int vipType = obj.getIntValue("vip_type");
vip.setType(vipType);
u.setVip(vip);
UserBean.Car car = new UserBean.Car();
car.setId(obj.getIntValue("car_id"));
car.setSwf(obj.getString("car_swf"));
car.setSwftime(obj.getFloatValue("car_swftime"));
car.setWords(obj.getString("car_words"));
u.setCar(car);
UserBean.Liang liang = new UserBean.Liang();
String liangName = obj.getString("liangname");
liang.setName(liangName);
u.setLiang(liang);
LiveChatBean chatBean = new LiveChatBean();
chatBean.setType(LiveChatBean.ENTER_ROOM);
chatBean.setId(u.getId());
chatBean.setMedal_honor(map.getString("medal_honor"));
chatBean.setGood_nub(map.getString("good_num"));
chatBean.setUserNiceName(u.getUserNiceName());
chatBean.setLevel(u.getLevel());
chatBean.setVipType(vipType);
chatBean.setLiangName(liangName);
chatBean.setBubble(obj.getString("bubble"));
chatBean.setMedal(obj.getString("medal"));
chatBean.setMedal_new(obj.getString("medal_new"));
chatBean.setMedal_new_en(obj.getString("medal_new_en"));
chatBean.setHot_num(obj.getString("hot_num"));
UserBean.DressBean dressBean = new UserBean.DressBean();
dressBean.setAvatar_frame(obj.getString("avatar_frame"));
u.setDress(dressBean);
chatBean.setManager(obj.getIntValue("usertype") == Constants.SOCKET_USER_TYPE_ADMIN);
chatBean.setContent(mContext.getString(R.string.live_enter_room));
chatBean.setGuardType(obj.getIntValue("guard_type"));
chatBean.setNobleId(obj.getString("noble_id"));//貴族ID
chatBean.setStartColor(obj.getString("startColor"));//昵称开始颜色
chatBean.setEndColor(obj.getString("endColor"));//昵称结束颜色
chatBean.setContentColor(obj.getString("contentColor"));//文字内容颜色
chatBean.setNobleIcon(obj.getString("noble_icon"));//貴族圖標
chatBean.setBubbleSrc(obj.getString("bubbleSrc"));//氣泡
//增加粉丝徽章信息
chatBean.setMedalNmae(obj.getString("medal_name"));
chatBean.setUserNiceName(obj.getString("user_nicename"));//名字
CommonAppConfig.getInstance().getUserBean().getDress().setMedal_new_en(obj.getString("medal_new_en"));
FansModel fansMedalBean = new NewLevelManager(mContext).getFansModel(map.getIntValue("medal_level"));
u.setFansLevel(obj.getIntValue("medal_level"));
u.setFansEnterRoomUrl(obj.getString("medal_backgroup_thumb"));
if (fansMedalBean != null) chatBean.setMedalLevelImageUrl(fansMedalBean.getThumb());
mListener.onEnterRoom(new LiveEnterRoomBean(u, chatBean));
}
}
//送礼物 全服通知
private void sendGiftByNotify(JSONObject map) {
LiveReceiveGiftBean receiveGiftBean = JSON.parseObject(map.getString("ct"), LiveReceiveGiftBean.class);
receiveGiftBean.setAvatar(map.getString("uhead"));
receiveGiftBean.setUserNiceName(map.getString("uname"));
receiveGiftBean.setRoomnum(map.getString("roomnum"));
receiveGiftBean.setAncherName(map.getString("ancherName"));
receiveGiftBean.setHot_num(map.getString("hot_num"));
receiveGiftBean.setSendtype(map.getIntValue("action"));
receiveGiftBean.setmLiveUId(mLiveUid);
receiveGiftBean.setmTypeBuyGuard(false);
//全服通知时,不通知主播
receiveGiftBean.setAllServerNotify(true);
LiveChatBean chatBean = new LiveChatBean();
chatBean.setUserNiceName(receiveGiftBean.getUserNiceName());
chatBean.setLevel(receiveGiftBean.getLevel());
chatBean.setBubble(map.getString("bubble"));
chatBean.setMedal(map.getString("medal"));
chatBean.setId(map.getString("uid"));
chatBean.setMedal_honor(map.getString("medal_honor"));
chatBean.setGood_nub(map.getString("good_num"));
chatBean.setLiangName(map.getString("liangname"));
chatBean.setVipType(map.getIntValue("vip_type"));
chatBean.setType(LiveChatBean.GIFT);
//增加粉丝徽章信息
chatBean.setMedalNmae(map.getString("medal_name"));
FansModel fansMedalBean = new NewLevelManager(mContext).getFansModel(map.getIntValue("medal_level"));
if (fansMedalBean != null) chatBean.setMedalLevelImageUrl(fansMedalBean.getThumb());
//聊天列表显示 玩家名 送 1 个 礼物名
if (CommonAppContext.lang.equals("chinese")) {
chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + receiveGiftBean.getGiftCount() + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftName());
} else {
chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + " " + +receiveGiftBean.getGiftCount() + " " + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftnameen());
}
receiveGiftBean.setLiveChatBean(chatBean);
if (map.getIntValue("ifpk") == 1) {
if (!TextUtils.isEmpty(mLiveUid)) {
//获取PK排名数据
LivePKUserListBean livePKUserListBean = JSON.parseObject(receiveGiftBean.getPkTopUsers(), LivePKUserListBean.class);
if (mLiveUid.equals(map.getString("roomnum"))) {
if (!mLiveUid.equals(map.getString("roomnum"))) {
mListener.onSendGift(receiveGiftBean, null);
}
//同一个直播间时才刷新pk
mListener.onSendGiftPk(map.getLongValue("pktotal1"), map.getLongValue("pktotal2"), livePKUserListBean);
} else {
if (!mLiveUid.equals(map.getString("roomnum"))) {
mListener.onSendGift(receiveGiftBean, null);
}
//同一个直播间时才刷新pk
if (mLiveUid.equals(map.getString("pkuid1")) || mLiveUid.equals(map.getString("pkuid2"))) {
mListener.onSendGiftPk(map.getLongValue("pktotal2"), map.getLongValue("pktotal1"), livePKUserListBean);
}
}
}
} else {
if (!mLiveUid.equals(map.getString("roomnum"))) {
mListener.onSendGift(receiveGiftBean, null);
}
}
}
private void xydComplete(JSONObject map) {
LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
receiveGiftBean.setAvatar(map.getString("uhead") + "");
receiveGiftBean.setUserNiceName(map.getString("uname"));
receiveGiftBean.setRoomnum(map.getString("roomnum"));
receiveGiftBean.setAncherName(map.getString("ancherName"));
receiveGiftBean.setHot_num(map.getString("hot_num"));
receiveGiftBean.setDrpk_status(map.getString("drpk_status"));
receiveGiftBean.setGitType(map.getInteger("swftype "));
receiveGiftBean.setmLiveUId(mLiveUid);
receiveGiftBean.setmTypeBuyGuard(false);
receiveGiftBean.setAllServerNotify(false);
receiveGiftBean.setGifUrl(map.getString("svg"));
LiveChatBean chatBean = new LiveChatBean();
chatBean.setUserNiceName(receiveGiftBean.getUserNiceName());
chatBean.setLevel(receiveGiftBean.getLevel());
chatBean.setMedal_honor(map.getString("medal_honor"));
chatBean.setId(map.getString("uid"));
chatBean.setLiangName(map.getString("liangname"));
chatBean.setVipType(map.getIntValue("vip_type"));
chatBean.setBubble(map.getString("bubble"));
chatBean.setMedal(map.getString("medal"));
chatBean.setMedal_new(map.getString("medal_new"));
chatBean.setGood_nub(map.getString("good_num"));
chatBean.setType(LiveChatBean.GIFT);
if (map.get("guard_type") != null && !"".equals(map.get("guard_type")) && !"null".equals(map.get("guard_type"))) {
chatBean.setGuardType(map.getInteger("guard_type"));
}
if (CommonAppContext.lang.equals("chinese")) {
chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + receiveGiftBean.getGiftCount() + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftName());
} else {
chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + " " + +receiveGiftBean.getGiftCount() + " " + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftnameen());
}
mListener.onSendGift(receiveGiftBean, null);
}
// 玩家自己送礼物
private void sendGiftInSameRoom(JSONObject map) {
String ctJson = map.getString("ct");
SendBlindGiftEvent sendBlindGiftEvent = JSON.parseObject(ctJson, SendBlindGiftEvent.class);
LiveReceiveGiftBean receiveGiftBean = JSON.parseObject(map.getString("ct"), LiveReceiveGiftBean.class);
sendBlindGiftEvent.setUserNiceName(map.getString("uname"));
receiveGiftBean.setAvatar(map.getString("uhead") + "");
receiveGiftBean.setUserNiceName(map.getString("uname"));
receiveGiftBean.setRoomnum(map.getString("roomnum"));
receiveGiftBean.setAncherName(map.getString("ancherName"));
receiveGiftBean.setHot_num(map.getString("hot_num"));
receiveGiftBean.setDrpk_status(map.getString("drpk_status"));
receiveGiftBean.setNamingCoin(map.getString("naming_live_name"));
receiveGiftBean.setNamingLiveName(map.getString("naming_live_name"));
receiveGiftBean.setNamingUid(map.getString("naming_uid"));
receiveGiftBean.setNamingLiveuid(map.getString("naming_liveuid"));
receiveGiftBean.setNamingUserId(map.getString("naming_user_id"));
receiveGiftBean.setUser_naming_status(map.getInteger("user_naming_status"));
receiveGiftBean.setmLiveUId(mLiveUid);
receiveGiftBean.setmTypeBuyGuard(false);
receiveGiftBean.setAllServerNotify(false);
sendBlindGiftEvent.setGiftname_en(map.getString("giftname_en"));
//获取PK排名数据
LivePKUserListBean livePKUserListBean = JSON.parseObject(receiveGiftBean.getPkTopUsers(), LivePKUserListBean.class);
LiveChatBean chatBean = new LiveChatBean();
chatBean.setUserNiceName(receiveGiftBean.getUserNiceName());
chatBean.setLevel(receiveGiftBean.getLevel());
chatBean.setMedal_honor(map.getString("medal_honor"));
chatBean.setId(map.getString("uid"));
chatBean.setLiangName(map.getString("liangname"));
chatBean.setVipType(map.getIntValue("vip_type"));
chatBean.setBubble(map.getString("bubble"));
chatBean.setMedal(map.getString("medal"));
chatBean.setMedal_new(map.getString("medal_new"));
chatBean.setGood_nub(map.getString("good_num"));
chatBean.setType(LiveChatBean.GIFT);
if (map.get("guard_type") != null && !"".equals(map.get("guard_type")) && !"null".equals(map.get("guard_type"))) {
chatBean.setGuardType(map.getInteger("guard_type"));
}
if (WordUtil.isNewZh()) {
chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + receiveGiftBean.getGiftCount() + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftName());
} else {
chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + " " + +receiveGiftBean.getGiftCount() + " " + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftnameen());
}
//增加粉丝徽章信息
chatBean.setMedalNmae(map.getString("medal_name"));
FansModel fansMedalBean = new NewLevelManager(mContext).getFansModel(map.getIntValue("medal_level"));
if (fansMedalBean != null) chatBean.setMedalLevelImageUrl(fansMedalBean.getThumb());
receiveGiftBean.setLiveChatBean(chatBean);
if (map.getIntValue("ifpk") == 1) {
try {
if (!TextUtils.isEmpty(mLiveUid)) {
if (mLiveUid.equals(map.getString("roomnum"))) {
mListener.onSendGift(receiveGiftBean, sendBlindGiftEvent);
mListener.onSendGiftPk(map.getLongValue("pktotal1"), map.getLongValue("pktotal2"), livePKUserListBean);
} else {
mListener.onSendGiftPk(map.getLongValue("pktotal2"), map.getLongValue("pktotal1"), livePKUserListBean);
}
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
Log.i("tvvs", receiveGiftBean.getLiveChatBean().getContent());
if (!TextUtils.isEmpty(sendBlindGiftEvent.getAction()) && TextUtils.equals("blind_box", sendBlindGiftEvent.getAction())) {
mListener.onSendGift(receiveGiftBean, sendBlindGiftEvent);
} else {
mListener.onSendGift(receiveGiftBean, null);
}
}
if (map.getIntValue("drpk_status") == 1) {
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LEAVE_PK_SCORE).setPkScores(map.getJSONArray("userlist")).setUid(mLiveUid).setTime(0));
// LiveRoomViewHolder.UpPkBar(map.getJSONArray("userlist"), mLiveUid, 0);
}
}
/**
* 接收到系统消息,显示在聊天栏中
*/
private void systemChatMessage(String content) {
LiveChatBean bean = new LiveChatBean();
bean.setContent(content);
bean.setType(LiveChatBean.SYSTEM);
mListener.onChat(bean, 1);
}
/**
* 接收到系统消息,显示在聊天栏中
*/
private void systemChatMessage2(String content) {
LiveChatBean bean = new LiveChatBean();
bean.setContent(content);
bean.setType(LiveChatBean.SYSTEM2);
mListener.onChat(bean, 1);
}
/**
* 处理观众与主播连麦逻辑
*/
private void processLinkMic(JSONObject map) {
int action = map.getIntValue("action");
switch (action) {
case 1://主播收到观众连麦的申请
UserBean u = new UserBean();
u.setId(map.getString("uid"));
u.setUserNiceName(map.getString("uname"));
u.setAvatar(map.getString("uhead"));
u.setSex(map.getIntValue("sex"));
u.setLevel(map.getIntValue("level"));
mListener.onAudienceApplyLinkMic(u);
break;
case 2://观众收到主播同意连麦的消息
if (map.getString("touid").equals(CommonAppConfig.getInstance().getUid())) {
mListener.onAnchorAcceptLinkMic();
}
break;
case 3://观众收到主播拒绝连麦的消息
if (map.getString("touid").equals(CommonAppConfig.getInstance().getUid())) {
mListener.onAnchorRefuseLinkMic();
}
break;
case 4://所有人收到连麦观众发过来的流地址
String uid = map.getString("uid");
if (!TextUtils.isEmpty(uid) && !uid.equals(CommonAppConfig.getInstance().getUid())) {
mListener.onAudienceSendLinkMicUrl(uid, map.getString("uname"), map.getString("playurl"));
}
break;
case 5://连麦观众自己断开连麦
mListener.onAudienceCloseLinkMic(map.getString("uid"), map.getString("uname"));
break;
case 6://主播断开已连麦观众的连麦
mListener.onAnchorCloseLinkMic(map.getString("touid"), map.getString("uname"));
break;
case 7://已申请连麦的观众收到主播繁忙的消息
if (map.getString("touid").equals(CommonAppConfig.getInstance().getUid())) {
mListener.onAnchorBusy();
}
break;
case 8://已申请连麦的观众收到主播无响应的消息
if (map.getString("touid").equals(CommonAppConfig.getInstance().getUid())) {
mListener.onAnchorNotResponse();
}
break;
case 9://所有人收到已连麦的观众退出直播间消息
mListener.onAudienceLinkMicExitRoom(map.getString("touid"));
break;
}
}
/**
* 处理主播与主播连麦逻辑
*
* @param map
*/
private void processLinkMicAnchor(JSONObject map) {
int action = map.getIntValue("action");
switch (action) {
case 1://收到其他主播连麦的邀请的回调
UserBean u = new UserBean();
u.setId(map.getString("uid"));
u.setUserNiceName(map.getString("uname"));
u.setAvatar(map.getString("uhead"));
u.setSex(map.getIntValue("sex"));
u.setLevel(map.getIntValue("level"));
u.setLevelAnchor(map.getIntValue("level_anchor"));
mListener.onLinkMicAnchorApply(u, map.getString("stream"));
break;
case 3://对方主播拒绝连麦的回调
mListener.onLinkMicAnchorRefuse();
break;
case 4://所有人收到对方主播的播流地址的回调
mListener.onLinkMicAnchorPlayUrl(map.getString("pkuid"), map.getString("pkpull"));
break;
case 5://断开连麦的回调
mListener.onLinkMicAnchorClose();
break;
case 7://对方主播正在忙的回调
mListener.onLinkMicAnchorBusy();
break;
case 8://对方主播无响应的回调
mListener.onLinkMicAnchorNotResponse();
break;
case 9://对方主播正在游戏
mListener.onlinkMicPlayGaming();
break;
}
}
/**
* 处理主播与主播PK逻辑
*
* @param map
*/
private void processAnchorLinkMicPk(JSONObject map) {
int action = map.getIntValue("action");
Log.i("Socket", "action = " + action + " json = " + map.toString());
L.eSw("处理主播与主播PK逻辑action = " + action + " json = " + map.toString());
switch (action) {
case 1://收到对方主播PK回调
UserBean u = new UserBean();
u.setId(map.getString("uid"));
u.setUserNiceName(map.getString("uname"));
u.setAvatar(map.getString("uhead"));
u.setRandomPk("11".equals(map.getString("msgtype")));
mListener.onLinkMicPkApply(u, map.getString("stream"), "11".equals(map.getString("msgtype")) ? 2 : 1);
break;
case 2://收到对方主播PK回调
L.eSw("收到对方主播PK回调");
if(RandomPkManager.getInstance().getStatus()==RandomPkManager.PK_STATUS_START){
final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK).param("action", 8);
msg1.create();
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(map.getString("uid"), conversationType, messageContent);
RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
@Override
public void onAttached(io.rong.imlib.model.Message message) {
}
@Override
public void onSuccess(io.rong.imlib.model.Message message) {
Log.e("ry", "发送成功");
if (SocketSwClient.mSocketHandler != null) {
SocketSwClient.mSocketHandler.processBroadcast(msg1.mResult.toString() + "");
}
}
@Override
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
}
});
}else{
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
mListener.onLinkMicToPk(map.getString("uid"), map.getString("uhead"), map.getString("uhead"));
mListener.onLinkMicPkStart(map.getString("uid"), map.getString("uhead"), map.getString("uname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid"));
if (livePushSwViewHolder != null) {
UserBean userBean = new UserBean();
userBean.setId(map.getString("uid"));
userBean.setAvatar(map.getString("uhead"));
userBean.setUserNiceName(map.getString("uname"));
livePushSwViewHolder.setAnPkRtc(userBean);
}
}
break;
case 3://对方主播拒绝PK的回调
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_REFUSE);
mListener.onLinkMicPkRefuse();
break;
case 4://所有人收到PK开始址的回调
L.eSw("所有人收到PK开始址的回调");
// RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_TWO_START).setObject(map.getString("pkuid")));
mListener.onLinkMicPkStart(map.getString("pkuid"), map.getString("pkhead"), map.getString("pkname"), map.getString("is_ladders"));
break;
case 5://PK时候断开连麦的回调
// if (rtcRoom != null) {
Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.DISCONNEXT_PK_TIME));
//断开连麦
HttpClient.getInstance().post("chaxunshoudongpkcishu", "chaxunshoudongpkcishu").execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
HttpClient.getInstance().get("jieshupk", "jieshupk").params("uid", CommonAppConfig.getInstance().getUid()).params("addtime", "1").params("type", "1").params("sign", "1").execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
// }
if (livePushSwViewHolder != null) {
livePushSwViewHolder.onLinkMicAnchorClose();
}
mListener.onLinkMicPkClose(1);
if (RandomPkManager.getInstance().isRandomModel()) {
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_DEFAULT);
}
break;
case 7://对方主播正在忙的回调
mListener.onLinkMicPkBusy();
break;
case 8://对方主播无响应的回调
mListener.onLinkMicPkNotResponse();
break;
case 9://pk结束的回调
mListener.onLinkMicPkEnd(map.getString("win_uid"));
EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIVE_PK_END).setObject(map.getString("uid")));
if (livePushSwViewHolder != null) {
livePushSwViewHolder.onLinkMicAnchorClose();
}
break;
case 10://系统发起PK回调
if (livePushSwViewHolder != null) {
final SocketSendBean msg1 = new SocketSendBean()
.param("_method_", SOCKET_LINK_MIC_PK).param("action", 2)
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", CommonAppConfig.getInstance().getUid())
.param("msgtype", 2).param("uid", CommonAppConfig.getInstance().getUid())
.param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
.param("is_auto", "1")
.param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
.param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
msg1.create();
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(map.getString("uid"), conversationType, messageContent);
RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
@Override
public void onAttached(io.rong.imlib.model.Message message) {
}
@Override
public void onSuccess(io.rong.imlib.model.Message message) {
}
@Override
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
Log.e("tx", "aaa" + errorCode.toString());
ToastUtil.show(errorCode.code + ":" + errorCode.msg);
}
});
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
LiveNetManager.get(mContext).getLiveInfo(map.getString("uid"), new com.yunbao.common.http.base.HttpCallback<LiveInfoModel>() {
@Override
public void onSuccess(LiveInfoModel data) {
mListener.onLinkMicToPk(map.getString("uid"), data.getAvatar(), map.getString("uhead"));
mListener.onLinkMicPkStart(map.getString("uid"), data.getAvatar(), map.getString("uname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid"));
if (livePushSwViewHolder != null) {
UserBean userBean = new UserBean();
userBean.setId(map.getString("uid"));
userBean.setAvatar(data.getAvatar());
userBean.setUserNiceName(map.getString("uname"));
livePushSwViewHolder.setAnPkRtc(userBean);
}
}
@Override
public void onError(String error) {
}
});
}
break;
}
}
}
}