1531 lines
88 KiB
Java
1531 lines
88 KiB
Java
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;
|
||
}
|
||
}
|
||
}
|
||
}
|