Merge branch 'dev_random_pk'
# Conflicts: # common/src/main/res/values/strings.xml # config.gradle # live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java # live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java # live/src/main/java/com/yunbao/live/socket/SocketRyClient.java
This commit is contained in:
@@ -705,7 +705,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
|
||||
*/
|
||||
@Override
|
||||
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) {
|
||||
mLiveRyLinkMicPkPresenter.onLinkMicPkStart(pkUid, 1);
|
||||
Handler handler = new Handler();
|
||||
|
||||
@@ -4,7 +4,9 @@ import static com.blankj.utilcode.util.SnackbarUtils.dismiss;
|
||||
import static com.tencent.trtc.TRTCCloudDef.TRTC_VIDEO_MIRROR_TYPE_DISABLE;
|
||||
import static com.tencent.trtc.TRTCCloudDef.TRTC_VIDEO_MIRROR_TYPE_ENABLE;
|
||||
import static com.yunbao.common.Constants.SOCKET_LIVE_DRPK;
|
||||
import static com.yunbao.live.views.LivePushRyViewHolder.rtcRoom;
|
||||
import static com.yunbao.common.Constants.SOCKET_LIVE_DRPK_RANDOM;
|
||||
import static com.yunbao.live.views.AbsRyLivePushViewHolder.mPreView;
|
||||
import static com.yunbao.live.views.LivePushRyViewHolder.dr_pk_view;
|
||||
import static com.yunbao.live.views.LiveRyAnchorViewHolder.btn_dr_pk_nub;
|
||||
import static com.yunbao.live.views.LiveRyAnchorViewHolder.btn_start_dr_pk;
|
||||
import static com.yunbao.live.views.LiveRyAnchorViewHolder.btn_start_dr_pk_view;
|
||||
@@ -48,6 +50,7 @@ import com.yunbao.common.http.CommonHttpUtil;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.http.HttpClient;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.manager.IMRTCManager;
|
||||
import com.yunbao.common.utils.BitmapUtil;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.DateFormatUtil;
|
||||
@@ -63,10 +66,14 @@ import com.yunbao.live.R;
|
||||
import com.yunbao.live.bean.LiveGuardInfo;
|
||||
import com.yunbao.live.bean.LiveKsyConfigBean;
|
||||
import com.yunbao.live.bean.LiveReceiveGiftBean;
|
||||
import com.yunbao.common.bean.LiveUserGiftBean;
|
||||
import com.yunbao.common.bean.MicUserBean;
|
||||
import com.yunbao.live.dialog.FreePkDialogFragment;
|
||||
import com.yunbao.live.dialog.LiveLinkMicListDialogFragment;
|
||||
import com.yunbao.live.dialog.LiveNewFunctionDialogFragment;
|
||||
import com.yunbao.live.dialog.LiveNewWishListDialogFragment;
|
||||
import com.yunbao.live.dialog.LiveWishListDialogFragment4Audience;
|
||||
import com.yunbao.live.dialog.RandomPkDialogFragment;
|
||||
import com.yunbao.live.event.LinkMicTxMixStreamEvent;
|
||||
import com.yunbao.live.event.LiveAudienceEvent;
|
||||
import com.yunbao.live.http.LiveHttpConsts;
|
||||
@@ -80,6 +87,8 @@ import com.yunbao.live.presenter.LiveRyLinkMicPkPresenter;
|
||||
import com.yunbao.live.socket.SocketRyChatUtil;
|
||||
import com.yunbao.live.socket.SocketRyClient;
|
||||
import com.yunbao.live.socket.SocketSendBean;
|
||||
import com.yunbao.common.utils.MicStatusManager;
|
||||
import com.yunbao.common.manager.RandomPkManager;
|
||||
import com.yunbao.live.views.LiveEndViewHolder;
|
||||
import com.yunbao.live.views.LiveMusicViewHolder;
|
||||
import com.yunbao.live.views.LiveNewReadyRyViewHolder;
|
||||
@@ -91,7 +100,9 @@ import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import cn.rongcloud.rtc.api.RCRTCEngine;
|
||||
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
|
||||
@@ -142,6 +153,39 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
public static int pk_nub;
|
||||
public static int backIndex = 0;//0=未判断,1=已判断
|
||||
private FaceManager manager;
|
||||
private final RandomPkManager.OnRandomPkTimer onRandomPkTimer = new RandomPkManager.OnRandomPkTimer() {
|
||||
@Override
|
||||
public void onTimer(String time) {
|
||||
if (mLiveRoomViewHolder != null) {
|
||||
mLiveRoomViewHolder.setRandomPkTimer(String.format(WordUtil.getString(R.string.random_pk_info_btn_ing), time));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartPK(String pkUid) {
|
||||
ToastUtil.show("发起随机PK:" + pkUid);
|
||||
JSONObject msg1 = buildLinkMicJSON();
|
||||
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());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPking() {
|
||||
if (mLiveRoomViewHolder != null) {
|
||||
mLiveRoomViewHolder.setRandomPkTimer(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPkEnd() {
|
||||
if (mLiveRoomViewHolder != null) {
|
||||
mLiveRoomViewHolder.setRandomPkTimer(null);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -180,6 +224,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
mContainer = (ViewGroup) findViewById(R.id.container);
|
||||
mLiveRyLinkMicPkPresenter = new LiveRyLinkMicPkPresenter(mContext, mLivePushViewHolder, true, mContainer);
|
||||
|
||||
RandomPkManager.getInstance().addOnRandomPkTimer(onRandomPkTimer);
|
||||
|
||||
//添加开播前设置控件
|
||||
mLiveReadyViewHolder = new LiveNewReadyRyViewHolder(mContext, mContainer, mLiveSDK);
|
||||
@@ -349,7 +394,8 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
break;
|
||||
case Constants.LIVE_FUNC_LINK_MIC://连麦
|
||||
if (isDRPK != 1) {
|
||||
openLinkMicAnchorWindow(false);
|
||||
//openLinkMicAnchorWindow(false);
|
||||
openFreePkWindow();
|
||||
} else {
|
||||
ToastUtil.show("您已在PK中");
|
||||
}
|
||||
@@ -368,6 +414,9 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
t.mirrorType = TRTC_VIDEO_MIRROR_TYPE_DISABLE;
|
||||
}
|
||||
break;
|
||||
case Constants.LIVE_FUNC_RANDOM_PK:
|
||||
openRandomPkWindow();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -547,7 +596,22 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
fragment.setArguments(bundle);
|
||||
fragment.show(getSupportFragmentManager(), "LiveLinkMicListDialogFragment");
|
||||
}
|
||||
public void openFreePkWindow(){
|
||||
FreePkDialogFragment fragment = new FreePkDialogFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
fragment.setArguments(bundle);
|
||||
fragment.show(getSupportFragmentManager(), "FreePkDialogFragment");
|
||||
}
|
||||
|
||||
/**
|
||||
* 随机PK
|
||||
*/
|
||||
public void openRandomPkWindow() {
|
||||
RandomPkDialogFragment fragment = new RandomPkDialogFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
fragment.setArguments(bundle);
|
||||
fragment.show(getSupportFragmentManager(), "RandomPkDialogFragment");
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开选择游戏窗口
|
||||
@@ -881,6 +945,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
MicStatusManager.getInstance().closeMic(mContext);
|
||||
}
|
||||
L.e("LiveAnchorActivity-------onDestroy------->");
|
||||
RandomPkManager.getInstance().unregisterOnRandomPkTimer(onRandomPkTimer);
|
||||
Bus.getOff(this);
|
||||
}
|
||||
|
||||
@@ -997,7 +1062,20 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
* @param pkUid 对方主播的uid
|
||||
* @param stream 对方主播的stream
|
||||
*/
|
||||
public void linkMicAnchorApply(final String pkUid, String stream) {
|
||||
public void linkMicAnchorApply(String pkUid, String stream) {
|
||||
JSONObject msg1 = buildLinkMicJSON();
|
||||
linkMicAnchorApply(pkUid, stream, msg1.toString());
|
||||
}
|
||||
public JSONObject buildLinkMicJSON(){
|
||||
JSONObject msg1 = new JSONObject();
|
||||
msg1.put("uid", CommonAppConfig.getInstance().getUid());
|
||||
msg1.put("pkuid", CommonAppConfig.getInstance().getUid());
|
||||
msg1.put("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
||||
msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar());
|
||||
return msg1;
|
||||
}
|
||||
|
||||
public void linkMicAnchorApply(final String pkUid, String stream, String extra) {
|
||||
|
||||
LiveHttpUtil.livePkCheckLive(pkUid, stream, mStream, new HttpCallback() {
|
||||
@Override
|
||||
@@ -1006,15 +1084,11 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
JSONObject obj = JSON.parseObject(info[0]);
|
||||
if (obj != null) {
|
||||
if (obj.getString("ispk").equals("0")) {
|
||||
JSONObject msg1 = new JSONObject();
|
||||
msg1.put("uid", CommonAppConfig.getInstance().getUid());
|
||||
msg1.put("pkuid", CommonAppConfig.getInstance().getUid());
|
||||
msg1.put("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
||||
msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar());
|
||||
rtcRoom.getLocalUser().requestJoinOtherRoom(pkUid, pkUid, true, msg1.toString(), new IRCRTCResultCallback() {
|
||||
|
||||
IMRTCManager.getInstance().requestJoinOtherRoom(pkUid, true, extra, new IRCRTCResultCallback() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
ToastUtil.show("邀请 " + pkUid + " 发送成功");
|
||||
// ToastUtil.show("邀请 " + pkUid + " 发送成功");
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -1048,14 +1122,24 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 发起多人主播连麦PK申请
|
||||
*
|
||||
* @param pkUid 对方主播的uid
|
||||
* @param stream 对方主播的stream (无需steam)
|
||||
*/
|
||||
public void linkDrMicAnchorApply(String pkUid, String stream) {
|
||||
linkDrMicAnchorApply(pkUid, stream, SOCKET_LIVE_DRPK);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发起多人主播连麦PK申请
|
||||
*
|
||||
* @param pkUid 对方主播的uid
|
||||
* @param stream 对方主播的stream
|
||||
* @param stream 对方主播的stream (无需steam)
|
||||
* @param extra PK类型
|
||||
*/
|
||||
public void linkDrMicAnchorApply(final String pkUid, String stream) {
|
||||
public void linkDrMicAnchorApply(final String pkUid, String stream, String extra) {
|
||||
|
||||
LiveHttpUtil.livePkCheckLive(pkUid, stream, mStream, new HttpCallback() {
|
||||
@Override
|
||||
@@ -1065,10 +1149,12 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
||||
if (obj != null) {
|
||||
if (obj.getString("ispk").equals("0")) {
|
||||
|
||||
rtcRoom.getLocalUser().requestJoinOtherRoom(pkUid, pkUid, true, SOCKET_LIVE_DRPK, new IRCRTCResultCallback() {
|
||||
IMRTCManager.getInstance().requestJoinOtherRoom(pkUid, true, extra, new IRCRTCResultCallback() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
ToastUtil.show("邀请 " + pkUid + " 发送成功");
|
||||
if (!extra.equals(SOCKET_LIVE_DRPK_RANDOM)) {
|
||||
ToastUtil.show("邀请 " + pkUid + " 发送成功");
|
||||
}
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
package com.yunbao.live.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.yunbao.common.adapter.RefreshAdapter;
|
||||
import com.yunbao.common.bean.RandomPkUserBean;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.manager.IMRTCManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.activity.LiveRyAnchorActivity;
|
||||
|
||||
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
|
||||
import cn.rongcloud.rtc.base.RTCErrorCode;
|
||||
|
||||
public class RandomPkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
|
||||
private static final int HEAD = 0;
|
||||
private static final int ITEM = 2;
|
||||
|
||||
public RandomPkRecyclerAdapter(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public HeadViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
if (viewType == HEAD) {
|
||||
return new HeadViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_random_pk_rv_head, parent, false));
|
||||
}
|
||||
return new ItemViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_random_pk_rv, parent, false));
|
||||
}
|
||||
|
||||
@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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == 0) {
|
||||
return HEAD;
|
||||
}
|
||||
return ITEM;
|
||||
}
|
||||
|
||||
private class HeadViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
public HeadViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
}
|
||||
|
||||
public void setData(RandomPkUserBean bean) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class ItemViewHolder extends HeadViewHolder {
|
||||
private TextView mNum;
|
||||
private TextView mName;
|
||||
private TextView mId;
|
||||
private TextView mStatus;
|
||||
private RoundedImageView mAvatar;
|
||||
private ImageView mPkStatus;
|
||||
private ImageView mFollow;
|
||||
|
||||
public ItemViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
mNum = itemView.findViewById(R.id.item_id);
|
||||
mName = itemView.findViewById(R.id.item_name);
|
||||
mId = itemView.findViewById(R.id.item_uid);
|
||||
mStatus = itemView.findViewById(R.id.item_status);
|
||||
mAvatar = itemView.findViewById(R.id.item_avatar);
|
||||
mPkStatus = itemView.findViewById(R.id.item_pk);
|
||||
mFollow = itemView.findViewById(R.id.item_follow);
|
||||
mPkStatus.setOnClickListener(v -> {
|
||||
RandomPkUserBean bean = (RandomPkUserBean) itemView.getTag();
|
||||
if (bean.isPk()) {
|
||||
ToastUtil.show(R.string.free_pk_user_pking);
|
||||
return;
|
||||
}
|
||||
((LiveRyAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(),
|
||||
((LiveRyAnchorActivity) mContext).buildLinkMicJSON().toString()
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setData(RandomPkUserBean bean) {
|
||||
super.setData(bean);
|
||||
int position = getAbsoluteAdapterPosition();
|
||||
if (bean == null) {
|
||||
return;
|
||||
}
|
||||
itemView.setTag(bean);
|
||||
mNum.setText((position) + "");
|
||||
if (position % 2 == 0) {
|
||||
itemView.setBackgroundResource(R.drawable.bg_item_random_pk_type_1);
|
||||
} else {
|
||||
itemView.setBackgroundResource(R.drawable.bg_item_random_pk_type_2);
|
||||
}
|
||||
ImgLoader.display(mContext, bean.getAvatar(), mAvatar);
|
||||
if (bean.getUserNiceName().length() > 4) {
|
||||
mName.setText(bean.getUserNiceName().substring(0, 4) + "...");
|
||||
} else {
|
||||
mName.setText(bean.getUserNiceName());
|
||||
}
|
||||
mId.setText(bean.getId());
|
||||
if (bean.isPk()) {
|
||||
mStatus.setText("PK中");
|
||||
ImgLoader.display(mContext, R.mipmap.ic_random_pk_pk, mPkStatus);
|
||||
} else {
|
||||
mStatus.setText("空闲");
|
||||
ImgLoader.display(mContext, R.mipmap.ic_random_pk_pk_unselect, mPkStatus);
|
||||
}
|
||||
if (bean.isAttention()) {
|
||||
ImgLoader.display(mContext, R.mipmap.ic_random_pk_like, mFollow);
|
||||
} else {
|
||||
ImgLoader.display(mContext, R.mipmap.ic_random_pk_like_unselect, mFollow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,272 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.app.Dialog;
|
||||
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.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
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.RandomPkUserBean;
|
||||
import com.yunbao.common.custom.CommonRefreshView;
|
||||
import com.yunbao.common.dialog.AbsDialogFragment;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.manager.RandomPkManager;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.utils.WordsTypeUtil;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.adapter.RandomPkRecyclerAdapter;
|
||||
import com.yunbao.live.bean.LivePkBean;
|
||||
import com.yunbao.live.http.LiveHttpUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
/**
|
||||
* 自由PK
|
||||
*/
|
||||
public class FreePkDialogFragment extends AbsDialogFragment implements View.OnClickListener {
|
||||
private static final int TAB_STATUS_SEARCH = 1;
|
||||
private static final int TAB_STATUS_FOLLOW = 2;
|
||||
|
||||
private static final String TAG = "自由PK";
|
||||
private int mLiveUid;
|
||||
private TabLayout tabLayout;
|
||||
private View reset;
|
||||
private CommonRefreshView mRecyclerView;
|
||||
private View mSearchLayout;
|
||||
private EditText mSearch;
|
||||
private ImageView mClear;
|
||||
private RandomPkRecyclerAdapter adapter;
|
||||
private DataHelper helper;
|
||||
private int tabStatus;
|
||||
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.dialog_live_free_pk_function;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDialogStyle() {
|
||||
return R.style.dialog2;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canCancel() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setWindowAttributes(Window window) {
|
||||
WindowManager.LayoutParams params = window.getAttributes();
|
||||
window.setWindowAnimations(R.style.bottomToTopAnim);
|
||||
params.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
params.height = DpUtil.dp2px(330);
|
||||
params.gravity = Gravity.BOTTOM;
|
||||
window.setAttributes(params);
|
||||
}
|
||||
|
||||
public void setLiveUid(int mLiveUid) {
|
||||
this.mLiveUid = mLiveUid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
initView();
|
||||
initTab();
|
||||
initData();
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
tabLayout = (TabLayout) findViewById(R.id.menu_tab);
|
||||
reset = findViewById(R.id.menu_reset);
|
||||
mRecyclerView = (CommonRefreshView) findViewById(R.id.random_container_view);
|
||||
mSearchLayout = findViewById(R.id.random_pk_search_layout);
|
||||
mSearch = (EditText) findViewById(R.id.search_edit);
|
||||
mClear = (ImageView) findViewById(R.id.search_clear);
|
||||
mClear.setOnClickListener(this);
|
||||
mSearch.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
helper.search(s.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
initRecycler();
|
||||
}
|
||||
|
||||
private void initRecycler() {
|
||||
helper = new DataHelper();
|
||||
adapter = new RandomPkRecyclerAdapter(mContext);
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
|
||||
mRecyclerView.setDataHelper(helper);
|
||||
mRecyclerView.initData();
|
||||
}
|
||||
|
||||
|
||||
private void initData() {
|
||||
}
|
||||
|
||||
private void initTab() {
|
||||
TabLayout.Tab searchTag = tabLayout.newTab();
|
||||
TabLayout.Tab listTag = tabLayout.newTab();
|
||||
searchTag.setTag(TAB_STATUS_SEARCH);
|
||||
searchTag.setText("主播搜索");
|
||||
listTag.setTag(TAB_STATUS_FOLLOW);
|
||||
listTag.setText("關注列表");
|
||||
tabLayout.addTab(searchTag);
|
||||
tabLayout.addTab(listTag);
|
||||
tabStatus = TAB_STATUS_SEARCH;
|
||||
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
|
||||
@Override
|
||||
public void onTabSelected(TabLayout.Tab tab) {
|
||||
if (tab.getTag() != null) {
|
||||
tabStatus = (int) tab.getTag();
|
||||
mRecyclerView.setVisibility(View.GONE);
|
||||
mSearchLayout.setVisibility(View.GONE);
|
||||
switch (tabStatus) {
|
||||
case TAB_STATUS_SEARCH:
|
||||
mSearchLayout.setVisibility(View.VISIBLE);
|
||||
mRecyclerView.setVisibility(View.VISIBLE);
|
||||
mRecyclerView.initData();
|
||||
break;
|
||||
case TAB_STATUS_FOLLOW:
|
||||
mRecyclerView.setVisibility(View.VISIBLE);
|
||||
mRecyclerView.initData();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabUnselected(TabLayout.Tab tab) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabReselected(TabLayout.Tab tab) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == R.id.live_random_pk_switch) {
|
||||
|
||||
} else if (id == R.id.search_clear) {
|
||||
mSearch.setText("");
|
||||
}
|
||||
}
|
||||
|
||||
public class DataHelper implements CommonRefreshView.DataHelper<RandomPkUserBean> {
|
||||
|
||||
public void search(String key) {
|
||||
LiveNetManager.get(mContext)
|
||||
.randomPkSearchUser(key, WordsTypeUtil.changeTraditional(key), new com.yunbao.common.http.base.HttpCallback<List<RandomPkUserBean>>() {
|
||||
@Override
|
||||
public void onSuccess(List<RandomPkUserBean> data) {
|
||||
List<RandomPkUserBean> list = new ArrayList<>();
|
||||
list.add(null);
|
||||
list.addAll(data);
|
||||
adapter.setList(list);
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public RefreshAdapter<RandomPkUserBean> getAdapter() {
|
||||
return adapter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadData(int p, HttpCallback callback) {
|
||||
LiveHttpUtil.getLivePkList(p, callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RandomPkUserBean> processData(String[] info) {
|
||||
Log.i(TAG, "processData: 获取数据成功");
|
||||
List<LivePkBean> beans = JSON.parseArray(Arrays.toString(info), LivePkBean.class);
|
||||
List<RandomPkUserBean> list = new ArrayList<>();
|
||||
for (LivePkBean bean : beans) {
|
||||
RandomPkUserBean userBean = new RandomPkUserBean();
|
||||
userBean.setId(bean.getUid());
|
||||
userBean.setSex(bean.getSex());
|
||||
userBean.setUserNiceName(bean.getUserNiceName());
|
||||
userBean.setAvatar(bean.getAvatar());
|
||||
userBean.setPk(bean.getPkUid().equals("0") ? 0 : 1);
|
||||
userBean.setAttention("0");
|
||||
list.add(userBean);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefreshSuccess(List<RandomPkUserBean> list, int listCount) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefreshFailure() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreSuccess(List<RandomPkUserBean> loadItemList, int loadItemCount) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreFailure() {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,7 @@ import com.yunbao.live.interfaces.LiveFunctionClickListener;
|
||||
public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements View.OnClickListener {
|
||||
|
||||
private View mWishView, mPrankView, mWksView, mBeautyView, mCameraView, mLeaveView, mOnePkView, mMultiPkView, mMicView;
|
||||
private View mRandomPk;
|
||||
private LiveFunctionClickListener mFunctionClickListener;
|
||||
private int leave = 0;
|
||||
private boolean isPk;
|
||||
@@ -79,6 +80,7 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
|
||||
mOnePkView = findViewById(R.id.live_tool_one_pk);
|
||||
mMultiPkView = findViewById(R.id.live_tool_multi_pk);
|
||||
mMicView = findViewById(R.id.live_tool_mic);
|
||||
mRandomPk = findViewById(R.id.live_tool_random_pk);
|
||||
|
||||
mWishView.setOnClickListener(this);
|
||||
mPrankView.setOnClickListener(this);
|
||||
@@ -89,6 +91,7 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
|
||||
mOnePkView.setOnClickListener(this);
|
||||
mMultiPkView.setOnClickListener(this);
|
||||
mMicView.setOnClickListener(this);
|
||||
mRandomPk.setOnClickListener(this);
|
||||
|
||||
if (leave == 0) {
|
||||
((ImageView) mLeaveView.findViewById(R.id.live_tool_leave_img)).setImageResource(R.mipmap.icon_leave);
|
||||
@@ -140,6 +143,8 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
|
||||
mFunctionClickListener.onClick(LIVE_FUNC_DR);
|
||||
} else if (id == R.id.live_tool_mic) {
|
||||
mFunctionClickListener.onClick(LIVE_FUNC_MIC);
|
||||
} else if (id == R.id.live_tool_random_pk) {
|
||||
mFunctionClickListener.onClick(LIVE_FUNC_RANDOM_PK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,255 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yunbao.common.bean.HttpCallbackModel;
|
||||
import com.yunbao.common.dialog.AbsDialogFragment;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.common.manager.RandomPkManager;
|
||||
|
||||
/**
|
||||
* 随机PK
|
||||
*/
|
||||
public class RandomPkDialogFragment extends AbsDialogFragment implements View.OnClickListener {
|
||||
private static final String TAG = "随机PK";
|
||||
private View mPkBtn;
|
||||
private TextView mPkBtnTitle;
|
||||
private TextView mPkBtnDesc;
|
||||
private ImageView mRandomPkSwitch;
|
||||
|
||||
|
||||
private final RandomPkManager.OnRandomPkTimer randomPkTimer = new RandomPkManager.OnRandomPkTimer() {
|
||||
@Override
|
||||
public void onTimer(String time) {
|
||||
if (!mPkBtn.isEnabled()) {
|
||||
return;
|
||||
}
|
||||
Log.i(TAG, "onTimer: " + time);
|
||||
mPkBtnTitle.setText(String.format(WordUtil.getString(R.string.random_pk_info_btn_ing), time));
|
||||
mPkBtnDesc.setText(R.string.random_pk_info_btn_end_desc);
|
||||
mPkBtnDesc.setVisibility(View.VISIBLE);
|
||||
mPkBtn.setBackgroundResource(R.drawable.bg_live_room_random_pk_timer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPking() {
|
||||
resetPkBtn();
|
||||
dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPkEnd() {
|
||||
resetPkBtn();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPkEndStart() {
|
||||
super.onPkEndStart();
|
||||
mPkBtn.setEnabled(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPkEndTimer(String time) {
|
||||
super.onPkEndTimer(time);
|
||||
mPkBtnTitle.setText(String.format(WordUtil.getString(R.string.random_pk_info_btn_end), time));
|
||||
mPkBtnDesc.setText(R.string.random_pk_info_btn_end_desc);
|
||||
mPkBtn.setEnabled(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPkEndSuccess() {
|
||||
super.onPkEndSuccess();
|
||||
resetPkBtn();
|
||||
mPkBtn.setTag(false);
|
||||
mPkBtn.setEnabled(true);
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.dialog_live_random_pk_function;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDialogStyle() {
|
||||
return R.style.dialog2;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canCancel() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setWindowAttributes(Window window) {
|
||||
WindowManager.LayoutParams params = window.getAttributes();
|
||||
window.setWindowAnimations(R.style.bottomToTopAnim);
|
||||
params.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||
params.gravity = Gravity.BOTTOM;
|
||||
window.setAttributes(params);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
RandomPkManager.getInstance().unregisterOnRandomPkTimer(randomPkTimer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
initView();
|
||||
initData();
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
mPkBtn = findViewById(R.id.random_pk_info_btn);
|
||||
mPkBtnTitle = (TextView) findViewById(R.id.random_pk_btn_title);
|
||||
mPkBtnDesc = (TextView) findViewById(R.id.random_pk_btn_desc);
|
||||
mRandomPkSwitch = (ImageView) findViewById(R.id.live_random_pk_switch);
|
||||
mRandomPkSwitch.setTag(true);
|
||||
mRandomPkSwitch.setOnClickListener(this);
|
||||
mPkBtn.setOnClickListener(this);
|
||||
}
|
||||
|
||||
private void initData() {
|
||||
RandomPkManager.getInstance().addOnRandomPkTimer(randomPkTimer);
|
||||
initPkSwitch();
|
||||
if (RandomPkManager.getInstance().isRequestPk()) {
|
||||
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.setVisibility(View.VISIBLE);
|
||||
mPkBtn.setBackgroundResource(R.drawable.bg_live_room_random_pk_timer);
|
||||
} else if (RandomPkManager.getInstance().isExiting()) {
|
||||
mPkBtnTitle.setText(String.format(WordUtil.getString(R.string.random_pk_info_btn_end), RandomPkManager.getInstance().getExitTimer()));
|
||||
mPkBtnDesc.setText(R.string.random_pk_info_btn_end_desc);
|
||||
mPkBtn.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设置随机PK开关状态
|
||||
*
|
||||
* @param open on/off
|
||||
*/
|
||||
private void setSwitchBtn(boolean open) {
|
||||
if (open) {
|
||||
ImgLoader.display(mContext, com.yunbao.common.R.mipmap.special_icon_on, mRandomPkSwitch);
|
||||
mRandomPkSwitch.setTag(true);
|
||||
} else {
|
||||
ImgLoader.display(mContext, com.yunbao.common.R.mipmap.special_icon_off, mRandomPkSwitch);
|
||||
mRandomPkSwitch.setTag(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取随机PK状态
|
||||
*/
|
||||
private void initPkSwitch() {
|
||||
LiveNetManager.get(mContext)
|
||||
.getRandomPkSwitch(new com.yunbao.common.http.base.HttpCallback<Integer>() {
|
||||
@Override
|
||||
public void onSuccess(Integer data) {
|
||||
if (data != null) {
|
||||
setSwitchBtn(data == 1);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private Dialog loadDialog;
|
||||
|
||||
/**
|
||||
* 设置随机PK状态
|
||||
*
|
||||
* @param pk 1=on,0=off
|
||||
*/
|
||||
private void setPkSwitch(int pk) {
|
||||
if (RandomPkManager.getInstance().isRequestPk() || RandomPkManager.getInstance().isExiting()) {
|
||||
return;
|
||||
}
|
||||
loadDialog = DialogUitl.loadingDialog(mContext);
|
||||
loadDialog.show();
|
||||
LiveNetManager.get(mContext)
|
||||
.changeRandomPkSwitch(pk, new com.yunbao.common.http.base.HttpCallback<HttpCallbackModel>() {
|
||||
@Override
|
||||
public void onSuccess(HttpCallbackModel data) {
|
||||
loadDialog.dismiss();
|
||||
loadDialog = null;
|
||||
if (data.getCode() == 0) {
|
||||
setSwitchBtn(!(boolean) mRandomPkSwitch.getTag());
|
||||
} else {
|
||||
ToastUtil.show(data.getMsg());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
loadDialog.dismiss();
|
||||
loadDialog = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void randomPk() {
|
||||
if (mRandomPkSwitch.getTag() == null || !(boolean) mRandomPkSwitch.getTag()) {
|
||||
ToastUtil.show("未开启随机PK开关");
|
||||
return;
|
||||
}
|
||||
if ((mPkBtn.getTag() != null && (boolean) mPkBtn.getTag()) || RandomPkManager.getInstance().isRequestPk()) {
|
||||
RandomPkManager.getInstance().exitPk();
|
||||
return;
|
||||
}
|
||||
|
||||
if (RandomPkManager.getInstance().start()) {
|
||||
mPkBtnDesc.setVisibility(View.VISIBLE);
|
||||
mPkBtnDesc.setText(R.string.random_pk_info_btn_ing_desc);
|
||||
mPkBtn.setTag(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void resetPkBtn() {
|
||||
mPkBtnDesc.setVisibility(View.GONE);
|
||||
mPkBtnTitle.setText(R.string.random_pk_info_btn_start);
|
||||
mPkBtn.setBackgroundResource(R.drawable.bg_live_random_pk_info_btn);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == R.id.live_random_pk_switch) {
|
||||
if (mRandomPkSwitch.getTag() != null && (boolean) mRandomPkSwitch.getTag()) {
|
||||
setPkSwitch(0);
|
||||
} else {
|
||||
setPkSwitch(1);
|
||||
}
|
||||
} else if (id == R.id.random_pk_info_btn) {
|
||||
randomPk();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.yunbao.live.presenter;
|
||||
|
||||
import android.app.Dialog;
|
||||
import static com.lzy.okgo.utils.HttpUtils.runOnUiThread;
|
||||
import static com.yunbao.common.Constants.SOCKET_LINK_MIC_PK;
|
||||
import static com.yunbao.common.Constants.SOCKET_LIVE_DRPK;
|
||||
@@ -19,6 +20,7 @@ import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.os.SystemClock;
|
||||
import android.text.Html;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
@@ -41,8 +43,12 @@ import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.http.HttpClient;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.manager.IMRTCManager;
|
||||
import com.yunbao.common.manager.RandomPkManager;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.ScreenDimenUtil;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
@@ -63,9 +69,14 @@ import com.yunbao.live.views.LiveRoomPlayViewHolder;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import cn.rongcloud.rtc.api.RCRTCEngine;
|
||||
import cn.rongcloud.rtc.api.RCRTCMixConfig;
|
||||
@@ -630,7 +641,11 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
mApplyNmae = u.getUserNiceName();
|
||||
if (by != 1) {
|
||||
if (mIsApplyDialogShow == false) {
|
||||
showApplyDialog(u);
|
||||
if (u.isRandomPk()) {
|
||||
showPkDialog(u);
|
||||
} else {
|
||||
showApplyDialog(u);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isPK();
|
||||
@@ -651,7 +666,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
* @param callBack 加入房间回调
|
||||
* @group 房间管理
|
||||
*/
|
||||
|
||||
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
|
||||
RCRTCEngine.getInstance().joinOtherRoom(u.getId(), new IRCRTCResultDataCallback<RCRTCOtherRoom>() {
|
||||
@Override
|
||||
public void onSuccess(RCRTCOtherRoom rcrtcOtherRoom) {
|
||||
@@ -803,7 +818,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatarThumb());
|
||||
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
|
||||
public void onSuccess() {
|
||||
RCRTCEngine.getInstance().joinOtherRoom(mApplyUid, new IRCRTCResultDataCallback<RCRTCOtherRoom>() {
|
||||
@@ -1044,46 +1059,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
});
|
||||
|
||||
} else {
|
||||
rtcRoom.getLocalUser().responseJoinOtherRoom(u.getId(), u.getId(), false, 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());
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
refusePk(u);
|
||||
}
|
||||
mApplyUid = null;
|
||||
mApplyStream = null;
|
||||
@@ -1218,6 +1194,134 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 随机PK拒绝对话框
|
||||
*/
|
||||
public void showPkDialog(UserBean u) {
|
||||
new DialogUitl.Builder(mContext)
|
||||
.setHtmlCode(Html.fromHtml(
|
||||
"<font color='#999999' size='12'>有人向您发起PK请求。</font><br/>" +
|
||||
"<font color='#FB4F4F' size='12'>若拒绝PK,将会120分钟内不会再收到任何随机PK请求。</font>"
|
||||
))
|
||||
.setConfrimString("接受")
|
||||
.setCancelString("拒絕")
|
||||
.setView(R.layout.dialog_live_random_pk)
|
||||
.setSimpleCallbackView(new DialogUitl.SimpleCallbackView() {
|
||||
boolean clickCancel = false;
|
||||
String titleVal;
|
||||
TimerTask task;
|
||||
|
||||
@Override
|
||||
public void onShow(Dialog dialog, View title, View context, View confirmBtn, View cancelBtn) {
|
||||
task = new TimerTask() {
|
||||
int time = 11;
|
||||
final Handler handler = new Handler(Looper.getMainLooper());
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
if (titleVal == null) {
|
||||
titleVal = ((TextView) title).getText().toString();
|
||||
}
|
||||
handler.post(() -> ((TextView) title).setText(titleVal + " " + time));
|
||||
if (time-- == 0) {
|
||||
handler.post(() -> showClose(dialog, title, context, confirmBtn, cancelBtn));
|
||||
cancel();
|
||||
}
|
||||
}
|
||||
};
|
||||
new Timer().schedule(task, 1000, 1000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfirmClick(Dialog dialog, View title, View context, View confirmBtn, View cancelBtn) {
|
||||
dialog.dismiss();
|
||||
apply();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancel(Dialog dialog, View title, View context, View confirmBtn, View cancelBtn) {
|
||||
if (!clickCancel) {
|
||||
titleVal = "拒絕PK提示";
|
||||
((TextView) context).setText(Html.fromHtml(
|
||||
"<font color='#999999' size='12'>若拒絕PK,將會關閉你的隨機PK開關。</br>" +
|
||||
"並且120分鍾不會收到任何隨機PK請求。</font>"
|
||||
));
|
||||
((TextView) cancelBtn).setText("堅持拒絕");
|
||||
clickCancel = true;
|
||||
return;
|
||||
}
|
||||
showClose(dialog, title, context, confirmBtn, cancelBtn);
|
||||
}
|
||||
|
||||
void showClose(Dialog dialog, View title, View context, View confirmBtn, View cancelBtn) {
|
||||
task.cancel();
|
||||
((TextView) title).setText("您因拒絕隨機PK,被限制關閉中");
|
||||
((TextView) confirmBtn).setText("确定");
|
||||
((TextView) context).setText("隨機PK可打開時間:" + new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault()).format(new Date(System.currentTimeMillis() + 7200000)));//7200000ms=120m=2h
|
||||
((TextView) context).setTextSize(12);
|
||||
((TextView) context).setTextColor(Color.parseColor("#999999"));
|
||||
|
||||
cancelBtn.setVisibility(View.GONE);
|
||||
confirmBtn.setOnClickListener(v -> {
|
||||
refusePk(u);
|
||||
dialog.dismiss();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
void apply() {
|
||||
isPK();
|
||||
}
|
||||
})
|
||||
.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的弹窗
|
||||
*/
|
||||
@@ -1264,7 +1368,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
agree = false;
|
||||
}
|
||||
boolean finalAgree = agree;
|
||||
rtcRoom.getLocalUser().responseJoinOtherRoom(mApplyUid, mApplyUid, agree, true, SOCKET_LIVE_DRPK, new IRCRTCResultCallback() {
|
||||
IMRTCManager.getInstance().responseJoinOtherRoom(mApplyUid, agree, SOCKET_LIVE_DRPK, new IRCRTCResultCallback() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
if (finalAgree == true) {
|
||||
@@ -1311,7 +1415,12 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
}
|
||||
JSONObject obj = JSONObject.parseObject(info[0]);
|
||||
JSONArray users = obj.getJSONArray("userlist");
|
||||
|
||||
//添加水印
|
||||
// RCRTCRect rect = new RCRTCRect(0.5f, 0.5f, 0.2f);
|
||||
// RCRTCEngine.getInstance().getDefaultVideoStream().setWatermark(fromText(50, mNameText), rect);
|
||||
dRjoinOtherRoom(u.getId(), 1);
|
||||
|
||||
for (int i = 0; i < users.size(); i++) {
|
||||
JSONObject user = users.getJSONObject(i);
|
||||
Log.e("ry", mApplyUid + "VS" + user.getString("id") + "列表");
|
||||
@@ -1329,7 +1438,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
* 2:无论为true或false,双方都可以使用{@link RCRTCLiveInfo#setMixConfig(RCRTCMixConfig, IRCRTCResultCallback)} 方法主动设置合流布局。一旦主动设置过合流布局,后续音视频直播过程中设置的自动合流参数将失效。
|
||||
* <P/>
|
||||
*/
|
||||
rtcRoom.getLocalUser().requestJoinOtherRoom(user.getString("id"), user.getString("id"), false, "LiveDRPK1", new IRCRTCResultCallback() {
|
||||
IMRTCManager.getInstance().requestJoinOtherRoom(user.getString("id"), false, "LiveDRPK1", new IRCRTCResultCallback() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
}
|
||||
@@ -1363,7 +1472,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
|
||||
} else {
|
||||
if (mPkWaitCount < 0) {
|
||||
rtcRoom.getLocalUser().responseJoinOtherRoom(u.getId(), u.getId(), false, false, "extra", new IRCRTCResultCallback() {
|
||||
IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() {
|
||||
|
||||
@Override
|
||||
public void onFailed(RTCErrorCode errorCode) {
|
||||
@@ -1405,7 +1514,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
});
|
||||
|
||||
} else {
|
||||
rtcRoom.getLocalUser().responseJoinOtherRoom(u.getId(), u.getId(), false, false, "extra", new IRCRTCResultCallback() {
|
||||
IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() {
|
||||
|
||||
@Override
|
||||
public void onFailed(RTCErrorCode errorCode) {
|
||||
@@ -2122,7 +2231,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
}
|
||||
if (mLiveLinkMicPkViewHolder != null) {
|
||||
if (!TextUtils.isEmpty(winUid)) {
|
||||
if ("0".equals(winUid)) {
|
||||
if ("0" .equals(winUid)) {
|
||||
mLiveLinkMicPkViewHolder.end(0);
|
||||
mLiveLinkMicPkViewHolder.hideTime();
|
||||
if (mHandler != null) {
|
||||
@@ -2241,7 +2350,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
|
||||
if (mIsAnchor) {
|
||||
((LiveRyAnchorActivity) mContext).setPkBtnVisible(true);
|
||||
}
|
||||
ToastUtil.show(R.string.link_mic_refuse_pk);
|
||||
// ToastUtil.show(R.string.link_mic_refuse_pk);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.yunbao.common.bean.SocketModel;
|
||||
import com.yunbao.common.bean.UserBean;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.http.HttpClient;
|
||||
import com.yunbao.common.manager.IMRTCManager;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.L;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
@@ -47,6 +48,7 @@ import com.yunbao.live.bean.LiveLuckGiftWinBean;
|
||||
import com.yunbao.live.bean.LivePKUserListBean;
|
||||
import com.yunbao.live.bean.LiveReceiveGiftBean;
|
||||
import com.yunbao.live.event.LiveAudienceEvent;
|
||||
import com.yunbao.common.manager.RandomPkManager;
|
||||
import com.yunbao.live.views.LiveEndViewHolder;
|
||||
import com.yunbao.live.views.LivePlayKsyViewHolder;
|
||||
import com.yunbao.live.views.LivePlayRyViewHolder;
|
||||
@@ -264,6 +266,7 @@ public class SocketRyClient {
|
||||
// case Constants.SOCKET_SEND_GIFT://送礼物
|
||||
// ////////pk
|
||||
// break;
|
||||
case Constants.SOCKET_LIVE_DRPK_RANDOM:
|
||||
case Constants.SOCKET_LIVE_DRPK://多人PK
|
||||
int action3 = map.getIntValue("action");
|
||||
//收到多人PK邀请
|
||||
@@ -323,7 +326,7 @@ public class SocketRyClient {
|
||||
isDRPK = 1;
|
||||
} else if (action3 == 10) {
|
||||
if (!map.getString("uid").equals(CommonAppConfig.getInstance().getUid())) {
|
||||
// LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
|
||||
// LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
|
||||
Bus.get().post(new LiveAudienceEvent()
|
||||
.setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW)
|
||||
);
|
||||
@@ -473,7 +476,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 +663,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 +676,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 +728,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 +880,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,23 +1056,27 @@ public class SocketRyClient {
|
||||
mListener.onLinkMicPkApply(u, map.getString("stream"), 1);
|
||||
break;
|
||||
case 2://收到对方主播PK回调
|
||||
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
|
||||
mListener.onLinkMicToPk(map.getString("uid"), map.getString("pkhead"), map.getString("pkname"));
|
||||
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);
|
||||
mListener.onLinkMicPkRefuse();
|
||||
break;
|
||||
case 4://所有人收到PK开始址的回调
|
||||
// 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时候断开连麦的回调
|
||||
if (rtcRoom != null) {
|
||||
// if (LivePushRyViewHolder.mPreView1 != null) {
|
||||
// LivePushRyViewHolder.mPreView1.removeAllViews();
|
||||
// LivePushRyViewHolder.mPreView1.setVisibility(View.GONE);
|
||||
// isDRPK = 0;
|
||||
// leaveDRRoom();
|
||||
// }
|
||||
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_CLOSE);
|
||||
/* if (LivePushRyViewHolder.mPreView1 != null) {
|
||||
LivePushRyViewHolder.mPreView1.removeAllViews();
|
||||
LivePushRyViewHolder.mPreView1.setVisibility(View.GONE);
|
||||
isDRPK = 0;
|
||||
leaveDRRoom();
|
||||
}*/
|
||||
LivePushRyViewHolder.btn_close.setVisibility(View.GONE);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
|
||||
params.topMargin = 0;
|
||||
@@ -1101,10 +1108,7 @@ public class SocketRyClient {
|
||||
msg1.put("pkuid", CommonAppConfig.getInstance().getUid());
|
||||
msg1.put("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
|
||||
msg1.put("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar());
|
||||
if (rtcRoom == null) {
|
||||
return;
|
||||
}
|
||||
rtcRoom.getLocalUser().requestJoinOtherRoom(map.getString("uid"), map.getString("uid"), true, msg1.toString(), new IRCRTCResultCallback() {
|
||||
IMRTCManager.getInstance().requestJoinOtherRoom(map.getString("uid"), true, msg1.toString(), new IRCRTCResultCallback() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
ToastUtil.show("邀请 " + map.getString("uid") + " 发送成功");
|
||||
|
||||
@@ -34,6 +34,8 @@ import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.bean.UserBean;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.http.HttpClient;
|
||||
import com.yunbao.common.manager.IMRTCManager;
|
||||
import com.yunbao.common.manager.RandomPkManager;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.L;
|
||||
@@ -223,9 +225,22 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
|
||||
mLiveRyLinkMicPkPresenter.onLinkMicPkApply(userBean1, "", 1);
|
||||
} else {
|
||||
Log.e("ry", extra);
|
||||
/*
|
||||
* {
|
||||
* "pkhead": "https://downs.yaoulive.com/20220906170849_79c553dc1319fb5c215e06e01674eba4?imageView2/2/w/600/h/600",
|
||||
* "pkname": "用户_98274",
|
||||
* "pkuid": "98274",
|
||||
* "randomPk": true,
|
||||
* "uid": "98274"
|
||||
* }
|
||||
*/
|
||||
UserBean userBean1 = new UserBean();
|
||||
if (!extra.equals("")) {
|
||||
JSONObject map = JSONObject.parseObject(extra);
|
||||
userBean1.setAvatar(map.getString("pkhead"));
|
||||
userBean1.setUserNiceName(map.getString("pkname"));
|
||||
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.setUserNiceName(map.getString("pkname"));
|
||||
userBean1.setAvatar(map.getString("pkhead"));
|
||||
@@ -484,7 +499,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
|
||||
|
||||
// 保存房间对象
|
||||
rtcRoom = room;
|
||||
|
||||
IMRTCManager.getInstance().setRtcRoom(room);
|
||||
|
||||
new Handler(Looper.getMainLooper()).post(new Runnable() {
|
||||
public void run() {
|
||||
@@ -544,6 +559,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
|
||||
return;
|
||||
}
|
||||
rtcRoom = room;
|
||||
IMRTCManager.getInstance().setRtcRoom(room);
|
||||
}
|
||||
rtcRoom.getLocalUser().publishDefaultLiveStreams(new IRCRTCResultDataCallback<RCRTCLiveInfo>() {
|
||||
@Override
|
||||
|
||||
@@ -86,6 +86,7 @@ import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.interfaces.CommonCallback;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.manager.RandomPkManager;
|
||||
import com.yunbao.common.utils.Bus;
|
||||
import com.yunbao.common.utils.DeviceUtils;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
@@ -96,6 +97,7 @@ import com.yunbao.common.utils.SVGAViewUtils;
|
||||
import com.yunbao.common.utils.ScreenDimenUtil;
|
||||
import com.yunbao.common.utils.SpUtil;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
import com.yunbao.common.utils.formatBigNum;
|
||||
import com.yunbao.common.views.AbsViewHolder;
|
||||
@@ -323,6 +325,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
//接口整合新加参数
|
||||
private GuardUserModel guardUserModel;
|
||||
private ViewFlipper flipper;
|
||||
private TextView mRandomPkTimer;
|
||||
|
||||
|
||||
public LiveRoomViewHolder(boolean isRys, int forActivity, Context context, ViewGroup parentView, GifImageView gifImageView, SVGAImageView svgaImageView, ViewGroup liveGiftPrizePoolContainer, WindowManager windowManager) {
|
||||
super(context, parentView);
|
||||
@@ -737,6 +741,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
lt_trickery.setOnClickListener(this);
|
||||
dialog = new Dialog(mContext, R.style.dialog);
|
||||
|
||||
mRandomPkTimer = (TextView) findViewById(R.id.random_pk_timer);
|
||||
|
||||
if (!SpUtil.getInstance().getBooleanValue("private_chat_message_switch")) {
|
||||
msgLayout.setVisibility(View.GONE);
|
||||
@@ -1181,7 +1186,14 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
showBanner2();
|
||||
}
|
||||
}
|
||||
|
||||
public void setRandomPkTimer(String timer){
|
||||
if(timer==null){
|
||||
mRandomPkTimer.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
mRandomPkTimer.setVisibility(View.VISIBLE);
|
||||
mRandomPkTimer.setText(timer);
|
||||
}
|
||||
private synchronized void showBanner2() {
|
||||
if (mBannerList2 != null && mBanner2 != null) {
|
||||
btn_event2.setVisibility(View.VISIBLE);
|
||||
@@ -1615,6 +1627,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
params.leftMargin = 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 titleView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
|
||||
@@ -1781,7 +1794,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
avatar_l1.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (uidL1 != null && !"".equals(uidL1)) {
|
||||
if (uidL1 != null && !"" .equals(uidL1)) {
|
||||
showUserDialog(uidL1);
|
||||
}
|
||||
}
|
||||
@@ -1789,7 +1802,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
avatar_l2.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (uidL2 != null && !"".equals(uidL2)) {
|
||||
if (uidL2 != null && !"" .equals(uidL2)) {
|
||||
showUserDialog(uidL2);
|
||||
}
|
||||
}
|
||||
@@ -1797,7 +1810,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
avatar_l3.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (uidL3 != null && !"".equals(uidL3)) {
|
||||
if (uidL3 != null && !"" .equals(uidL3)) {
|
||||
showUserDialog(uidL3);
|
||||
}
|
||||
}
|
||||
@@ -1805,7 +1818,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
avatar_r1.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (uidR1 != null && !"".equals(uidR1)) {
|
||||
if (uidR1 != null && !"" .equals(uidR1)) {
|
||||
showUserDialog(uidR1);
|
||||
}
|
||||
}
|
||||
@@ -1813,7 +1826,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
avatar_r2.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (uidR2 != null && !"".equals(uidR2)) {
|
||||
if (uidR2 != null && !"" .equals(uidR2)) {
|
||||
showUserDialog(uidR2);
|
||||
}
|
||||
}
|
||||
@@ -1821,7 +1834,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
avatar_r3.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (uidR3 != null && !"".equals(uidR3)) {
|
||||
if (uidR3 != null && !"" .equals(uidR3)) {
|
||||
showUserDialog(uidR3);
|
||||
}
|
||||
}
|
||||
@@ -3018,7 +3031,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
if (code == 0 && info.length > 0) {
|
||||
if ("1".equals(info[0])) {
|
||||
if ("1" .equals(info[0])) {
|
||||
ft_hot_add.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
ft_hot_add.setVisibility(View.GONE);
|
||||
@@ -3033,7 +3046,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
*/
|
||||
public static void getIsHot(String isUseHotCard) {
|
||||
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);
|
||||
} else {
|
||||
ft_hot_add.setVisibility(View.GONE);
|
||||
@@ -3331,7 +3344,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
} else if (bean.getActivityId() == 0) {
|
||||
openWebDialog(bean.getLink());
|
||||
} else {
|
||||
LiveGameDialogFragment fragment = new LiveGameDialogFragment("1".equals(bean.getShow_type()));
|
||||
LiveGameDialogFragment fragment = new LiveGameDialogFragment("1" .equals(bean.getShow_type()));
|
||||
fragment.setActivityId(bean.getActivityId());
|
||||
fragment.setRoomId(mLiveUid);
|
||||
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGameDialogFragment");
|
||||
@@ -3382,7 +3395,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
nowTime = time;
|
||||
tv_trickery_time.setText("" + nowTime);
|
||||
openType = 0;
|
||||
if ("1".equals(msgtype)) {
|
||||
if ("1" .equals(msgtype)) {
|
||||
nums = jsonObject.getString("nums");
|
||||
prankid = jsonObject.getString("prankid");
|
||||
content = jsonObject.getString("content");
|
||||
@@ -3546,21 +3559,21 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onUpdata(String str) {
|
||||
if ("svga_new_user_gif".equals(str)) {
|
||||
if ("svga_new_user_gif" .equals(str)) {
|
||||
if (fastMsgRecyclerView == null) return;
|
||||
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams)
|
||||
fastMsgRecyclerView.getLayoutParams();
|
||||
params1.rightMargin = DeviceUtils.getScreenWidth((Activity) mContext) / 3;
|
||||
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;
|
||||
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams)
|
||||
fastMsgRecyclerView.getLayoutParams();
|
||||
params1.rightMargin = 0;
|
||||
fastMsgRecyclerView.setLayoutParams(params1);
|
||||
} else if ("showBanner".equals(str)) {
|
||||
} else if ("showBanner" .equals(str)) {
|
||||
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");
|
||||
mBanner3.update(mBannerList3);
|
||||
@@ -3571,7 +3584,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");
|
||||
|
||||
mBanner3.update(mBannerList3);
|
||||
@@ -3582,7 +3595,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);
|
||||
mBannerList3.get(0).setLink("1");
|
||||
mBanner3.update(mBannerList3);
|
||||
|
||||
@@ -1216,6 +1216,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
||||
|
||||
@Override
|
||||
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) {
|
||||
mLiveRyLinkMicPkPresenter.onLinkMicPkStart(pkUid, 1);
|
||||
Handler handler = new Handler();
|
||||
|
||||
Reference in New Issue
Block a user