新增IM消息:endPK,用于显示最终单人PK数据

This commit is contained in:
zlzw 2023-05-25 14:25:57 +08:00
parent 1b637b7a77
commit 99618a2779
7 changed files with 191 additions and 100 deletions

View File

@ -182,6 +182,7 @@ public class Constants {
public static final String LIVE_VOTE_CREATE="createVote";
public static final String LIVE_VOTE_UPDATE="updateVote";
public static final String LIVE_VOTE_END="endVote";
public static final String LIVE_PK_END="endPK";//结束PK以这个PK获取到的参数为准
//游戏socket
public static final String SOCKET_GAME_ZJH = "startGame";//炸金花

View File

@ -1,5 +1,7 @@
package com.yunbao.live.activity;
import static com.yunbao.live.views.LiveRoomViewHolder.mLiveUid;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
@ -388,6 +390,17 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
}
@Override
public void onEndPk(long leftUid, long rightUid, long left, long right, LivePKUserListBean bean) {
if (mLiveRyLinkMicPkPresenter != null) {
if (mLiveUid.equals(leftUid + "")) {
mLiveRyLinkMicPkPresenter.onPkProgressEnd(left, right, bean);
} else {
mLiveRyLinkMicPkPresenter.onPkProgressEnd(right, left, bean);
}
}
}
/**
* 收到弹幕消息
*/
@ -1362,6 +1375,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
fragment.setArguments(bundle);
fragment.show(getSupportFragmentManager(), "LiveGuardBuyDialogFragment");
}
/**
* 打开购买守护的弹窗
*/

View File

@ -206,13 +206,14 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
Log.d("RYM_DG", "Other onLeaveRoom: room = " + room.getRoomId());
}
};
public LiveRyLinkMicPkPresenter(Context context, ILiveLinkMicViewHolder linkMicViewHolder, boolean isAnchor, View root) {
mContext = context;
mIsAnchor = isAnchor;
mRoot = root;
mPkContainer = linkMicViewHolder.getPkContainer();
mPkTimeString1 = "";
mPkTimeString2 =mContext.getString(R.string.live_pk_time_2);
mPkTimeString2 = mContext.getString(R.string.live_pk_time_2);
//从本地取数据
String pkTime = CommonAppConfig.getInstance().getAnchorPkTime();
if (!pkTime.isEmpty()) {
@ -253,7 +254,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
mPkContainer = linkMicViewHolder.getPkContainer();
livePushRyViewHolder = linkMicViewHolder;
mPkTimeString1 = "";
mPkTimeString2 =mContext.getString(R.string.live_pk_time_2);
mPkTimeString2 = mContext.getString(R.string.live_pk_time_2);
//从本地取数据
String pkTime = CommonAppConfig.getInstance().getAnchorPkTime();
if (!pkTime.isEmpty()) {
@ -2184,6 +2185,18 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
nextPkTimeCountDown(2);
}
/**
* 修改最终PK数据
* @param leftGift 左边数据
* @param rightGift 右边数据
* @param bean 排位数据
*/
public void onPkProgressEnd(long leftGift, long rightGift,LivePKUserListBean bean) {
if (mLiveLinkMicPkViewHolder != null) {
mLiveLinkMicPkViewHolder.onProgressChanged(leftGift, rightGift, bean, true);
}
}
/**
* 进房间的时候懲罰开始
@ -2312,7 +2325,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
// //恢复播放画面
if (i == 1) {
if(btn_close!=null){
if (btn_close != null) {
btn_close.setVisibility(View.GONE);
}
if (rtcRoom != null) {

View File

@ -290,6 +290,16 @@ public interface SocketMessageListener {
*/
void onPrizePoolUp(String level);
/**
* 最终PK数据
* @param leftUid 左边uid
* @param rightUid 右边uid
* @param left 左边分数
* @param right 右边分数
* @param bean 排位顺序
*/
void onEndPk(long leftUid,long rightUid,long left,long right,LivePKUserListBean bean);
/***********************以下是游戏*********************************/
/**
* 游戏 智勇三张 游戏的回调

View File

@ -7,8 +7,10 @@ import static com.yunbao.live.views.LivePushRyViewHolder.rtcRoom;
import static com.yunbao.live.views.LiveRoomViewHolder.getIsHot;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
@ -38,6 +40,7 @@ import com.yunbao.common.http.HttpClient;
import com.yunbao.common.manager.IMRTCManager;
import com.yunbao.common.manager.RandomPkManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
@ -64,6 +67,8 @@ import org.greenrobot.eventbus.EventBus;
import java.lang.ref.WeakReference;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
import cn.rongcloud.rtc.base.RTCErrorCode;
@ -650,6 +655,14 @@ public class SocketRyClient {
.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;
}
}

View File

@ -5,6 +5,7 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Path;
import android.graphics.PathMeasure;
import android.graphics.RectF;
@ -84,8 +85,8 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder {
public void init() {
mHalfScreenWidth = ScreenDimenUtil.getInstance().getScreenWdith() / 2;
mLeftString =mContext.getString(R.string.live_link_mic_pk_1);
mRightString =mContext.getString(R.string.live_link_mic_pk_2);
mLeftString = mContext.getString(R.string.live_link_mic_pk_1);
mRightString = mContext.getString(R.string.live_link_mic_pk_2);
mFrameImageView = (FrameImageView) findViewById(R.id.frame_img);
mFrameImageView.setImageList(LiveIconUtil.getLinkMicPkAnim());//PK开始动画
frame_img_pk = (ImageView) findViewById(R.id.frame_img_pk);
@ -155,7 +156,7 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.i("女神说", "倒计时状态:"+s);
Log.i("女神说", "倒计时状态:" + s);
if (mTime.getVisibility() == View.VISIBLE) {
EventBus.getDefault().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.LIVE_PK_ING));
@ -198,6 +199,7 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder {
animationDrawable = (AnimationDrawable) frame_img_pk.getBackground();
animationDrawable.start();
}
mLeft.setTag(null);
}
public void showTime() {
@ -233,6 +235,7 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder {
}
if (mLeft != null) {
mLeft.setTranslationX(0);
mLeft.setTag(null);
mLeft2.setTranslationX(0);
}
if (mRight != null) {
@ -241,7 +244,27 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder {
}
}
/**
* 修改PK进度条进度
* @param leftGift 左边进度
* @param rightGift 右边进度
* @param bean 排位信息
*/
public void onProgressChanged(long leftGift, long rightGift, LivePKUserListBean bean) {
onProgressChanged(leftGift, rightGift, bean, false);
}
/**
* 修改PK进度条进度
* @param leftGift 左边进度
* @param rightGift 右边进度
* @param bean 排位信息
* @param isEnd 是否为最终数据是的话就不再接收后续修改数据默认false
*/
public void onProgressChanged(long leftGift, long rightGift, LivePKUserListBean bean, boolean isEnd) {
if (mLeft.getTag() != null && ((boolean) mLeft.getTag())) {
return;
}
mLeft.setText(mLeftString + " " + leftGift);
mRight.setText(rightGift + " " + mRightString);
if (leftGift == rightGift) {
@ -262,9 +285,11 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder {
animationDrawable = (AnimationDrawable) frame_img_pk.getBackground();
animationDrawable.start();
}
mLeft.setTag(isEnd);
if (bean != null) {
EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_TWO_UPDATE_HEAD_DATA).setLivePKUserListBean(bean));
}
}
private void changeLine(float nowIndex, long leftGift, long rightGift) {
mHalfScreenWidth = ScreenDimenUtil.getInstance().getScreenWdith() / 2;

View File

@ -1,6 +1,7 @@
package com.yunbao.live.views;
import static com.yunbao.live.views.LiveRoomViewHolder.isStayRoomfive;
import static com.yunbao.live.views.LiveRoomViewHolder.mLiveUid;
import android.app.Activity;
import android.app.Dialog;
@ -9,6 +10,7 @@ import android.content.res.Configuration;
import android.graphics.drawable.AnimationDrawable;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
@ -95,6 +97,8 @@ import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import cn.rongcloud.rtc.api.RCRTCEngine;
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
@ -269,7 +273,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
@Override
public void run() {
try{
try {
Log.e("ImgLoader1", data.getAvatar());
if (mLiveRyLinkMicPkPresenter != null) {
@ -367,7 +371,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
enterRoomNew();
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
}
@ -1173,6 +1177,17 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
}
@Override
public void onEndPk(long leftUid, long rightUid, long left, long right,LivePKUserListBean bean) {
if (mLiveRyLinkMicPkPresenter != null) {
if (mLiveUid.equals(leftUid + "")) {
mLiveRyLinkMicPkPresenter.onPkProgressEnd(left, right,bean);
} else {
mLiveRyLinkMicPkPresenter.onPkProgressEnd(right, left,bean);
}
}
}
@Override
public void onSendDanMu(LiveDanMuBean bean) {
if (mLiveRoomViewHolder != null) {