From 9eff246f06dafd73cad5b49619aa9347b6ff2603 Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Thu, 8 Dec 2022 13:32:26 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E9=9A=8F=E6=9C=BAPK&=E8=87=AA?= =?UTF-8?q?=E7=94=B1PK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/manager/RandomPkManager.java | 7 +- .../live/adapter/RandomPkRecyclerAdapter.java | 2 + .../presenter/LiveRyLinkMicPkPresenter.java | 101 +++++++++--------- .../yunbao/live/socket/SocketRyClient.java | 22 ++-- 4 files changed, 72 insertions(+), 60 deletions(-) diff --git a/common/src/main/java/com/yunbao/common/manager/RandomPkManager.java b/common/src/main/java/com/yunbao/common/manager/RandomPkManager.java index a8c29ca16..4b2c8673e 100644 --- a/common/src/main/java/com/yunbao/common/manager/RandomPkManager.java +++ b/common/src/main/java/com/yunbao/common/manager/RandomPkManager.java @@ -78,7 +78,7 @@ public class RandomPkManager { for (OnRandomPkTimer onRandomPkTimer : randomPkTimer) { onRandomPkTimer.onTimer(String.format(Locale.CHINA, "%02d:%02d", min, sec)); } - if (sec == 8) { + if (sec == 2) { nextPk(); } }); @@ -143,6 +143,7 @@ public class RandomPkManager { for (OnRandomPkTimer pkTimer : randomPkTimer) { pkTimer.onPkEndSuccess(); } + status = PK_STATUS_DEFAULT; } private int exitTimer; @@ -168,7 +169,6 @@ public class RandomPkManager { end(); callEndPkSuccess(); cancel(); - status = PK_STATUS_DEFAULT; } }); } @@ -234,6 +234,9 @@ public class RandomPkManager { } public void setPkStatus(int status) { + if(status==PK_STATUS_DEFAULT){//默认状态下不响应随机PK接口 + return; + } this.status = status; switch (status) { case PK_STATUS_START: diff --git a/live/src/main/java/com/yunbao/live/adapter/RandomPkRecyclerAdapter.java b/live/src/main/java/com/yunbao/live/adapter/RandomPkRecyclerAdapter.java index 1cca06847..ffacaeae0 100644 --- a/live/src/main/java/com/yunbao/live/adapter/RandomPkRecyclerAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/RandomPkRecyclerAdapter.java @@ -43,6 +43,8 @@ public class RandomPkRecyclerAdapter extends RefreshAdapter { @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { if (getItemViewType(position) == ITEM) { + ((ItemViewHolder) holder).setData(mList.get(position-1)); + }else{ ((HeadViewHolder) holder).setData(mList.get(position)); } } diff --git a/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java b/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java index 711d73b03..391bf9521 100644 --- a/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java +++ b/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java @@ -588,8 +588,11 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener { mApplyNmae = u.getUserNiceName(); if (by != 1) { if (mIsApplyDialogShow == false) { - // showApplyDialog(u); - showPkDialog(u); + if (u.isRandomPk()) { + showPkDialog(u); + } else { + showApplyDialog(u); + } } } else { isPK(); @@ -1003,7 +1006,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener { }); } else { - + refusePk(u); } mApplyUid = null; mApplyStream = null; @@ -1200,55 +1203,11 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener { cancelBtn.setVisibility(View.GONE); confirmBtn.setOnClickListener(v -> { - refuse(); + refusePk(u); dialog.dismiss(); }); } - void refuse() { - IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() { - - @Override - public void onFailed(RTCErrorCode errorCode) { - - } - - @Override - public void onSuccess() { - final SocketSendBean msg1 = new SocketSendBean() - .param("_method_", SOCKET_LINK_MIC_PK) - .param("action", 3); - msg1.create(); - - String targetId = u.getId(); - 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(targetId, 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 (SocketRyClient.mSocketHandler != null) { - SocketRyClient.mSocketHandler.processBroadcast(msg1.mResult.toString() + ""); - } - } - - @Override - public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) { - Log.e("ry", "发送失敗" + u.getId()); - } - }); - } - }); - - LiveNetManager.get(mContext).setBanRandomPK(null); - } void apply() { isPK(); @@ -1257,6 +1216,52 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener { .build().show(); } + private void refusePk(UserBean u) { + IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra_randm_pk", new IRCRTCResultCallback() { + + @Override + public void onFailed(RTCErrorCode errorCode) { + + } + + @Override + public void onSuccess() { + final SocketSendBean msg1 = new SocketSendBean() + .param("_method_", SOCKET_LINK_MIC_PK) + // .param("randomPk",u.isRandomPk()+"") + .param("action", 3); + msg1.create(); + + String targetId = u.getId(); + 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(targetId, 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 (SocketRyClient.mSocketHandler != null) { + SocketRyClient.mSocketHandler.processBroadcast(msg1.mResult.toString() + ""); + } + } + + @Override + public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) { + Log.e("ry", "发送失敗" + u.getId()); + } + }); + } + }); + + LiveNetManager.get(mContext).setBanRandomPK(null); + } + /** * 显示申请多人PK的弹窗 */ diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java index b802242c8..71b2ece7a 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java @@ -473,7 +473,7 @@ public class SocketRyClient { LiveChatBean chatBean = new LiveChatBean(); chatBean.setId(jsonObject.getString("uid")); chatBean.setUserNiceName(jsonObject.getString("user_nicename")); - if ("1".equals(map.getString("msgtype"))) { + if ("1" .equals(map.getString("msgtype"))) { chatBean.setType(-3); } else { chatBean.setType(-4); @@ -660,7 +660,7 @@ public class SocketRyClient { private static void sendActiveMsg(JSONObject map, SocketReceiveBean received) { String msgtype = map.getString("msgtype"); - if ("1".equals(msgtype)) {//新年大作战活动 + if ("1" .equals(msgtype)) {//新年大作战活动 LiveChatBean chatBean = new LiveChatBean(); chatBean.setId(map.getString("uid")); chatBean.setMedalLevelImageUrl(map.getString("monster_str"));//昵称暂时做为活动图片地址 @@ -673,14 +673,14 @@ public class SocketRyClient { private static void wordLightEnterRoom(JSONObject map, SocketReceiveBean received) { String msgtype = map.getString("msgtype"); - if ("2".equals(msgtype)) {//发言,点亮 - if ("409002".equals(received.getRetcode())) { + if ("2" .equals(msgtype)) {//发言,点亮 + if ("409002" .equals(received.getRetcode())) { ToastUtil.show(R.string.live_you_are_shut); return; } //禁言别人,自己发言只能自己看到 - if ("409100".equals(received.getRetcode())) { + if ("409100" .equals(received.getRetcode())) { String uid = map.getString("uid"); if (!uid.equals(CommonAppConfig.getInstance().getUid())) { return; @@ -725,12 +725,12 @@ public class SocketRyClient { e.printStackTrace(); } - if (!"".equals(map.getString("prankIcon")) && map.getString("prankIcon") != null) { + 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)) {//用户进入房间 + } 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(); @@ -877,7 +877,7 @@ public class SocketRyClient { 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"))) { + 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")) { @@ -1053,11 +1053,13 @@ public class SocketRyClient { mListener.onLinkMicPkStart(map.getString("uid"), map.getString("pkhead"), map.getString("pkname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid")); break; case 3://对方主播拒绝PK的回调 - RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_REFUSE); + if (map.containsKey("randomPk") && map.getString("randomPk").equals("true")) { + } + RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_REFUSE); mListener.onLinkMicPkRefuse(); break; case 4://所有人收到PK开始址的回调 - // RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START); + // RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START); mListener.onLinkMicPkStart(map.getString("pkuid"), map.getString("pkhead"), map.getString("pkname"), map.getString("is_ladders")); break; case 5://PK时候断开连麦的回调