优化:调整天梯赛左右下角连胜字样大小
update 随机PK
This commit is contained in:
128
common/src/main/java/com/yunbao/common/bean/RankPkInfoBean.java
Normal file
128
common/src/main/java/com/yunbao/common/bean/RankPkInfoBean.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -63,6 +63,8 @@ public class UserBean implements Parcelable {
|
||||
private boolean isHide = false;
|
||||
//是否为随机PK,仅在主播PK时使用
|
||||
private boolean randomPk;
|
||||
//随机天梯排位赛PK img,仅在主播PK时使用
|
||||
private String mRankPkImgUrl;
|
||||
|
||||
public boolean isRandomPk() {
|
||||
return randomPk;
|
||||
@@ -72,6 +74,14 @@ public class UserBean implements Parcelable {
|
||||
this.randomPk = randomPk;
|
||||
}
|
||||
|
||||
public String getRankPkImgUrl() {
|
||||
return mRankPkImgUrl;
|
||||
}
|
||||
|
||||
public void setRankPkImgUrl(String mRankPkImgUrl) {
|
||||
this.mRankPkImgUrl = mRankPkImgUrl;
|
||||
}
|
||||
|
||||
public boolean isHide() {
|
||||
return isHide;
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.yunbao.common.bean.NobleRankHideUserListModel;
|
||||
import com.yunbao.common.bean.NobleTrumpetModel;
|
||||
import com.yunbao.common.bean.PkRankBean;
|
||||
import com.yunbao.common.bean.RandomPkUserBean;
|
||||
import com.yunbao.common.bean.RankPkInfoBean;
|
||||
import com.yunbao.common.bean.SearchModel;
|
||||
import com.yunbao.common.bean.SetAttentsModel;
|
||||
import com.yunbao.common.bean.SlideInBannerModel;
|
||||
@@ -388,4 +389,9 @@ public interface PDLiveApi {
|
||||
*/
|
||||
@GET("/api/public/?service=Livepk.setBanRandomPK")
|
||||
Observable<ResponseModel<BaseModel>> setBanRandomPK();
|
||||
/**
|
||||
* 拒绝随机PK
|
||||
*/
|
||||
@GET("/api/public/?service=Ranking.getRankingInfo")
|
||||
Observable<ResponseModel<RankPkInfoBean>> getRankingInfo();
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.R;
|
||||
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.PkRankBean;
|
||||
import com.yunbao.common.bean.RandomPkUserBean;
|
||||
import com.yunbao.common.bean.RankPkInfoBean;
|
||||
import com.yunbao.common.bean.SetAttentsModel;
|
||||
import com.yunbao.common.bean.StarChallengeStatusModel;
|
||||
import com.yunbao.common.bean.VipModel;
|
||||
@@ -598,8 +600,12 @@ public class LiveNetManager {
|
||||
@Override
|
||||
public void accept(ResponseModel<String> responseModel) throws Exception {
|
||||
if (callback != null) {
|
||||
callback.onSuccess("98196");
|
||||
// callback.onSuccess(responseModel.getData().getInfo());
|
||||
if(CommonAppConfig.getInstance().getUid().equals("98196")) {
|
||||
callback.onSuccess("98274");
|
||||
}else{
|
||||
callback.onSuccess("98196");
|
||||
}
|
||||
// callback.onSuccess(responseModel.getData().getInfo());
|
||||
}
|
||||
}
|
||||
}, new Consumer<Throwable>() {
|
||||
@@ -611,6 +617,7 @@ public class LiveNetManager {
|
||||
}
|
||||
}).isDisposed();
|
||||
}
|
||||
|
||||
/**
|
||||
* 自由PK开始后调用接口扣掉次数
|
||||
*/
|
||||
@@ -637,7 +644,7 @@ public class LiveNetManager {
|
||||
/**
|
||||
* 随机PK后调用接口给后台记录
|
||||
*/
|
||||
public void startRandomPK(String pkuid,HttpCallback<Boolean> callback) {
|
||||
public void startRandomPK(String pkuid, HttpCallback<Boolean> callback) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.startRandomPK(pkuid)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
@@ -665,6 +672,7 @@ public class LiveNetManager {
|
||||
|
||||
/**
|
||||
* 随机PK后调用接口给后台记录
|
||||
*
|
||||
* @param cs 简体关键字/uid
|
||||
* @param ct 繁体关键字/uid
|
||||
*/
|
||||
@@ -691,6 +699,7 @@ public class LiveNetManager {
|
||||
}
|
||||
}).isDisposed();
|
||||
}
|
||||
|
||||
/**
|
||||
* 拒绝随机PK
|
||||
*/
|
||||
@@ -713,6 +722,32 @@ public class LiveNetManager {
|
||||
}
|
||||
}).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();
|
||||
}
|
||||
|
||||
/**
|
||||
* 直播间取消网络请求
|
||||
*/
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
|
||||
import com.yunbao.common.CommonAppContext;
|
||||
import com.yunbao.common.bean.RankPkInfoBean;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
@@ -14,25 +15,30 @@ import java.util.Locale;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
/**
|
||||
* 随机PK管理类
|
||||
*/
|
||||
public class RandomPkManager {
|
||||
public final static int PK_STATUS_DEFAULT = -1;
|
||||
public final static int PK_STATUS_REQUEST = 0;
|
||||
public final static int PK_STATUS_START = 1;
|
||||
public final static int PK_STATUS_CLOSE = 2;
|
||||
public final static int PK_STATUS_REFUSE = 3;
|
||||
public final static int PK_STATUS_EXIT_ING = 4;
|
||||
public final static int PK_STATUS_DEFAULT = -1;//默认状态,一般为为开始匹配
|
||||
public final static int PK_STATUS_REQUEST = 0;//已发出匹配请求
|
||||
public final static int PK_STATUS_START = 1;//匹配到用户
|
||||
public final static int PK_STATUS_CLOSE = 2;//PK结束
|
||||
public final static int PK_STATUS_REFUSE = 3;//对方拒绝
|
||||
public final static int PK_STATUS_EXIT_ING = 4;//退出匹配中
|
||||
|
||||
private static RandomPkManager manager;
|
||||
private int min = -1;
|
||||
private int sec = -1;
|
||||
private int min = -1;//匹配计时器 分钟
|
||||
private int sec = -1;//匹配计时器 秒钟
|
||||
private int status = PK_STATUS_DEFAULT;
|
||||
private Timer timer;
|
||||
private TimerTask task;
|
||||
private List<OnRandomPkTimer> randomPkTimer = new ArrayList<>();
|
||||
private String pkUid;
|
||||
private final List<OnRandomPkTimer> randomPkTimer = new ArrayList<>();//监听器集合
|
||||
private String pkUid;//对方房间ID
|
||||
private RankPkInfoBean rankPkInfoBean;//排位赛信息
|
||||
Handler handler = new Handler(Looper.getMainLooper());
|
||||
|
||||
private RandomPkManager() {
|
||||
getRankInfo();
|
||||
initTask();
|
||||
}
|
||||
|
||||
@@ -43,23 +49,35 @@ public class RandomPkManager {
|
||||
return manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加监听器
|
||||
*/
|
||||
public void addOnRandomPkTimer(OnRandomPkTimer randomPkTimer) {
|
||||
if (randomPkTimer != null) {
|
||||
this.randomPkTimer.add(randomPkTimer);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除监听器
|
||||
*/
|
||||
public void unregisterOnRandomPkTimer(OnRandomPkTimer randomPkTimer) {
|
||||
if (randomPkTimer != null) {
|
||||
this.randomPkTimer.remove(randomPkTimer);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化参数
|
||||
*/
|
||||
private void initVal() {
|
||||
min = -1;
|
||||
sec = -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化任务
|
||||
*/
|
||||
private void initTask() {
|
||||
if (task != null) {
|
||||
return;
|
||||
@@ -86,11 +104,20 @@ public class RandomPkManager {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化匹配时间
|
||||
*/
|
||||
public String getTimer() {
|
||||
return String.format(Locale.CHINA, "%02d:%02d", min, sec);
|
||||
}
|
||||
|
||||
/**
|
||||
* 对方拒绝,开始下一轮匹配
|
||||
*/
|
||||
private void nextPk() {
|
||||
if (status != PK_STATUS_REQUEST && status != PK_STATUS_REFUSE) {
|
||||
return;
|
||||
}
|
||||
LiveNetManager.get(CommonAppContext.getTopActivity())
|
||||
.randomPK(new HttpCallback<String>() {
|
||||
@Override
|
||||
@@ -108,6 +135,16 @@ public class RandomPkManager {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否为排位赛模式
|
||||
*/
|
||||
public boolean isRankModel() {
|
||||
return rankPkInfoBean != null && rankPkInfoBean.isRankPKTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始匹配
|
||||
*/
|
||||
public boolean start() {
|
||||
if (status == PK_STATUS_START) {
|
||||
ToastUtil.show("PK中");
|
||||
@@ -126,28 +163,55 @@ public class RandomPkManager {
|
||||
timer.schedule(task, 0, 1000);
|
||||
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() {
|
||||
for (OnRandomPkTimer pkTimer : randomPkTimer) {
|
||||
pkTimer.onPkEndStart();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知所有监听者,退出匹配倒计时
|
||||
*/
|
||||
private void callEndPkTimer(String time) {
|
||||
for (OnRandomPkTimer pkTimer : randomPkTimer) {
|
||||
pkTimer.onPkEndTimer(time);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知所有监听者,退出匹配成功
|
||||
*/
|
||||
private void callEndPkSuccess() {
|
||||
for (OnRandomPkTimer pkTimer : randomPkTimer) {
|
||||
pkTimer.onPkEndSuccess();
|
||||
}
|
||||
status = PK_STATUS_DEFAULT;
|
||||
rankPkInfoBean = null;
|
||||
}
|
||||
|
||||
private int exitTimer;
|
||||
|
||||
/**
|
||||
* 退出匹配
|
||||
*/
|
||||
public void exitPk() {
|
||||
if (status == PK_STATUS_EXIT_ING) {
|
||||
return;
|
||||
@@ -175,6 +239,9 @@ public class RandomPkManager {
|
||||
}, 0, 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出连麦
|
||||
*/
|
||||
public void end() {
|
||||
if (task != null) {
|
||||
task.cancel();
|
||||
@@ -185,10 +252,16 @@ public class RandomPkManager {
|
||||
callEnd();
|
||||
}
|
||||
|
||||
public boolean isPking() {
|
||||
/**
|
||||
* 是否正在匹配中
|
||||
*/
|
||||
public boolean isRequestPk() {
|
||||
return status == PK_STATUS_REQUEST;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知所有监听者,结束匹配
|
||||
*/
|
||||
private void callEnd() {
|
||||
if (task != null) {
|
||||
task.cancel();
|
||||
@@ -201,6 +274,9 @@ public class RandomPkManager {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知所有监听者,开始匹配
|
||||
*/
|
||||
private void callStart() {
|
||||
if (task != null) {
|
||||
task.cancel();
|
||||
@@ -225,6 +301,9 @@ public class RandomPkManager {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 通知所有监听者,对方拒绝PK
|
||||
*/
|
||||
private void callRefuse() {
|
||||
handler.post(() -> {
|
||||
for (OnRandomPkTimer pkTimer : randomPkTimer) {
|
||||
@@ -233,8 +312,11 @@ public class RandomPkManager {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置PK状态
|
||||
*/
|
||||
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;
|
||||
}
|
||||
this.status = status;
|
||||
@@ -252,38 +334,69 @@ public class RandomPkManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否正在退出匹配中
|
||||
*/
|
||||
public boolean isExiting() {
|
||||
return status == PK_STATUS_EXIT_ING;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取退出匹配倒计时
|
||||
*/
|
||||
public String getExitTimer() {
|
||||
return exitTimer + "";
|
||||
}
|
||||
|
||||
|
||||
public static abstract class OnRandomPkTimer {
|
||||
/**
|
||||
* 匹配倒计时
|
||||
*/
|
||||
public void onTimer(String time) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 匹配到对方
|
||||
* @param pkUid 对方uid
|
||||
*/
|
||||
public void onStartPK(String pkUid) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 匹配中
|
||||
*/
|
||||
public void onPking() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 连麦结束
|
||||
*/
|
||||
public void onPkEnd() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 对方拒绝PK
|
||||
*/
|
||||
public void onRefuse() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出匹配倒计时
|
||||
*/
|
||||
public void onPkEndTimer(String time) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始退出匹配
|
||||
*/
|
||||
public void onPkEndStart() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出匹配成功
|
||||
*/
|
||||
public void onPkEndSuccess() {
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user