优化:调整天梯赛左右下角连胜字样大小

update 随机PK
This commit is contained in:
zlzw 2022-12-08 17:45:21 +08:00
parent 9eff246f06
commit 3fa259c5b9
16 changed files with 357 additions and 76 deletions

View File

@ -0,0 +1,128 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class RankPkInfoBean extends BaseModel {
private int id;
@SerializedName("start_time")
private String startTime;
@SerializedName("end_time")
private String endTime;
@SerializedName("pk_start_hour1")
private String pkStartHour1;
@SerializedName("pk_end_hour1")
private String pkEndHour1;
@SerializedName("pk_start_hour2")
private String pkStartHour2;
@SerializedName("pk_end_hour2")
private String pkEndHour2;
public RankPkInfoBean() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getPkStartHour1() {
return pkStartHour1;
}
public void setPkStartHour1(String pkStartHour1) {
this.pkStartHour1 = pkStartHour1;
}
public String getPkEndHour1() {
return pkEndHour1;
}
public void setPkEndHour1(String pkEndHour1) {
this.pkEndHour1 = pkEndHour1;
}
public String getPkStartHour2() {
return pkStartHour2;
}
public void setPkStartHour2(String pkStartHour2) {
this.pkStartHour2 = pkStartHour2;
}
public String getPkEndHour2() {
return pkEndHour2;
}
public void setPkEndHour2(String pkEndHour2) {
this.pkEndHour2 = pkEndHour2;
}
/**
* 判断是否在排位赛时间范围内
*/
public boolean isRankPKTime() {
try {
Date now =new Date();
Date startDate = simpleDateToDate(startTime, "yyyy-MM-dd HH:mm:ss");
Date endDate = simpleDateToDate(endTime, "yyyy-MM-dd HH:mm:ss");
if (startDate == null || endDate == null) {
return false;
}
Calendar calendarStart = Calendar.getInstance(Locale.CHINA);
Calendar calendarEnd = Calendar.getInstance(Locale.CHINA);
Calendar calendarNow = Calendar.getInstance(Locale.CHINA);
calendarNow.setTime(now);
calendarStart.setTime(startDate);
calendarEnd.setTime(endDate);
if (calendarStart.before(calendarNow) && calendarEnd.after(calendarNow)) {
calendarNow.setTime(simpleDateToDate(dateToSimpleDate(now,"HH:mm:ss"),"HH:mm:ss"));
calendarStart.setTime(simpleDateToDate(pkStartHour1, "HH:mm:ss"));
calendarEnd.setTime(simpleDateToDate(pkEndHour1, "HH:mm:ss"));
if (calendarStart.before(calendarNow) && calendarEnd.after(calendarNow)) {
return true;
} else {
calendarNow.setTime(simpleDateToDate(dateToSimpleDate(now,"HH:mm:ss"),"HH:mm:ss"));
calendarStart.setTime(simpleDateToDate(pkStartHour2, "HH:mm:ss"));
calendarEnd.setTime(simpleDateToDate(pkEndHour2, "HH:mm:ss"));
return calendarStart.before(calendarNow) && calendarEnd.after(calendarNow);
}
}
} catch (ParseException e) {
e.printStackTrace();
}
return false;
}
private Date simpleDateToDate(String time, String pattern) throws ParseException {
return new SimpleDateFormat(pattern, Locale.CHINA).parse(time);
}
private String dateToSimpleDate(Date date,String pattern){
return new SimpleDateFormat(pattern,Locale.CHINA).format(date);
}
}

View File

@ -63,6 +63,8 @@ public class UserBean implements Parcelable {
private boolean isHide = false; private boolean isHide = false;
//是否为随机PK仅在主播PK时使用 //是否为随机PK仅在主播PK时使用
private boolean randomPk; private boolean randomPk;
//随机天梯排位赛PK img仅在主播PK时使用
private String mRankPkImgUrl;
public boolean isRandomPk() { public boolean isRandomPk() {
return randomPk; return randomPk;
@ -72,6 +74,14 @@ public class UserBean implements Parcelable {
this.randomPk = randomPk; this.randomPk = randomPk;
} }
public String getRankPkImgUrl() {
return mRankPkImgUrl;
}
public void setRankPkImgUrl(String mRankPkImgUrl) {
this.mRankPkImgUrl = mRankPkImgUrl;
}
public boolean isHide() { public boolean isHide() {
return isHide; return isHide;
} }

View File

@ -20,6 +20,7 @@ import com.yunbao.common.bean.NobleRankHideUserListModel;
import com.yunbao.common.bean.NobleTrumpetModel; import com.yunbao.common.bean.NobleTrumpetModel;
import com.yunbao.common.bean.PkRankBean; import com.yunbao.common.bean.PkRankBean;
import com.yunbao.common.bean.RandomPkUserBean; import com.yunbao.common.bean.RandomPkUserBean;
import com.yunbao.common.bean.RankPkInfoBean;
import com.yunbao.common.bean.SearchModel; import com.yunbao.common.bean.SearchModel;
import com.yunbao.common.bean.SetAttentsModel; import com.yunbao.common.bean.SetAttentsModel;
import com.yunbao.common.bean.SlideInBannerModel; import com.yunbao.common.bean.SlideInBannerModel;
@ -388,4 +389,9 @@ public interface PDLiveApi {
*/ */
@GET("/api/public/?service=Livepk.setBanRandomPK") @GET("/api/public/?service=Livepk.setBanRandomPK")
Observable<ResponseModel<BaseModel>> setBanRandomPK(); Observable<ResponseModel<BaseModel>> setBanRandomPK();
/**
* 拒绝随机PK
*/
@GET("/api/public/?service=Ranking.getRankingInfo")
Observable<ResponseModel<RankPkInfoBean>> getRankingInfo();
} }

View File

@ -4,6 +4,7 @@ import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants; import com.yunbao.common.Constants;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.bean.ActiveModel; import com.yunbao.common.bean.ActiveModel;
@ -20,6 +21,7 @@ import com.yunbao.common.bean.NobleRankHideUserListModel;
import com.yunbao.common.bean.NobleTrumpetModel; import com.yunbao.common.bean.NobleTrumpetModel;
import com.yunbao.common.bean.PkRankBean; import com.yunbao.common.bean.PkRankBean;
import com.yunbao.common.bean.RandomPkUserBean; import com.yunbao.common.bean.RandomPkUserBean;
import com.yunbao.common.bean.RankPkInfoBean;
import com.yunbao.common.bean.SetAttentsModel; import com.yunbao.common.bean.SetAttentsModel;
import com.yunbao.common.bean.StarChallengeStatusModel; import com.yunbao.common.bean.StarChallengeStatusModel;
import com.yunbao.common.bean.VipModel; import com.yunbao.common.bean.VipModel;
@ -598,8 +600,12 @@ public class LiveNetManager {
@Override @Override
public void accept(ResponseModel<String> responseModel) throws Exception { public void accept(ResponseModel<String> responseModel) throws Exception {
if (callback != null) { if (callback != null) {
callback.onSuccess("98196"); if(CommonAppConfig.getInstance().getUid().equals("98196")) {
// callback.onSuccess(responseModel.getData().getInfo()); callback.onSuccess("98274");
}else{
callback.onSuccess("98196");
}
// callback.onSuccess(responseModel.getData().getInfo());
} }
} }
}, new Consumer<Throwable>() { }, new Consumer<Throwable>() {
@ -611,6 +617,7 @@ public class LiveNetManager {
} }
}).isDisposed(); }).isDisposed();
} }
/** /**
* 自由PK开始后调用接口扣掉次数 * 自由PK开始后调用接口扣掉次数
*/ */
@ -637,7 +644,7 @@ public class LiveNetManager {
/** /**
* 随机PK后调用接口给后台记录 * 随机PK后调用接口给后台记录
*/ */
public void startRandomPK(String pkuid,HttpCallback<Boolean> callback) { public void startRandomPK(String pkuid, HttpCallback<Boolean> callback) {
API.get().pdLiveApi(mContext) API.get().pdLiveApi(mContext)
.startRandomPK(pkuid) .startRandomPK(pkuid)
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
@ -665,6 +672,7 @@ public class LiveNetManager {
/** /**
* 随机PK后调用接口给后台记录 * 随机PK后调用接口给后台记录
*
* @param cs 简体关键字/uid * @param cs 简体关键字/uid
* @param ct 繁体关键字/uid * @param ct 繁体关键字/uid
*/ */
@ -691,6 +699,7 @@ public class LiveNetManager {
} }
}).isDisposed(); }).isDisposed();
} }
/** /**
* 拒绝随机PK * 拒绝随机PK
*/ */
@ -713,6 +722,32 @@ public class LiveNetManager {
} }
}).isDisposed(); }).isDisposed();
} }
/**
* 获取随机排位赛信息
*/
public void getRankPkInfoBean(HttpCallback<RankPkInfoBean> callback) {
API.get().pdLiveApi(mContext)
.getRankingInfo()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Consumer<ResponseModel<RankPkInfoBean>>() {
@Override
public void accept(ResponseModel<RankPkInfoBean> rankPkInfoBeanResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(rankPkInfoBeanResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(throwable.getMessage());
}
}
}).isDisposed();
}
/** /**
* 直播间取消网络请求 * 直播间取消网络请求
*/ */

View File

@ -4,6 +4,7 @@ import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import com.yunbao.common.CommonAppContext; import com.yunbao.common.CommonAppContext;
import com.yunbao.common.bean.RankPkInfoBean;
import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
@ -14,25 +15,30 @@ import java.util.Locale;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
/**
* 随机PK管理类
*/
public class RandomPkManager { public class RandomPkManager {
public final static int PK_STATUS_DEFAULT = -1; public final static int PK_STATUS_DEFAULT = -1;//默认状态一般为为开始匹配
public final static int PK_STATUS_REQUEST = 0; public final static int PK_STATUS_REQUEST = 0;//已发出匹配请求
public final static int PK_STATUS_START = 1; public final static int PK_STATUS_START = 1;//匹配到用户
public final static int PK_STATUS_CLOSE = 2; public final static int PK_STATUS_CLOSE = 2;//PK结束
public final static int PK_STATUS_REFUSE = 3; public final static int PK_STATUS_REFUSE = 3;//对方拒绝
public final static int PK_STATUS_EXIT_ING = 4; public final static int PK_STATUS_EXIT_ING = 4;//退出匹配中
private static RandomPkManager manager; private static RandomPkManager manager;
private int min = -1; private int min = -1;//匹配计时器 分钟
private int sec = -1; private int sec = -1;//匹配计时器 秒钟
private int status = PK_STATUS_DEFAULT; private int status = PK_STATUS_DEFAULT;
private Timer timer; private Timer timer;
private TimerTask task; private TimerTask task;
private List<OnRandomPkTimer> randomPkTimer = new ArrayList<>(); private final List<OnRandomPkTimer> randomPkTimer = new ArrayList<>();//监听器集合
private String pkUid; private String pkUid;//对方房间ID
private RankPkInfoBean rankPkInfoBean;//排位赛信息
Handler handler = new Handler(Looper.getMainLooper()); Handler handler = new Handler(Looper.getMainLooper());
private RandomPkManager() { private RandomPkManager() {
getRankInfo();
initTask(); initTask();
} }
@ -43,23 +49,35 @@ public class RandomPkManager {
return manager; return manager;
} }
/**
* 添加监听器
*/
public void addOnRandomPkTimer(OnRandomPkTimer randomPkTimer) { public void addOnRandomPkTimer(OnRandomPkTimer randomPkTimer) {
if (randomPkTimer != null) { if (randomPkTimer != null) {
this.randomPkTimer.add(randomPkTimer); this.randomPkTimer.add(randomPkTimer);
} }
} }
/**
* 移除监听器
*/
public void unregisterOnRandomPkTimer(OnRandomPkTimer randomPkTimer) { public void unregisterOnRandomPkTimer(OnRandomPkTimer randomPkTimer) {
if (randomPkTimer != null) { if (randomPkTimer != null) {
this.randomPkTimer.remove(randomPkTimer); this.randomPkTimer.remove(randomPkTimer);
} }
} }
/**
* 初始化参数
*/
private void initVal() { private void initVal() {
min = -1; min = -1;
sec = -1; sec = -1;
} }
/**
* 初始化任务
*/
private void initTask() { private void initTask() {
if (task != null) { if (task != null) {
return; return;
@ -86,11 +104,20 @@ public class RandomPkManager {
}; };
} }
/**
* 格式化匹配时间
*/
public String getTimer() { public String getTimer() {
return String.format(Locale.CHINA, "%02d:%02d", min, sec); return String.format(Locale.CHINA, "%02d:%02d", min, sec);
} }
/**
* 对方拒绝开始下一轮匹配
*/
private void nextPk() { private void nextPk() {
if (status != PK_STATUS_REQUEST && status != PK_STATUS_REFUSE) {
return;
}
LiveNetManager.get(CommonAppContext.getTopActivity()) LiveNetManager.get(CommonAppContext.getTopActivity())
.randomPK(new HttpCallback<String>() { .randomPK(new HttpCallback<String>() {
@Override @Override
@ -108,6 +135,16 @@ public class RandomPkManager {
}); });
} }
/**
* 是否为排位赛模式
*/
public boolean isRankModel() {
return rankPkInfoBean != null && rankPkInfoBean.isRankPKTime();
}
/**
* 开始匹配
*/
public boolean start() { public boolean start() {
if (status == PK_STATUS_START) { if (status == PK_STATUS_START) {
ToastUtil.show("PK中"); ToastUtil.show("PK中");
@ -126,28 +163,55 @@ public class RandomPkManager {
timer.schedule(task, 0, 1000); timer.schedule(task, 0, 1000);
return true; return true;
} }
private void getRankInfo(){
LiveNetManager.get(CommonAppContext.getTopActivity())
.getRankPkInfoBean(new HttpCallback<RankPkInfoBean>() {
@Override
public void onSuccess(RankPkInfoBean data) {
rankPkInfoBean = data;
}
@Override
public void onError(String error) {
}
});
}
/**
* 通知所有监听者开始退出匹配
*/
private void callEndPkStart() { private void callEndPkStart() {
for (OnRandomPkTimer pkTimer : randomPkTimer) { for (OnRandomPkTimer pkTimer : randomPkTimer) {
pkTimer.onPkEndStart(); pkTimer.onPkEndStart();
} }
} }
/**
* 通知所有监听者退出匹配倒计时
*/
private void callEndPkTimer(String time) { private void callEndPkTimer(String time) {
for (OnRandomPkTimer pkTimer : randomPkTimer) { for (OnRandomPkTimer pkTimer : randomPkTimer) {
pkTimer.onPkEndTimer(time); pkTimer.onPkEndTimer(time);
} }
} }
/**
* 通知所有监听者退出匹配成功
*/
private void callEndPkSuccess() { private void callEndPkSuccess() {
for (OnRandomPkTimer pkTimer : randomPkTimer) { for (OnRandomPkTimer pkTimer : randomPkTimer) {
pkTimer.onPkEndSuccess(); pkTimer.onPkEndSuccess();
} }
status = PK_STATUS_DEFAULT; status = PK_STATUS_DEFAULT;
rankPkInfoBean = null;
} }
private int exitTimer; private int exitTimer;
/**
* 退出匹配
*/
public void exitPk() { public void exitPk() {
if (status == PK_STATUS_EXIT_ING) { if (status == PK_STATUS_EXIT_ING) {
return; return;
@ -175,6 +239,9 @@ public class RandomPkManager {
}, 0, 1000); }, 0, 1000);
} }
/**
* 退出连麦
*/
public void end() { public void end() {
if (task != null) { if (task != null) {
task.cancel(); task.cancel();
@ -185,10 +252,16 @@ public class RandomPkManager {
callEnd(); callEnd();
} }
public boolean isPking() { /**
* 是否正在匹配中
*/
public boolean isRequestPk() {
return status == PK_STATUS_REQUEST; return status == PK_STATUS_REQUEST;
} }
/**
* 通知所有监听者结束匹配
*/
private void callEnd() { private void callEnd() {
if (task != null) { if (task != null) {
task.cancel(); task.cancel();
@ -201,6 +274,9 @@ public class RandomPkManager {
}); });
} }
/**
* 通知所有监听者开始匹配
*/
private void callStart() { private void callStart() {
if (task != null) { if (task != null) {
task.cancel(); task.cancel();
@ -225,6 +301,9 @@ public class RandomPkManager {
}); });
} }
/**
* 通知所有监听者对方拒绝PK
*/
private void callRefuse() { private void callRefuse() {
handler.post(() -> { handler.post(() -> {
for (OnRandomPkTimer pkTimer : randomPkTimer) { for (OnRandomPkTimer pkTimer : randomPkTimer) {
@ -233,8 +312,11 @@ public class RandomPkManager {
}); });
} }
/**
* 设置PK状态
*/
public void setPkStatus(int status) { public void setPkStatus(int status) {
if(status==PK_STATUS_DEFAULT){//默认状态下不响应随机PK接口 if (this.status == PK_STATUS_DEFAULT || this.status == PK_STATUS_EXIT_ING) {//默认状态下不响应随机PK接口
return; return;
} }
this.status = status; this.status = status;
@ -252,38 +334,69 @@ public class RandomPkManager {
} }
} }
/**
* 是否正在退出匹配中
*/
public boolean isExiting() { public boolean isExiting() {
return status == PK_STATUS_EXIT_ING; return status == PK_STATUS_EXIT_ING;
} }
/**
* 获取退出匹配倒计时
*/
public String getExitTimer() { public String getExitTimer() {
return exitTimer + ""; return exitTimer + "";
} }
public static abstract class OnRandomPkTimer { public static abstract class OnRandomPkTimer {
/**
* 匹配倒计时
*/
public void onTimer(String time) { public void onTimer(String time) {
} }
/**
* 匹配到对方
* @param pkUid 对方uid
*/
public void onStartPK(String pkUid) { public void onStartPK(String pkUid) {
} }
/**
* 匹配中
*/
public void onPking() { public void onPking() {
} }
/**
* 连麦结束
*/
public void onPkEnd() { public void onPkEnd() {
} }
/**
* 对方拒绝PK
*/
public void onRefuse() { public void onRefuse() {
} }
/**
* 退出匹配倒计时
*/
public void onPkEndTimer(String time) { public void onPkEndTimer(String time) {
} }
/**
* 开始退出匹配
*/
public void onPkEndStart() { public void onPkEndStart() {
} }
/**
* 退出匹配成功
*/
public void onPkEndSuccess() { public void onPkEndSuccess() {
} }
} }

View File

@ -705,7 +705,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
*/ */
@Override @Override
public void onLinkMicPkStart(final String pkUid, final String pkhead, final String pkname, String isLadders) { public void onLinkMicPkStart(final String pkUid, final String pkhead, final String pkname, String isLadders) {
Log.e("ry", "pkUid" + pkUid + "pkhead" + pkhead + "pkname" + pkname); Log.e("ry", "pkUid = " + pkUid + ", pkhead = " + pkhead + ", pkname = " + pkname + ", isLadders = " + isLadders);
if (mLiveRyLinkMicPkPresenter != null && mLiveRoomViewHolder != null) { if (mLiveRyLinkMicPkPresenter != null && mLiveRoomViewHolder != null) {
mLiveRyLinkMicPkPresenter.onLinkMicPkStart(pkUid, 1); mLiveRyLinkMicPkPresenter.onLinkMicPkStart(pkUid, 1);
Handler handler = new Handler(); Handler handler = new Handler();

View File

@ -163,7 +163,10 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
public void onStartPK(String pkUid) { public void onStartPK(String pkUid) {
ToastUtil.show("发起随机PK:" + pkUid); ToastUtil.show("发起随机PK:" + pkUid);
JSONObject msg1 = buildLinkMicJSON(); JSONObject msg1 = buildLinkMicJSON();
msg1.put("randomPk", true); msg1.put("random_pk", "1");
if(RandomPkManager.getInstance().isRankModel()){
msg1.put("is_ladders","https://downs.yaoulive.com/rank_top_box.png");
}
linkMicAnchorApply(pkUid, pkUid, msg1.toString()); linkMicAnchorApply(pkUid, pkUid, msg1.toString());
} }

View File

@ -2,48 +2,26 @@ package com.yunbao.live.dialog;
import android.app.Dialog; import android.app.Dialog;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log; import android.util.Log;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.alibaba.fastjson.JSON;
import com.google.android.material.tabs.TabLayout;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.bean.HttpCallbackModel; import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.RandomPkUserBean;
import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.dialog.AbsDialogFragment; import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil; import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.utils.WordsTypeUtil;
import com.yunbao.live.R; import com.yunbao.live.R;
import com.yunbao.live.adapter.RandomPkRecyclerAdapter;
import com.yunbao.live.bean.LivePkBean;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.manager.RandomPkManager; import com.yunbao.common.manager.RandomPkManager;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
/** /**
* 随机PK * 随机PK
*/ */
@ -154,7 +132,7 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On
private void initData() { private void initData() {
RandomPkManager.getInstance().addOnRandomPkTimer(randomPkTimer); RandomPkManager.getInstance().addOnRandomPkTimer(randomPkTimer);
initPkSwitch(); initPkSwitch();
if (RandomPkManager.getInstance().isPking()) { if (RandomPkManager.getInstance().isRequestPk()) {
mPkBtnTitle.setText(String.format(WordUtil.getString(R.string.random_pk_info_btn_ing), RandomPkManager.getInstance().getTimer())); mPkBtnTitle.setText(String.format(WordUtil.getString(R.string.random_pk_info_btn_ing), RandomPkManager.getInstance().getTimer()));
mPkBtnDesc.setText(R.string.random_pk_info_btn_end_desc); mPkBtnDesc.setText(R.string.random_pk_info_btn_end_desc);
mPkBtnDesc.setVisibility(View.VISIBLE); mPkBtnDesc.setVisibility(View.VISIBLE);
@ -240,7 +218,7 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On
ToastUtil.show("未开启随机PK开关"); ToastUtil.show("未开启随机PK开关");
return; return;
} }
if ((mPkBtn.getTag() != null && (boolean) mPkBtn.getTag()) || RandomPkManager.getInstance().isPking()) { if ((mPkBtn.getTag() != null && (boolean) mPkBtn.getTag()) || RandomPkManager.getInstance().isRequestPk()) {
RandomPkManager.getInstance().exitPk(); RandomPkManager.getInstance().exitPk();
return; return;
} }

View File

@ -765,7 +765,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatarThumb()); msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatarThumb());
msg1.put("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()); msg1.put("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
rtcRoom.getLocalUser().responseJoinOtherRoom(mApplyUid, mApplyUid, true, true, msg1.toString(), new IRCRTCResultCallback() { IMRTCManager.getInstance().responseJoinOtherRoom(mApplyUid, true, msg1.toString(), new IRCRTCResultCallback() {
@Override @Override
public void onSuccess() { public void onSuccess() {
RCRTCEngine.getInstance().joinOtherRoom(mApplyUid, new IRCRTCResultDataCallback<RCRTCOtherRoom>() { RCRTCEngine.getInstance().joinOtherRoom(mApplyUid, new IRCRTCResultDataCallback<RCRTCOtherRoom>() {

View File

@ -32,6 +32,7 @@ import com.yunbao.common.bean.SocketModel;
import com.yunbao.common.bean.UserBean; import com.yunbao.common.bean.UserBean;
import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient; import com.yunbao.common.http.HttpClient;
import com.yunbao.common.manager.IMRTCManager;
import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.L; import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
@ -1053,9 +1054,7 @@ public class SocketRyClient {
mListener.onLinkMicPkStart(map.getString("uid"), map.getString("pkhead"), map.getString("pkname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid")); mListener.onLinkMicPkStart(map.getString("uid"), map.getString("pkhead"), map.getString("pkname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid"));
break; break;
case 3://对方主播拒绝PK的回调 case 3://对方主播拒绝PK的回调
if (map.containsKey("randomPk") && map.getString("randomPk").equals("true")) { RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_REFUSE);
}
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_REFUSE);
mListener.onLinkMicPkRefuse(); mListener.onLinkMicPkRefuse();
break; break;
case 4://所有人收到PK开始址的回调 case 4://所有人收到PK开始址的回调
@ -1102,10 +1101,7 @@ public class SocketRyClient {
msg1.put("pkuid", CommonAppConfig.getInstance().getUid()); msg1.put("pkuid", CommonAppConfig.getInstance().getUid());
msg1.put("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()); msg1.put("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()); msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar());
if (rtcRoom == null) { IMRTCManager.getInstance().requestJoinOtherRoom(map.getString("uid"), true, msg1.toString(), new IRCRTCResultCallback() {
return;
}
rtcRoom.getLocalUser().requestJoinOtherRoom(map.getString("uid"), map.getString("uid"), true, msg1.toString(), new IRCRTCResultCallback() {
@Override @Override
public void onSuccess() { public void onSuccess() {
ToastUtil.show("邀请 " + map.getString("uid") + " 发送成功"); ToastUtil.show("邀请 " + map.getString("uid") + " 发送成功");

View File

@ -238,7 +238,8 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
JSONObject map = JSONObject.parseObject(extra); JSONObject map = JSONObject.parseObject(extra);
userBean1.setAvatar(map.getString("pkhead")); userBean1.setAvatar(map.getString("pkhead"));
userBean1.setUserNiceName(map.getString("pkname")); userBean1.setUserNiceName(map.getString("pkname"));
userBean1.setRandomPk(map.containsKey("randomPk") ? map.getBoolean("randomPk") : false); userBean1.setRandomPk(map.containsKey("random_pk") && map.getString("random_pk").equals("1"));
userBean1.setRankPkImgUrl(map.containsKey("is_ladders") ? map.getString("is_ladders") : null);
userBean1.setId(map.getString("uid")); userBean1.setId(map.getString("uid"));
userBean1.setUserNiceName(map.getString("pkname")); userBean1.setUserNiceName(map.getString("pkname"));
userBean1.setAvatar(map.getString("pkhead")); userBean1.setAvatar(map.getString("pkhead"));

View File

@ -328,7 +328,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
private TextView mRandomPkTimer; private TextView mRandomPkTimer;
public LiveRoomViewHolder(boolean isRys, int forActivity, Context context, ViewGroup parentView, GifImageView gifImageView, SVGAImageView svgaImageView, ViewGroup liveGiftPrizePoolContainer, WindowManager windowManager) { public LiveRoomViewHolder(boolean isRys, int forActivity, Context context, ViewGroup parentView, GifImageView gifImageView, SVGAImageView svgaImageView, ViewGroup liveGiftPrizePoolContainer, WindowManager windowManager) {
super(context, parentView); super(context, parentView);
Contexts = context; Contexts = context;
@ -1627,6 +1626,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = DpUtil.dp2px(3); params.leftMargin = DpUtil.dp2px(3);
textParams.setMarginStart(DpUtil.dp2px(3)); textParams.setMarginStart(DpUtil.dp2px(3));
textParams.setMarginEnd(DpUtil.dp2px(2));
View hourView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null); View hourView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
View titleView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null); View titleView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
@ -1793,7 +1793,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
avatar_l1.setOnClickListener(new View.OnClickListener() { avatar_l1.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (uidL1 != null && !"".equals(uidL1)) { if (uidL1 != null && !"" .equals(uidL1)) {
showUserDialog(uidL1); showUserDialog(uidL1);
} }
} }
@ -1801,7 +1801,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
avatar_l2.setOnClickListener(new View.OnClickListener() { avatar_l2.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (uidL2 != null && !"".equals(uidL2)) { if (uidL2 != null && !"" .equals(uidL2)) {
showUserDialog(uidL2); showUserDialog(uidL2);
} }
} }
@ -1809,7 +1809,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
avatar_l3.setOnClickListener(new View.OnClickListener() { avatar_l3.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (uidL3 != null && !"".equals(uidL3)) { if (uidL3 != null && !"" .equals(uidL3)) {
showUserDialog(uidL3); showUserDialog(uidL3);
} }
} }
@ -1817,7 +1817,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
avatar_r1.setOnClickListener(new View.OnClickListener() { avatar_r1.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (uidR1 != null && !"".equals(uidR1)) { if (uidR1 != null && !"" .equals(uidR1)) {
showUserDialog(uidR1); showUserDialog(uidR1);
} }
} }
@ -1825,7 +1825,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
avatar_r2.setOnClickListener(new View.OnClickListener() { avatar_r2.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (uidR2 != null && !"".equals(uidR2)) { if (uidR2 != null && !"" .equals(uidR2)) {
showUserDialog(uidR2); showUserDialog(uidR2);
} }
} }
@ -1833,7 +1833,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
avatar_r3.setOnClickListener(new View.OnClickListener() { avatar_r3.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (uidR3 != null && !"".equals(uidR3)) { if (uidR3 != null && !"" .equals(uidR3)) {
showUserDialog(uidR3); showUserDialog(uidR3);
} }
} }
@ -3030,7 +3030,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
@Override @Override
public void onSuccess(int code, String msg, String[] info) { public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) { if (code == 0 && info.length > 0) {
if ("1".equals(info[0])) { if ("1" .equals(info[0])) {
ft_hot_add.setVisibility(View.VISIBLE); ft_hot_add.setVisibility(View.VISIBLE);
} else { } else {
ft_hot_add.setVisibility(View.GONE); ft_hot_add.setVisibility(View.GONE);
@ -3045,7 +3045,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
*/ */
public static void getIsHot(String isUseHotCard) { public static void getIsHot(String isUseHotCard) {
ImgLoader.display2(Contexts, "https://downs.yaoulive.com/img_hot_gif.gif", img_hot_gif); ImgLoader.display2(Contexts, "https://downs.yaoulive.com/img_hot_gif.gif", img_hot_gif);
if ("1".equals(isUseHotCard)) { if ("1" .equals(isUseHotCard)) {
ft_hot_add.setVisibility(View.VISIBLE); ft_hot_add.setVisibility(View.VISIBLE);
} else { } else {
ft_hot_add.setVisibility(View.GONE); ft_hot_add.setVisibility(View.GONE);
@ -3343,7 +3343,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
} else if (bean.getActivityId() == 0) { } else if (bean.getActivityId() == 0) {
openWebDialog(bean.getLink()); openWebDialog(bean.getLink());
} else { } else {
LiveGameDialogFragment fragment = new LiveGameDialogFragment("1".equals(bean.getShow_type())); LiveGameDialogFragment fragment = new LiveGameDialogFragment("1" .equals(bean.getShow_type()));
fragment.setActivityId(bean.getActivityId()); fragment.setActivityId(bean.getActivityId());
fragment.setRoomId(mLiveUid); fragment.setRoomId(mLiveUid);
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGameDialogFragment"); fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGameDialogFragment");
@ -3394,7 +3394,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
nowTime = time; nowTime = time;
tv_trickery_time.setText("" + nowTime); tv_trickery_time.setText("" + nowTime);
openType = 0; openType = 0;
if ("1".equals(msgtype)) { if ("1" .equals(msgtype)) {
nums = jsonObject.getString("nums"); nums = jsonObject.getString("nums");
prankid = jsonObject.getString("prankid"); prankid = jsonObject.getString("prankid");
content = jsonObject.getString("content"); content = jsonObject.getString("content");
@ -3558,21 +3558,21 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onUpdata(String str) { public void onUpdata(String str) {
if ("svga_new_user_gif".equals(str)) { if ("svga_new_user_gif" .equals(str)) {
if (fastMsgRecyclerView == null) return; if (fastMsgRecyclerView == null) return;
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams)
fastMsgRecyclerView.getLayoutParams(); fastMsgRecyclerView.getLayoutParams();
params1.rightMargin = DeviceUtils.getScreenWidth((Activity) mContext) / 3; params1.rightMargin = DeviceUtils.getScreenWidth((Activity) mContext) / 3;
fastMsgRecyclerView.setLayoutParams(params1); fastMsgRecyclerView.setLayoutParams(params1);
} else if ("stop_svga_new_user_gif".equals(str)) { } else if ("stop_svga_new_user_gif" .equals(str)) {
if (fastMsgRecyclerView == null) return; if (fastMsgRecyclerView == null) return;
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams)
fastMsgRecyclerView.getLayoutParams(); fastMsgRecyclerView.getLayoutParams();
params1.rightMargin = 0; params1.rightMargin = 0;
fastMsgRecyclerView.setLayoutParams(params1); fastMsgRecyclerView.setLayoutParams(params1);
} else if ("showBanner".equals(str)) { } else if ("showBanner" .equals(str)) {
showBanner3(bean1); showBanner3(bean1);
} else if ("stop_svga_new_user_double".equals(str) && mBannerList3.size() > 2) { } else if ("stop_svga_new_user_double" .equals(str) && mBannerList3.size() > 2) {
mBannerList3.get(2).setLink("1"); mBannerList3.get(2).setLink("1");
mBanner3.update(mBannerList3); mBanner3.update(mBannerList3);
@ -3583,7 +3583,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
} }
} }
} }
} else if ("stop_svga_new_user_follow".equals(str) && mBannerList3.size() > 1) { } else if ("stop_svga_new_user_follow" .equals(str) && mBannerList3.size() > 1) {
mBannerList3.get(1).setLink("1"); mBannerList3.get(1).setLink("1");
mBanner3.update(mBannerList3); mBanner3.update(mBannerList3);
@ -3594,7 +3594,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
} }
} }
} }
} else if ("stop_new_user_gif".equals(str) && mBannerList3.size() > 0) { } else if ("stop_new_user_gif" .equals(str) && mBannerList3.size() > 0) {
IMLoginManager.get(mContext).setNewUserGif(false); IMLoginManager.get(mContext).setNewUserGif(false);
mBannerList3.get(0).setLink("1"); mBannerList3.get(0).setLink("1");
mBanner3.update(mBannerList3); mBanner3.update(mBannerList3);

View File

@ -1220,6 +1220,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
@Override @Override
public void onLinkMicPkStart(String pkUid, String pkhead, String pkname, String isLadders) { public void onLinkMicPkStart(String pkUid, String pkhead, String pkname, String isLadders) {
System.out.println("PK测试 pkUid = " + pkUid + ", pkhead = " + pkhead + ", pkname = " + pkname + ", isLadders = " + isLadders);
if (mLiveRyLinkMicPkPresenter != null && mLiveRoomViewHolder != null) { if (mLiveRyLinkMicPkPresenter != null && mLiveRoomViewHolder != null) {
mLiveRyLinkMicPkPresenter.onLinkMicPkStart(pkUid, 1); mLiveRyLinkMicPkPresenter.onLinkMicPkStart(pkUid, 1);
Handler handler = new Handler(); Handler handler = new Handler();

View File

@ -58,7 +58,15 @@
android:text="@string/random_pk_info_desc_3" android:text="@string/random_pk_info_desc_3"
android:textColor="#F6F7FB" android:textColor="#F6F7FB"
android:textSize="14sp" /> android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="15dp"
android:text="@string/random_pk_info_time_desc"
android:textColor="#F6F7FB"
android:textSize="16sp"
android:textStyle="bold" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -66,7 +74,7 @@
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginEnd="10dp" android:layout_marginEnd="10dp"
android:layout_marginBottom="15dp" android:layout_marginBottom="15dp"
android:text="@string/random_pk_info_desc_4" android:text="@string/random_pk_info_time"
android:textColor="#F6F7FB" android:textColor="#F6F7FB"
android:textSize="14sp" /> android:textSize="14sp" />
</LinearLayout> </LinearLayout>

View File

@ -1289,9 +1289,9 @@
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:background="@drawable/bg_live_item_pk_rank_red" android:background="@drawable/bg_live_item_pk_rank_red"
android:paddingStart="17dp" android:paddingStart="17dp"
android:paddingTop="8dp" android:paddingTop="5dp"
android:paddingEnd="17dp" android:paddingEnd="17dp"
android:paddingBottom="8dp" android:paddingBottom="5dp"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="15sp" android:textSize="15sp"
android:textStyle="bold" android:textStyle="bold"
@ -1307,9 +1307,9 @@
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:background="@drawable/bg_live_item_pk_rank_blue" android:background="@drawable/bg_live_item_pk_rank_blue"
android:paddingStart="17dp" android:paddingStart="17dp"
android:paddingTop="8dp" android:paddingTop="5dp"
android:paddingEnd="17dp" android:paddingEnd="17dp"
android:paddingBottom="8dp" android:paddingBottom="5dp"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="15sp" android:textSize="15sp"
android:textStyle="bold" android:textStyle="bold"

View File

@ -34,9 +34,11 @@
<string name="live_mic_request" translatable="false">已同意請求,等待用戶接受</string> <string name="live_mic_request" translatable="false">已同意請求,等待用戶接受</string>
<string name="random_pk_info_view_title" translatable="false">隨機PK</string> <string name="random_pk_info_view_title" translatable="false">隨機PK</string>
<string name="random_pk_info_title" translatable="false">PK主要規則說明</string> <string name="random_pk_info_title" translatable="false">PK主要規則說明</string>
<string name="random_pk_info_desc_1" translatable="false">1、開始匹配後系統將會自動給您挑選對手進行PK</string> <string name="random_pk_info_time_desc" translatable="false">隨機PK排位賽時間</string>
<string name="random_pk_info_desc_2" translatable="false">2、每場PK總時長10分鍾懲罰時間為1分鍾</string> <string name="random_pk_info_time" translatable="false">12:00~17:00、19:00~23:59</string>
<string name="random_pk_info_desc_3" translatable="false">3、PK過程中若出現黑屏、卡頓延遲等技術問題請檢查個人設備及網絡後嘗試重新登陸開播軟件並開播</string> <string name="random_pk_info_desc_1" translatable="false">1、開始匹配後系統將自動挑選對手進行PK</string>
<string name="random_pk_info_desc_2" translatable="false">2、若長時間無法匹配到對手可嘗試重新匹配</string>
<string name="random_pk_info_desc_3" translatable="false">3、PK過程中卡頓及延遲可先檢查個人設備及網絡後嘗試重新登錄並開播</string>
<string name="random_pk_info_desc_4" translatable="false">4、安全部門將會24小時巡查請文明PK嚴格遵守主播守則</string> <string name="random_pk_info_desc_4" translatable="false">4、安全部門將會24小時巡查請文明PK嚴格遵守主播守則</string>
<string name="random_pk_info_switch" translatable="false">隨機PK開關</string> <string name="random_pk_info_switch" translatable="false">隨機PK開關</string>
<string name="random_pk_info_btn_start" translatable="false">開始匹配</string> <string name="random_pk_info_btn_start" translatable="false">開始匹配</string>