() {
@Override
@@ -842,8 +801,6 @@ public class LiveLinkMicPkPresenter implements View.OnClickListener {
}
});
-
-
}
}
});
diff --git a/live/src/main/java/com/yunbao/live/presenter/LiveLinkMicPresenter.java b/live/src/main/java/com/yunbao/live/presenter/LiveLinkMicPresenter.java
index 94e948388..79ecd5f25 100644
--- a/live/src/main/java/com/yunbao/live/presenter/LiveLinkMicPresenter.java
+++ b/live/src/main/java/com/yunbao/live/presenter/LiveLinkMicPresenter.java
@@ -313,6 +313,7 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
* 所有人收到连麦观众发过来的播流地址的回调
*/
public void onAudienceSendLinkMicUrl(String uid, String uname, String playUrl) {
+ L.eSw("onAudienceSendLinkMicUrl,主播同意");
if (TextUtils.isEmpty(uid)) {
return;
}
diff --git a/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java b/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java
index 4c4f563ed..191620881 100644
--- a/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java
+++ b/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java
@@ -35,6 +35,7 @@ import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.tencent.trtc.TRTCCloud;
@@ -45,6 +46,7 @@ import com.yunbao.common.event.AnchorInfoEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
+import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.IMRTCManager;
@@ -53,6 +55,7 @@ import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
+import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ScreenDimenUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
@@ -108,7 +111,7 @@ import io.rong.message.TextMessage;
* 主播与主播PK逻辑
*/
-public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
+public class LiveRyLinkMicPkPresenter extends AbsLinkMicPkPresenter implements View.OnClickListener {
private static final int WHAT_PK_WAIT_RECEIVE = 0;//收到pk申请等待 what
private static final int WHAT_PK_WAIT_SEND = 1;//发送pk申请等待 what
@@ -122,17 +125,11 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
private boolean mIsAnchor;//自己是否是主播
private SocketRyClient mSocketRyClient;
private ViewGroup mPkContainer;
- private boolean mIsApplyDialogShow;//是否显示了申请PK的弹窗
+
private boolean mAcceptPk;//是否接受连麦
- private boolean mIsPk;//是否已经Pk了
- public static String mApplyUid;//正在申请Pk的主播的uid
- private String mApplyUrl;//正在申请Pk的主播的头像
- private String mApplyNmae;//正在申请Pk的主播的名字
private String mApplyStream;//正在申请Pk的主播的stream
private String mLiveUid;//自己主播的uid
private String mUrl;//主播的头像
- public static String mPkUid;//正在Pk的对方主播的uid
- public static String oldmPkUid;//正在Pk的对方主播的uid
private ProgressTextView mLinkMicWaitProgress;
private int mPkWaitCount;//Pk弹窗等待倒计时Live
private int mPkTimeCount;//pk时间
@@ -141,7 +138,6 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
private LiveLinkMicPkViewHolder mLiveLinkMicPkViewHolder;
private String mPkTimeString1;
private String mPkTimeString2;
- private boolean mIsPkEnd;//pk是否结束,进入惩罚时间
private boolean mPkSend;//pk请求是否已经发送
private int mPkSendWaitCount;//发送pk请求后的等待时间
private String mSelfStream;
@@ -211,6 +207,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
};
public LiveRyLinkMicPkPresenter(Context context, ILiveLinkMicViewHolder linkMicViewHolder, boolean isAnchor, View root) {
+ super(false);
mContext = context;
mIsAnchor = isAnchor;
mRoot = root;
@@ -251,6 +248,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
}
public LiveRyLinkMicPkPresenter(Context context, LivePushRyViewHolder linkMicViewHolder, boolean isAnchor, View root) {
+ super(false);
mContext = context;
mIsAnchor = isAnchor;
mRoot = root;
@@ -513,14 +511,6 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
}
}
- /**
- * 主播与主播PK 主播收到其他主播发过来的多人PK申请的回调
- */
- public void onLinkDRMicPkApply(UserBean u) {
- Log.e("ry", "多人收到");
- showDRApplyDialog(u);
- }
-
/**
* 主播与主播PK 主播收到其他主播发过来的多人PK申请同意了的回调
*/
@@ -657,26 +647,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
}
- /**
- * 主播与主播PK 主播收到其他主播发过来的PK申请的回调
- */
- public void onLinkMicPkApply(UserBean u, String stream, int by) {
- Log.e("ry", u.getUserNiceName() + "单人收到" + u.getAvatar());
- mApplyUid = u.getId();
- mApplyUrl = u.getAvatar();
- mApplyNmae = u.getUserNiceName();
- if (by != 1) {
- if (mIsApplyDialogShow == false) {
- if (u.isRandomPk()) {
- showPkDialog(u);
- } else {
- showApplyDialog(u);
- }
- }
- } else {
- isPK(u);
- }
- }
+
/**
* 主播与主播PK PK主播发过来的已经接受
@@ -791,7 +762,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
livePushRyViewHolder.camera.setLayoutParams(params);
livePushRyViewHolder.mPreView1.setLayoutParams(params);
livePushRyViewHolder.mPreView1.setVisibility(View.VISIBLE);
-
+ L.eSw("4444444444444444444444444444");
final SocketSendBean msg1 = new SocketSendBean()
.param("_method_", SOCKET_LINK_MIC_PK)
.param("action", 4)
@@ -826,7 +797,8 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
}
- private void isPK(UserBean bean) {
+ @Override
+ protected void isPK(UserBean bean) {
ScreenDimenUtil util = ScreenDimenUtil.getInstance();
int mScreenWdith = util.getScreenWdith();
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, mScreenWdith * 720 / 960);
@@ -961,6 +933,312 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
}
+ @Override
+ protected void onDRPkApply(UserBean u) {
+ HttpClient.getInstance().get("Livepk.changeLive", "Livepk.changeLive")
+ .params("uid", CommonAppConfig.getInstance().getUid())
+ .params("pkuid", u.getId())
+ .params("type", "1")
+ .params("sign", "1")
+ .execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msgs, String[] info) {
+ if (code == 0) {
+ Log.i("多人PK", "1code = " + code + ", msgs = " + msgs + ", info = " + Arrays.deepToString(info) + " mApplyUid = " + mApplyUid);
+ HttpClient.getInstance().get("live.getdrnum", "live.getdrnum")
+ .execute(new HttpCallback() {
+
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ Log.i(TAG, "code = " + code + ", msg = " + msg + ", info = " + Arrays.deepToString(info));
+ if (info.length > 0) {
+
+ JSONObject datas = JSONObject.parseObject(info[0]);
+ boolean agree = true;
+ if (datas.getIntValue("pk_num_day") <= 0) {
+ ToastUtil.show("多人PK次数已用完");
+ agree = false;
+ }
+ boolean finalAgree = agree;
+ IMRTCManager.getInstance().responseJoinOtherRoom(mApplyUid, agree, SOCKET_LIVE_DRPK, new IRCRTCResultCallback() {
+ @Override
+ public void onSuccess() {
+ if (finalAgree == true) {
+ HttpClient.getInstance().get("live.joinDRPKroom", "live.joinDRPKroom")
+ .params("uid", CommonAppConfig.getInstance().getUid())
+ .params("roomid", u.getId())
+ .execute(new HttpCallback() {
+
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ Log.i("多人PK", "code = " + code + ", msg = " + msg + ", info = " + Arrays.deepToString(info));
+
+ final SocketSendBean msg1 = new SocketSendBean()
+ .param("_method_", SOCKET_LIVE_DRPK)
+ .param("action", 10)
+ .param("uid", CommonAppConfig.getInstance().getUid());
+ msg1.create();
+ String targetId = "g" + CommonAppConfig.getInstance().getUid();
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
+ io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(targetId, conversationType, messageContent);
+
+ RongcloudIMManager.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", "发送失敗");
+ }
+ });
+ if (info.length == 0) {
+ return;
+ }
+ 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") + "列表");
+ if (!user.getString("id").equals(CommonAppConfig.getInstance().getUid())) {
+ if (!user.getString("id").equals(CommonAppConfig.getInstance().getUid()) && !user.getString("id").equals(u.getId())) {
+ /**
+ * 向指定用户发送跨房间连麦请求
+ *
+ * 1: inviterAutoMix为true时:
+ *
+ * 1.1:如果被邀请方在加入邀请方房间之前发布了资源,当被邀请方加入邀请者房间成功后,服务器会把被邀请方流资源合并到邀请方视图 ·(默认仅悬浮布局合流)上。
+ *
+ * 1.2:如果被邀请方在加入邀请方房间之前没有发布过资源,将会在被邀请方发布资源成功后,服务器会把被邀请方流资源合并到邀请方视图(默认仅悬浮布局合流)上。
+ *
+ * 2:无论为true或false,双方都可以使用{@link RCRTCLiveInfo#setMixConfig(RCRTCMixConfig, IRCRTCResultCallback)} 方法主动设置合流布局。一旦主动设置过合流布局,后续音视频直播过程中设置的自动合流参数将失效。
+ *
+ */
+ IMRTCManager.getInstance().requestJoinOtherRoom(user.getString("id"), false, "LiveDRPK1", new IRCRTCResultCallback() {
+ @Override
+ public void onSuccess() {
+ }
+
+ @Override
+ public void onFailed(RTCErrorCode errorCode) {
+
+ }
+ });
+ }
+ }
+ }
+ }
+ });
+ }
+ }
+
+ @Override
+ public void onFailed(RTCErrorCode errorCode) {
+ ToastUtil.show("接受失败");
+ }
+ });
+ } else {
+ ToastUtil.show(msg);
+ }
+ }
+
+ });
+
+
+ }
+ }
+ });
+
+ /*LiveHttpUtil.livePkCheckLive(u.getId(), "", "", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0 && info.length > 0) {
+ JSONObject obj = JSON.parseObject(info[0]);
+ if (obj != null) {
+ if (obj.getString("ispk").equals("0")) {
+
+
+ }else{
+ ToastUtil.show(mContext.getString(R.string.pking_over));
+ }
+ }
+ }
+ }});*/
+ }
+
+ @Override
+ protected void onDRPkTimeout(UserBean u) {
+ IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() {
+
+ @Override
+ public void onFailed(RTCErrorCode errorCode) {
+
+ }
+
+ @Override
+ public void onSuccess() {
+ final SocketSendBean msg1 = new SocketSendBean()
+ .param("_method_", SOCKET_LINK_MIC_PK)
+ .param("action", 8);
+ 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);
+
+ RongcloudIMManager.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", "发送失敗" + mApplyUid);
+ }
+ });
+ }
+ });
+ }
+
+ @Override
+ protected void onDRPkRefuse(UserBean u) {
+ IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() {
+
+ @Override
+ public void onFailed(RTCErrorCode errorCode) {
+
+ }
+
+ @Override
+ public void onSuccess() {
+ final SocketSendBean msg1 = new SocketSendBean()
+ .param("_method_", SOCKET_LINK_MIC_PK)
+ .param("action", 3);
+ msg1.create();
+
+ String targetId = u.getId();
+ Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
+ TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
+ io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(targetId, conversationType, messageContent);
+
+ RongcloudIMManager.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", "发送失敗");
+ }
+ });
+ }
+ });
+ }
+
+ @Override
+ protected void onPkApply(UserBean u) {
+ LiveHttpUtil.livePkCheckLive(u.getId(), "", "", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0 && info.length > 0) {
+ JSONObject obj = JSON.parseObject(info[0]);
+ if (obj != null) {
+ if (obj.getString("ispk").equals("0")) {
+ isPKTmp(u);
+ } else {
+ ToastUtil.show(mContext.getString(R.string.pking_over));
+ }
+ }
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onPkTimeout(UserBean u) {
+ 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", 8);
+ 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);
+
+ RongcloudIMManager.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());
+ }
+ });
+ }
+ });
+ }
+
+ @Override
+ protected void onPkRefuse(UserBean u) {
+ onPkTimeoutTmp(u);
+ }
+
//与用户连麦
public void setUserMic(String liveid) {
JSONObject msg1 = new JSONObject();
@@ -1029,7 +1307,8 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
/**
* 显示申请PK的弹窗
*/
- private void showApplyDialog(UserBean u) {
+ @Override
+ protected void showApplyDialog(UserBean u) {
mIsApplyDialogShow = true;
mAcceptPk = false;
View v = LayoutInflater.from(mContext).inflate(R.layout.dialog_link_mic_pk_wait, null);
@@ -1047,50 +1326,10 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
mHandler.removeMessages(WHAT_PK_WAIT_RECEIVE);
}
if (mAcceptPk) {
- isPK(u);
+ onPkApplyTmp(u);
} else {
if (mPkWaitCount < 0) {
- 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", 8);
- 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);
-
- RongcloudIMManager.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());
- }
- });
- }
- });
+ onPkTimeoutTmp(u);
}
mApplyUid = null;
@@ -1244,7 +1483,8 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
/**
* 随机PK拒绝对话框
*/
- public void showPkDialog(UserBean u) {
+ @Override
+ protected void showPkDialog(UserBean u) {
new DialogUitl.Builder(mContext)
.setHtmlCode(Html.fromHtml(
"有人向您发起PK请求。
" +
@@ -1317,7 +1557,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
void apply() {
- isPK(u);
+ isPKTmp(u);
}
})
.build().show();
@@ -1372,7 +1612,8 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
/**
* 显示申请多人PK的弹窗
*/
- private void showDRApplyDialog(UserBean u) {
+ @Override
+ protected void showDRApplyDialog(UserBean u) {
mApplyUid = u.getId();
mIsApplyDialogShow = true;
mAcceptPk = false;
@@ -1391,222 +1632,14 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
mHandler.removeMessages(WHAT_PK_WAIT_RECEIVE);
}
if (mAcceptPk) {
-
- HttpClient.getInstance().get("Livepk.changeLive", "Livepk.changeLive")
- .params("uid", CommonAppConfig.getInstance().getUid())
- .params("pkuid", u.getId())
- .params("type", "1")
- .params("sign", "1")
- .execute(new HttpCallback() {
- @Override
- public void onSuccess(int code, String msgs, String[] info) {
- if (code == 0) {
- Log.i("多人PK", "1code = " + code + ", msgs = " + msgs + ", info = " + Arrays.deepToString(info) + " mApplyUid = " + mApplyUid);
- HttpClient.getInstance().get("live.getdrnum", "live.getdrnum")
- .execute(new HttpCallback() {
-
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- Log.i(TAG, "code = " + code + ", msg = " + msg + ", info = " + Arrays.deepToString(info));
- if (info.length > 0) {
-
- JSONObject datas = JSONObject.parseObject(info[0]);
- boolean agree = true;
- if (datas.getIntValue("pk_num_day") <= 0) {
- ToastUtil.show("多人PK次数已用完");
- agree = false;
- }
- boolean finalAgree = agree;
- IMRTCManager.getInstance().responseJoinOtherRoom(mApplyUid, agree, SOCKET_LIVE_DRPK, new IRCRTCResultCallback() {
- @Override
- public void onSuccess() {
- if (finalAgree == true) {
- HttpClient.getInstance().get("live.joinDRPKroom", "live.joinDRPKroom")
- .params("uid", CommonAppConfig.getInstance().getUid())
- .params("roomid", u.getId())
- .execute(new HttpCallback() {
-
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- Log.i("多人PK", "code = " + code + ", msg = " + msg + ", info = " + Arrays.deepToString(info));
-
- final SocketSendBean msg1 = new SocketSendBean()
- .param("_method_", SOCKET_LIVE_DRPK)
- .param("action", 10)
- .param("uid", CommonAppConfig.getInstance().getUid());
- msg1.create();
- String targetId = "g" + CommonAppConfig.getInstance().getUid();
- Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
- TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
- io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(targetId, conversationType, messageContent);
-
- RongcloudIMManager.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", "发送失敗");
- }
- });
- if (info.length == 0) {
- return;
- }
- 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") + "列表");
- if (!user.getString("id").equals(CommonAppConfig.getInstance().getUid())) {
- if (!user.getString("id").equals(CommonAppConfig.getInstance().getUid()) && !user.getString("id").equals(u.getId())) {
- /**
- * 向指定用户发送跨房间连麦请求
- *
- * 1: inviterAutoMix为true时:
- *
- * 1.1:如果被邀请方在加入邀请方房间之前发布了资源,当被邀请方加入邀请者房间成功后,服务器会把被邀请方流资源合并到邀请方视图 ·(默认仅悬浮布局合流)上。
- *
- * 1.2:如果被邀请方在加入邀请方房间之前没有发布过资源,将会在被邀请方发布资源成功后,服务器会把被邀请方流资源合并到邀请方视图(默认仅悬浮布局合流)上。
- *
- * 2:无论为true或false,双方都可以使用{@link RCRTCLiveInfo#setMixConfig(RCRTCMixConfig, IRCRTCResultCallback)} 方法主动设置合流布局。一旦主动设置过合流布局,后续音视频直播过程中设置的自动合流参数将失效。
- *
- */
- IMRTCManager.getInstance().requestJoinOtherRoom(user.getString("id"), false, "LiveDRPK1", new IRCRTCResultCallback() {
- @Override
- public void onSuccess() {
- }
-
- @Override
- public void onFailed(RTCErrorCode errorCode) {
-
- }
- });
- }
- }
- }
- }
- });
- }
- }
-
- @Override
- public void onFailed(RTCErrorCode errorCode) {
- ToastUtil.show("接受失败");
- }
- });
- } else {
- ToastUtil.show(msg);
- }
- }
-
- });
-
-
- }
- }
- });
-
+ onDRPkApplyTmp(u);
} else {
if (mPkWaitCount < 0) {
- IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() {
-
- @Override
- public void onFailed(RTCErrorCode errorCode) {
-
- }
-
- @Override
- public void onSuccess() {
- final SocketSendBean msg1 = new SocketSendBean()
- .param("_method_", SOCKET_LINK_MIC_PK)
- .param("action", 8);
- 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);
-
- RongcloudIMManager.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", "发送失敗" + mApplyUid);
- }
- });
- }
- });
+ onDRPkTimeoutTmp(u);
} else {
- IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() {
-
- @Override
- public void onFailed(RTCErrorCode errorCode) {
-
- }
-
- @Override
- public void onSuccess() {
- final SocketSendBean msg1 = new SocketSendBean()
- .param("_method_", SOCKET_LINK_MIC_PK)
- .param("action", 3);
- msg1.create();
-
- String targetId = u.getId();
- Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
- TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
- io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(targetId, conversationType, messageContent);
-
- RongcloudIMManager.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", "发送失敗");
- }
- });
- }
- });
+ onDRPkRefuseTmp(u);
}
mApplyUid = null;
mApplyStream = null;
@@ -2511,7 +2544,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
String pkTime = StringUtil.getDurationText(time * 1000);
livePushRyViewHolder.textTime.setText(String.format(mContext.getString(R.string.pk_time), pkTime));
mPkTimeCount = time;
- if (time>0){
+ if (time > 0) {
String s1 = StringUtil.getDurationText(mPkTimeCount * 1000);
livePushRyViewHolder.textTime.setText(String.format(mContext.getString(R.string.pk_time), s1));
mHandler.sendEmptyMessage(WHAT_PK_TIME2);
diff --git a/live/src/main/java/com/yunbao/live/presenter/LiveSwLinkMicPkPresenter.java b/live/src/main/java/com/yunbao/live/presenter/LiveSwLinkMicPkPresenter.java
new file mode 100644
index 000000000..26132c1ab
--- /dev/null
+++ b/live/src/main/java/com/yunbao/live/presenter/LiveSwLinkMicPkPresenter.java
@@ -0,0 +1,1991 @@
+package com.yunbao.live.presenter;
+
+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;
+import static com.yunbao.live.activity.LiveSwAnchorActivity.DRPKing;
+import static com.yunbao.live.activity.LiveSwAnchorActivity.PKing;
+import static com.yunbao.live.activity.LiveSwAnchorActivity.isDRPK;
+import static com.yunbao.live.activity.LiveSwAnchorActivity.mLiveAnchorViewHolder;
+import static com.yunbao.live.views.LivePushSwViewHolder.btn_close;
+import static com.yunbao.live.views.LivePushSwViewHolder.rtcRoom;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+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;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
+import com.tencent.imsdk.v2.V2TIMManager;
+import com.tencent.imsdk.v2.V2TIMMessage;
+import com.tencent.imsdk.v2.V2TIMSendCallback;
+import com.tencent.trtc.TRTCCloud;
+import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.Constants;
+import com.yunbao.common.bean.UserBean;
+import com.yunbao.common.event.AnchorInfoEvent;
+import com.yunbao.common.glide.ImgLoader;
+import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.http.HttpClient;
+import com.yunbao.common.http.LiveHttpUtil;
+import com.yunbao.common.http.live.LiveNetManager;
+import com.yunbao.common.manager.IMLoginManager;
+import com.yunbao.common.manager.IMRTCManager;
+import com.yunbao.common.manager.RandomPkManager;
+import com.yunbao.common.utils.Bus;
+import com.yunbao.common.utils.DialogUitl;
+import com.yunbao.common.utils.DpUtil;
+import com.yunbao.common.utils.L;
+import com.yunbao.common.utils.ScreenDimenUtil;
+import com.yunbao.common.utils.StringUtil;
+import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
+import com.yunbao.live.R;
+import com.yunbao.live.activity.LiveAudienceActivity;
+import com.yunbao.live.activity.LiveSwAnchorActivity;
+import com.yunbao.live.bean.DrPkbean;
+import com.yunbao.live.bean.LivePKUserListBean;
+import com.yunbao.live.custom.ProgressTextView;
+import com.yunbao.live.event.LiveAudienceEvent;
+import com.yunbao.live.interfaces.ILiveLinkMicViewHolder;
+import com.yunbao.live.socket.SocketSwClient;
+import com.yunbao.live.socket.SocketSwLinkMicPkUtil;
+import com.yunbao.live.socket.SocketSendBean;
+import com.yunbao.live.views.LiveLinkMicPkViewHolder;
+import com.yunbao.live.views.LivePushSwViewHolder;
+
+import org.greenrobot.eventbus.EventBus;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import cn.rongcloud.rtc.api.RCRTCEngine;
+import cn.rongcloud.rtc.api.RCRTCMixConfig;
+import cn.rongcloud.rtc.api.RCRTCOtherRoom;
+import cn.rongcloud.rtc.api.RCRTCRemoteUser;
+import cn.rongcloud.rtc.api.callback.IRCRTCOtherRoomEventsListener;
+import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
+import cn.rongcloud.rtc.api.stream.RCRTCInputStream;
+import cn.rongcloud.rtc.base.RTCErrorCode;
+import io.agora.beautyapi.faceunity.agora.SWManager;
+import io.rong.imlib.IRongCallback;
+import io.rong.imlib.RongIMClient;
+import io.rong.imlib.model.Conversation;
+import io.rong.message.TextMessage;
+
+//import cn.rongcloud.rtc.jni.video.RCRect;
+
+/**
+ * Created by cxf on 2018/11/16.
+ * 主播与主播PK逻辑
+ */
+
+public class LiveSwLinkMicPkPresenter extends AbsLinkMicPkPresenter implements View.OnClickListener {
+
+ private static final int WHAT_PK_WAIT_RECEIVE = 0;//收到pk申请等待 what
+ private static final int WHAT_PK_WAIT_SEND = 1;//发送pk申请等待 what
+ private static final int WHAT_PK_TIME = 2;//pk时间变化 what
+ private static final int WHAT_PK_TIME2 = 22;//pk时间变化 what
+ private static final int LINK_MIC_COUNT_MAX = 10;
+ private static int PK_TIME_MAX = 60 * 15;//pk时间 15分钟
+ private static final int PK_TIME_MAX_2 = 60;//惩罚时间 1分钟
+ private Context mContext;
+ private View mRoot;
+ private boolean mIsAnchor;//自己是否是主播
+ private SocketSwClient mSocketSwClient;
+ private ViewGroup mPkContainer;
+ private boolean mIsApplyDialogShow;//是否显示了申请PK的弹窗
+ private boolean mAcceptPk;//是否接受连麦
+ private String mApplyUrl;//正在申请Pk的主播的头像
+ private String mApplyNmae;//正在申请Pk的主播的名字
+ private String mApplyStream;//正在申请Pk的主播的stream
+ private String mLiveUid;//自己主播的uid
+ private String mUrl;//主播的头像
+ private ProgressTextView mLinkMicWaitProgress;
+ private int mPkWaitCount;//Pk弹窗等待倒计时Live
+ private int mPkTimeCount;//pk时间
+ private PopupWindow mPkPopWindow;
+ private Handler mHandler;
+ private LiveLinkMicPkViewHolder mLiveLinkMicPkViewHolder;
+ private String mPkTimeString1;
+ private String mPkTimeString2;
+
+ private boolean mPkSend;//pk请求是否已经发送
+ private int mPkSendWaitCount;//发送pk请求后的等待时间
+ private String mSelfStream;
+ private int mPkTimeFromServer;
+ public static TRTCCloud mTRTCCloud1;
+ private View detailsView1, detailsView2, detailsView3, detailsView4;
+ private LinearLayout detailsLinearLayout1, detailsLinearLayout2, detailsLinearLayout3, detailsLinearLayout4;
+ private LinearLayout linearGrade1, linearGrade2, linearGrade3, linearGrade4;
+ private TextView textPkName1, textPkName2, textPkName3, textPkName4;
+ private TextView textGrade1, textGrade2, textGrade3, textGrade4;
+ private ImageView imageGrade1, imageGrade2, imageGrade3, imageGrade4;
+
+ public LivePushSwViewHolder livePushSwViewHolder;
+
+ public static List inputStreamList = new ArrayList<>();
+ public static List inputStreamList1 = new ArrayList<>();
+ private boolean DRInitiator = false;//是否是duorenPK发起人
+
+ private List drPkbeans = new ArrayList<>();
+
+ private JSONArray pkScores; //PK分数
+
+ public LiveSwLinkMicPkPresenter setDRInitiator(boolean DRInitiator) {
+ this.DRInitiator = DRInitiator;
+ return this;
+ }
+
+ public LiveSwLinkMicPkPresenter(Context context, ILiveLinkMicViewHolder linkMicViewHolder, boolean isAnchor, View root) {
+ super(true);
+ mContext = context;
+ mIsAnchor = isAnchor;
+ mRoot = root;
+ mPkContainer = linkMicViewHolder.getPkContainer();
+ mPkTimeString1 = "";
+ mPkTimeString2 = mContext.getString(R.string.live_pk_time_2);
+ //从本地取数据
+ String pkTime = CommonAppConfig.getInstance().getAnchorPkTime();
+ if (!pkTime.isEmpty()) {
+ try {
+ int time = Integer.parseInt(pkTime) * 60;
+ if (time > 0) {
+ PK_TIME_MAX = time;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ Log.d("PK_TIME_MAX", "" + PK_TIME_MAX);
+ mHandler = new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case WHAT_PK_WAIT_RECEIVE:
+ onApplyPkWait();
+ break;
+ case WHAT_PK_WAIT_SEND:
+ onSendPkWait();
+ break;
+ case WHAT_PK_TIME:
+ changePkTime();
+ break;
+
+ }
+ }
+ };
+
+ }
+
+ public LiveSwLinkMicPkPresenter(Context context, LivePushSwViewHolder linkMicViewHolder, boolean isAnchor, View root) {
+ super(true);
+ mContext = context;
+ mIsAnchor = isAnchor;
+ mRoot = root;
+ mPkContainer = linkMicViewHolder.getPkContainer();
+ livePushSwViewHolder = linkMicViewHolder;
+ mPkTimeString1 = "";
+ mPkTimeString2 = mContext.getString(R.string.live_pk_time_2);
+ //从本地取数据
+ String pkTime = CommonAppConfig.getInstance().getAnchorPkTime();
+ if (!pkTime.isEmpty()) {
+ try {
+ int time = Integer.parseInt(pkTime) * 60;
+ if (time > 0) {
+ PK_TIME_MAX = time;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ Log.d("PK_TIME_MAX", "" + PK_TIME_MAX);
+ mHandler = new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case WHAT_PK_WAIT_RECEIVE:
+ onApplyPkWait();
+ break;
+ case WHAT_PK_WAIT_SEND:
+ onSendPkWait();
+ break;
+ case WHAT_PK_TIME2:
+ pkCountdownTimer();
+ break;
+ case WHAT_PK_TIME:
+ changePkTime();
+ break;
+ }
+ }
+ };
+
+ }
+
+ public void setSocketRyClient(SocketSwClient SocketRyClient) {
+ mSocketSwClient = SocketRyClient;
+ }
+
+ public void setLiveUid(String liveUid, String url) {
+ Log.e("liveUid", liveUid);
+ mLiveUid = liveUid;
+ mUrl = url;
+ }
+
+
+ /**
+ * 申请pk弹窗倒计时
+ */
+ private void onApplyPkWait() {
+ mPkWaitCount--;
+ if (mPkWaitCount >= 0) {
+ if (mLinkMicWaitProgress != null) {
+ mLinkMicWaitProgress.setProgress(mPkWaitCount);
+ if (mHandler != null) {
+ mHandler.sendEmptyMessageAtTime(WHAT_PK_WAIT_RECEIVE, getNextSecondTime());
+ }
+ }
+ } else {
+ if (mPkPopWindow != null) {
+ mPkPopWindow.dismiss();
+ }
+ }
+ }
+
+ /**
+ * 发送pk申请后等待倒计时
+ */
+ private void onSendPkWait() {
+ mPkSendWaitCount--;
+ if (mPkSendWaitCount >= 0) {
+ nextSendPkWaitCountDown();
+ } else {
+ hideSendPkWait();
+ if (mIsAnchor) {
+ ((LiveSwAnchorActivity) mContext).setPkBtnVisible(true);
+ }
+ }
+ }
+
+ /**
+ * 进入下一次pk申请等待倒计时
+ */
+ private void nextSendPkWaitCountDown() {
+ if (mLiveLinkMicPkViewHolder != null) {
+ mLiveLinkMicPkViewHolder.setPkWaitProgress(mPkSendWaitCount);
+ }
+ if (mHandler != null) {
+ mHandler.sendEmptyMessageAtTime(WHAT_PK_WAIT_SEND, getNextSecondTime());
+ }
+ }
+
+ /**
+ * 隐藏pk申请等待
+ */
+ private void hideSendPkWait() {
+ mPkSend = false;
+ if (mHandler != null) {
+ mHandler.removeMessages(WHAT_PK_WAIT_SEND);
+ }
+ if (mLiveLinkMicPkViewHolder != null) {
+ mLiveLinkMicPkViewHolder.setPkWaitProgressVisible(false);
+ }
+ }
+
+ /**
+ * 进入下一次pk倒计时
+ */
+ int i = 0;
+
+ private void nextPkTimeCountDown(int is) {
+
+ if (mHandler != null) {
+ mHandler.sendEmptyMessageAtTime(WHAT_PK_TIME, getNextSecondTime());
+ }
+ if (mLiveLinkMicPkViewHolder != null) {
+ String s = mIsPkEnd ? mPkTimeString2 : mPkTimeString1;
+ String s1 = StringUtil.getDurationText(mPkTimeCount * 1000);
+ Log.i("tag23333", mPkTimeCount + "mPkTimeCount" + s1 + "is" + is);
+ if (i == 1 && s1.equals("00:01")) {
+ s1 = "00:00";
+ i = 0;
+ }
+ if (rtcRoom != null) {
+ ScreenDimenUtil util = ScreenDimenUtil.getInstance();
+ int mScreenWdith = util.getScreenWdith();
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, mScreenWdith * 720 / 960);
+ params.weight = 1;
+ params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ livePushSwViewHolder.camera.setLayoutParams(params);
+ livePushSwViewHolder.mPreView1.setLayoutParams(params);
+ }
+
+ Log.i("tts2", s1);
+ mLiveLinkMicPkViewHolder.setTime(s + " " + s1);
+ if (s1.equals("00:01") && mIsAnchor && !s.contains("懲罰")) {
+ HttpClient.getInstance().get("Livepk.endPK", "Livepk.endPK").params("uid", CommonAppConfig.getInstance().getUid()).params("addtime", "00:00").params("type", "0").params("sign", "1").execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0) {
+ JSONObject datas = JSONObject.parseObject(info[0]);
+ if (!datas.getString("pkuid").equals("0")) {
+ SocketSendBean seed_msg = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK).param("action", 9).param("msgtype", 10).param("win_uid", datas.getString("win_uid")).param("uid", CommonAppConfig.getInstance().getUid());
+ seed_msg.create();
+ String pkUid = datas.getString("pkuid");
+ Log.i("seed", seed_msg.mResult.toString());
+
+ Log.e("ry1", datas.getString("win_uid") + "VVVVVV" + datas.getString("pkuid"));
+
+ HttpClient.getInstance().post("Tx.sendmsgzs2", "Tx.sendmsgzs2").params("GroupId", "g" + pkUid).params("jsonstr", seed_msg.mResult.toString()).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ HttpClient.getInstance().post("Tx.sendmsgzs2", "Tx.sendmsgzs2").params("GroupId", "g" + CommonAppConfig.getInstance().getUid()).params("jsonstr", seed_msg.mResult.toString()).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+
+ }
+ });
+ }
+ });
+
+ }
+ }
+ }
+ });
+ }
+
+ }
+ }
+
+
+ /**
+ * pk时间倒计时
+ */
+ private void changePkTime() {
+ if (mPkTimeCount < 0) return;
+ mPkTimeCount--;
+ Log.i("vvvs", "mPkTimeCount:" + mPkTimeCount);
+ if (mPkTimeCount >= 0) {//
+ nextPkTimeCountDown(1);
+ if (mContext instanceof LiveAudienceActivity) {
+ ((LiveAudienceActivity) mContext).setPkStatus(true);
+ }
+ } else {
+ if (mIsPkEnd) {
+ onLinkMicPkClose(0);
+ if (mIsAnchor) {
+ ((LiveSwAnchorActivity) mContext).setPkBtnVisible(true);
+ }
+ if (mContext instanceof LiveAudienceActivity) {
+ ((LiveAudienceActivity) mContext).setPkStatus(false);
+ }
+ //如果PK结束Im没有发送关闭PK的消息,倒计时结束自动关闭
+// if (mLiveLinkMicPkViewHolder != null) {
+// mLiveLinkMicPkViewHolder.removeFromParent();
+// mLiveLinkMicPkViewHolder.release();
+// }
+// mLiveLinkMicPkViewHolder = null;
+ }
+ }
+ }
+
+ /**
+ * 获取下一秒钟的时间
+ */
+ private long getNextSecondTime() {
+ long now = SystemClock.uptimeMillis();
+ return now + (1000 - now % 1000);
+ }
+
+ /**
+ * 发起主播PK申请
+ */
+ public void applyLinkMicPk(String pkUid, String stream) {
+ if (mPkSend) {
+ ToastUtil.show(mContext.getString(R.string.link_mic_apply_waiting));
+ return;
+ }
+ if (mIsPk) {
+ ToastUtil.show(mContext.getString(R.string.live_link_mic_cannot_pk));
+ return;
+ }
+ mPkSend = true;
+ SocketSwLinkMicPkUtil.linkMicPkApply(mSocketSwClient, pkUid, stream);
+ ToastUtil.show(mContext.getString(R.string.link_mic_apply_pk));
+
+ if (mLiveLinkMicPkViewHolder == null) {
+ mLiveLinkMicPkViewHolder = new LiveLinkMicPkViewHolder(mContext, mPkContainer);
+ mLiveLinkMicPkViewHolder.addToParent();
+ mLiveLinkMicPkViewHolder.setIsAnchor(mIsAnchor);
+
+ }
+ mLiveLinkMicPkViewHolder.setPkWaitProgressVisible(true);
+ mPkSendWaitCount = LINK_MIC_COUNT_MAX;
+ nextSendPkWaitCountDown();
+ if (mIsAnchor) {
+ ((LiveSwAnchorActivity) mContext).setPkBtnVisible(false);
+ }
+ }
+
+
+ public void onLinkDRMicPkQuit(String uid) {
+ HttpClient.getInstance().get("Live.getDRPKroom", "Live.getDRPKroom").params("uid", CommonAppConfig.getInstance().getUid()).params("roomid", mApplyUid).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (info.length > 0) {
+ //退出所有直播間
+ livePushSwViewHolder.exitChannelDrPk(drPkbeans);
+
+ JSONObject obj = JSONObject.parseObject(info[0]);
+ drPkbeans = JSONObject.parseArray(obj.getString("userlist"), DrPkbean.class);
+
+ for (int i = 0; i < drPkbeans.size(); i++) {
+ if (!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
+ livePushSwViewHolder.setAnDrPkRtc(String.valueOf(drPkbeans.get(i).getId()), -1);
+ }
+ }
+ if (DRPKing == 1) {
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ setMyDrPkDetailsView();
+ for (int j = 0; j < drPkbeans.size(); j++) {
+ if (j == 0) {
+ L.eSw("j == 0:" + j);
+ //设置多人PK数据
+ if (detailsView2 != null) {
+ livePushSwViewHolder.dr2_preview.removeView(detailsView2);
+ }
+ detailsView2 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ detailsLinearLayout2 = detailsView2.findViewById(R.id.lin_pk2);
+ linearGrade2 = detailsView2.findViewById(R.id.linear_grade2);
+ textPkName2 = detailsView2.findViewById(R.id.text_pk_name2);
+ imageGrade2 = detailsView2.findViewById(R.id.image_grade2);
+ textGrade2 = detailsView2.findViewById(R.id.text_grade2);
+ imageGrade2.setTag(String.valueOf(drPkbeans.get(0).getId()));
+ textPkName2.setText(drPkbeans.get(0).getUser_nicename());
+ livePushSwViewHolder.dr2_preview.addView(detailsView2);
+ detailsLinearLayout2.setVisibility(View.GONE);
+ linearGrade2.setVisibility(View.GONE);
+ } else if (j == 1) {
+ L.eSw("j == 1:" + j);
+ if (detailsView4 != null) {
+ livePushSwViewHolder.dr4_preview.removeView(detailsView4);
+ }
+ detailsView4 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ detailsLinearLayout4 = detailsView4.findViewById(R.id.lin_pk4);
+ linearGrade4 = detailsView4.findViewById(R.id.linear_grade4);
+ textPkName4 = detailsView4.findViewById(R.id.text_pk_name4);
+ imageGrade4 = detailsView4.findViewById(R.id.image_grade4);
+ textGrade4 = detailsView4.findViewById(R.id.text_grade4);
+ imageGrade4.setTag(String.valueOf(drPkbeans.get(1).getId()));
+ textPkName4.setText(drPkbeans.get(1).getUser_nicename());
+ livePushSwViewHolder.dr4_preview.addView(detailsView4);
+ detailsLinearLayout4.setVisibility(View.GONE);
+ linearGrade4.setVisibility(View.GONE);
+ } else if (j == 2) {
+ L.eSw("j == 2:" + j);
+
+ if (detailsView4 != null) {
+ livePushSwViewHolder.dr4_preview.removeView(detailsView4);
+ }
+ detailsView4 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ detailsLinearLayout4 = detailsView4.findViewById(R.id.lin_pk4);
+ linearGrade4 = detailsView4.findViewById(R.id.linear_grade4);
+ textPkName4 = detailsView4.findViewById(R.id.text_pk_name4);
+ imageGrade4 = detailsView4.findViewById(R.id.image_grade4);
+ textGrade4 = detailsView4.findViewById(R.id.text_grade4);
+ imageGrade4.setTag(String.valueOf(drPkbeans.get(2).getId()));
+ textPkName4.setText(drPkbeans.get(2).getUser_nicename());
+ livePushSwViewHolder.dr4_preview.addView(detailsView4);
+ detailsLinearLayout4.setVisibility(View.GONE);
+ linearGrade4.setVisibility(View.GONE);
+
+ if (detailsView3 != null) {
+ livePushSwViewHolder.dr3_preview.removeView(detailsView3);
+ }
+ detailsView3 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ detailsLinearLayout3 = detailsView3.findViewById(R.id.lin_pk3);
+ linearGrade3 = detailsView3.findViewById(R.id.linear_grade3);
+ textPkName3 = detailsView3.findViewById(R.id.text_pk_name3);
+ imageGrade3 = detailsView3.findViewById(R.id.image_grade3);
+ textGrade3 = detailsView3.findViewById(R.id.text_grade3);
+ imageGrade3.setTag(String.valueOf(drPkbeans.get(1).getId()));
+ textPkName3.setText(drPkbeans.get(1).getUser_nicename());
+ livePushSwViewHolder.dr3_preview.addView(detailsView3);
+ detailsLinearLayout3.setVisibility(View.GONE);
+ linearGrade3.setVisibility(View.GONE);
+
+
+ ToastUtil.show(WordUtil.isNewZh() ? "接受成功" : "Success");
+ }
+ }
+ int removeUid = 0;
+ for (int k = 0; k < pkScores.size(); k++) {
+ JSONObject score = pkScores.getJSONObject(k);
+ String userID = score.getString("id");
+ if (userID.equals(uid)) {
+ removeUid = k;
+ }
+ }
+ pkScores.remove(removeUid);
+ upDataPkScore(pkScores, "-1", 0, false);
+ }
+ }, 100);
+ }
+
+
+ SWManager.get().setDrPkNumClarity(drPkbeans.size());
+ if (drPkbeans.size() == 1) {
+ mLiveAnchorViewHolder.closeEndPkBt();
+ }
+ }
+ }
+ });
+ }
+
+ /**
+ * 主播与主播PK 主播收到其他主播发过来的多人PK申请同意了的回调
+ */
+ public void onLinkDRMicPkApplyOk(UserBean u) {
+ L.eSw("onLinkDRMicPkApplyOk(UserBean u) " + u.getUserNiceName());
+ int index = 0;
+ if (livePushSwViewHolder != null) {
+ livePushSwViewHolder.setAnDrPkRtc(String.valueOf(u.getId()), -1);
+ }
+ final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK).param("action", 3).param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", CommonAppConfig.getInstance().getUid()).param("msgtype", 3).param("uid", u.getId()).param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
+ msg1.create();
+
+ String targetId = "g" + CommonAppConfig.getInstance().getUid();
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM; //群聊
+ 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) {
+ }
+
+ @Override
+ public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("tx", "aaa" + errorCode.toString());
+ ToastUtil.show(errorCode.code + ":" + errorCode.msg);
+ }
+ });
+ dRjoinOtherRoom(u);
+ //展示结束连麦按钮
+ mLiveAnchorViewHolder.showEndPkBt();
+ }
+
+
+ /**
+ * 主播与主播PK PK主播发过来的已经接受
+ */
+ public void onLinkMicToPk(UserBean u) {
+ EventBus.getDefault().post(new AnchorInfoEvent(false, u.getId(), u.getUserNiceName(), u.getAvatar()));
+ Log.e("eve", u.getId() + "");
+ L.eSw("主播接受了主播的PK邀請");
+ RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
+ LivePushSwViewHolder.btn_close.setVisibility(View.VISIBLE);
+ LiveSwAnchorActivity.isDRPK = 1;
+ livePushSwViewHolder.setAnPkRtc(u);//设置对方主播视图
+ LivePushSwViewHolder.btn_close.setVisibility(View.VISIBLE);
+ }
+
+ @Override
+ protected void isPK(UserBean bean) {
+ EventBus.getDefault().post(new AnchorInfoEvent(false, bean.getId(), bean.getUserNiceName(), bean.getAvatar()));
+ ScreenDimenUtil util = ScreenDimenUtil.getInstance();
+ int mScreenWdith = util.getScreenWdith();
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, mScreenWdith * 720 / 960);
+ params.weight = 1;
+ params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ livePushSwViewHolder.camera.setLayoutParams(params);
+ livePushSwViewHolder.mPreView1.setLayoutParams(params);
+ livePushSwViewHolder.mPreView1.setVisibility(View.VISIBLE);
+ LivePushSwViewHolder.btn_close.setVisibility(View.VISIBLE);
+ LiveSwAnchorActivity.isDRPK = 1;
+
+ /*---------------------------------------------------------------- */
+ final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK).param("action", 2) //回复PK申请 2
+ .param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", bean.getId()).param("uid", CommonAppConfig.getInstance().getUid()).param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
+ if (bean.isRandomPk()) {
+ msg1.param("random_pk", "1");
+ }
+ if (RandomPkManager.getInstance().isRankModel()) {
+ L.eSw("排位赛");
+ msg1.param("is_ladders", "https://downs.yaoulive.com/rank_top_box.png");
+ }
+ msg1.param("is_ladders", "https://downs.yaoulive.com/rank_top_box.png");
+ msg1.create();
+ System.out.println("PK回执 = " + msg1.toString());
+ 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(bean.getId(), 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("tx", "发送成功");
+ }
+
+ @Override
+ public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("tx", "发送失败" + errorCode.getMessage());
+
+ }
+ });
+
+ // TODO: 2024/4/12 视图渲染
+ livePushSwViewHolder.setAnPkRtc(bean);
+ new Handler(Looper.getMainLooper()).post(new Runnable() {
+ public void run() {
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.UN_LEAVELIVE));
+ LiveSwAnchorActivity.isDRPK = 1;
+ LivePushSwViewHolder.btn_close.setVisibility(View.VISIBLE);
+ //SocketSwLinkMicPkUtil.linkMicPkAccept(mSocketSwClient, mApplyUid, mApplyUrl, mApplyNmae);
+ EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.UP_PK_TWO).setObject(mApplyUid));
+ onLinkMicPkStart(mApplyUid, 2);
+ }
+ });
+ }
+
+ @Override
+ protected void onDRPkApply(UserBean u) {
+ HttpClient.getInstance().get("Livepk.changeLive", "Livepk.changeLive").params("uid", CommonAppConfig.getInstance().getUid()).params("pkuid", u.getId()).params("type", "1").params("sign", "1").execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msgs, String[] info) {
+ if (code == 0) {
+ Log.i("多人PK", "1code = " + code + ", msgs = " + msgs + ", info = " + Arrays.deepToString(info) + " mApplyUid = " + mApplyUid);
+ HttpClient.getInstance().get("live.getdrnum", "live.getdrnum").execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ Log.i(TAG, "code = " + code + ", msg = " + msg + ", info = " + Arrays.deepToString(info));
+ if (info.length > 0) {
+ JSONObject datas = JSONObject.parseObject(info[0]);
+ boolean agree = true;
+ if (datas.getIntValue("pk_num_day") <= 0) {
+ ToastUtil.show("多人PK次数已用完");
+ agree = false;
+ }
+ boolean finalAgree = agree;
+ if (finalAgree) {
+ HttpClient.getInstance().get("live.joinDRPKroom", "live.joinDRPKroom").params("uid", CommonAppConfig.getInstance().getUid()).params("roomid", u.getId()).execute(new HttpCallback() {
+
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ L.eSw("多人PK" + "code = " + code + ", msg = " + msg + ", info = " + Arrays.deepToString(info));
+ if (info.length == 0) {
+ return;
+ }
+ JSONObject obj = JSONObject.parseObject(info[0]);
+ drPkbeans = JSONObject.parseArray(obj.getString("userlist"), DrPkbean.class);
+ SWManager.get().setDrPkNumClarity(3);//加入成功后,将分别率设置为 VD_320x240
+ //将自己从多人pk列表里剔除
+ int removeIndex = -1;
+ for (int i = 0; i < drPkbeans.size(); i++) {
+ if (CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
+ removeIndex = i;
+ }
+ }
+ if (removeIndex != -1) {
+ drPkbeans.remove(removeIndex);
+ L.eSw("将自己从多人pk列表里剔除" + new Gson().toJson(drPkbeans));
+ }
+
+ HttpClient.getInstance().get("Live.getDRPKroom", "Live.getDRPKroom").params("uid", CommonAppConfig.getInstance().getUid()).params("roomid", mApplyUid).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (info.length > 0) {
+ JSONObject obj = JSONObject.parseObject(info[0]);
+ drPkbeans = JSONObject.parseArray(obj.getString("userlist"), DrPkbean.class);
+ for (int i = 0; i < drPkbeans.size(); i++) {
+ if (!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
+ final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK).param("action", 2).param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", CommonAppConfig.getInstance().getUid()).param("msgtype", 2).param("uid", drPkbeans.get(i).getId()).param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
+ msg1.create();
+ L.eSw("uiduiduiduiduiduiduiduid" + drPkbeans.get(i).getId());
+ String targetId = String.valueOf(drPkbeans.get(i).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) {
+ }
+
+ @Override
+ public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("tx", "aaa" + errorCode.toString());
+ ToastUtil.show(errorCode.code + ":" + errorCode.msg);
+ }
+ });
+
+ //
+ int index = livePushSwViewHolder.setAnDrPkRtc(String.valueOf(drPkbeans.get(i).getId()), -1);
+
+ L.eSw("onLinkDRMicPkApplyOk(UserBean u)-点击接收 1 " + u.getUserNiceName());
+ L.eSw("發送action = 2");
+
+ }
+
+ if (!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
+ final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK).param("action", 3).param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("msgtype", 3).param("uid", drPkbeans.get(i).getId()).param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName() );;
+ msg1.create();
+ L.eSw("發送給自己直播間" + drPkbeans.get(i).getId());
+ String targetId = "g" + CommonAppConfig.getInstance().getUid();
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM; //群聊
+ 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) {
+ }
+
+ @Override
+ public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("tx", "aaa" + errorCode.toString());
+ ToastUtil.show(errorCode.code + ":" + errorCode.msg);
+ }
+ });
+ }
+
+
+ if (!mApplyUid.equals(String.valueOf(drPkbeans.get(i).getId())) && !CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
+ final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LIVE_DRPK).param("action", 3).param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", CommonAppConfig.getInstance().getUid()).param("msgtype", 3).param("uid", drPkbeans.get(i).getId()).param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar()).param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
+ msg1.create();
+ L.eSw("發送給其他主播直播间" + drPkbeans.get(i).getId());
+ String targetId = "g" + drPkbeans.get(i).getId();
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM; //群聊
+ 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) {
+ }
+
+ @Override
+ public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("tx", "aaa" + errorCode.toString());
+ ToastUtil.show(errorCode.code + ":" + errorCode.msg);
+ }
+ });
+ }
+ }
+ dRjoinOtherRoom(u);
+ //展示结束连麦按钮
+ //设置多人PK 房主ROOM UID
+ mLiveAnchorViewHolder.setDrpkRoomId(mApplyUid);
+ mLiveAnchorViewHolder.showEndPkBt();
+ }
+ }
+ });
+ }
+ });
+ }
+ } else {
+ ToastUtil.show(msg);
+ }
+ }
+
+ });
+
+
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onDRPkTimeout(UserBean u) {
+ IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() {
+
+ @Override
+ public void onFailed(RTCErrorCode errorCode) {
+
+ }
+
+ @Override
+ public void onSuccess() {
+ final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK).param("action", 8);
+ 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 (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg1.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("ry", "发送失敗" + mApplyUid);
+ }
+ });
+ }
+ });
+ }
+
+ @Override
+ protected void onDRPkRefuse(UserBean u) {
+ IMRTCManager.getInstance().responseJoinOtherRoom(u.getId(), false, "extra", new IRCRTCResultCallback() {
+
+ @Override
+ public void onFailed(RTCErrorCode errorCode) {
+
+ }
+
+ @Override
+ public void onSuccess() {
+ final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK).param("action", 3);
+ msg1.create();
+
+ String targetId = u.getId();
+ Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
+ TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
+ io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(io.rong.imlib.model.Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(io.rong.imlib.model.Message message) {
+ Log.e("ry", "发送成功");
+ if (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg1.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("ry", "发送失敗");
+ }
+ });
+ }
+ });
+ }
+
+ @Override
+ protected void onPkApply(UserBean u) {
+ LiveHttpUtil.livePkCheckLive(u.getId(), "", "", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0 && info.length > 0) {
+ JSONObject obj = JSON.parseObject(info[0]);
+ if (obj != null) {
+ if (obj.getString("ispk").equals("0")) {
+ isPKTmp(u);
+ } else {
+ ToastUtil.show(mContext.getString(R.string.pking_over));
+ }
+ }
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onPkTimeout(UserBean u) {
+ final SocketSendBean msg1 = new SocketSendBean().param("_method_", SOCKET_LINK_MIC_PK).param("action", 8);
+ 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 (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg1.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("ry", "发送失敗" + u.getId());
+ }
+ });
+ }
+
+ @Override
+ protected void onPkRefuse(UserBean u) {
+ onPkTimeoutTmp(u);
+ }
+
+ /**
+ * 显示申请PK的弹窗
+ */
+ @Override
+ protected void showApplyDialog(UserBean u) {
+ mIsApplyDialogShow = true;
+ mAcceptPk = false;
+ View v = LayoutInflater.from(mContext).inflate(R.layout.dialog_link_mic_pk_wait, null);
+ mLinkMicWaitProgress = v.findViewById(R.id.pk_wait_progress);
+ v.findViewById(R.id.btn_refuse).setOnClickListener(this);
+ v.findViewById(R.id.btn_accept).setOnClickListener(this);
+ mPkWaitCount = LINK_MIC_COUNT_MAX;
+ mPkPopWindow = new PopupWindow(v, DpUtil.dp2px(280), ViewGroup.LayoutParams.WRAP_CONTENT, true);
+ mPkPopWindow.setBackgroundDrawable(new ColorDrawable());
+ mPkPopWindow.setOutsideTouchable(true);
+ mPkPopWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+ @Override
+ public void onDismiss() {
+ if (mHandler != null) {
+ mHandler.removeMessages(WHAT_PK_WAIT_RECEIVE);
+ }
+ if (mAcceptPk) {
+ onPkApplyTmp(u);
+ } else {
+ if (mPkWaitCount < 0) {
+ onPkTimeoutTmp(u);
+ }
+ mApplyUid = null;
+ mApplyStream = null;
+ }
+ mIsApplyDialogShow = false;
+ mLinkMicWaitProgress = null;
+ mPkPopWindow = null;
+ }
+ });
+ mPkPopWindow.showAtLocation(mRoot, Gravity.CENTER, 0, 0);
+ if (mHandler != null) {
+ mHandler.sendEmptyMessageAtTime(WHAT_PK_WAIT_RECEIVE, getNextSecondTime());
+ }
+ }
+
+ private String TAG = "多人PK";
+
+
+ public void editPkRoom(String uid) {
+ SWManager.get().exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), uid);
+ }
+
+ /**
+ * 退出多人PK
+ */
+ public void leaveDRRoom() {
+ //清理PK上面对方的头像
+ EventBus.getDefault().post(new AnchorInfoEvent(true, "", "", ""));
+ Log.e("ry", "退出多人OKKK" + inputStreamList.size());
+ isDRPK = 0;
+ DRPKing = -1;
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ if (btn_close != null) {
+ btn_close.setVisibility(View.GONE);
+ livePushSwViewHolder.timeTitle.setVisibility(View.GONE);
+ }
+ }
+ });
+ mLiveAnchorViewHolder.closeEndPkBt();
+ livePushSwViewHolder.exitChannelDrPk(drPkbeans);
+ leaveHandler.removeCallbacks(leaveRunnable);
+ }
+
+ private Handler leaveHandler = new Handler(Looper.getMainLooper());
+ private Runnable leaveRunnable = new Runnable() {
+ @Override
+ public void run() {
+ //恢复全屏画面
+ livePushSwViewHolder.dr_pk_view.setVisibility(View.GONE);
+ //删除之前其他主播的画面
+ livePushSwViewHolder.dr1_preview.removeAllViews();
+ livePushSwViewHolder.dr2_preview.removeAllViews();
+ livePushSwViewHolder.dr3_preview.removeAllViews();
+ livePushSwViewHolder.dr4_preview.removeAllViews();
+ livePushSwViewHolder.cameraPreview3.removeAllViews();
+ leaveHandler.removeCallbacks(leaveRunnable);
+ livePushSwViewHolder.timeTitle.setVisibility(View.GONE);
+ livePushSwViewHolder.mPreView.removeView(detailsView1);
+ livePushSwViewHolder.cameraPreview3.setVisibility(View.GONE);
+ }
+ };
+
+ /**
+ * 随机PK拒绝对话框
+ */
+ @Override
+ protected void showPkDialog(UserBean u) {
+ new DialogUitl.Builder(mContext).setHtmlCode(Html.fromHtml("有人向您发起PK请求。
" + "若拒绝PK,将会10分钟内不会再收到任何随机PK请求。")).setConfirmString("接受").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();
+ task.cancel();
+ apply();
+ }
+
+ @Override
+ public void onCancel(Dialog dialog, View title, View context, View confirmBtn, View cancelBtn) {
+ if (!clickCancel) {
+ titleVal = "拒絕PK提示";
+ ((TextView) context).setText(Html.fromHtml("若拒絕PK,將會關閉你的隨機PK開關。" + "並且10分鍾不會收到任何隨機PK請求。"));
+ ((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"));
+ refusePk(u);
+ cancelBtn.setVisibility(View.GONE);
+ confirmBtn.setOnClickListener(v -> {
+ dialog.dismiss();
+ });
+ }
+
+
+ void apply() {
+ isPKTmp(u);
+ }
+ }).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 (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.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的弹窗
+ */
+ @Override
+ protected void showDRApplyDialog(UserBean u) {
+ mApplyUid = u.getId();
+ mIsApplyDialogShow = true;
+ mAcceptPk = false;
+ View v = LayoutInflater.from(mContext).inflate(R.layout.dialog_link_mic_pk_wait, null);
+ mLinkMicWaitProgress = v.findViewById(R.id.pk_wait_progress);
+ v.findViewById(R.id.btn_refuse).setOnClickListener(this);
+ v.findViewById(R.id.btn_accept).setOnClickListener(this);
+ mPkWaitCount = LINK_MIC_COUNT_MAX;
+ mPkPopWindow = new PopupWindow(v, DpUtil.dp2px(280), ViewGroup.LayoutParams.WRAP_CONTENT, true);
+ mPkPopWindow.setBackgroundDrawable(new ColorDrawable());
+ mPkPopWindow.setOutsideTouchable(true);
+ mPkPopWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+ @Override
+ public void onDismiss() {
+ if (mHandler != null) {
+ mHandler.removeMessages(WHAT_PK_WAIT_RECEIVE);
+ }
+ if (mAcceptPk) {
+ onDRPkApplyTmp(u);
+ } else {
+ if (mPkWaitCount < 0) {
+ onDRPkTimeoutTmp(u);
+
+ } else {
+ onDRPkRefuseTmp(u);
+ }
+ mApplyUid = null;
+ mApplyStream = null;
+ }
+ mIsApplyDialogShow = false;
+ mLinkMicWaitProgress = null;
+ mPkPopWindow = null;
+ }
+ });
+ mPkPopWindow.showAtLocation(mRoot, Gravity.CENTER, 0, 0);
+ if (mHandler != null) {
+ mHandler.sendEmptyMessageAtTime(WHAT_PK_WAIT_RECEIVE, getNextSecondTime());
+ }
+ }
+
+ public void setMyDrPkDetailsView() {
+ if (detailsView1 != null) {
+ livePushSwViewHolder.dr1_preview.removeView(detailsView1);
+ }
+ detailsView1 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ detailsLinearLayout1 = detailsView1.findViewById(R.id.lin_pk1);
+ linearGrade1 = detailsView1.findViewById(R.id.linear_grade1);
+ imageGrade1 = detailsView1.findViewById(R.id.image_grade1);
+ textGrade1 = detailsView1.findViewById(R.id.text_grade1);
+ textPkName1 = detailsView1.findViewById(R.id.text_pk_name1);
+ imageGrade1.setTag(String.valueOf(IMLoginManager.get(mContext).getUserInfo().getId()));
+ livePushSwViewHolder.dr1_preview.addView(detailsView1);
+ detailsLinearLayout1.setVisibility(View.GONE);
+ linearGrade1.setVisibility(View.GONE);
+ }
+
+ //多人PK接受申请画
+ public void dRjoinOtherRoom(UserBean u) {
+ L.eSw("dRjoinOtherRoom UserBeanUserBeanUserBeanUserBeanUserBeanUserBeanUserBeanUserBean ");
+ setMyDrPkDetailsView();
+ HttpClient.getInstance().get("Live.getDRPKroom", "Live.getDRPKroom").params("uid", CommonAppConfig.getInstance().getUid()).params("roomid", mApplyUid).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (info.length > 0) {
+ JSONObject obj = JSONObject.parseObject(info[0]);
+ drPkbeans = JSONObject.parseArray(obj.getString("userlist"), DrPkbean.class);
+ int removeIndex = -1;
+ for (int i = 0; i < drPkbeans.size(); i++) {
+ if (CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeans.get(i).getId()))) {
+ removeIndex = i;
+ }
+ }
+ if (removeIndex != -1) {
+ drPkbeans.remove(removeIndex);
+ }
+ SWManager.get().setDrPkNumClarity(drPkbeans.size());
+ setDrPkUserInfoView(drPkbeans);
+ }
+ }
+ });
+ }
+
+ private void setDrPkUserInfoView(List drPkbeanList) {
+ L.eSw("setDrPkUserInfoView" + new Gson().toJson(drPkbeanList));
+ for (int j = 0; j < drPkbeanList.size(); j++) {
+ if (j == 0) {
+ L.eSw("j == 0:" + j);
+ //设置多人PK数据
+ if (detailsView2 != null) {
+ livePushSwViewHolder.dr2_preview.removeView(detailsView2);
+ }
+ detailsView2 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ detailsLinearLayout2 = detailsView2.findViewById(R.id.lin_pk2);
+ linearGrade2 = detailsView2.findViewById(R.id.linear_grade2);
+ textPkName2 = detailsView2.findViewById(R.id.text_pk_name2);
+ imageGrade2 = detailsView2.findViewById(R.id.image_grade2);
+ textGrade2 = detailsView2.findViewById(R.id.text_grade2);
+ imageGrade2.setTag(String.valueOf(drPkbeanList.get(0).getId()));
+ textPkName2.setText(drPkbeanList.get(0).getUser_nicename());
+ livePushSwViewHolder.dr2_preview.addView(detailsView2);
+ detailsLinearLayout2.setVisibility(View.GONE);
+ linearGrade2.setVisibility(View.GONE);
+ } else if (j == 1) {
+ L.eSw("j == 1:" + j);
+ if (detailsView4 != null) {
+ livePushSwViewHolder.dr4_preview.removeView(detailsView4);
+ }
+ detailsView4 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ detailsLinearLayout4 = detailsView4.findViewById(R.id.lin_pk4);
+ linearGrade4 = detailsView4.findViewById(R.id.linear_grade4);
+ textPkName4 = detailsView4.findViewById(R.id.text_pk_name4);
+ imageGrade4 = detailsView4.findViewById(R.id.image_grade4);
+ textGrade4 = detailsView4.findViewById(R.id.text_grade4);
+ imageGrade4.setTag(String.valueOf(drPkbeanList.get(1).getId()));
+ textPkName4.setText(drPkbeanList.get(1).getUser_nicename());
+ livePushSwViewHolder.dr4_preview.addView(detailsView4);
+ detailsLinearLayout4.setVisibility(View.GONE);
+ linearGrade4.setVisibility(View.GONE);
+ } else if (j == 2) {
+ L.eSw("j == 2:" + j);
+
+ if (detailsView4 != null) {
+ livePushSwViewHolder.dr4_preview.removeView(detailsView4);
+ }
+ detailsView4 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ detailsLinearLayout4 = detailsView4.findViewById(R.id.lin_pk4);
+ linearGrade4 = detailsView4.findViewById(R.id.linear_grade4);
+ textPkName4 = detailsView4.findViewById(R.id.text_pk_name4);
+ imageGrade4 = detailsView4.findViewById(R.id.image_grade4);
+ textGrade4 = detailsView4.findViewById(R.id.text_grade4);
+ imageGrade4.setTag(String.valueOf(drPkbeanList.get(2).getId()));
+ textPkName4.setText(drPkbeanList.get(2).getUser_nicename());
+ livePushSwViewHolder.dr4_preview.addView(detailsView4);
+ detailsLinearLayout4.setVisibility(View.GONE);
+ linearGrade4.setVisibility(View.GONE);
+
+ if (detailsView3 != null) {
+ livePushSwViewHolder.dr3_preview.removeView(detailsView3);
+ }
+ detailsView3 = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ detailsLinearLayout3 = detailsView3.findViewById(R.id.lin_pk3);
+ linearGrade3 = detailsView3.findViewById(R.id.linear_grade3);
+ textPkName3 = detailsView3.findViewById(R.id.text_pk_name3);
+ imageGrade3 = detailsView3.findViewById(R.id.image_grade3);
+ textGrade3 = detailsView3.findViewById(R.id.text_grade3);
+ imageGrade3.setTag(String.valueOf(drPkbeanList.get(1).getId()));
+ textPkName3.setText(drPkbeanList.get(1).getUser_nicename());
+ livePushSwViewHolder.dr3_preview.addView(detailsView3);
+ detailsLinearLayout3.setVisibility(View.GONE);
+ linearGrade3.setVisibility(View.GONE);
+
+ ToastUtil.show(WordUtil.isNewZh() ? "接受成功" : "Success");
+ }
+ }
+ L.eSw("dRjoinOtherRoom:size:" + drPkbeanList.size() + " json " + new Gson().toJson(drPkbeanList));
+
+ }
+
+ @Override
+ public void onClick(View v) {
+ int i = v.getId();
+ if (i == R.id.btn_refuse) {
+ refuseLinkMic();
+
+ } else if (i == R.id.btn_accept) {
+ acceptLinkMic();
+
+ }
+ }
+
+ /**
+ * 拒绝PK
+ */
+ private void refuseLinkMic() {
+ if (mPkPopWindow != null) {
+ mPkPopWindow.dismiss();
+ }
+ }
+
+ /**
+ * 接受PK
+ */
+ private void acceptLinkMic() {
+ mAcceptPk = true;
+ if (mPkPopWindow != null) {
+ mPkPopWindow.dismiss();
+ }
+ }
+
+ /**
+ * pk 进度发送变化
+ *
+ * @param leftGift
+ * @param rightGift
+ */
+ public void onPkProgressChanged(long leftGift, long rightGift, LivePKUserListBean bean) {
+ if (mLiveLinkMicPkViewHolder != null) {
+ mLiveLinkMicPkViewHolder.onProgressChanged(leftGift, rightGift, bean);
+ }
+ }
+
+ /**
+ * 进房间的时候PK开始
+ */
+ public void onEnterRoomPkStart(String pkUid, long leftGift, long rightGift, int pkTime, LivePKUserListBean bean) {
+ mIsPk = true;
+ mIsPkEnd = false;
+ mPkUid = pkUid;
+ mApplyUid = null;
+ mApplyStream = null;
+ if (mLiveLinkMicPkViewHolder == null) {
+ mLiveLinkMicPkViewHolder = new LiveLinkMicPkViewHolder(mContext, mPkContainer);
+ mLiveLinkMicPkViewHolder.addToParent();
+ mLiveLinkMicPkViewHolder.setIsAnchor(mIsAnchor);
+
+ }
+ mLiveLinkMicPkViewHolder.showTime();
+ mLiveLinkMicPkViewHolder.onEnterRoomPkStart();
+ mLiveLinkMicPkViewHolder.onProgressChanged(leftGift, rightGift, bean);
+ mPkTimeCount = pkTime;
+ Log.d("mPkTimeCount1", "" + mPkTimeCount + ";mPkTimeFromServer=" + mPkTimeFromServer);
+ mPkTimeFromServer = pkTime;
+ nextPkTimeCountDown(2);
+ }
+
+ /**
+ * 修改最终PK数据
+ *
+ * @param leftGift 左边数据
+ * @param rightGift 右边数据
+ * @param bean 排位数据
+ */
+ public void onPkProgressEnd(long leftGift, long rightGift, LivePKUserListBean bean) {
+ if (mLiveLinkMicPkViewHolder != null) {
+ mLiveLinkMicPkViewHolder.onProgressChanged(leftGift, rightGift, bean, true);
+ }
+ }
+
+
+ /**
+ * 进房间的时候懲罰开始
+ */
+ public void onEnterRoomCFStart(String pkUid, long leftGift, long rightGift, int pkTime, LivePKUserListBean bean) {
+ mIsPk = true;
+ mIsPkEnd = true;
+ mPkUid = pkUid;
+ mApplyUid = null;
+ mApplyStream = null;
+ if (mLiveLinkMicPkViewHolder == null) {
+ mLiveLinkMicPkViewHolder = new LiveLinkMicPkViewHolder(mContext, mPkContainer);
+ mLiveLinkMicPkViewHolder.addToParent();
+ mLiveLinkMicPkViewHolder.setIsAnchor(mIsAnchor);
+
+ }
+ mLiveLinkMicPkViewHolder.showTime();
+// -1自己的主播输 0平 1自己的主播赢
+ int p = 0;
+ if (leftGift < rightGift) {
+ p = -1;
+ } else if (leftGift > rightGift) {
+ p = 1;
+ } else if (leftGift == rightGift) {
+ p = 0;
+ }
+ mLiveLinkMicPkViewHolder.new_end(p);
+
+ mLiveLinkMicPkViewHolder.onProgressChanged(leftGift, rightGift, bean);
+ mPkTimeCount = pkTime;
+ Log.d("mPkTimeCount1", "" + mPkTimeCount + ";mPkTimeFromServer=" + mPkTimeFromServer);
+// mPkTimeFromServer=pkTime;
+ //恢复播放画面
+ nextPkTimeCountDown(3);
+ }
+
+
+ /**
+ * 主播与主播PK 所有人收到PK开始的回调
+ */
+ public void onLinkMicPkStart(String pkUid, int i) {
+ L.eSw("onLinkMicPkStart pkUid " + pkUid + " " + i);
+ Log.d("tag", i + "mPkTimeCount2");
+ mIsPk = true;
+ hideSendPkWait();
+ mIsPkEnd = false;
+ oldmPkUid = pkUid;
+ mPkUid = pkUid;
+ mApplyUid = null;
+ mApplyStream = null;
+ isDRPK = 1;
+ if (mLiveLinkMicPkViewHolder == null) {
+ mLiveLinkMicPkViewHolder = new LiveLinkMicPkViewHolder(mContext, mPkContainer);
+ mLiveLinkMicPkViewHolder.addToParent();
+ mLiveLinkMicPkViewHolder.setIsAnchor(mIsAnchor);
+ if (mContext instanceof LiveAudienceActivity) {
+ ((LiveAudienceActivity) mContext).getmLivePlayViewHolder().setPkview();
+ }
+ }
+ mLiveLinkMicPkViewHolder.startAnim();
+ EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_TWO_START).setObject(pkUid));
+ mLiveLinkMicPkViewHolder.showTime();
+ mPkTimeCount = 100;
+ nextPkTimeCountDown(2);//时间倒计时
+ if (mIsAnchor) {
+ ((LiveSwAnchorActivity) mContext).setPkBtnVisible(false);
+ mPkTimeCount = PK_TIME_MAX;
+ } else {
+// mPkTimeCount=mPkTimeFromServer;
+ mPkTimeCount = PK_TIME_MAX;
+ }
+ Log.d("mPkTimeCount2", "" + mPkTimeCount + ";mPkTimeFromServer=" + mPkTimeFromServer);
+ }
+
+
+ /**
+ * 主播与主播PK PK结果的回调
+ */
+ int s1 = 0;
+
+ public void onLinkMicPkEnd(String winUid) {
+ Log.i("收", "9");
+
+ if (mIsPkEnd) {
+ return;
+ }
+ mIsPkEnd = true;
+ if (mHandler != null) {
+ mHandler.removeMessages(WHAT_PK_TIME);
+ }
+ if (mLiveLinkMicPkViewHolder != null) {
+ if (!TextUtils.isEmpty(winUid)) {
+ if ("0".equals(winUid)) {
+ mLiveLinkMicPkViewHolder.end(0);
+ mLiveLinkMicPkViewHolder.hideTime();
+ if (mHandler != null) {
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ onLinkMicPkClose(0);
+ if (mIsAnchor) {
+ ((LiveSwAnchorActivity) mContext).setPkBtnVisible(true);
+ }
+ }
+ }, 3000);
+ }
+ } else {
+ Log.e("ry1", winUid + "result");
+ if (winUid.equals(mLiveUid)) {
+ mLiveLinkMicPkViewHolder.end(1);
+ } else {
+ mLiveLinkMicPkViewHolder.end(-1);
+ }
+ mPkTimeCount = PK_TIME_MAX_2;//进入惩罚时间
+ nextPkTimeCountDown(5);
+ }
+ }
+
+ }
+ }
+
+ /**
+ * 主播与主播PK 断开连麦PK的回调
+ */
+ public void onLinkMicPkClose(int i) {
+ Log.e("ry", mPkUid + "aaaaqwqw" + i);
+
+ PKing = false;
+ LiveSwAnchorActivity.isDRPK = 0;
+
+// //恢复播放画面
+ if (i == 1) {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ if (btn_close != null) {
+ btn_close.setVisibility(View.GONE);
+ }
+ }
+ });
+
+ runOnUiThread(new Runnable() {
+ public void run() {
+// try {
+// Thread.sleep(4000);
+ if (mContext instanceof LiveAudienceActivity && LiveAudienceActivity.getmLivePlayViewHolder() != null) {
+ LiveAudienceActivity.getmLivePlayViewHolder().setPkEndview();
+ }
+// } catch (InterruptedException e) {
+// e.printStackTrace();
+// }
+ }
+ });
+
+ }
+ if (mHandler != null) {
+ mHandler.removeCallbacksAndMessages(null);
+ }
+ if (mPkPopWindow != null) {
+ mPkPopWindow.dismiss();
+ }
+ mPkPopWindow = null;
+ mIsPk = false;
+ mIsPkEnd = false;
+ hideSendPkWait();
+ mPkUid = null;
+ mApplyUid = null;
+ mApplyStream = null;
+ if (mLiveLinkMicPkViewHolder != null) {
+ mLiveLinkMicPkViewHolder.removeFromParent();
+ mLiveLinkMicPkViewHolder.release();
+ }
+ mLiveLinkMicPkViewHolder = null;
+ }
+
+ /**
+ * 主播与主播Pk 对方主播拒绝Pk的回调
+ */
+ public void onLinkMicPkRefuse() {
+ hideSendPkWait();
+ if (mIsAnchor) {
+ ((LiveSwAnchorActivity) mContext).setPkBtnVisible(true);
+ }
+ ToastUtil.show(mContext.getString(R.string.link_mic_refuse_pk));
+ }
+
+ /**
+ * 主播与主播Pk 对方主播无响应的回调
+ */
+ public void onLinkMicPkNotResponse() {
+ hideSendPkWait();
+ if (mIsAnchor) {
+ ((LiveSwAnchorActivity) mContext).setPkBtnVisible(true);
+ }
+ ToastUtil.show(mContext.getString(R.string.link_mic_anchor_not_response_2));
+ }
+
+ /**
+ * 主播与主播Pk 对方主播正在忙的回调
+ */
+ public void onLinkMicPkBusy() {
+ hideSendPkWait();
+ if (mIsAnchor) {
+ ((LiveSwAnchorActivity) mContext).setPkBtnVisible(true);
+ }
+ ToastUtil.show(mContext.getString(R.string.link_mic_anchor_busy_2));
+ }
+
+
+ public void release() {
+ if (mHandler != null) {
+ mHandler.removeCallbacksAndMessages(null);
+ }
+ mHandler = null;
+ mSocketSwClient = null;
+ if (mLiveLinkMicPkViewHolder != null) {
+ mLiveLinkMicPkViewHolder.release();
+ }
+ mLiveLinkMicPkViewHolder = null;
+ }
+
+ public void clearData() {
+ mIsApplyDialogShow = false;
+ mAcceptPk = false;
+ mIsPk = false;
+ mApplyUid = null;
+ mApplyStream = null;
+ mLiveUid = null;
+ mPkUid = null;
+ mPkWaitCount = 0;
+ mPkTimeCount = 0;
+ mIsPkEnd = false;
+ mPkSend = false;
+ mPkSendWaitCount = 0;
+ if (mHandler != null) {
+ mHandler.removeCallbacksAndMessages(null);
+ }
+ if (mLiveLinkMicPkViewHolder != null) {
+ mLiveLinkMicPkViewHolder.release();
+ mLiveLinkMicPkViewHolder.removeFromParent();
+ }
+ mLiveLinkMicPkViewHolder = null;
+ }
+
+ public void setSelfStream(String selfStream) {
+ mSelfStream = selfStream;
+ }
+
+ public void closeButtonGone() {
+ mLiveAnchorViewHolder.closeEndPkBt();
+ }
+
+ /**
+ * 更新Pk分数
+ */
+ public void upDataPkScore(JSONArray pkScores, String uid, int time, boolean isShowTimeTitle) {
+ this.pkScores = pkScores;
+
+ L.eSw("更新Pk分数 upDataPkScore time:" + time + " " + pkScores);
+ String userID1 = (String) imageGrade1.getTag();
+ String userID2 = (String) imageGrade2.getTag();
+ String userID4 = (String) imageGrade4.getTag();
+ if (livePushSwViewHolder.timeTitle.getVisibility() == View.GONE && isShowTimeTitle) {
+ mHandler.removeMessages(WHAT_PK_TIME2);
+ RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) livePushSwViewHolder.timeTitle.getLayoutParams();
+ layoutParams.topMargin = DpUtil.dp2px(123);
+ livePushSwViewHolder.timeTitle.setLayoutParams(layoutParams);
+ livePushSwViewHolder.timeTitle.setVisibility(View.VISIBLE);
+ String pkTime = StringUtil.getDurationText(time * 1000);
+ livePushSwViewHolder.textTime.setText(String.format(mContext.getString(R.string.pk_time), pkTime));
+ mPkTimeCount = time;
+ if (time > 0) {
+ String s1 = StringUtil.getDurationText(mPkTimeCount * 1000);
+ livePushSwViewHolder.textTime.setText(String.format(mContext.getString(R.string.pk_time), s1));
+ mHandler.sendEmptyMessage(WHAT_PK_TIME2);
+ }
+ }
+ int pkScoreSize = pkScores.size();
+ if (pkScoreSize == 3) {
+ detailsLinearLayout1.setVisibility(View.VISIBLE);
+ detailsLinearLayout2.setVisibility(View.VISIBLE);
+ detailsLinearLayout4.setVisibility(View.VISIBLE);
+
+ linearGrade1.setVisibility(View.VISIBLE);
+ linearGrade2.setVisibility(View.VISIBLE);
+ linearGrade4.setVisibility(View.VISIBLE);
+ //拿到原始数据
+ for (int i = 0; i < pkScores.size(); i++) {
+ JSONObject score = pkScores.getJSONObject(i);
+ String userID = score.getString("id");
+ long userScore = score.getLong("score");
+ if (TextUtils.equals(userID, userID1)) {
+ textGrade1.setText(String.valueOf(userScore));
+ if (!score.containsKey("paiming")) {
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no1);
+ } else {
+ int ranking = score.getIntValue("paiming");
+ switch (ranking) {
+ case 1:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no1);
+ break;
+ case 2:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no2);
+ break;
+ case 3:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no3);
+ break;
+ case 4:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no4);
+ break;
+ }
+ }
+ } else if (TextUtils.equals(userID, userID2)) {
+ textGrade2.setText(String.valueOf(userScore));
+ if (!score.containsKey("paiming")) {
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no1);
+ } else {
+ int ranking = score.getIntValue("paiming");
+ switch (ranking) {
+ case 1:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no1);
+ break;
+ case 2:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no2);
+ break;
+ case 3:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no3);
+ break;
+ case 4:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no4);
+ break;
+ }
+ }
+ } else if (TextUtils.equals(userID, userID4)) {
+ textGrade4.setText(String.valueOf(userScore));
+ if (!score.containsKey("paiming")) {
+ imageGrade4.setImageResource(R.mipmap.icon_livepk_no1);
+ } else {
+ int ranking = score.getIntValue("paiming");
+ switch (ranking) {
+ case 1:
+ imageGrade4.setImageResource(R.mipmap.icon_livepk_no1);
+ break;
+ case 2:
+ imageGrade4.setImageResource(R.mipmap.icon_livepk_no2);
+ break;
+ case 3:
+ imageGrade4.setImageResource(R.mipmap.icon_livepk_no3);
+ break;
+ case 4:
+ imageGrade4.setImageResource(R.mipmap.icon_livepk_no4);
+ break;
+ }
+ }
+ }
+ }
+ } else if (pkScoreSize == 4) {
+ String userID3 = (String) imageGrade3.getTag();
+
+ detailsLinearLayout1.setVisibility(View.VISIBLE);
+ detailsLinearLayout2.setVisibility(View.VISIBLE);
+ detailsLinearLayout3.setVisibility(View.VISIBLE);
+ detailsLinearLayout4.setVisibility(View.VISIBLE);
+
+ linearGrade1.setVisibility(View.VISIBLE);
+ linearGrade2.setVisibility(View.VISIBLE);
+ linearGrade3.setVisibility(View.VISIBLE);
+ linearGrade4.setVisibility(View.VISIBLE);
+ //拿到原始数据
+ for (int i = 0; i < pkScores.size(); i++) {
+ JSONObject score = pkScores.getJSONObject(i);
+ String userID = score.getString("id");
+ long userScore = score.getLong("score");
+ if (TextUtils.equals(userID, userID1)) {
+ textGrade1.setText(String.valueOf(userScore));
+ if (!score.containsKey("paiming")) {
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no1);
+ } else {
+ int ranking = score.getIntValue("paiming");
+ switch (ranking) {
+ case 1:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no1);
+ break;
+ case 2:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no2);
+ break;
+ case 3:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no3);
+ break;
+ case 4:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no4);
+ break;
+ }
+ }
+ } else if (TextUtils.equals(userID, userID2)) {
+ textGrade2.setText(String.valueOf(userScore));
+ if (!score.containsKey("paiming")) {
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no1);
+ } else {
+ int ranking = score.getIntValue("paiming");
+ switch (ranking) {
+ case 1:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no1);
+ break;
+ case 2:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no2);
+ break;
+ case 3:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no3);
+ break;
+ case 4:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no4);
+ break;
+ }
+ }
+ } else if (TextUtils.equals(userID, userID4)) {
+ textGrade4.setText(String.valueOf(userScore));
+ if (!score.containsKey("paiming")) {
+ imageGrade4.setImageResource(R.mipmap.icon_livepk_no1);
+ } else {
+ int ranking = score.getIntValue("paiming");
+ switch (ranking) {
+ case 1:
+ imageGrade4.setImageResource(R.mipmap.icon_livepk_no1);
+ break;
+ case 2:
+ imageGrade4.setImageResource(R.mipmap.icon_livepk_no2);
+ break;
+ case 3:
+ imageGrade4.setImageResource(R.mipmap.icon_livepk_no3);
+ break;
+ case 4:
+ imageGrade4.setImageResource(R.mipmap.icon_livepk_no4);
+ break;
+ }
+ }
+ } else if (TextUtils.equals(userID, userID3)) {
+ textGrade3.setText(String.valueOf(userScore));
+ if (!score.containsKey("paiming")) {
+ imageGrade3.setImageResource(R.mipmap.icon_livepk_no1);
+ } else {
+ int ranking = score.getIntValue("paiming");
+ switch (ranking) {
+ case 1:
+ imageGrade3.setImageResource(R.mipmap.icon_livepk_no1);
+ break;
+ case 2:
+ imageGrade3.setImageResource(R.mipmap.icon_livepk_no2);
+ break;
+ case 3:
+ imageGrade3.setImageResource(R.mipmap.icon_livepk_no3);
+ break;
+ case 4:
+ imageGrade3.setImageResource(R.mipmap.icon_livepk_no4);
+ break;
+ }
+ }
+ }
+
+ }
+ } else {
+ detailsLinearLayout1.setVisibility(View.VISIBLE);
+ detailsLinearLayout2.setVisibility(View.VISIBLE);
+
+ linearGrade1.setVisibility(View.VISIBLE);
+ linearGrade2.setVisibility(View.VISIBLE);
+ //拿到原始数据
+ for (int i = 0; i < pkScores.size(); i++) {
+ JSONObject score = pkScores.getJSONObject(i);
+ String userID = score.getString("id");
+ long userScore = score.getLong("score");
+ if (TextUtils.equals(userID, userID1)) {
+ textGrade1.setText(String.valueOf(userScore));
+ if (!score.containsKey("paiming")) {
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no1);
+ } else {
+ int ranking = score.getIntValue("paiming");
+ switch (ranking) {
+ case 1:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no1);
+ break;
+ case 2:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no2);
+ break;
+ case 3:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no3);
+ break;
+ case 4:
+ imageGrade1.setImageResource(R.mipmap.icon_livepk_no4);
+ break;
+ }
+ }
+ } else if (TextUtils.equals(userID, userID2)) {
+ textGrade2.setText(String.valueOf(userScore));
+ if (!score.containsKey("paiming")) {
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no1);
+ } else {
+ int ranking = score.getIntValue("paiming");
+ switch (ranking) {
+ case 1:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no1);
+ break;
+ case 2:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no2);
+ break;
+ case 3:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no3);
+ break;
+ case 4:
+ imageGrade2.setImageResource(R.mipmap.icon_livepk_no4);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ }
+
+
+ /**
+ * PK倒计时
+ */
+ private void pkCountdownTimer() {
+
+ mPkTimeCount--;
+ if (mPkTimeCount > 0) {//
+ if (mHandler != null) {
+ String s1 = StringUtil.getDurationText(mPkTimeCount * 1000);
+ livePushSwViewHolder.textTime.setText(String.format(mContext.getString(R.string.pk_time), s1));
+ mHandler.sendEmptyMessageAtTime(WHAT_PK_TIME2, getNextSecondTime());
+ }
+ } else {
+ if (DRPKing != -1) {
+ mLiveAnchorViewHolder.showEndPkBt();
+ }
+ livePushSwViewHolder.timeTitle.setVisibility(View.GONE);
+ if (mHandler != null) {
+ mHandler.removeCallbacksAndMessages(null);
+ }
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_TIME_COUNT));
+// endDRGif();
+ if (DRInitiator) {
+ LiveNetManager.get(mContext).jieshuDRPK("" + IMLoginManager.get(mContext).getUserInfo().getId());
+ }
+ }
+ }
+
+
+}
diff --git a/live/src/main/java/com/yunbao/live/socket/SocketClient.java b/live/src/main/java/com/yunbao/live/socket/SocketClient.java
index 4647f45d1..852ae096e 100644
--- a/live/src/main/java/com/yunbao/live/socket/SocketClient.java
+++ b/live/src/main/java/com/yunbao/live/socket/SocketClient.java
@@ -10,6 +10,7 @@ import android.widget.LinearLayout;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
import com.tencent.imsdk.v2.V2TIMCallback;
import com.tencent.imsdk.v2.V2TIMManager;
import com.yunbao.common.CommonAppConfig;
@@ -760,6 +761,7 @@ public class SocketClient {
*/
private static void processAnchorLinkMicPk(JSONObject map) {
int action = map.getIntValue("action");
+ L.eSw(new Gson().toJson(map));
switch (action) {
case 1://收到对方主播发起PK回调
UserBean u = new UserBean();
diff --git a/live/src/main/java/com/yunbao/live/socket/SocketLinkMicPkUtil.java b/live/src/main/java/com/yunbao/live/socket/SocketLinkMicPkUtil.java
index 8ec8ae0ca..867e0c7c1 100644
--- a/live/src/main/java/com/yunbao/live/socket/SocketLinkMicPkUtil.java
+++ b/live/src/main/java/com/yunbao/live/socket/SocketLinkMicPkUtil.java
@@ -66,7 +66,8 @@ public class SocketLinkMicPkUtil {
.param("uid", CommonAppConfig.getInstance().getUid())
.param("pkuid", CommonAppConfig.getInstance().getUid())
.param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
- .param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
+ .param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
+ .param("name", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
msg.create();
V2TIMManager.getInstance().sendC2CTextMessage(msg.mResult.toString(), pkUid, new V2TIMSendCallback() {
@Override
diff --git a/live/src/main/java/com/yunbao/live/socket/SocketMessageListener.java b/live/src/main/java/com/yunbao/live/socket/SocketMessageListener.java
index 4f6f9669e..a5442f55f 100644
--- a/live/src/main/java/com/yunbao/live/socket/SocketMessageListener.java
+++ b/live/src/main/java/com/yunbao/live/socket/SocketMessageListener.java
@@ -242,9 +242,13 @@ public interface SocketMessageListener {
//多人PK
void onLinkDRMicPkApply(UserBean u);
+ void onLinkDRMicPKToUser(UserBean u);
+
//接受多人PK
void onLinkDRMicPkApplyOk(UserBean u);
+ void onLinkDRMicPkQuit(String uid);
+
/**
* 主播与主播PK 所有人收到PK开始的回调
*/
@@ -255,6 +259,7 @@ public interface SocketMessageListener {
*/
void onLinkMicPkClose(int i);
+
/**
* 主播与主播PK 对方主播拒绝pk的回调
*/
diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java b/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java
index f78a1dd5d..79c8b9310 100644
--- a/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java
+++ b/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java
@@ -36,7 +36,7 @@ import io.rong.message.TextMessage;
public class SocketRyChatUtil {
//关闭直播
- public static void closeLive(final String votes, final String length, final String nums, final String mLiveUid, SocketRyClient client) {
+ public static void closeLive(final String votes, final String length, final String nums, final String mLiveUid) {
UserBean u = CommonAppConfig.getInstance().getUserBean();
final SocketSendBean msg = new SocketSendBean()
.param("_method_", Constants.SOCKET_LIVE_END)
@@ -216,7 +216,6 @@ public class SocketRyChatUtil {
if (code == 0) {
EventBus.getDefault().post("stop_svga_new_user_double1");
}
-
}
});
if (SocketRyClient.mSocketHandler != null)
diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java
index 9c34e6213..73a762e69 100644
--- a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java
+++ b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java
@@ -101,12 +101,12 @@ public class SocketRyClient {
private final String TAG = "socket";
private String mLiveUid;
private String mStream;
- public static SocketRyClient.SocketHandler mSocketHandler;
+ public static SocketHandler mSocketHandler;
private Context mContext;
public SocketRyClient(String mLiveUid, SocketMessageListener listener, Activity mContext) {
this.mContext = mContext;
- mSocketHandler = new SocketRyClient.SocketHandler(listener);
+ mSocketHandler = new SocketHandler(listener);
mSocketHandler.setLiveUid(mLiveUid);
RongChatRoomClient.getInstance().joinChatRoom("g" + mLiveUid, -1, new IRongCoreCallback.OperationCallback() {
@Override
@@ -1052,6 +1052,7 @@ public class SocketRyClient {
try {
//增加粉丝徽章信息
chatBean.setMedalNmae(map.getString("medal_name"));
+ chatBean.setMedal_new_en(map.getString("medal_new_en"));
FansModel fansMedalBean = new NewLevelManager(mContext).getFansModel(map.getIntValue("medal_level"));
if (fansMedalBean != null)
chatBean.setMedalLevelImageUrl(fansMedalBean.getThumb());
@@ -1093,7 +1094,7 @@ public class SocketRyClient {
chatBean.setBubble(obj.getString("bubble"));
chatBean.setMedal(obj.getString("medal"));
chatBean.setMedal_new(obj.getString("medal_new"));
- chatBean.setMedal_new_en(map.getString("medal_new_en"));
+ chatBean.setMedal_new_en(obj.getString("medal_new_en"));
chatBean.setHot_num(obj.getString("hot_num"));
UserBean.DressBean dressBean = new UserBean.DressBean();
dressBean.setAvatar_frame(obj.getString("avatar_frame"));
@@ -1114,6 +1115,7 @@ public class SocketRyClient {
FansModel fansMedalBean = new NewLevelManager(mContext).getFansModel(map.getIntValue("medal_level"));
u.setFansLevel(obj.getIntValue("medal_level"));
u.setFansEnterRoomUrl(obj.getString("medal_backgroup_thumb"));
+ CommonAppConfig.getInstance().getUserBean().getDress().setMedal_new_en(obj.getString("medal_new_en"));
if (fansMedalBean != null)
chatBean.setMedalLevelImageUrl(fansMedalBean.getThumb());
mListener.onEnterRoom(new LiveEnterRoomBean(u, chatBean));
@@ -1440,7 +1442,7 @@ public class SocketRyClient {
private void processAnchorLinkMicPk(JSONObject map) {
int action = map.getIntValue("action");
Log.i("Socket", "action = " + action + " json = " + map.toString());
-
+ L.eSw("RY RY RY RY "+map.toString());
switch (action) {
case 1://收到对方主播PK回调
UserBean u = new UserBean();
diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyLinkMicPkUtil.java b/live/src/main/java/com/yunbao/live/socket/SocketRyLinkMicPkUtil.java
index 2e392ad05..6049239b0 100644
--- a/live/src/main/java/com/yunbao/live/socket/SocketRyLinkMicPkUtil.java
+++ b/live/src/main/java/com/yunbao/live/socket/SocketRyLinkMicPkUtil.java
@@ -8,7 +8,6 @@ import com.yunbao.common.bean.UserBean;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
-import com.yunbao.live.activity.LiveRyAnchorActivity;
import io.rong.imlib.IRongCallback;
import io.rong.imlib.RongIMClient;
diff --git a/live/src/main/java/com/yunbao/live/socket/SocketSwChatUtil.java b/live/src/main/java/com/yunbao/live/socket/SocketSwChatUtil.java
new file mode 100644
index 000000000..c769a988d
--- /dev/null
+++ b/live/src/main/java/com/yunbao/live/socket/SocketSwChatUtil.java
@@ -0,0 +1,795 @@
+package com.yunbao.live.socket;
+
+
+import android.util.Log;
+
+import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.CommonAppContext;
+import com.yunbao.common.Constants;
+import com.yunbao.common.bean.HttpCallbackModel;
+import com.yunbao.common.bean.IMLoginModel;
+import com.yunbao.common.bean.UserBean;
+import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.http.LiveHttpUtil;
+import com.yunbao.common.http.live.LiveNetManager;
+import com.yunbao.common.manager.IMLoginManager;
+import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
+import com.yunbao.live.R;
+import com.yunbao.live.activity.LiveActivity;
+
+import org.greenrobot.eventbus.EventBus;
+
+import io.rong.imlib.IRongCallback;
+import io.rong.imlib.RongIMClient;
+import io.rong.imlib.model.Conversation;
+import io.rong.imlib.model.Message;
+import io.rong.message.TextMessage;
+
+/**
+ * Created by cxf on 2018/10/9.
+ * 直播间发言
+ */
+
+public class SocketSwChatUtil {
+
+ //关闭直播
+ public static void closeLive(final String votes, final String length, final String nums, final String mLiveUid) {
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_LIVE_END)
+ .param("action", 18)
+ .param("msgtype", 1)
+ .param("equipment", "app")
+ .param("uname", u.getUserNiceName())
+ .param("uid", u.getId())
+ .param("length", length)
+ .param("votes", votes)
+ .param("nums", nums)
+ .param("roomnum", u.getId())
+ .param("ct", "直播关闭");
+ msg.create();
+
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ if (SocketSwClient.mSocketHandler != null)
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+
+ }
+
+ /**
+ * 发言
+ */
+ public static void sendChatMessage(String mLiveUid, String content, boolean isAnchor, int userType, int guardType, String atUserID, String atUserName) {
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ IMLoginModel model = IMLoginManager.get(CommonAppContext.sInstance.getApplicationContext()).getUserInfo();
+ if (u == null) {
+ return;
+ }
+
+ final SocketSendBean msg =
+ new SocketSendBean()
+ .param("_method_", Constants.SOCKET_SEND_MSG)
+ .param("action", 0)
+ .param("msgtype", 2)
+ .param("usertype", userType)
+ .param("isAnchor", isAnchor ? 1 : 0)
+ .param("level", u.getLevel())
+ .param("uname", u.getUserNiceName())
+ .param("bubble", u.getDress().getBubble())
+ .param("medal_honor", u.getMedal_no_display_src())
+ .param("medal", u.getDress().getMedal())
+ .param("medal_new", u.getDress().getMedal_new())
+ .param("medal_new_en", u.getDress().getMedal_new_en())
+ .param("uid", u.getId())
+ .param("liangname", u.getGoodName())
+ .param("vip_type", u.getVip().getType())
+ .param("guard_type", IMLoginManager.get(CommonAppContext.sInstance.getApplicationContext()).getGuardType())
+ .param("medal_name", u.getMedalName())
+ .param("medal_level", u.getMedalLevel())
+ .param("good_num", u.getGoodnum())
+ .param("ct", content)
+ .param("noble_id", String.valueOf(model.getNobleId()))
+ .param("contentColor", String.valueOf(model.getContentColor()))
+ .param("startColor", String.valueOf(model.getStartColor()))
+ .param("endColor", String.valueOf(model.getEndColor()))
+ .param("atUserName", String.valueOf(atUserName))
+ .param("atUserID", String.valueOf(atUserID));
+ msg.create();
+
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ if (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+ LiveNetManager.get(CommonAppContext.sInstance)
+ .addChatCount(LiveActivity.mStream, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(HttpCallbackModel data) {
+
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("tx", "aaa" + errorCode.toString());
+ if (errorCode.code == 23408) {
+ ToastUtil.show(WordUtil.isNewZh() ? "您已被禁言" : "You have been banned");
+ } else {
+ ToastUtil.show(WordUtil.isNewZh() ? "抱歉!出錯了!" + errorCode.code : "I'm sorry! An error occurred:" + errorCode.code);
+ }
+ }
+ });
+
+ }
+
+ /**
+ * 点亮
+ */
+ public static void sendLightMessage(final String mLiveUid, int heart, int guardType) {
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_SEND_MSG)
+ .param("action", 0)
+ .param("msgtype", 2)
+ .param("level", u.getLevel())
+ .param("uname", u.getUserNiceName())
+ .param("uid", u.getId())
+ .param("liangname", u.getGoodName())
+ .param("vip_type", u.getVip().getType())
+ .param("medal_honor", u.getMedal_no_display_src())
+ .param("heart", heart)
+ .param("bubble", u.getDress().getBubble())
+ .param("medal", u.getDress().getMedal())
+ .param("medal_new", u.getDress().getMedal_new())
+ .param("medal_new_en", u.getDress().getMedal_new_en())
+ .param("guard_type", IMLoginManager.get(CommonAppContext.sInstance.getApplicationContext()).getGuardType())
+ .param("medal_name", u.getMedalName())
+ .param("medal_level", u.getMedalLevel())
+ .param("good_num", u.getGoodnum())
+ .param("ct", WordUtil.getNewString(R.string.live_lighted));
+ msg.create();
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ LiveHttpUtil.sendZAN(mLiveUid + "", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ EventBus.getDefault().post("stop_svga_new_user_double");
+ }
+ });
+
+ LiveHttpUtil.setFrontTask("illumine", new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0) {
+ EventBus.getDefault().post("stop_svga_new_user_double1");
+ }
+ }
+ });
+ if (SocketSwClient.mSocketHandler != null)
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+ }
+
+
+ /**
+ * 发送弹幕消息
+ */
+ public static void sendDanmuMessage(String mLiveUid, String danmuToken) {
+ sendDanmuMessage(mLiveUid, danmuToken, 0);
+ }
+
+ public static void sendDanmuMessage(String mLiveUid, String danmuToken, int fansLevel) {
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_SEND_BARRAGE)
+ .param("action", 7)
+ .param("msgtype", 1)
+ .param("level", u.getLevel())
+ .param("uname", u.getUserNiceName())
+ .param("uid", u.getId())
+ .param("uhead", u.getAvatar())
+ .param("fansLevel", fansLevel)
+ .param("ct", danmuToken);
+ msg.create();
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ if (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("tx", "aaa" + errorCode.toString());
+ if (errorCode.code == 23408) {
+ ToastUtil.show(WordUtil.isNewZh() ? "您已被禁言" : "You have been banned");
+ } else {
+ ToastUtil.show(errorCode.code + ":" + errorCode.msg);
+ }
+ }
+ });
+
+ }
+
+
+ /**
+ * 发送礼物消息
+ */
+ public static void sendGiftMessage(int giftType, String giftToken, String liveUid, int guard_type, String by) {
+
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_SEND_GIFT)
+ .param("action", 0)
+ .param("msgtype", 1)
+ .param("level", u.getLevel())
+ .param("uname", u.getUserNiceName())
+ .param("uid", u.getId())
+ .param("uhead", u.getAvatar())
+ .param("evensend", giftType)
+ .param("liangname", u.getGoodName())
+ .param("vip_type", u.getVip().getType())
+ .param("ct", giftToken)
+ .param("bubble", u.getDress().getBubble())
+ .param("medal", u.getDress().getMedal())
+ .param("medal_new", u.getDress().getMedal_new())
+ .param("medal_name", u.getMedalName())
+ .param("medal_level", u.getMedalLevel())
+ .param("guard_type", guard_type + "")
+ .param("medal_honor", u.getMedal_no_display_src())
+ .param("good_num", u.getGoodnum())
+ .param("roomnum", liveUid);
+
+ msg.create();
+ LiveHttpUtil.sendGiftMsg(by, liveUid, msg.mResult.toString(), new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ Log.i("tag", "禮物im");
+ }
+ });
+
+ }
+
+ /**
+ * 发送礼物消息 增加主播名字
+ */
+ public static void sendGiftMessage(int giftType, String giftToken, String liveUid, String ancherName, int guard_type, String by) {
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_SEND_GIFT)
+ .param("action", 0)
+ .param("msgtype", 1)
+ .param("level", u.getLevel())
+ .param("uname", u.getUserNiceName())
+ .param("uid", u.getId())
+ .param("uhead", u.getAvatar())
+ .param("evensend", giftType)
+ .param("liangname", u.getGoodName())
+ .param("vip_type", u.getVip().getType())
+ .param("bubble", u.getDress().getBubble())
+ .param("medal", u.getDress().getMedal())
+ .param("medal_new", u.getDress().getMedal_new())
+ .param("ct", giftToken)
+ .param("ancherName", ancherName)
+ .param("medal_name", u.getMedalName())
+ .param("medal_level", u.getMedalLevel())
+ .param("guard_type", guard_type + "")
+ .param("medal_honor", u.getMedal_no_display_src())
+ .param("good_num", u.getGoodnum())
+ .param("roomnum", liveUid);
+
+ msg.create();
+
+ LiveHttpUtil.sendGiftMsg(by, liveUid, msg.mResult.toString(), new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ Log.i("tag", "禮物im");
+ }
+ });
+
+ }
+
+ /**
+ * 主播或管理员 踢人
+ */
+ public static void sendKickMessage(String mLiveUid, String toUid, String toName) {
+
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_KICK)
+ .param("action", 2)
+ .param("msgtype", 4)
+ .param("level", u.getLevel())
+ .param("uname", u.getUserNiceName())
+ .param("uid", u.getId())
+ .param("touid", toUid)
+ .param("toname", toName)
+ .param("ct", toName + "被踢出房間(Kicked out of the room)");
+ msg.create();
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ if (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+ }
+
+
+ /**
+ * 主播或管理员 禁言
+ */
+ public static void sendShutUpMessage(String mLiveUid, String toUid, String toName, int type) {
+ sendShutUpMessage(mLiveUid, toUid, toName, type, 0);
+ }
+
+ /**
+ * 主播或管理员 禁言
+ *
+ * @param time 禁言时间 1~60
+ */
+ public static void sendShutUpMessage(String mLiveUid, String toUid, String toName, int type, int time) {
+
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ String ct = "";
+ switch (type) {
+ case 0:
+ ct = "被永久禁言(Forbidden forever)";
+ break;
+ case 1:
+ ct = "被本場禁言(Forbidden by this scene)";
+ break;
+ case 2:
+ ct = String.format("被禁言%s分鐘", time + "") + "(" + String.format("Forbidden by %s min", time + "") + ")";
+ break;
+ }
+
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_SHUT_UP)
+ .param("action", 1)
+ .param("msgtype", 4)
+ .param("level", u.getLevel())
+ .param("uname", u.getUserNiceName())
+ .param("uid", u.getId())
+ .param("touid", toUid)
+ .param("toname", toName)
+ .param("time", time)
+ .param("ct", toName + ct);
+ msg.create();
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ if (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+
+ }
+
+ /**
+ * 设置或取消管理员消息
+ */
+ public static void sendSetAdminMessage(String mLiveUid, int action, String toUid, String toName) {
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ String s = action == 1 ? "被設為管理員(Set as Administrator)" : "被取消管理員(Cancelled administrator)";
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_SET_ADMIN)
+ .param("action", action)
+ .param("msgtype", 1)
+ .param("uname", u.getUserNiceName())
+ .param("uid", u.getId())
+ .param("touid", toUid)
+ .param("toname", toName)
+ .param("ct", toName + " " + s);
+
+ msg.create();
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ if (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+
+ }
+
+ /**
+ * 超管关闭直播间
+ */
+ public static void superCloseRoom(String mLiveUid) {
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_STOP_LIVE)
+ .param("action", 19)
+ .param("msgtype", 1)
+ .param("ct", "");
+ msg.create();
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ if (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+ }
+
+ /**
+ * 发系统消息
+ */
+ public static void sendSystemMessage(String mLiveUid, String content) {
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_SYSTEM)
+ .param("action", 13)
+ .param("msgtype", 4)
+ .param("level", u.getLevel())
+ .param("uname", u.getUserNiceName())
+ .param("uid", u.getId())
+ .param("ct", content);
+ msg.create();
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ if (SocketSwClient.mSocketHandler != null)
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+ }
+
+
+ /**
+ * 获取僵尸粉
+ */
+ public static void getFakeFans(String mLiveUid) {
+
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_FAKE_FANS)
+ .param("action", "")
+ .param("msgtype", "");
+
+ msg.create();
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ if (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+ }
+
+
+ /**
+ * 更新主播映票数
+ */
+ public static void sendUpdateVotesMessage(String mLiveUid, int votes, int first) {
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_UPDATE_VOTES)
+ .param("action", 1)
+ .param("msgtype", 26)
+ .param("votes", votes)
+ .param("uid", CommonAppConfig.getInstance().getUid())
+ .param("isfirst", first)
+ .param("ct", "");
+ msg.create();
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ if (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+
+ }
+
+ /**
+ * 更新主播映票数
+ */
+ public static void sendUpdateVotesMessage(String mLiveUid, int votes) {
+ sendUpdateVotesMessage(mLiveUid, votes, 0);
+ }
+
+ /**
+ * 发送购买守护成功消息
+ */
+ public static void sendBuyGuardMessage(String mLiveUid, String votes, int guardNum, int guardType) {
+
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_BUY_GUARD)
+ .param("action", 0)
+ .param("msgtype", 0)
+ .param("uid", u.getId())
+ .param("bubble", u.getDress().getBubble())
+ .param("medal", u.getDress().getMedal())
+ .param("medal_new", u.getDress().getMedal_new())
+ .param("uname", u.getUserNiceName())
+ .param("uhead", u.getAvatar())
+ .param("votestotal", votes)
+ .param("guard_nums", guardNum)
+ .param("guard_type", IMLoginManager.get(CommonAppContext.sInstance.getApplicationContext()).getGuardType());
+ msg.create();
+
+ }
+
+ public static void sendBuyGuardMessage2(String mLiveUid, String votes, int guardNum,
+ int guardType, String ancherName, String liveId) {
+
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_BUY_GUARD)
+ .param("action", 0)
+ .param("msgtype", 0)
+ .param("uid", u.getId())
+ .param("uname", u.getUserNiceName())
+ .param("uhead", u.getAvatar())
+ .param("votestotal", votes)
+ .param("guard_nums", guardNum)
+ .param("ancherName", ancherName)
+ .param("liveuid", liveId)
+ .param("bubble", u.getDress().getBubble())
+ .param("medal", u.getDress().getMedal())
+ .param("medal_new", u.getDress().getMedal_new())
+ .param("guard_type", IMLoginManager.get(CommonAppContext.sInstance.getApplicationContext()).getGuardType());
+ msg.create();
+
+ }
+
+ /**
+ * 发送发红包成功消息
+ */
+ public static void sendRedPackMessage(String mLiveUid) {
+
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_RED_PACK)
+ .param("action", 0)
+ .param("msgtype", 0)
+ .param("uid", u.getId())
+ .param("uname", u.getUserNiceName())
+ .param("ct", CommonAppContext.sInstance.getBaseContext().getString(R.string.red_pack_22)
+ );
+ msg.create();
+ String targetId = "g" + mLiveUid;
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(targetId, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ if (SocketSwClient.mSocketHandler != null) {
+ SocketSwClient.mSocketHandler.processBroadcast(msg.mResult.toString() + "");
+ }
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+ }
+
+}
diff --git a/live/src/main/java/com/yunbao/live/socket/SocketSwClient.java b/live/src/main/java/com/yunbao/live/socket/SocketSwClient.java
new file mode 100644
index 000000000..76cd96cf1
--- /dev/null
+++ b/live/src/main/java/com/yunbao/live/socket/SocketSwClient.java
@@ -0,0 +1,1413 @@
+package com.yunbao.live.socket;
+
+import static com.yunbao.common.Constants.SOCKET_LINK_MIC_PK;
+import static com.yunbao.common.Constants.SOCKET_LIVE_MSG_TO_USER;
+import static com.yunbao.live.activity.LiveSwAnchorActivity.isDRPK;
+import static com.yunbao.live.activity.LiveSwAnchorActivity.DRPKing;
+import static com.yunbao.live.views.LiveRoomViewHolder.getIsHot;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.LinearLayout;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.blankj.utilcode.util.GsonUtils;
+import com.google.gson.Gson;
+import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.CommonAppContext;
+import com.yunbao.common.Constants;
+import com.yunbao.common.bean.AiAutomaticSpeechModel;
+import com.yunbao.common.bean.FansModel;
+import com.yunbao.common.bean.GuardMaturityDateRemindModel;
+import com.yunbao.common.bean.LinkMicUserBean;
+import com.yunbao.common.bean.LiveInfoModel;
+import com.yunbao.common.bean.LiveUserGiftBean;
+import com.yunbao.common.bean.MsgModel;
+import com.yunbao.common.bean.PkRankBean;
+import com.yunbao.common.bean.RedPacketInfoModel;
+import com.yunbao.common.bean.RedPacketModel;
+import com.yunbao.common.bean.SendMoneyLongModel;
+import com.yunbao.common.bean.SocketModel;
+import com.yunbao.common.bean.SudGameDateModel;
+import com.yunbao.common.bean.UserBean;
+import com.yunbao.common.bean.WishModel;
+import com.yunbao.common.bean.XydCompleteModel;
+import com.yunbao.common.event.AllServerNotifyEvent;
+import com.yunbao.common.event.AllServerNotifyFFGGGDJANEvent;
+import com.yunbao.common.event.CustomFullServiceNotifyEvent;
+import com.yunbao.common.event.GiftWallIlluminateEvent;
+import com.yunbao.common.event.QuickGiftingEvent;
+import com.yunbao.common.event.SendBlindGiftEvent;
+import com.yunbao.common.event.SendMoneyLongEndEvent;
+import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.http.HttpClient;
+import com.yunbao.common.http.live.LiveNetManager;
+import com.yunbao.common.manager.MicUserManager;
+import com.yunbao.common.manager.MicedUserManager;
+import com.yunbao.common.manager.NewLevelManager;
+import com.yunbao.common.manager.RandomPkManager;
+import com.yunbao.common.utils.Bus;
+import com.yunbao.common.utils.L;
+import com.yunbao.common.utils.StringUtil;
+import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
+import com.yunbao.live.R;
+import com.yunbao.live.activity.LiveAudienceActivity;
+import com.yunbao.live.activity.LiveSwAnchorActivity;
+import com.yunbao.live.adapter.LiveChatAdapter;
+import com.yunbao.live.bean.LiveBuyGuardMsgBean;
+import com.yunbao.live.bean.LiveChatBean;
+import com.yunbao.live.bean.LiveDanMuBean;
+import com.yunbao.live.bean.LiveEnterRoomBean;
+import com.yunbao.live.bean.LiveGiftPrizePoolWinBean;
+import com.yunbao.live.bean.LiveLuckGiftWinBean;
+import com.yunbao.live.bean.LivePKUserListBean;
+import com.yunbao.live.bean.LiveReceiveGiftBean;
+import com.yunbao.live.bean.NewAllServerNotifyGuardEvent;
+import com.yunbao.live.bean.SendQuickGiftModel;
+import com.yunbao.live.event.LiveAnchorEvent;
+import com.yunbao.live.event.LiveAudienceEvent;
+import com.yunbao.live.views.LiveEndViewHolder;
+import com.yunbao.live.views.LivePlayKsyViewHolder;
+import com.yunbao.live.views.LivePlaySwViewHolder;
+import com.yunbao.live.views.LivePushSwViewHolder;
+import com.yunbao.live.views.LiveRoomViewHolder;
+
+import org.greenrobot.eventbus.EventBus;
+
+import java.lang.ref.WeakReference;
+import java.util.List;
+
+import io.agora.beautyapi.faceunity.agora.SWManager;
+import io.rong.imlib.IRongCallback;
+import io.rong.imlib.IRongCoreCallback;
+import io.rong.imlib.IRongCoreEnum;
+import io.rong.imlib.RongIMClient;
+import io.rong.imlib.chatroom.base.RongChatRoomClient;
+import io.rong.imlib.model.Conversation;
+import io.rong.message.TextMessage;
+
+public class SocketSwClient {
+
+ private final String TAG = "socket";
+ private String mLiveUid;
+ private String mStream;
+ public static SocketSwClient.SocketHandler mSocketHandler;
+ private Context mContext;
+
+ public SocketSwClient(String mLiveUid, SocketMessageListener listener, Activity mContext) {
+ this.mContext = mContext;
+ mSocketHandler = new SocketSwClient.SocketHandler(listener);
+ mSocketHandler.setLiveUid(mLiveUid);
+ RongChatRoomClient.getInstance().joinChatRoom("g" + mLiveUid, -1, new IRongCoreCallback.OperationCallback() {
+ @Override
+ public void onSuccess() {
+ Log.i("tx", "加入成功");
+
+ }
+
+ @Override
+ public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
+ Log.i("tx", "加入" + "失败" + coreErrorCode);
+ if (WordUtil.isNewZh()) {
+ ToastUtil.show("網絡不佳無法連接,請重新進入");
+ } else {
+ ToastUtil.show("The network is not connected, please re-enter");
+ }
+ }
+ });
+ }
+
+ public void setLivePushSwViewHolder(LivePushSwViewHolder livePushSwViewHolder) {
+ if (mSocketHandler != null) {
+ mSocketHandler.setLivePushSwViewHolder(livePushSwViewHolder);
+ }
+ }
+
+ public void disConnect() {
+// V2TIMManager.getInstance().
+ mLiveUid = null;
+ mStream = null;
+ mSocketHandler = null;
+ }
+
+ public class SocketHandler extends Handler {
+
+ private SocketMessageListener mListener;
+ private LivePushSwViewHolder livePushSwViewHolder;
+ private String mLiveUid;
+
+ public SocketHandler(SocketMessageListener listener) {
+ mListener = new WeakReference<>(listener).get();
+ }
+
+ public void setLiveUid(String liveUid) {
+ mLiveUid = liveUid;
+ }
+
+ public void setLivePushSwViewHolder(LivePushSwViewHolder livePushSwViewHolder) {
+ this.livePushSwViewHolder = livePushSwViewHolder;
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ if (mListener == null) {
+ return;
+ }
+ try {
+ switch (msg.what) {
+ case Constants.SOCKET_WHAT_CONN:
+ mListener.onConnect((Boolean) msg.obj);
+ break;
+ case Constants.SOCKET_WHAT_BROADCAST:
+ processBroadcast((String) msg.obj);
+ break;
+ case Constants.SOCKET_WHAT_DISCONN:
+ mListener.onDisConnect();
+ break;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+
+ public void processBroadcast(String socketMsg) {
+ L.e("收到socket--->" + socketMsg);
+
+ Log.i("SocketRyClient", "socketMsg" + socketMsg);
+
+ if (Constants.SOCKET_STOP_PLAY.equals(socketMsg)) {
+ mListener.onSuperCloseLive();//超管关闭房间
+ return;
+ }
+ if (socketMsg.contains("LivePK_UnreadCount")) {
+ return;
+ }
+ SocketReceiveBean received = JSON.parseObject(socketMsg, SocketReceiveBean.class);
+
+ JSONObject map = received.getMsg().getJSONObject(0);
+
+ switch (map.getString("_method_")) {
+ //用户连麦
+ case Constants.LIAN_MAI:
+ int actions = map.getIntValue("action");
+ L.eSw("用户连麦:actions" + actions);
+ //主播邀请用户连麦消息
+ if (actions == 1) {
+ EventBus.getDefault().post("inviteMic");
+ //主播同意用户连麦申请
+ } else if (actions == 4) {
+ EventBus.getDefault().post("UsertoRY");
+ } else if (actions == 5) {
+ JSONObject mic_data = map.getJSONObject("ct");
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_UPDATE_MIC_LIST).setObject(JSONArray.parseArray(mic_data.getJSONArray("userlist").toString(), LinkMicUserBean.class)));
+ MicedUserManager.get().upDataMicUserList(JSONArray.parseArray(mic_data.getJSONArray("userlist").toString(), LinkMicUserBean.class));
+ } else if (actions == 6) {
+ if (WordUtil.isNewZh()) {
+ ToastUtil.show("主播已關閉當前語音連麥功能");
+ } else {
+ ToastUtil.show("The host has disabled the voice connection function");
+ }
+ EventBus.getDefault().post("endMic");
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_CLOSE).setObject(map.toJavaObject(LinkMicUserBean.class)));
+ } else if (actions == 8) {
+ //提下買,退出
+ if (WordUtil.isNewZh()) {
+ ToastUtil.show("您已被移出多人語音連麥");
+ } else {
+ ToastUtil.show("You have been removed from Multi-Voice Connection");
+ }
+ EventBus.getDefault().post("endMic");
+ } else if (actions == 3) {
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC).setObject(map.toJavaObject(LinkMicUserBean.class)));
+ MicUserManager.get().upDataMicUser(map);
+ } else if (actions == 7) {//取消连麦
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_CANCEL));
+ MicUserManager.get().removeMiscUser(map);
+ }
+ break;
+ case Constants.UP_USER_LIST:
+ mListener.onUpUserList(map.getJSONObject("ct"));
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_UPDATE_AUDIENCE_LIST).setObject(JSON.parseArray(map.getJSONObject("ct").getString("userlist"), LiveUserGiftBean.class)));
+ break;
+ case Constants.CARD:
+// LiveLinkMicPresenter.setHD(map.getString("ct"));
+ break;
+ case Constants.SOCKET_SYSTEM://系统消息
+ if (map.getString("ct").contains("甜蜜不停")) {
+ break;
+ }
+ UserBean us = CommonAppConfig.getInstance().getUserBean();
+ if (map.getString("uid") != null && us != null && map.getString("uid").equals(us.getId())) {
+ int num = LiveAudienceActivity.fansNum + 1;
+ LiveRoomViewHolder.setFansNum(num);
+ }
+ if (map.getString("ct").contains("堅決維護青少年群體精神文明健康") || map.getString("ct").contains("click to register if you like. pdlive conducts")) {
+ systemChatMessage(map.getString("ct"));
+ } else {
+ if (!WordUtil.isNewZh() && map.getString("ct").contains("退出比賽") && map.getString("ct").contains("獲得勝利")) {
+ String ctTmp = map.getString("ct");
+ ctTmp = ctTmp.replace("由於", "Due to").replace("退出比賽", "withdrawing from the competition").replace("獲得勝利", "won");
+ map.put("ct", ctTmp);
+ }
+ systemChatMessage2(map.getString("ct"));
+ }
+
+ int action21 = map.getIntValue("action");
+ //主播離開
+ if (action21 == 13 && map.getString("ct").contains("離開")) {
+ if (LivePlayKsyViewHolder.leave != null) {
+ LivePlayKsyViewHolder.leave.setVisibility(View.VISIBLE);
+ }
+ if (LivePlaySwViewHolder.leave != null) {
+ LivePlaySwViewHolder.leave.setVisibility(View.VISIBLE);
+ }
+ } else if (action21 == 13 && map.getString("ct").contains("回來")) {
+ if (LivePlayKsyViewHolder.leave != null) {
+ LivePlayKsyViewHolder.leave.setVisibility(View.GONE);
+ }
+ if (LivePlaySwViewHolder.leave != null) {
+ LivePlaySwViewHolder.leave.setVisibility(View.GONE);
+ }
+ }
+ break;
+ case Constants.SOCKET_KICK://踢人
+ systemChatMessage2(map.getString("ct"));
+ mListener.onKick(map.getString("touid"));
+ break;
+ case Constants.SOCKET_SHUT_UP://禁言
+ String ct = map.getString("ct");
+ systemChatMessage2(ct);
+ mListener.onShutUp(map.getString("touid"), ct);
+ break;
+ case Constants.SOCKET_SEND_MSG://文字消息,点亮,用户进房间,这种混乱的设计是因为服务器端逻辑就是这样设计的,客户端无法自行修改
+ wordLightEnterRoom(map, received);
+ L.e("收到socket---> 文字消息" + socketMsg);
+ break;
+ case Constants.SOCKET_LIGHT://飘心
+ mListener.onLight();
+ break;
+ case Constants.SOCKET_SEND_GIFT://送礼物
+ sendGiftInSameRoom(map);
+ break;
+
+// case Constants.SOCKET_SEND_GIFT://送礼物
+// ////////pk
+// break;
+ case Constants.SOCKET_LIVE_DRPK_RANDOM:
+ case Constants.SOCKET_LIVE_DRPK://多人PK
+ L.eSw("map" + new Gson().toJson(map));
+ int action3 = map.getIntValue("action");
+ //收到多人PK邀请
+ if (action3 == 1) {
+ UserBean u = new UserBean();
+ u.setUserNiceName(map.getString("uname"));
+ u.setId(map.getString("uid"));
+ mListener.onLinkDRMicPkApply(u);
+ } else if (action3 == 2) {
+ //收到对方同意多人PK邀请
+ UserBean u = new UserBean();
+// u.setUserNiceName(map.getString("uname"));
+ u.setId(map.getString("pkuid"));
+ L.eSw("action3 == 2:" + u.getId());
+ L.eSw("收到对方同意多人PK邀请");
+ DRPKing = 0;
+ mListener.onLinkDRMicPkApplyOk(u);
+ } else if (action3 == 6) {//开始Pk
+ if (LiveRoomViewHolder.mHandler != null) {
+ LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
+ }
+// LiveRoomViewHolder.UpPkBar(map.getJSONArray("userlist"), mLiveUid, map.getIntValue("drpk_time"));
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LEAVE_PK_SCORE).setPkScores(map.getJSONArray("userlist")).setUid(mLiveUid).setTime(map.getIntValue("drpk_time")));
+ if (livePushSwViewHolder == null) {
+ // LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
+ }
+ DRPKing = 1;
+ } else if (action3 == 5) {//结束PK
+// endDRGif();
+ LiveRoomViewHolder.d_pk_view.setVisibility(View.GONE);
+ if (LiveSwAnchorActivity.mLiveAnchorViewHolder != null) {
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
+ params.topMargin = 0;
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LEAVE_DR_ROOM));
+ isDRPK = 0;
+ } else {
+ // LiveAudienceActivity.getmLivePlayViewHolder().setPkEndview();
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_END_VIEW));
+ }
+ SWManager.get().setDrPkNumClarity(1);//退出直播间,将分别率设置为 VD_840x480
+ //創建了多人房間
+ } else if (action3 == 3) {
+ L.eSw("創建了多人房間action3 == 3");
+ /* if (LiveAudienceActivity.getmLivePlayViewHolder() != null) {
+ LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
+ }*/
+ isDRPK = 1;
+ DRPKing = 0;
+ if (livePushSwViewHolder == null) {
+ if ("4".equals(map.getString("msgtype"))) {
+ return;
+ }
+ UserBean u = new UserBean();
+// u.setUserNiceName(map.getString("uname"));
+ u.setId(map.getString("uid"));
+ if (StringUtil.isEmpty(u.getId())) {
+ return;
+ }
+ L.eSw("通知用户 action3 == 3:" + u.getId());
+ mListener.onLinkDRMicPKToUser(u);
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
+ }
+ } else if (action3 == 10) {
+ //显示pk分数
+ if (!map.getString("uid").equals(CommonAppConfig.getInstance().getUid())) {
+ // LiveAudienceActivity.getmLivePlayViewHolder().setPkview();
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SOCKET_LIVE_DRPK_SET_PK_VIEW));
+ }
+ } else if (action3 == 7) {
+ L.eSw("主播退出直播間:"+map.getString("uid"));
+ mListener.onLinkDRMicPkQuit(map.getString("uid"));
+ //清除已邀请人数
+ if(LiveSwAnchorActivity.mLiveAnchorViewHolder!=null){
+ LiveSwAnchorActivity.mLiveAnchorViewHolder.removeYaoqing(map.getString("uid"));
+ }
+ }
+
+ break;
+ case Constants.SOCKET_ALL_SERVER_NOTIFY://全服通知
+ int action2 = map.getIntValue("action");
+ if (action2 == 71) {
+ LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
+ receiveGiftBean.setVipName(map.getString("ct"));
+ receiveGiftBean.setSendtype(map.getIntValue("action"));
+ receiveGiftBean.setAllServerNotify(true);
+ mListener.onSys(receiveGiftBean);
+ } else if (action2 == 61) {//赠送礼物
+ sendGiftByNotify(map);
+ } else if (action2 == 62) {//购买守护
+// buyGuardByNotify(map);
+// }else if (action2 == 63){
+ } else if (action2 == 63) {//购买vip
+ buyVipByNotify(map);
+ } else if (action2 == 64) {//购买靓号
+ buyLiangNameByNotify(map);
+ } else if (action2 == 65) {//购买坐骑
+ buyZuoJiByNotify(map);
+ } else if (action2 == 66) {//购买贵族
+ buyVipByNotify(map);
+ } else if (action2 == 88) {
+ JSONObject mCt = map.getJSONObject("ct");
+ String boxType = map.getString("box_type");
+ String boxTypeName = "";
+ if (TextUtils.equals(boxType, "1")) {
+ boxTypeName = WordUtil.isNewZh() ? "迷你盲盒" : "Mini blind box";
+ } else if (TextUtils.equals(boxType, "2")) {
+ boxTypeName = WordUtil.isNewZh() ? "典藏盲盒" : "Collection blind box";
+ } else {
+ boxTypeName = WordUtil.isNewZh() ? "PD盲盒" : "PD blind box";
+ }
+ AllServerNotifyEvent allServerNotifyEvent = new AllServerNotifyEvent().setBlindBoxId(map.getString("blind_box_id")).setBoxType(boxType).setBoxTypeName(boxTypeName).setDressName(WordUtil.isNewZh() ? map.getString("dress_name") : TextUtils.isEmpty(map.getString("dress_nameen")) ? map.getString("dress_name") : map.getString("dress_nameen")).setGiftNotification(map.getString("gift_notification")).setGiftName(WordUtil.isNewZh() ? mCt.getString("giftname") : mCt.getString("giftnameen")).setUserNiceName(map.getString("uname")).setGiftIcon(map.getString("gifticon")).setAnchorName(map.getString("ancherName")).setDisplaySrc(map.getString("display_src"));
+ Log.e("AllServerNotifyEvent", allServerNotifyEvent.toString());
+ Log.e("AllServerNotifyEvent", map.toJSONString());
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.BLIND_BOX).setAllServerNotifyEvent(allServerNotifyEvent));
+ } else if (action2 == 89) {//红包
+ JSONObject mCt = map.getJSONObject("ct");
+ AllServerNotifyEvent allServerNotifyEvent = new AllServerNotifyEvent().setUserNiceName(mCt.getString("user_nicename")).setGiftName(WordUtil.isNewZh() ? map.getString("giftname") : map.getString("giftname_en")).setGiftIcon(mCt.getString("gifticon")).setRedPacket(true);
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.BLIND_BOX).setAllServerNotifyEvent(allServerNotifyEvent));
+ } else if (action2 == 90) {
+ NewAllServerNotifyGuardEvent notifyGuardEvent = GsonUtils.fromJson(map.toString(), NewAllServerNotifyGuardEvent.class);
+ Bus.get().post(notifyGuardEvent);
+ buyGuardInSameRoom(map);
+ } else if (action2 == 91) {
+ AllServerNotifyFFGGGDJANEvent notifyFFGGGDJANEvent = GsonUtils.fromJson(map.toString(), AllServerNotifyFFGGGDJANEvent.class);
+ Bus.get().post(notifyFFGGGDJANEvent);
+ }
+ break;
+ case Constants.SOCKET_SEND_BARRAGE://发弹幕
+ LiveDanMuBean liveDanMuBean2 = new LiveDanMuBean();
+ liveDanMuBean2.setAvatar(map.getString("uhead"));
+ liveDanMuBean2.setUserNiceName(map.getString("uname"));
+ liveDanMuBean2.setContent(map.getString("ct"));
+ if (map.containsKey("fansLevel")) {
+ liveDanMuBean2.setFensLevel(map.getInteger("fansLevel"));
+ }
+ mListener.onSendDanMu(liveDanMuBean2);
+ break;
+ case Constants.SOCKET_LEAVE_ROOM://离开房间
+ UserBean u = JSON.parseObject(map.getString("ct"), UserBean.class);
+ mListener.onLeaveRoom(u);
+ break;
+ case Constants.SOCKET_LIVE_END://主播关闭直播
+ int action = map.getIntValue("action");
+ if (action == 18) {
+ mListener.onLiveEnd();
+ LiveEndViewHolder.upData(map.getString("votes"), map.getString("length"), map.getIntValue("nums"), map.getString("uname"));
+ } else if (action == 19) {
+ mListener.onAnchorInvalid();
+ }
+ //主播强制下播
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIVE_END).setVotes(map.getString("votes")).setLength(map.getString("length")).setNums(map.getIntValue("nums")).setUname(map.getString("uname")));
+ break;
+ case Constants.SOCKET_CHANGE_LIVE://主播切换计时收费类型
+ mListener.onChangeTimeCharge(map.getIntValue("type_val"));
+ break;
+ case Constants.SOCKET_UPDATE_VOTES:
+ mListener.onUpdateVotes(map.getString("uid"), map.getString("votes"), map.getIntValue("isfirst"));
+ break;
+ case Constants.SOCKET_FAKE_FANS:
+ JSONObject obj = map.getJSONObject("ct");
+ String s = obj.getJSONObject("data").getJSONArray("info").getJSONObject(0).getString("list");
+ L.e("僵尸粉--->" + s);
+ List list = JSON.parseArray(s, LiveUserGiftBean.class);
+ mListener.addFakeFans(list);
+ break;
+ case Constants.SOCKET_SET_ADMIN://设置或取消管理员
+ systemChatMessage2(map.getString("ct"));
+ mListener.onSetAdmin(map.getString("touid"), map.getIntValue("action"));
+ break;
+ case Constants.SUPER_VISION://设置或取消管理员
+ systemChatMessage2(map.getString("ct"));
+ break;
+ case Constants.SOCKET_BUY_GUARD://购买守护
+ buyGuardInSameRoom(map);
+ break;
+ case Constants.SOCKET_LINK_MIC://连麦-old
+ processLinkMic(map);
+ break;
+ case Constants.SOCKET_LINK_MIC_ANCHOR://主播连麦
+ processLinkMicAnchor(map);
+ break;
+ case Constants.SOCKET_LINK_MIC_PK://主播PK
+ processAnchorLinkMicPk(map);
+ break;
+ case Constants.SOCKET_RED_PACK://红包消息
+ String uid = map.getString("uid");
+ if (TextUtils.isEmpty(uid)) {
+ return;
+ }
+ LiveChatBean liveChatBean = new LiveChatBean();
+ liveChatBean.setType(LiveChatBean.RED_PACK);
+ liveChatBean.setId(uid);
+ String name = uid.equals(mLiveUid) ? mContext.getString(R.string.live_anchor) : map.getString("uname");
+ liveChatBean.setContent(name + map.getString("ct"));
+ mListener.onRedPack(liveChatBean);
+ break;
+
+ case Constants.SOCKET_LUCK_WIN://幸运礼物中奖
+ mListener.onLuckGiftWin(map.toJavaObject(LiveLuckGiftWinBean.class));
+ break;
+
+ case Constants.SOCKET_PRIZE_POOL_WIN://奖池中奖
+ mListener.onPrizePoolWin(map.toJavaObject(LiveGiftPrizePoolWinBean.class));
+ break;
+ case Constants.SOCKET_PRIZE_POOL_UP://奖池升级
+ mListener.onPrizePoolUp(map.getString("uplevel"));
+ break;
+ case Constants.SOCKET_HOUR://小时榜
+ liveChatBean = new LiveChatBean();
+ liveChatBean.setId("-1");
+ liveChatBean.setType(LiveChatAdapter.MSG_HOUR_RANK_CHANGE);
+ liveChatBean.setContent(map.getJSONObject("ct").getString("text"));
+ mListener.onHourRank(liveChatBean, map.getJSONObject("ct").getJSONObject("new_rank"));
+ break;
+ //游戏socket
+ case Constants.SOCKET_GAME_ZJH://游戏 智勇三张
+ if (CommonAppConfig.GAME_ENABLE) {
+ mListener.onGameZjh(map);
+ }
+ break;
+ case Constants.SOCKET_GAME_HD://游戏 海盗船长
+ if (CommonAppConfig.GAME_ENABLE) {
+ mListener.onGameHd(map);
+ }
+ break;
+ case Constants.SOCKET_GAME_ZP://游戏 幸运转盘
+ if (CommonAppConfig.GAME_ENABLE) {
+ mListener.onGameZp(map);
+ }
+ break;
+ case Constants.SOCKET_GAME_NZ://游戏 开心牛仔
+ if (CommonAppConfig.GAME_ENABLE) {
+ mListener.onGameNz(map);
+ }
+ break;
+ case Constants.SOCKET_GAME_EBB://游戏 二八贝
+ if (CommonAppConfig.GAME_ENABLE) {
+ mListener.onGameEbb(map);
+ }
+ break;
+ case Constants.SOCKET_SEND_ACTIVE_MSG://新增,活动聊天显示
+ sendActiveMsg(map, received);
+ break;
+ case Constants.SOCKET_PRANKTURNTABLE://新增,整蛊消息
+ mListener.prankTurntable(map.getString("msgtype"), map.getIntValue("time"), JSON.parseObject(map.getString("ct")));
+ String msgtype = map.getString("msgtype");
+ JSONObject jsonObject = JSON.parseObject(map.getString("ct"));
+// if ("1".equals(msgtype)) {//新年大作战活动
+ LiveChatBean chatBean = new LiveChatBean();
+ chatBean.setId(jsonObject.getString("uid"));
+ chatBean.setUserNiceName(jsonObject.getString("user_nicename"));
+ if ("1".equals(map.getString("msgtype"))) {
+ chatBean.setType(-3);
+ } else {
+ chatBean.setType(-4);
+ }
+ chatBean.setContent(jsonObject.getString("content"));
+ chatBean.setBubble(jsonObject.getString("display_src"));
+ chatBean.setMedal(jsonObject.getString("hope_nicename"));//做为拯救人名字
+ chatBean.setAnchorName(jsonObject.getString("anchor_nicename"));
+ mListener.onChat(chatBean, 1);
+// }
+ break;
+ case Constants.SOCKET_USEHOTCARD://新增,热度卡消息
+// mListener.prankTurntable(map.getString("msgtype"), map.getIntValue("time"), JSON.parseObject(map.getString("ct")));
+ JSONObject jsonObject2 = JSON.parseObject(map.getString("ct"));
+ LiveChatBean chatBean2 = new LiveChatBean();
+ chatBean2.setType(-6);
+ chatBean2.setBubble(jsonObject2.getString("system_bubble"));
+ chatBean2.setId(jsonObject2.getString("user_id"));
+ chatBean2.setUserNiceName(jsonObject2.getString("user_name"));
+ chatBean2.setHot_num(jsonObject2.getString("hot_num"));
+ chatBean2.setHot_card(jsonObject2.getString("hot_card"));
+ getIsHot();
+ mListener.onChat(chatBean2, 1);
+ break;
+ case Constants.LOVE_CHECK://甜蜜
+ JSONObject jsonObject3 = JSON.parseObject(map.getString("ct"));
+ LiveChatBean chatBean3 = new LiveChatBean();
+ chatBean3.setType(-7);
+ chatBean3.setBubble(jsonObject3.getString("system_bubble"));
+ chatBean3.setId(jsonObject3.getString("user_id"));
+ chatBean3.setUserNiceName(jsonObject3.getString("user_name"));
+ chatBean3.setHot_num(jsonObject3.getString("gift_name"));
+ mListener.onChat(chatBean3, 1);
+ break;
+ case Constants.TRUMPET_NOTIFY://全站喇叭
+ SocketModel model = GsonUtils.fromJson(socketMsg, SocketModel.class);
+ List msg = model.getMsg();
+ if (msg.size() > 0) {
+// EventBus.getDefault().post(msg.get(0));
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.TRUMPET_NOTIFY).setMsgModel(msg.get(0)));
+ }
+ break;
+ case Constants.RECOMMEND_CARD_NOTIFY://推荐卡消息通知
+ SocketModel recommendCardNotifyModel = GsonUtils.fromJson(socketMsg, SocketModel.class);
+ List recommendCardNotifyMsg = recommendCardNotifyModel.getMsg();
+ if (recommendCardNotifyMsg.size() > 0) {
+
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.RECOMMEND_CARD_NOTIFY).setMsgModel(recommendCardNotifyMsg.get(0)));
+ }
+ break;
+ case Constants.STAR_CHALLENGE_UPDATE://星级助力
+// SocketModel starChallengeModel = GsonUtils.fromJson(socketMsg, SocketModel.class);
+// List starChallengeMsg = starChallengeModel.getMsg();
+// if (starChallengeMsg.size() > 0) {
+//
+// Bus.get().post(new LiveAudienceEvent()
+// .setType(LiveAudienceEvent.LiveAudienceType.START_MESSAGE)
+// .setMsgModel(starChallengeMsg.get(0)));
+// }
+ break;
+ case Constants.AI_AUTOMATIC_SPEECH:
+ case Constants.AI_AUTOMATIC_SPEECH_LIVE:
+ //{"name_color":"#f19ec2","ai_name":"助手小小P","content":"@1 ","user_name":"1","icon":"https://downs.yaoulive.com/xzs_tab.png","system_bubble":"https://downs.yaoulive.com/xzs_qipao.9.png"}
+ AiAutomaticSpeechModel aiAutomaticSpeechModel = GsonUtils.fromJson(map.getString("ct"), AiAutomaticSpeechModel.class);
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.AI_AUTOMATIC_SPEECH).setAiAutomaticSpeechModel(aiAutomaticSpeechModel));
+ break;
+ case Constants.STAR_CHALLENGE_UPGRADE_NOTIFY:
+ SocketModel starChallengeUpgradeNotify = GsonUtils.fromJson(socketMsg, SocketModel.class);
+ List starChallengeUpgradeNotifyMsg = starChallengeUpgradeNotify.getMsg();
+ if (starChallengeUpgradeNotifyMsg.size() > 0) {
+
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.STAR_CHALLENGE_UPGRADE_NOTIFY).setMsgModel(starChallengeUpgradeNotifyMsg.get(0)));
+ }
+ break;
+ case Constants.LuckyAngel:
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LUCKY_ANGEL).setMsgModel(GsonUtils.fromJson(map.getJSONObject("ct").toString(), MsgModel.class)));
+ break;
+ case Constants.Lucky100Check:
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LUCKY_100_CHECK).setMsgModel(GsonUtils.fromJson(map.getJSONObject("ct").toString(), MsgModel.class)));
+ break;
+ case Constants.PK_RANK_UPDATE:
+ Log.i("PK排位", map.toString());
+ JSONObject item = map.getJSONObject("ct");
+ PkRankBean pkRankBean = new PkRankBean();
+ pkRankBean.setId(Integer.parseInt(item.getString("new_rank_id")));
+ pkRankBean.setName(item.getString("new_rank_name"));
+ pkRankBean.setImg(item.getString("new_rank_img"));
+ pkRankBean.setNewRankNameEn(item.getString("new_rank_name_en"));
+ EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_RANK_UPDATE).setObject(pkRankBean));
+ break;
+ case Constants.CUSTOM_FULL_SERVICE_NOTIFY:
+ Log.e("全服通知", map.toString());
+ CustomFullServiceNotifyEvent customFullServiceNotifyEvent = GsonUtils.fromJson(map.toString(), CustomFullServiceNotifyEvent.class);
+ EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.CUSTOM_FULL_SERVICE_NOTIFY).setCustomFullServiceNotifyEvent(customFullServiceNotifyEvent));
+ break;
+ case Constants.XYD_COMPLETE:
+
+// xydComplete(map);
+ XydCompleteModel xydCompleteModel = GsonUtils.fromJson(map.toString(), XydCompleteModel.class);
+ EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.XYD_COMPLETE).setXydCompleteModel(xydCompleteModel).setLiveReceiveGiftBean(JSON.parseObject(map.toString(), LiveReceiveGiftBean.class)));
+ break;
+ case "GuardSpecialEffect":
+ LiveReceiveGiftBean giftBean = JSON.parseObject(map.toString(), LiveReceiveGiftBean.class);
+ giftBean.setMedal_name(map.getString("medal_name"));
+ EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.GuardSpecialEffect).setLiveReceiveGiftBean(giftBean));
+ break;
+ case Constants.WISH_LIST_PROGRESS:
+ StringBuffer conString = new StringBuffer();
+ conString.append(WordUtil.isNewZh() ? map.getString("msg") : map.getString("msg_en"));
+ EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.WISH_LIST_PROGRESS).setWishListProgress(new WishModel().setWishlistProgress(map.getString("wishlist_progress")).setWishlistIcon(map.getString("wishlist_icon")).setWishlistName(map.getString("wishlist_name")).setWishlistNum(map.getString("wishlist_num")).setGiftType(map.getInteger("giftId")).setLuid(conString.toString())).setUname(map.getString("userName")).setLiveType(Integer.parseInt(map.getString("level"))));
+ break;
+ case Constants.LIVE_VOTE_CREATE:
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.VOTE_CREATE).setObject(map));
+ break;
+ case Constants.LIVE_VOTE_END:
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.VOTE_END).setObject(map));
+ EventBus.getDefault().post(new LiveAnchorEvent().setType(LiveAnchorEvent.LiveAnchorType.VOTE_ANCHOR_END).setObject(map));
+ break;
+ case Constants.LIVE_VOTE_UPDATE:
+ //通知给观众
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.VOTE_UPDATE).setObject(map));
+ //通知给主播
+ EventBus.getDefault().post(new LiveAnchorEvent().setType(LiveAnchorEvent.LiveAnchorType.VOTE_ANCHOR_UPDATE).setObject(map));
+ break;
+ case Constants.LIVE_PK_END:
+
+ mListener.onEndPk(map.getLong("uid"), map.getLong("pkuid"), map.getLong("uid_score"), map.getLong("pkuid_score"), JSONObject.parseObject(map.getJSONObject("ct").getJSONObject("pk_top_users").toJSONString(), LivePKUserListBean.class));
+ break;
+ case Constants.RED_PACKET:
+ RedPacketModel redPacketModel = GsonUtils.fromJson(map.toString(), RedPacketModel.class);
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.RED_PACKET).setRedPacketModel(redPacketModel));
+ break;
+ case Constants.RED_PACKET_SUPER_JACKPOT:
+ RedPacketInfoModel redPacketInfoModel = GsonUtils.fromJson(map.toString(), RedPacketInfoModel.class);
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.RED_PACKET_SUPER_JACKPOT).setRedPacketInfoModel(redPacketInfoModel));
+ break;
+ case "GiftWallIlluminate":
+ Log.e("GiftWallIlluminate", map.toString());
+ Bus.get().post(new GiftWallIlluminateEvent().setNewNumber(map.getInteger("new_number")).setMaxNumber(map.getInteger("max_number")));
+ break;
+ case SOCKET_LIVE_MSG_TO_USER:
+ sendToUserMsg(map);
+ break;
+ case "SudGameCreateRoom":
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SUD_GAME_CREATE_ROOM).setAvatar(WordUtil.isNewZh() ? map.getString("sud_game_name") : map.getString("sud_game_name_en")).setCreateSudRoomModel(GsonUtils.fromJson(map.toString(), SudGameDateModel.class)));
+ break;
+ case "sendQuickGift":
+ SendQuickGiftModel sendQuickGiftModel = GsonUtils.fromJson(map.toString(), SendQuickGiftModel.class);
+ StringBuffer stringBuffer = new StringBuffer();
+ stringBuffer.append(sendQuickGiftModel.getUserNicename()).append(WordUtil.isNewZh() ? " 送出了 " : " sent ").append(sendQuickGiftModel.getQuickGiftNumber()).append(WordUtil.isNewZh() ? " 個小PD " : " small pandas ");
+ systemChatMessage2(stringBuffer.toString());
+ Bus.get().post(new QuickGiftingEvent().setHotNum(sendQuickGiftModel.getHotNum()));
+ break;
+ case Constants.LIVE_PK_RANDOM_START:
+ item = map.getJSONObject("ct");
+ item.getString("text");
+ item.getString("pktt_img");
+ item.getString("uid_win_continuity");
+ item.getString("pkuid_win_continuity");
+ pkRankBean = new PkRankBean();
+ pkRankBean.setBlueVal(item.getString("pkuid_win_continuity"));
+ pkRankBean.setRedVal(item.getString("uid_win_continuity"));
+ pkRankBean.setPkTopImgUrl(item.getString("pktt_img"));
+
+ EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_RANK_START).setObject(pkRankBean));
+ break;
+ case "guardMaturityDateRemind":
+ GuardMaturityDateRemindModel maturityDateRemindModel = GsonUtils.fromJson(map.toString(), GuardMaturityDateRemindModel.class);
+ Bus.get().post(maturityDateRemindModel);
+ break;
+ case "SendMoneyLong":
+ SendMoneyLongModel sendMoneyLongModel = GsonUtils.fromJson(map.toString(), SendMoneyLongModel.class);
+ Bus.get().post(sendMoneyLongModel);
+ break;
+ case "SendMoneyLongEnd":
+ Bus.get().post(new SendMoneyLongEndEvent());
+ break;
+
+ }
+ }
+
+ private void buyGuardInSameRoom(JSONObject map) {
+ if (TextUtils.isEmpty(map.getString("ancherName")) || TextUtils.isEmpty(map.getString("uname")))
+ return;
+ String guardName = WordUtil.isNewZh() ? "星之守護" : "Star Guardian";
+ switch (map.getIntValue("guard_type")) {
+ case 1:
+ guardName = WordUtil.isNewZh() ? "星之守護" : "Star Guardian";
+ break;
+ case 2:
+ guardName = WordUtil.isNewZh() ? "王之守護" : "King Guardian";
+ break;
+ case 3:
+ guardName = WordUtil.isNewZh() ? "神之守護" : "God Guardian";
+ break;
+ }
+ String content = WordUtil.isNewZh() ? "%s在%s的直播間開通了%s" : "%s has been opened in %s live broadcast room %s";
+ content = String.format(content, map.getString("uname"), map.getString("ancherName"), guardName);
+ LiveBuyGuardMsgBean buyGuardMsgBean = new LiveBuyGuardMsgBean();
+ buyGuardMsgBean.setUid(map.getString("uid"));
+ buyGuardMsgBean.setUserName(content);
+ buyGuardMsgBean.setVotes(map.getString("votestotal"));
+ buyGuardMsgBean.setGuardNum(map.getIntValue("guard_nums"));
+ buyGuardMsgBean.setGuardType(map.getIntValue("guard_type"));
+ mListener.onBuyGuard(buyGuardMsgBean);
+ }
+
+ private void buyGuardByNotify(JSONObject map) {
+ if (mLiveUid.equals(map.getString("liveuid"))) {
+// buyGuardInSameRoom(map);
+ //同一直播间,玩家自己开通,也能看到全服通知
+ String userId = CommonAppConfig.getInstance().getUid();
+ String uid = map.getString("uid");
+ if (userId.equals(uid)) {
+ LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
+ receiveGiftBean.setUserNiceName(map.getString("uname"));
+ receiveGiftBean.setAncherName(map.getString("ancherName"));
+ receiveGiftBean.setmLiveUId(mLiveUid);
+ receiveGiftBean.setRoomnum(map.getString("liveuid"));
+ receiveGiftBean.setmTypeBuyGuard(true);
+ receiveGiftBean.setUid(uid);
+ receiveGiftBean.setGuardType(map.getString("guard_type"));
+ receiveGiftBean.setSendtype(map.getIntValue("action"));
+ mListener.onSendGift(receiveGiftBean, null);
+ }
+ } else {
+ LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
+ receiveGiftBean.setUserNiceName(map.getString("uname"));
+ receiveGiftBean.setAncherName(map.getString("ancherName"));
+ receiveGiftBean.setmLiveUId(mLiveUid);
+ receiveGiftBean.setRoomnum(map.getString("liveuid"));
+ receiveGiftBean.setmTypeBuyGuard(true);
+ receiveGiftBean.setUid(map.getString("uid"));
+ receiveGiftBean.setGuardType(map.getString("guard_type"));
+ receiveGiftBean.setSendtype(map.getIntValue("action"));
+ mListener.onSendGift(receiveGiftBean, null);
+ }
+ }
+
+
+ private void buyZuoJiByNotify(JSONObject map) {
+ LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
+ receiveGiftBean.setUserNiceName(map.getString("nickname"));
+ receiveGiftBean.setCarName(map.getString("carname"));
+ receiveGiftBean.setSendtype(map.getIntValue("action"));
+ mListener.onBuyZuoji(receiveGiftBean);
+ }
+
+
+ private void buyLiangNameByNotify(JSONObject map) {
+ LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
+ receiveGiftBean.setUserNiceName(map.getString("nickname"));
+ receiveGiftBean.setLiangName(map.getString("liangname"));
+ receiveGiftBean.setSendtype(map.getIntValue("action"));
+ mListener.onBuyLiangName(receiveGiftBean);
+ }
+
+ private void buyVipByNotify(JSONObject map) {
+ LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
+ receiveGiftBean.setUserNiceName(map.getString("nicename"));
+ receiveGiftBean.setVipName(map.getString("ct"));
+ receiveGiftBean.setAvatar(map.getString("notice"));
+ receiveGiftBean.setAllServerNotify(true);
+ receiveGiftBean.setmLiveUId(map.getString("anchorUid"));
+ receiveGiftBean.setGifUrl(map.getString("special_src"));
+ receiveGiftBean.setVipTime(map.getString("viplength"));
+ receiveGiftBean.setRoomnum(map.getString("anchorUid"));
+ receiveGiftBean.setAncherName(map.getString("ancherName"));
+ receiveGiftBean.setNobilityid(map.getString("nobilityid"));
+ receiveGiftBean.setNobilityname(map.getString("nobilityname"));
+ receiveGiftBean.setOpentype(map.getString("opentype"));
+ receiveGiftBean.setSendtype(map.getIntValue("action"));
+ receiveGiftBean.setSendtype(map.getIntValue("action"));
+ receiveGiftBean.setUname(map.getString("uname"));
+ receiveGiftBean.setUhead(map.getString("uhead"));
+ if (map.getString("notice").equals("1")) {
+ LiveRoomViewHolder.paygzGif(map.getString("special_src"), map.getString("anchorUid"));
+ }
+ mListener.onBuyVip(receiveGiftBean);
+ }
+
+ private void sendActiveMsg(JSONObject map, SocketReceiveBean received) {
+ String msgtype = map.getString("msgtype");
+ if ("1".equals(msgtype)) {//新年大作战活动
+ LiveChatBean chatBean = new LiveChatBean();
+ chatBean.setId(map.getString("uid"));
+ chatBean.setMedalLevelImageUrl(map.getString("monster_str"));//昵称暂时做为活动图片地址
+ chatBean.setContent(map.getString("url"));//暂时做为活动链接地址
+ chatBean.setUserNiceName(map.getString("activename"));
+ chatBean.setType(6);
+ mListener.onChat(chatBean, 0);
+ }
+ }
+
+ /**
+ * 七日留存新用户主播端弹幕显示接口
+ */
+ private void sendToUserMsg(JSONObject map) {
+ LiveChatBean bean = new LiveChatBean();
+ bean.setId(map.getString("uid"));
+ bean.setAtUserID(map.getString("toUserID"));
+ bean.setContent(map.getString("ct"));
+ bean.setType(LiveChatBean.TYPE_TO_USER_MSG);
+ bean.setUserNiceName(map.getString("user_nicename"));
+ bean.setToUid(CommonAppConfig.getInstance().getUid());
+ mListener.onChat(bean, 1);
+ }
+
+ private void wordLightEnterRoom(JSONObject map, SocketReceiveBean received) {
+ String msgtype = map.getString("msgtype");
+ if ("2".equals(msgtype)) {//发言,点亮
+ if ("409002".equals(received.getRetcode())) {
+ ToastUtil.show(WordUtil.isNewZh() ? "你已經被禁言" : "You\'ve been banned");
+ return;
+ }
+
+ //禁言别人,自己发言只能自己看到
+ if ("409100".equals(received.getRetcode())) {
+ String uid = map.getString("uid");
+ if (uid == null || !uid.equals(CommonAppConfig.getInstance().getUid())) {
+ return;
+ }
+ }
+ LiveChatBean chatBean = new LiveChatBean();
+ chatBean.setId(map.getString("uid"));
+ chatBean.setUserNiceName(map.getString("uname"));
+ chatBean.setLevel(map.getIntValue("level"));
+ chatBean.setAnchor(map.getIntValue("isAnchor") == 1);
+ chatBean.setManager(map.getIntValue("usertype") == Constants.SOCKET_USER_TYPE_ADMIN);
+ chatBean.setContent(map.getString("ct"));
+ int heart = map.getIntValue("heart");
+ chatBean.setHeart(heart);
+ if (heart > 0) {
+ chatBean.setType(LiveChatBean.LIGHT);
+ }
+ chatBean.setLiangName(map.getString("liangname"));
+ chatBean.setBubble(map.getString("bubble"));
+ chatBean.setMedal(map.getString("medal"));
+ chatBean.setMedal_new(map.getString("medal_new"));
+ chatBean.setVipType(map.getIntValue("vip_type"));
+ chatBean.setVipType(map.getIntValue("vip_type"));
+ chatBean.setMedal_honor(map.getString("medal_honor"));
+ chatBean.setGood_nub(map.getString("good_num"));
+ chatBean.setNobleId(map.getString("noble_id"));//貴族ID
+ chatBean.setStartColor(map.getString("startColor"));//昵称开始颜色
+ chatBean.setEndColor(map.getString("endColor"));//昵称结束颜色
+ chatBean.setContentColor(map.getString("contentColor"));//文字内容颜色
+ chatBean.setAtUserName(map.getString("atUserName"));//@名字
+ chatBean.setAtUserID(map.getString("atUserID"));//@ID
+ if (map.containsKey("guard_type") && !map.getString("guard_type").equals("undefined")) {
+ chatBean.setGuardType(map.getIntValue("guard_type"));
+ }
+ try {
+ //增加粉丝徽章信息
+ chatBean.setMedalNmae(map.getString("medal_name"));
+ chatBean.setMedal_new_en(map.getString("medal_new_en"));
+ FansModel fansMedalBean = new NewLevelManager(mContext).getFansModel(map.getIntValue("medal_level"));
+ if (fansMedalBean != null)
+ chatBean.setMedalLevelImageUrl(fansMedalBean.getThumb());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ 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)) {//用户进入房间
+ JSONObject obj = JSON.parseObject(map.getString("ct"));
+ LiveUserGiftBean u = GsonUtils.fromJson(obj.toJSONString(), LiveUserGiftBean.class);
+ UserBean.Vip vip = new UserBean.Vip();
+ int vipType = obj.getIntValue("vip_type");
+ vip.setType(vipType);
+ u.setVip(vip);
+ UserBean.Car car = new UserBean.Car();
+ car.setId(obj.getIntValue("car_id"));
+ car.setSwf(obj.getString("car_swf"));
+ car.setSwftime(obj.getFloatValue("car_swftime"));
+ car.setWords(obj.getString("car_words"));
+ u.setCar(car);
+ UserBean.Liang liang = new UserBean.Liang();
+ String liangName = obj.getString("liangname");
+ liang.setName(liangName);
+ u.setLiang(liang);
+ LiveChatBean chatBean = new LiveChatBean();
+ chatBean.setType(LiveChatBean.ENTER_ROOM);
+ chatBean.setId(u.getId());
+ chatBean.setMedal_honor(map.getString("medal_honor"));
+ chatBean.setGood_nub(map.getString("good_num"));
+ chatBean.setUserNiceName(u.getUserNiceName());
+ chatBean.setLevel(u.getLevel());
+ chatBean.setVipType(vipType);
+ chatBean.setLiangName(liangName);
+ chatBean.setBubble(obj.getString("bubble"));
+ chatBean.setMedal(obj.getString("medal"));
+ chatBean.setMedal_new(obj.getString("medal_new"));
+ chatBean.setMedal_new_en(obj.getString("medal_new_en"));
+ chatBean.setHot_num(obj.getString("hot_num"));
+ UserBean.DressBean dressBean = new UserBean.DressBean();
+ dressBean.setAvatar_frame(obj.getString("avatar_frame"));
+ u.setDress(dressBean);
+
+ chatBean.setManager(obj.getIntValue("usertype") == Constants.SOCKET_USER_TYPE_ADMIN);
+ chatBean.setContent(mContext.getString(R.string.live_enter_room));
+ chatBean.setGuardType(obj.getIntValue("guard_type"));
+ chatBean.setNobleId(obj.getString("noble_id"));//貴族ID
+ chatBean.setStartColor(obj.getString("startColor"));//昵称开始颜色
+ chatBean.setEndColor(obj.getString("endColor"));//昵称结束颜色
+ chatBean.setContentColor(obj.getString("contentColor"));//文字内容颜色
+ chatBean.setNobleIcon(obj.getString("noble_icon"));//貴族圖標
+ chatBean.setBubbleSrc(obj.getString("bubbleSrc"));//氣泡
+ //增加粉丝徽章信息
+ chatBean.setMedalNmae(obj.getString("medal_name"));
+ chatBean.setUserNiceName(obj.getString("user_nicename"));//名字
+ CommonAppConfig.getInstance().getUserBean().getDress().setMedal_new_en(obj.getString("medal_new_en"));
+ FansModel fansMedalBean = new NewLevelManager(mContext).getFansModel(map.getIntValue("medal_level"));
+ u.setFansLevel(obj.getIntValue("medal_level"));
+ u.setFansEnterRoomUrl(obj.getString("medal_backgroup_thumb"));
+ if (fansMedalBean != null) chatBean.setMedalLevelImageUrl(fansMedalBean.getThumb());
+ mListener.onEnterRoom(new LiveEnterRoomBean(u, chatBean));
+ }
+ }
+
+ //送礼物 全服通知
+ private void sendGiftByNotify(JSONObject map) {
+ LiveReceiveGiftBean receiveGiftBean = JSON.parseObject(map.getString("ct"), LiveReceiveGiftBean.class);
+ receiveGiftBean.setAvatar(map.getString("uhead"));
+ receiveGiftBean.setUserNiceName(map.getString("uname"));
+ receiveGiftBean.setRoomnum(map.getString("roomnum"));
+ receiveGiftBean.setAncherName(map.getString("ancherName"));
+ receiveGiftBean.setHot_num(map.getString("hot_num"));
+ receiveGiftBean.setSendtype(map.getIntValue("action"));
+ receiveGiftBean.setmLiveUId(mLiveUid);
+ receiveGiftBean.setmTypeBuyGuard(false);
+ //全服通知时,不通知主播
+ receiveGiftBean.setAllServerNotify(true);
+ LiveChatBean chatBean = new LiveChatBean();
+ chatBean.setUserNiceName(receiveGiftBean.getUserNiceName());
+ chatBean.setLevel(receiveGiftBean.getLevel());
+ chatBean.setBubble(map.getString("bubble"));
+ chatBean.setMedal(map.getString("medal"));
+ chatBean.setId(map.getString("uid"));
+ chatBean.setMedal_honor(map.getString("medal_honor"));
+ chatBean.setGood_nub(map.getString("good_num"));
+ chatBean.setLiangName(map.getString("liangname"));
+ chatBean.setVipType(map.getIntValue("vip_type"));
+ chatBean.setType(LiveChatBean.GIFT);
+ //增加粉丝徽章信息
+ chatBean.setMedalNmae(map.getString("medal_name"));
+ FansModel fansMedalBean = new NewLevelManager(mContext).getFansModel(map.getIntValue("medal_level"));
+ if (fansMedalBean != null) chatBean.setMedalLevelImageUrl(fansMedalBean.getThumb());
+ //聊天列表显示 玩家名 送 1 个 礼物名
+
+ if (CommonAppContext.lang.equals("chinese")) {
+ chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + receiveGiftBean.getGiftCount() + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftName());
+ } else {
+ chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + " " + +receiveGiftBean.getGiftCount() + " " + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftnameen());
+ }
+
+ receiveGiftBean.setLiveChatBean(chatBean);
+ if (map.getIntValue("ifpk") == 1) {
+ if (!TextUtils.isEmpty(mLiveUid)) {
+ //获取PK排名数据
+ LivePKUserListBean livePKUserListBean = JSON.parseObject(receiveGiftBean.getPkTopUsers(), LivePKUserListBean.class);
+ if (mLiveUid.equals(map.getString("roomnum"))) {
+ if (!mLiveUid.equals(map.getString("roomnum"))) {
+ mListener.onSendGift(receiveGiftBean, null);
+ }
+ //同一个直播间时才刷新pk
+ mListener.onSendGiftPk(map.getLongValue("pktotal1"), map.getLongValue("pktotal2"), livePKUserListBean);
+ } else {
+ if (!mLiveUid.equals(map.getString("roomnum"))) {
+ mListener.onSendGift(receiveGiftBean, null);
+ }
+ //同一个直播间时才刷新pk
+ if (mLiveUid.equals(map.getString("pkuid1")) || mLiveUid.equals(map.getString("pkuid2"))) {
+ mListener.onSendGiftPk(map.getLongValue("pktotal2"), map.getLongValue("pktotal1"), livePKUserListBean);
+ }
+ }
+ }
+ } else {
+ if (!mLiveUid.equals(map.getString("roomnum"))) {
+ mListener.onSendGift(receiveGiftBean, null);
+ }
+ }
+ }
+
+ private void xydComplete(JSONObject map) {
+ LiveReceiveGiftBean receiveGiftBean = new LiveReceiveGiftBean();
+ receiveGiftBean.setAvatar(map.getString("uhead") + "");
+ receiveGiftBean.setUserNiceName(map.getString("uname"));
+ receiveGiftBean.setRoomnum(map.getString("roomnum"));
+ receiveGiftBean.setAncherName(map.getString("ancherName"));
+ receiveGiftBean.setHot_num(map.getString("hot_num"));
+ receiveGiftBean.setDrpk_status(map.getString("drpk_status"));
+ receiveGiftBean.setGitType(map.getInteger("swftype "));
+ receiveGiftBean.setmLiveUId(mLiveUid);
+ receiveGiftBean.setmTypeBuyGuard(false);
+ receiveGiftBean.setAllServerNotify(false);
+ receiveGiftBean.setGifUrl(map.getString("svg"));
+ LiveChatBean chatBean = new LiveChatBean();
+ chatBean.setUserNiceName(receiveGiftBean.getUserNiceName());
+ chatBean.setLevel(receiveGiftBean.getLevel());
+ chatBean.setMedal_honor(map.getString("medal_honor"));
+ chatBean.setId(map.getString("uid"));
+ chatBean.setLiangName(map.getString("liangname"));
+ chatBean.setVipType(map.getIntValue("vip_type"));
+ chatBean.setBubble(map.getString("bubble"));
+ chatBean.setMedal(map.getString("medal"));
+ 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"))) {
+ chatBean.setGuardType(map.getInteger("guard_type"));
+ }
+ if (CommonAppContext.lang.equals("chinese")) {
+ chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + receiveGiftBean.getGiftCount() + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftName());
+ } else {
+ chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + " " + +receiveGiftBean.getGiftCount() + " " + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftnameen());
+
+ }
+ mListener.onSendGift(receiveGiftBean, null);
+ }
+
+ // 玩家自己送礼物
+ private void sendGiftInSameRoom(JSONObject map) {
+ String ctJson = map.getString("ct");
+ SendBlindGiftEvent sendBlindGiftEvent = JSON.parseObject(ctJson, SendBlindGiftEvent.class);
+ LiveReceiveGiftBean receiveGiftBean = JSON.parseObject(map.getString("ct"), LiveReceiveGiftBean.class);
+ sendBlindGiftEvent.setUserNiceName(map.getString("uname"));
+ receiveGiftBean.setAvatar(map.getString("uhead") + "");
+ receiveGiftBean.setUserNiceName(map.getString("uname"));
+ receiveGiftBean.setRoomnum(map.getString("roomnum"));
+ receiveGiftBean.setAncherName(map.getString("ancherName"));
+ receiveGiftBean.setHot_num(map.getString("hot_num"));
+ receiveGiftBean.setDrpk_status(map.getString("drpk_status"));
+ receiveGiftBean.setNamingCoin(map.getString("naming_live_name"));
+ receiveGiftBean.setNamingLiveName(map.getString("naming_live_name"));
+ receiveGiftBean.setNamingUid(map.getString("naming_uid"));
+ receiveGiftBean.setNamingLiveuid(map.getString("naming_liveuid"));
+ receiveGiftBean.setmLiveUId(mLiveUid);
+ receiveGiftBean.setmTypeBuyGuard(false);
+ receiveGiftBean.setAllServerNotify(false);
+ sendBlindGiftEvent.setGiftname_en(map.getString("giftname_en"));
+ //获取PK排名数据
+ LivePKUserListBean livePKUserListBean = JSON.parseObject(receiveGiftBean.getPkTopUsers(), LivePKUserListBean.class);
+
+ LiveChatBean chatBean = new LiveChatBean();
+ chatBean.setUserNiceName(receiveGiftBean.getUserNiceName());
+ chatBean.setLevel(receiveGiftBean.getLevel());
+ chatBean.setMedal_honor(map.getString("medal_honor"));
+ chatBean.setId(map.getString("uid"));
+ chatBean.setLiangName(map.getString("liangname"));
+ chatBean.setVipType(map.getIntValue("vip_type"));
+ chatBean.setBubble(map.getString("bubble"));
+ chatBean.setMedal(map.getString("medal"));
+ 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"))) {
+ chatBean.setGuardType(map.getInteger("guard_type"));
+ }
+
+ if (WordUtil.isNewZh()) {
+ chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + receiveGiftBean.getGiftCount() + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftName());
+ } else {
+ chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + " " + +receiveGiftBean.getGiftCount() + " " + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftnameen());
+ }
+ //增加粉丝徽章信息
+ chatBean.setMedalNmae(map.getString("medal_name"));
+ FansModel fansMedalBean = new NewLevelManager(mContext).getFansModel(map.getIntValue("medal_level"));
+ if (fansMedalBean != null) chatBean.setMedalLevelImageUrl(fansMedalBean.getThumb());
+
+ receiveGiftBean.setLiveChatBean(chatBean);
+
+ if (map.getIntValue("ifpk") == 1) {
+ try {
+ if (!TextUtils.isEmpty(mLiveUid)) {
+ if (mLiveUid.equals(map.getString("roomnum"))) {
+ mListener.onSendGift(receiveGiftBean, sendBlindGiftEvent);
+ mListener.onSendGiftPk(map.getLongValue("pktotal1"), map.getLongValue("pktotal2"), livePKUserListBean);
+ } else {
+ mListener.onSendGiftPk(map.getLongValue("pktotal2"), map.getLongValue("pktotal1"), livePKUserListBean);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ } else {
+ Log.i("tvvs", receiveGiftBean.getLiveChatBean().getContent());
+ if (!TextUtils.isEmpty(sendBlindGiftEvent.getAction()) && TextUtils.equals("blind_box", sendBlindGiftEvent.getAction())) {
+ mListener.onSendGift(receiveGiftBean, sendBlindGiftEvent);
+ } else {
+ mListener.onSendGift(receiveGiftBean, null);
+ }
+
+ }
+ if (map.getIntValue("drpk_status") == 1) {
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LEAVE_PK_SCORE).setPkScores(map.getJSONArray("userlist")).setUid(mLiveUid).setTime(0));
+// LiveRoomViewHolder.UpPkBar(map.getJSONArray("userlist"), mLiveUid, 0);
+ }
+
+ }
+
+ /**
+ * 接收到系统消息,显示在聊天栏中
+ */
+ private void systemChatMessage(String content) {
+ LiveChatBean bean = new LiveChatBean();
+ bean.setContent(content);
+ bean.setType(LiveChatBean.SYSTEM);
+ mListener.onChat(bean, 1);
+ }
+
+ /**
+ * 接收到系统消息,显示在聊天栏中
+ */
+ private void systemChatMessage2(String content) {
+ LiveChatBean bean = new LiveChatBean();
+ bean.setContent(content);
+ bean.setType(LiveChatBean.SYSTEM2);
+ mListener.onChat(bean, 1);
+ }
+
+ /**
+ * 处理观众与主播连麦逻辑
+ */
+ private void processLinkMic(JSONObject map) {
+ int action = map.getIntValue("action");
+ switch (action) {
+ case 1://主播收到观众连麦的申请
+ UserBean u = new UserBean();
+ u.setId(map.getString("uid"));
+ u.setUserNiceName(map.getString("uname"));
+ u.setAvatar(map.getString("uhead"));
+ u.setSex(map.getIntValue("sex"));
+ u.setLevel(map.getIntValue("level"));
+ mListener.onAudienceApplyLinkMic(u);
+ break;
+ case 2://观众收到主播同意连麦的消息
+ if (map.getString("touid").equals(CommonAppConfig.getInstance().getUid())) {
+ mListener.onAnchorAcceptLinkMic();
+ }
+ break;
+ case 3://观众收到主播拒绝连麦的消息
+ if (map.getString("touid").equals(CommonAppConfig.getInstance().getUid())) {
+ mListener.onAnchorRefuseLinkMic();
+ }
+ break;
+ case 4://所有人收到连麦观众发过来的流地址
+ String uid = map.getString("uid");
+ if (!TextUtils.isEmpty(uid) && !uid.equals(CommonAppConfig.getInstance().getUid())) {
+ mListener.onAudienceSendLinkMicUrl(uid, map.getString("uname"), map.getString("playurl"));
+ }
+ break;
+ case 5://连麦观众自己断开连麦
+ mListener.onAudienceCloseLinkMic(map.getString("uid"), map.getString("uname"));
+ break;
+ case 6://主播断开已连麦观众的连麦
+ mListener.onAnchorCloseLinkMic(map.getString("touid"), map.getString("uname"));
+ break;
+ case 7://已申请连麦的观众收到主播繁忙的消息
+ if (map.getString("touid").equals(CommonAppConfig.getInstance().getUid())) {
+ mListener.onAnchorBusy();
+ }
+ break;
+ case 8://已申请连麦的观众收到主播无响应的消息
+ if (map.getString("touid").equals(CommonAppConfig.getInstance().getUid())) {
+ mListener.onAnchorNotResponse();
+ }
+ break;
+ case 9://所有人收到已连麦的观众退出直播间消息
+ mListener.onAudienceLinkMicExitRoom(map.getString("touid"));
+ break;
+ }
+ }
+
+ /**
+ * 处理主播与主播连麦逻辑
+ *
+ * @param map
+ */
+ private void processLinkMicAnchor(JSONObject map) {
+ int action = map.getIntValue("action");
+ switch (action) {
+ case 1://收到其他主播连麦的邀请的回调
+ UserBean u = new UserBean();
+ u.setId(map.getString("uid"));
+ u.setUserNiceName(map.getString("uname"));
+ u.setAvatar(map.getString("uhead"));
+ u.setSex(map.getIntValue("sex"));
+ u.setLevel(map.getIntValue("level"));
+ u.setLevelAnchor(map.getIntValue("level_anchor"));
+ mListener.onLinkMicAnchorApply(u, map.getString("stream"));
+ break;
+ case 3://对方主播拒绝连麦的回调
+ mListener.onLinkMicAnchorRefuse();
+ break;
+ case 4://所有人收到对方主播的播流地址的回调
+ mListener.onLinkMicAnchorPlayUrl(map.getString("pkuid"), map.getString("pkpull"));
+ break;
+ case 5://断开连麦的回调
+ mListener.onLinkMicAnchorClose();
+ break;
+ case 7://对方主播正在忙的回调
+ mListener.onLinkMicAnchorBusy();
+ break;
+ case 8://对方主播无响应的回调
+ mListener.onLinkMicAnchorNotResponse();
+ break;
+ case 9://对方主播正在游戏
+ mListener.onlinkMicPlayGaming();
+ break;
+ }
+ }
+
+ /**
+ * 处理主播与主播PK逻辑
+ *
+ * @param map
+ */
+ private void processAnchorLinkMicPk(JSONObject map) {
+ int action = map.getIntValue("action");
+ Log.i("Socket", "action = " + action + " json = " + map.toString());
+ L.eSw("处理主播与主播PK逻辑action = " + action + " json = " + map.toString());
+ switch (action) {
+ case 1://收到对方主播PK回调
+ UserBean u = new UserBean();
+ u.setId(map.getString("uid"));
+ u.setUserNiceName(map.getString("uname"));
+ u.setAvatar(map.getString("uhead"));
+ u.setRandomPk("11".equals(map.getString("msgtype")));
+ mListener.onLinkMicPkApply(u, map.getString("stream"), "11".equals(map.getString("msgtype")) ? 2 : 1);
+ break;
+ case 2://收到对方主播PK回调
+ L.eSw("收到对方主播PK回调");
+ /*if("1".equals(map.getString("random_pk"))){
+
+ }*/
+ RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
+ mListener.onLinkMicToPk(map.getString("uid"), map.getString("uhead"), map.getString("uhead"));
+ mListener.onLinkMicPkStart(map.getString("uid"), map.getString("uhead"), map.getString("uname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid"));
+ if (livePushSwViewHolder != null) {
+ UserBean userBean = new UserBean();
+ userBean.setId(map.getString("uid"));
+ userBean.setAvatar(map.getString("uhead"));
+ userBean.setUserNiceName(map.getString("uname"));
+ livePushSwViewHolder.setAnPkRtc(userBean);
+ }
+ break;
+ case 3://对方主播拒绝PK的回调
+ RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_REFUSE);
+ mListener.onLinkMicPkRefuse();
+ break;
+ case 4://所有人收到PK开始址的回调
+ L.eSw("所有人收到PK开始址的回调");
+ // RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
+ EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_TWO_START).setObject(map.getString("pkuid")));
+ mListener.onLinkMicPkStart(map.getString("pkuid"), map.getString("pkhead"), map.getString("pkname"), map.getString("is_ladders"));
+ break;
+ case 5://PK时候断开连麦的回调
+// if (rtcRoom != null) {
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.DISCONNEXT_PK_TIME));
+ //断开连麦
+ HttpClient.getInstance().post("livepk.setliveuserout", "livepk.setliveuserout").execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+
+ }
+ });
+// }
+ if (livePushSwViewHolder != null) {
+ livePushSwViewHolder.onLinkMicAnchorClose();
+ }
+ mListener.onLinkMicPkClose(1);
+ if (RandomPkManager.getInstance().isRandomModel()) {
+ RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_DEFAULT);
+ }
+ break;
+ case 7://对方主播正在忙的回调
+ mListener.onLinkMicPkBusy();
+ break;
+ case 8://对方主播无响应的回调
+ mListener.onLinkMicPkNotResponse();
+ break;
+ case 9://pk结束的回调
+ mListener.onLinkMicPkEnd(map.getString("win_uid"));
+ EventBus.getDefault().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIVE_PK_END).setObject(map.getString("uid")));
+ if (livePushSwViewHolder != null) {
+ livePushSwViewHolder.onLinkMicAnchorClose();
+ }
+ break;
+ case 10://系统发起PK回调
+ if (livePushSwViewHolder != null) {
+ final SocketSendBean msg1 = new SocketSendBean()
+ .param("_method_", SOCKET_LINK_MIC_PK).param("action", 2)
+ .param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName()).param("pkuid", CommonAppConfig.getInstance().getUid())
+ .param("msgtype", 2).param("uid", CommonAppConfig.getInstance().getUid())
+ .param("uhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
+ .param("is_auto", "1")
+ .param("pkhead", CommonAppConfig.getInstance().getUserBean().getAvatar())
+ .param("pkname", CommonAppConfig.getInstance().getUserBean().getUserNiceName());
+ msg1.create();
+ 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(map.getString("uid"), 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) {
+ }
+
+ @Override
+ public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("tx", "aaa" + errorCode.toString());
+ ToastUtil.show(errorCode.code + ":" + errorCode.msg);
+ }
+ });
+
+ RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_START);
+
+ LiveNetManager.get(mContext).getLiveInfo(map.getString("uid"), new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(LiveInfoModel data) {
+ mListener.onLinkMicToPk(map.getString("uid"), data.getAvatar(), map.getString("uhead"));
+ mListener.onLinkMicPkStart(map.getString("uid"), data.getAvatar(), map.getString("uname"), map.getString("is_ladders"));// mListener.onLinkMicPkStart(map.getString("uid"));
+ if (livePushSwViewHolder != null) {
+ UserBean userBean = new UserBean();
+ userBean.setId(map.getString("uid"));
+ userBean.setAvatar(data.getAvatar());
+ userBean.setUserNiceName(map.getString("uname"));
+ livePushSwViewHolder.setAnPkRtc(userBean);
+ }
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+}
diff --git a/live/src/main/java/com/yunbao/live/socket/SocketSwLinkMicPkUtil.java b/live/src/main/java/com/yunbao/live/socket/SocketSwLinkMicPkUtil.java
new file mode 100644
index 000000000..34cc7bb6f
--- /dev/null
+++ b/live/src/main/java/com/yunbao/live/socket/SocketSwLinkMicPkUtil.java
@@ -0,0 +1,213 @@
+package com.yunbao.live.socket;
+
+import android.util.Log;
+
+import com.yunbao.common.CommonAppConfig;
+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.utils.L;
+
+import io.rong.imlib.IRongCallback;
+import io.rong.imlib.RongIMClient;
+import io.rong.imlib.model.Conversation;
+import io.rong.imlib.model.Message;
+import io.rong.message.TextMessage;
+
+public class SocketSwLinkMicPkUtil {
+ /**
+ * 发起PK申请
+ *
+ * @param pkUid 对方主播的uid
+ * @param stream 自己直播间的stream
+ */
+ public static void linkMicPkApply(SocketSwClient client, String pkUid, String stream) {
+ if (client == null) {
+ return;
+ }
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ }
+
+
+ /**
+ * 主播接受对方主播的Pk请求
+ *
+ * @param pkUid 对方主播的uid
+ */
+ public static void linkMicPkAccept(SocketSwClient client, String pkUid, String url, String name) {
+ HttpClient.getInstance().get("Livepk.changeLive", "Livepk.changeLive")
+ .params("uid", CommonAppConfig.getInstance().getUid())
+ .params("pkuid", pkUid)
+ .params("type", "1")
+ .params("sign", "1")
+ .execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msgs, String[] info) {
+ if (code == 0) {
+ L.eSw("1111111111111111111111111111");
+ HttpClient.getInstance().get("Livepk.setPK", "Livepk.setPK")
+ .params("uid", CommonAppConfig.getInstance().getUid())
+ .params("pkuid", pkUid)
+ .params("type", "1")
+ .params("sign", "1")
+ .execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msgs, String[] info) {
+ if (code == 0) {
+ Log.e("ry",name+"啊啊"+url);
+ L.eSw("2222222222222222222222");
+ final SocketSendBean msg1 = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_LINK_MIC_PK)
+ .param("action", 4)
+ .param("uname", url)
+ .param("uhead", name)
+ .param("pkuid", pkUid)
+ .param("uid", CommonAppConfig.getInstance().getUid())
+ .param("pkhead", url)
+ .param("pkname", name);
+ msg1.create();
+
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
+ Message message1 = Message.obtain("g" + CommonAppConfig.getInstance().getUid(), conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message1, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+ }
+
+ }
+ });
+ }
+ }
+ });
+
+
+ }
+
+ /**
+ * 主播接受对方主播的Pk请求
+ *
+ * @param pkUid 对方主播的uid
+ */
+ public static void linkMicDRPkAccept(String pkUid) {
+
+
+ }
+
+ /**
+ * 主播拒绝其他主播的连麦请求
+ */
+ public static void linkMicPkRefuse(SocketSwClient client, String pkUid) {
+ if (client == null) {
+ return;
+ }
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+ final SocketSendBean msg = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_LINK_MIC_PK)
+ .param("action", 3)
+ .param("msgtype", 0)
+ .param("uid", u.getId())
+ .param("uname", u.getUserNiceName())
+ .param("pkuid", pkUid)
+ .param("ct", "");
+
+ msg.create();
+
+ Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
+ TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
+ Message message = Message.obtain(pkUid, conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+
+ }
+
+
+ /**
+ * 主播断开连麦
+ */
+ public static void linkMicAnchorClose(SocketSwClient client, String pkUid) {
+ if (client == null) {
+ return;
+ }
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ if (u == null) {
+ return;
+ }
+// client.send(new SocketSendBean()
+// .param("_method_", Constants.SOCKET_LINK_MIC_PK)
+// .param("action", 5)
+// .param("msgtype", 0)
+// .param("uid", u.getId())
+// .param("ct", "")
+// .param("pkuid", pkUid)
+// .param("uname", u.getUserNiceName()));
+
+
+ }
+
+ /**
+ * 当收到主播连麦的请求时候主播正在忙
+ */
+ public static void linkMicPkBusy(SocketClient client, String pkUid) {
+ if (client == null) {
+ return;
+ }
+// client.send(new SocketSendBean()
+// .param("_method_", Constants.SOCKET_LINK_MIC_PK)
+// .param("action", 7)
+// .param("msgtype", 10)
+// .param("pkuid", pkUid));
+ }
+
+ /**
+ * 当收到主播连麦的请求时候主播无响应
+ */
+ public static void linkMicPkNotResponse(SocketSwClient client, String pkUid) {
+ if (client == null) {
+ return;
+ }
+// client.send(new SocketSendBean()
+// .param("_method_", Constants.SOCKET_LINK_MIC_PK)
+// .param("action", 8)
+// .param("msgtype", 10)
+// .param("pkuid", pkUid));
+ }
+
+
+}
diff --git a/live/src/main/java/com/yunbao/live/utils/LiveRoomVoteManager.java b/live/src/main/java/com/yunbao/live/utils/LiveRoomVoteManager.java
index 8407e8dca..297ce9e17 100644
--- a/live/src/main/java/com/yunbao/live/utils/LiveRoomVoteManager.java
+++ b/live/src/main/java/com/yunbao/live/utils/LiveRoomVoteManager.java
@@ -19,10 +19,8 @@ import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
-import com.yunbao.live.activity.LiveRyAnchorActivity;
+import com.yunbao.live.activity.LiveSwAnchorActivity;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
@@ -60,7 +58,7 @@ public class LiveRoomVoteManager {
mAnchorVoteHide.setOnClickListener(v -> hideAnchorVote());
mVoteShow.setOnClickListener(v -> hideAnchorVote());
mClose.setOnClickListener(v -> close());
- if (mContext instanceof LiveRyAnchorActivity) {
+ if (mContext instanceof LiveSwAnchorActivity) {
isAnchor = true;
} else {
isAnchor = false;
diff --git a/live/src/main/java/com/yunbao/live/utils/LiveTextRender.java b/live/src/main/java/com/yunbao/live/utils/LiveTextRender.java
index f9f67b5ba..54b00cb34 100644
--- a/live/src/main/java/com/yunbao/live/utils/LiveTextRender.java
+++ b/live/src/main/java/com/yunbao/live/utils/LiveTextRender.java
@@ -6,6 +6,7 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
+import android.graphics.Rect;
import android.graphics.Typeface;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
@@ -23,6 +24,7 @@ import android.view.View;
import android.view.View.MeasureSpec;
import android.view.ViewGroup;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -32,13 +34,16 @@ import androidx.core.content.ContextCompat;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
+import com.lzf.easyfloat.enums.ShowPattern;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.bean.AiAutomaticSpeechModel;
import com.yunbao.common.bean.MsgModel;
import com.yunbao.common.bean.NewGuardLevelModel;
import com.yunbao.common.bean.NewLevelModel;
import com.yunbao.common.custom.VerticalImageSpan;
+import com.yunbao.common.dialog.DebugDialog;
import com.yunbao.common.glide.ImgLoader;
+import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil;
@@ -84,6 +89,10 @@ public class LiveTextRender {
sFontSizeSpan = new AbsoluteSizeSpan(17, true);
sFontSizeSpan2 = new AbsoluteSizeSpan(12, true);
sFontSizeSpan3 = new AbsoluteSizeSpan(14, true);
+ if (!isInit) {
+ isInit = true;
+
+ }
}
public void blindBox(Context context, TextView textView, LiveChatBean bean) {
@@ -285,38 +294,38 @@ public class LiveTextRender {
getGuardImage(CommonAppContext.sInstance, bean.getGuardType(), new ImgLoader.DrawableCallback() {
@Override
public void onLoadSuccess(Drawable drawable) {
- SpannableStringBuilder builder = new SpannableStringBuilder();
+ /*SpannableStringBuilder builder = new SpannableStringBuilder();
int index = 0;
if (levelDrawable != null) {
- builder.append(" ");
+ builder.append("\uFFFC ");
levelDrawable.setBounds(0, 0, DpUtil.dp2px(17), DpUtil.dp2px(17));
builder.setSpan(new VerticalImageSpan(levelDrawable), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
}
if (gzDrawablesMap.containsKey(bean)) {//贵族
- builder.append(" ");
+ builder.append("\uFFFC ");
gzDrawablesMap.get(bean).setBounds(0, 0, DpUtil.dp2px(35), DpUtil.dp2px(20));
builder.setSpan(new VerticalImageSpan(gzDrawablesMap.get(bean)), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
}
if (ryxzDrawablesMap.containsKey(bean)) {//荣誉勋章
- builder.append(" ");
+ builder.append("\uFFFC ");
ryxzDrawablesMap.get(bean).setBounds(0, 0, DpUtil.dp2px(18), DpUtil.dp2px(18));
builder.setSpan(new VerticalImageSpan(ryxzDrawablesMap.get(bean)), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
}
if (nhDrawablesMap.containsKey(bean)) {//靓号
- builder.append(" ");
+ builder.append("\uFFFC ");
nhDrawablesMap.get(bean).setBounds(0, 0, DpUtil.dp2px(17), DpUtil.dp2px(17));
builder.setSpan(new VerticalImageSpan(nhDrawablesMap.get(bean)), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
}
if (drawable != null) {
- builder.append(" ");
+ builder.append("\uFFFC ");
drawable.setBounds(0, 0, DpUtil.dp2px(34), DpUtil.dp2px(17));
builder.setSpan(new VerticalImageSpan(drawable), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
@@ -326,7 +335,7 @@ public class LiveTextRender {
&& !bean.getMedalNmae().equals("null") && !bean.getMedalNmae().equals("(null)") && !bean.getMedalNmae().equals("")) {//粉丝徽章图标
Drawable drawable2 = getMedalImage(bean);
if (drawable2 != null) {
- builder.append(" ");
+ builder.append("\uFFFC ");
drawable2.setBounds(0, 0, DpUtil.dp2px(44), DpUtil.dp2px(17));
builder.setSpan(new VerticalImageSpan(drawable2), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
@@ -337,7 +346,7 @@ public class LiveTextRender {
if (bean.isManager()) {//直播间管理员图标
Drawable drawable3 = ContextCompat.getDrawable(CommonAppContext.sInstance, R.mipmap.icon_live_chat_m);
if (drawable3 != null) {
- builder.append(" ");
+ builder.append("\uFFFC ");
drawable3.setBounds(0, 0, DpUtil.dp2px(17), DpUtil.dp2px(14));
builder.setSpan(new VerticalImageSpan(drawable3), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
@@ -347,23 +356,29 @@ public class LiveTextRender {
if (!TextUtils.isEmpty(bean.getLiangName())) {//靓号图标
Drawable drawable4 = ContextCompat.getDrawable(CommonAppContext.sInstance, R.mipmap.icon_live_chat_liang);
if (drawable4 != null) {
- builder.append(" ");
+ builder.append("\uFFFC ");
drawable4.setBounds(0, 0, DpUtil.dp2px(17), DpUtil.dp2px(14));
builder.setSpan(new VerticalImageSpan(drawable4), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// new add
index = builder.length();
}
}
- createPrefixCallback.onPrefixCallback(builder, 0);
+ createPrefixCallback.onPrefixCallback(builder, 0);*/
+ show(drawable);
+ //createPrefixCallback.onPrefixCallback(builder, 0);
}
@Override
public void onLoadFailed() {
+ show(null);
+ }
+
+ void show(Drawable drawable) {
SpannableStringBuilder builder = new SpannableStringBuilder();
int index = 0;
int prefixWidth = 0;
if (levelDrawable != null) {
- builder.append(" ");
+ builder.append("\uFFFC ");
levelDrawable.setBounds(0, 0, DpUtil.dp2px(17), DpUtil.dp2px(17));
builder.setSpan(new VerticalImageSpan(levelDrawable), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
@@ -371,7 +386,7 @@ public class LiveTextRender {
}
if (gzDrawablesMap.containsKey(bean)) {//贵族
- builder.append(" ");
+ builder.append("\uFFFC ");
gzDrawablesMap.get(bean).setBounds(0, 0, DpUtil.dp2px(35), DpUtil.dp2px(20));
builder.setSpan(new VerticalImageSpan(gzDrawablesMap.get(bean)), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
@@ -379,7 +394,7 @@ public class LiveTextRender {
}
if (ryxzDrawablesMap.containsKey(bean)) {//荣誉勋章
- builder.append(" ");
+ builder.append("\uFFFC ");
ryxzDrawablesMap.get(bean).setBounds(0, 0, DpUtil.dp2px(18), DpUtil.dp2px(18));
builder.setSpan(new VerticalImageSpan(ryxzDrawablesMap.get(bean)), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
@@ -387,18 +402,25 @@ public class LiveTextRender {
}
if (nhDrawablesMap.containsKey(bean)) {//靓号
- builder.append(" ");
+ builder.append("\uFFFC ");
nhDrawablesMap.get(bean).setBounds(0, 0, DpUtil.dp2px(17), DpUtil.dp2px(17));
builder.setSpan(new VerticalImageSpan(nhDrawablesMap.get(bean)), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
prefixWidth += nhDrawablesMap.get(bean).getBounds().width();
}
+ if (drawable != null) {
+ builder.append("\uFFFC ");
+ drawable.setBounds(0, 0, DpUtil.dp2px(34), DpUtil.dp2px(17));
+ builder.setSpan(new VerticalImageSpan(drawable), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ index = builder.length();
+ prefixWidth += drawable.getBounds().width();
+ }
//在这里添加粉丝徽章的图片
if (!TextUtils.isEmpty(bean.getMedalNmae()) && !TextUtils.isEmpty(bean.getMedalLevelImageUrl())
&& !bean.getMedalNmae().equals("null") && !bean.getMedalNmae().equals("(null)") && !bean.getMedalNmae().equals("")) {//粉丝徽章图标
- Drawable drawable = getMedalImage(bean);
+ drawable = getMedalImage(bean);
if (drawable != null) {
- builder.append(" ");
+ builder.append("\uFFFC ");
drawable.setBounds(0, 0, DpUtil.dp2px(44), DpUtil.dp2px(17));
builder.setSpan(new VerticalImageSpan(drawable), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
@@ -408,23 +430,25 @@ public class LiveTextRender {
if (bean.isManager()) {//直播间管理员图标
- Drawable drawable = ContextCompat.getDrawable(CommonAppContext.sInstance, R.mipmap.icon_live_chat_m);
+ drawable = ContextCompat.getDrawable(CommonAppContext.sInstance, R.mipmap.icon_live_chat_m);
if (drawable != null) {
- builder.append(" ");
+ builder.append("\uFFFC ");
drawable.setBounds(0, 0, DpUtil.dp2px(17), DpUtil.dp2px(14));
builder.setSpan(new VerticalImageSpan(drawable), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = builder.length();
+ prefixWidth += drawable.getBounds().width();
}
}
if (!TextUtils.isEmpty(bean.getLiangName())) {//靓号图标
- Drawable drawable = ContextCompat.getDrawable(CommonAppContext.sInstance, R.mipmap.icon_live_chat_liang);
+ drawable = ContextCompat.getDrawable(CommonAppContext.sInstance, R.mipmap.icon_live_chat_liang);
if (drawable != null) {
- builder.append(" ");
+ builder.append("\uFFFC ");
drawable.setBounds(0, 0, DpUtil.dp2px(17), DpUtil.dp2px(14));
builder.setSpan(new VerticalImageSpan(drawable), index, index + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// new add
index = builder.length();
+ prefixWidth += drawable.getBounds().width();
}
}
createPrefixCallback.onPrefixCallback(builder, prefixWidth);
@@ -811,35 +835,64 @@ public class LiveTextRender {
return mNewBitmap;
}
+ public static OnItemClickListener onItemClickListener = new OnItemClickListener() {
+ @Override
+ public void onItemClick(String bean, int position) {
+
+ }
+ };
+ private static boolean isInit = false;
+ public static int textTemp = 0;
+ public static String userName = "";
+
/**
* 渲染普通聊天消息
*/
private SpannableStringBuilder renderChat(TextView textView, int color, SpannableStringBuilder builder, LiveChatBean bean, int prefixWidth) {
int length = builder.length();
String name = bean.getUserNiceName();
+ float prefixEmpty = textView.getPaint().measureText(builder, 0, builder.length()) / 2;
+ if (!StringUtil.isEmpty(userName)) {
+ // name = userName;
+ }
if (bean.getType() != LiveChatBean.ENTER_ROOM) {//产品规定,进场消息不允许加冒号
name += ":";
}
SpannableStringBuilder sb = new SpannableStringBuilder();
- sb.append(builder).append(name).append(" ");
+ sb.append(name);
float measuredText = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
- int width = ((ViewGroup) textView.getParent()).getWidth();
+ // Rect mRect = new Rect();
+ // textView.getPaint().getTextBounds(sb.toString(), 0, sb.length(), mRect);
+ int width = (int) (((ViewGroup) textView.getParent()).getMeasuredWidth() - prefixEmpty);
+ String TAG = "文字渲染";
+ // Log.i(TAG, "测算|" + measuredText + "|" + mRect.width() + "|" + sb.toString());
+ //|810|810|810|786|786
+ // Log.i(TAG, "控件宽度|" + width + "|" + ((ViewGroup) textView.getParent()).getWidth() + "|" + ((ViewGroup) textView.getParent()).getMeasuredWidth() + "|" + textView.getWidth() + "|" + textView.getMeasuredWidth());
+ // Log.i(TAG, "前缀预留宽度|" + prefixWidth + "|" + prefixEmpty);
+ // Log.i(TAG, "renderChat: " + textView.getCompoundPaddingLeft() + "|" + textView.getCompoundPaddingRight() + "|");
//检测渲染后图标+名字是否超过父布局宽度,超过了就做换行处理
+ String prefixName = "";
if (measuredText > width) {
sb.clear();
- sb.append(builder);
for (int i = 0; i < name.length(); i++) {
- sb.append(name.charAt(i)).append(" ");
+ sb.append(name.charAt(i));
measuredText = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
- if (measuredText + 1 > width) {
- name = name.substring(0, i+1) + "\n" + name.substring(i+1);
+ Log.i(TAG, i + "逐测算|" + measuredText + "|" + textTemp);
+ if (measuredText > width) {
+ prefixName = name.substring(0, i + textTemp);
+ name = prefixName + "\n" + name.substring(i + textTemp);
break;
}
}
sb.clear();
+ } else {
+ prefixName = name;
}
- // name=name.substring(0,7)+"\n"+name.substring(7);
+ sb.clear();
+ sb.append(prefixName);
+ // name=name.substring(0,7)+"\n"+name.substring(7);
builder.append(name);
+ Log.i(TAG, "再测算|" + (textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth) + "|" + textTemp + "|" + sb.toString());
//超皇设置渐变色展示昵称
if (TextUtils.equals("7", bean.getNobleId()) && !TextUtils.isEmpty(bean.getStartColor())) {
@@ -849,26 +902,56 @@ public class LiveTextRender {
}
int lengthContent = builder.length();
//这一段先别删,万一后面要改内容换行呢
- /* sb.clear();
- sb.append(builder).append(bean.getContent());
+ // TODO 试试 “空Unicode”
+ /*sb.clear();
+ TAG = "文字渲染2";
+ String content = bean.getContent();
+ Log.i(TAG, "renderChat: " + content);
+ sb.append(name).append(content);
+ SpannableStringBuilder csb = null;
measuredText = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
+ sb.clear();
+ sb.append(prefixName);
+ prefixEmpty = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
+ StringBuilder stringBuilder = new StringBuilder();
if (measuredText > width) {
sb.clear();
- sb.append(builder);
- for (int i = 0; i < bean.getContent().length(); i++) {
- sb.append(bean.getContent().charAt(i));
- measuredText = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
- if (measuredText + 3 > width) {
- bean.setContent(bean.getContent().substring(0, i) + "\n"+ bean.getContent().substring(i));
- bean.setContent("");
- break;
+ sb.append(name);
+ float lineWidth = 0;
+ for (int i = 0; i < content.length(); i++) {
+ char charAt = content.charAt(i);
+ sb.append(charAt);
+ lineWidth += textView.getPaint().measureText(String.valueOf(charAt)) + prefixEmpty;
+ prefixEmpty = 0;
+ textView.setText(sb);
+ Log.i(TAG, "renderChat: TextView是否换行:" + textView.getText().toString().split("\n").length);
+ Log.i(TAG, "逐测算|" + lineWidth + " width|" + width + "|" + sb.toString());
+ if (lineWidth > width) {
+ Log.i(TAG, "renderChat: 换行:" + charAt);
+ if (!stringBuilder.toString().endsWith("\n")) {
+ stringBuilder.append("\n");
+ }
+ lineWidth = 0;
+ --i;
+ } else {
+ Log.i(TAG, "renderChat: 直接加入:" + charAt);
+ stringBuilder.append(content.charAt(i));
}
+
}
+ if (stringBuilder.toString().endsWith("\n")) {
+ Log.i(TAG, "需要删除回车");
+ stringBuilder.deleteCharAt(stringBuilder.length() - 1);
+ }
+ Log.i(TAG, "分行后内容:" + stringBuilder.toString());
+ bean.setContent(stringBuilder.toString());
}
*/
+
builder.append(bean.getContent());
//超皇设置渐变色展示昵称
if (TextUtils.equals("7", bean.getNobleId()) && !TextUtils.isEmpty(bean.getContentColor())) {
+ Log.i(TAG, "lengthContent: " + lengthContent + "|content: " + bean.getContent().length() + "|max: " + (lengthContent + bean.getContent().length()));
builder.setSpan(new ForegroundColorSpan(Color.parseColor(bean.getContentColor())), lengthContent, lengthContent + bean.getContent().length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
if (bean.getType() == LiveChatBean.LIGHT) {
@@ -880,6 +963,7 @@ public class LiveTextRender {
builder.setSpan(new VerticalImageSpan(heartDrawable), length - 1, length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
+ //textView.setText("");
return builder;
}
diff --git a/live/src/main/java/com/yunbao/live/views/AbsRyLivePushViewHolder.java b/live/src/main/java/com/yunbao/live/views/AbsRyLivePushViewHolder.java
index 2b1c7e4f2..ca097bcf6 100644
--- a/live/src/main/java/com/yunbao/live/views/AbsRyLivePushViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/AbsRyLivePushViewHolder.java
@@ -11,6 +11,8 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import androidx.fragment.app.Fragment;
+
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.utils.L;
import com.yunbao.common.views.AbsViewHolder;
@@ -30,7 +32,7 @@ public class AbsRyLivePushViewHolder extends AbsViewHolder implements ILivePushV
protected ViewGroup mBigContainer;
protected ViewGroup mSmallContainer;
protected ViewGroup mLeftContainer;
- protected ViewGroup mRightContainer;
+ protected FrameLayout mRightContainer;
protected ViewGroup mPkContainer;
public FrameLayout mPreView, mPreView1, cameraPreview3, dr1_preview, dr2_preview, dr3_preview, dr4_preview;
public ImageView leave;
@@ -59,7 +61,7 @@ public class AbsRyLivePushViewHolder extends AbsViewHolder implements ILivePushV
mBigContainer = (ViewGroup) findViewById(R.id.big_container);
mSmallContainer = (ViewGroup) findViewById(R.id.small_container);
mLeftContainer = (ViewGroup) findViewById(R.id.left_container);
- mRightContainer = (ViewGroup) findViewById(R.id.right_container);
+ mRightContainer = (FrameLayout) findViewById(R.id.right_container);
mPkContainer = (ViewGroup) findViewById(R.id.pk_container);
mCameraFront = true;
String mBeautySdkType = CommonAppConfig.getInstance().getBeautySdkType();
diff --git a/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java
index 2fe06d5bf..fdf3883ba 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveAudienceViewHolder.java
@@ -68,6 +68,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Random;
+import io.agora.beautyapi.faceunity.agora.SWAuManager;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
@@ -103,7 +104,6 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
initLittlePanda();
}
-
@Override
protected int getLayoutId() {
return R.layout.view_live_audience;
@@ -791,6 +791,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
* 退出直播间
*/
private void close() {
+ SWAuManager.get().exitChannelAll();
handler.removeCallbacks(runnable);
handler1.removeCallbacks(runnable1);
((LiveAudienceActivity) mContext).onBackPressed();
diff --git a/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java
index 727b38003..fd8598955 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveEndViewHolder.java
@@ -37,6 +37,7 @@ import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAnchorActivity;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
+import com.yunbao.live.activity.LiveSwAnchorActivity;
import com.yunbao.live.adapter.SearchRecommendBodyAdapter;
import com.yunbao.live.event.JumpUserHomeEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
@@ -230,13 +231,12 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
goHomeUser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (mContext instanceof LiveAnchorActivity) {
- ((LiveAnchorActivity) mContext).superBackPressed();
+ if (mContext instanceof LiveRyAnchorActivity) {
+ ((LiveRyAnchorActivity) mContext).superBackPressed();
} else if (mContext instanceof LiveAudienceActivity) {
((LiveAudienceActivity) mContext).exitLiveRoom();
- } else if (mContext instanceof LiveRyAnchorActivity) {
- ((LiveRyAnchorActivity) mContext).superBackPressed();
-
+ } else if (mContext instanceof LiveSwAnchorActivity) {
+ ((LiveSwAnchorActivity) mContext).superBackPressed();
}
Bus.get().post(new CloseEvent());
}
@@ -262,13 +262,12 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (mContext instanceof LiveAnchorActivity) {
- ((LiveAnchorActivity) mContext).superBackPressed();
+ if (mContext instanceof LiveRyAnchorActivity) {
+ ((LiveRyAnchorActivity) mContext).superBackPressed();
} else if (mContext instanceof LiveAudienceActivity) {
((LiveAudienceActivity) mContext).exitLiveRoom();
- } else if (mContext instanceof LiveRyAnchorActivity) {
- ((LiveRyAnchorActivity) mContext).superBackPressed();
-
+ } else if (mContext instanceof LiveSwAnchorActivity) {
+ ((LiveSwAnchorActivity) mContext).superBackPressed();
}
Bus.get().post(new CloseEvent());
}
@@ -365,9 +364,10 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
((LiveAnchorActivity) mContext).superBackPressed();
} else if (mContext instanceof LiveAudienceActivity) {
((LiveAudienceActivity) mContext).exitLiveRoom();
- } else if (mContext instanceof LiveRyAnchorActivity) {
+ } else if (mContext instanceof LiveSwAnchorActivity) {
+ ((LiveSwAnchorActivity) mContext).superBackPressed();
+ }else if(mContext instanceof LiveRyAnchorActivity){
((LiveRyAnchorActivity) mContext).superBackPressed();
-
}
Bus.get().post(new CloseEvent());
}
@@ -424,7 +424,7 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
if (liveBean == null) {
return;
}
@@ -448,7 +448,9 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
((LiveAnchorActivity) mContext).superBackPressed();
} else if (mContext instanceof LiveAudienceActivity) {
((LiveAudienceActivity) mContext).exitLiveRoom();
- } else if (mContext instanceof LiveRyAnchorActivity) {
+ } else if (mContext instanceof LiveSwAnchorActivity) {
+ ((LiveSwAnchorActivity) mContext).superBackPressed();
+ }else if(mContext instanceof LiveRyAnchorActivity){
((LiveRyAnchorActivity) mContext).superBackPressed();
}
}
diff --git a/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java
index c40b07bf1..3d25e452b 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveNewReadyRyViewHolder.java
@@ -941,7 +941,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
return;
}
String title = mEditTitle.getText().toString().trim();
- LiveHttpUtil.newcreateRoom(title, mLiveClassID, mLiveType, mLiveTypeVal, mAvatarFile, IMLoginManager.get(mContext).getSelectClarity() + 1, new HttpCallback() {
+ LiveHttpUtil.newcreateRoom(title, mLiveClassID, mLiveType, mLiveTypeVal, mAvatarFile, IMLoginManager.get(mContext).getSelectClarity() + 1, false,new HttpCallback() {
@Override
public void onSuccess(int code, String msg, final String[] info) {
if (code == 0 && info.length > 0) {
diff --git a/live/src/main/java/com/yunbao/live/views/LiveNewReadySwViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveNewReadySwViewHolder.java
new file mode 100644
index 000000000..44a9a4d5d
--- /dev/null
+++ b/live/src/main/java/com/yunbao/live/views/LiveNewReadySwViewHolder.java
@@ -0,0 +1,963 @@
+package com.yunbao.live.views;
+
+import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.WISH_LIST_UPDATE;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.text.Html;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.core.content.ContextCompat;
+
+import com.lxj.xpopup.XPopup;
+import com.lxj.xpopup.core.BasePopupView;
+import com.lxj.xpopup.interfaces.XPopupCallback;
+import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.Constants;
+import com.yunbao.common.bean.IMLoginModel;
+import com.yunbao.common.bean.LiveAnchorCallMeModel;
+import com.yunbao.common.bean.LiveAnchorSayModel;
+import com.yunbao.common.bean.LiveClassBean;
+import com.yunbao.common.bean.LiveRoomTypeBean;
+import com.yunbao.common.bean.UserBean;
+import com.yunbao.common.event.LivePushRyEvent;
+import com.yunbao.common.glide.ImgLoader;
+import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.http.LiveHttpConsts;
+import com.yunbao.common.http.LiveHttpUtil;
+import com.yunbao.common.interfaces.CommonCallback;
+import com.yunbao.common.interfaces.ImageResultCallback;
+import com.yunbao.common.interfaces.OnItemClickListener;
+import com.yunbao.common.manager.IMLoginManager;
+import com.yunbao.common.utils.Bus;
+import com.yunbao.common.utils.DialogUitl;
+import com.yunbao.common.utils.L;
+import com.yunbao.common.utils.ProcessImageUtil;
+import com.yunbao.common.utils.RouteUtil;
+import com.yunbao.common.utils.StringUtil;
+import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
+import com.yunbao.common.views.AbsViewHolder;
+import com.yunbao.common.views.LiveClarityCustomPopup;
+import com.yunbao.common.views.LiveNewWishListPopup;
+import com.yunbao.common.views.LiveOpenCustomPopup;
+import com.yunbao.common.views.LiveRobotSettingCustomPopup;
+import com.yunbao.common.views.weight.ViewClicksAntiShake;
+import com.yunbao.faceunity.FaceManager;
+import com.yunbao.live.R;
+import com.yunbao.live.activity.LiveActivity;
+import com.yunbao.live.activity.LiveSwAnchorActivity;
+import com.yunbao.live.dialog.LiveAnchorEditCallMeDialog;
+import com.yunbao.live.dialog.LiveAnchorSayPopDialog;
+import com.yunbao.live.dialog.LiveFaceUnityDialogFragment;
+import com.yunbao.live.dialog.LiveFaceUnityDialogNewFragment;
+import com.yunbao.live.dialog.LiveNewRoomClassDialogFragment;
+import com.yunbao.live.dialog.LiveNewRoomTypeDialogFragment;
+import com.yunbao.live.dialog.LiveTimeDialogFragment;
+import com.yunbao.live.event.LiveAudienceEvent;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.io.File;
+import java.util.Locale;
+
+import io.agora.beautyapi.faceunity.agora.SWManager;
+
+public class LiveNewReadySwViewHolder extends AbsViewHolder implements View.OnClickListener {
+
+ private ConstraintLayout mAvatar, mRootView;
+ private TextView mCoverText;
+ private EditText mEditTitle;
+ private ProcessImageUtil mImageUtil;
+ private File mAvatarFile;
+ private TextView mLiveClass, anchorAgreement;
+ private TextView mLiveTypeTextView, liveClarity;//房间类型TextView
+ private TextView mLiveWishListTextView;//心愿单TextView
+ private int mLiveClassID;//直播频道id
+ private int mLiveType;//房间类型
+ private int mLiveTypeVal;//房间密码,门票收费金额
+ private int mLiveTimeCoin;//计时收费金额
+ private boolean mOpenLocation = true;
+ private int mLiveSdk;
+ private LiveClassBean classBean;
+ private FaceManager manager;
+ private TextView faceTextView;//提示人脸未检测到的TextView
+ private ImageView imgClarity, selectorProtocol;
+ private int selectClarity = 1;
+ private LiveOpenCustomPopup liveOpenCustomPopup;
+ private boolean selector = true;
+ private String mLiveUid;
+
+ public LiveNewReadySwViewHolder(Context context, ViewGroup parentView, int liveSdk) {
+ super(context, parentView, liveSdk);
+ }
+
+ @Override
+ protected void processArguments(Object... args) {
+ if (args.length > 0) {
+ mLiveSdk = (int) args[0];
+ }
+ }
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.view_new_live_ready;
+ }
+
+ @Override
+ public void init() {
+ mRootView = (ConstraintLayout) findViewById(R.id.traceroute_rootview);
+ imgClarity = (ImageView) findViewById(R.id.img_clarity);
+ selectorProtocol = (ImageView) findViewById(R.id.selector_protocol);
+ liveClarity = (TextView) findViewById(R.id.live_clarity);
+ anchorAgreement = (TextView) findViewById(R.id.anchor_agreement);
+ mRootView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ InputMethodManager imm = (InputMethodManager)
+ mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
+ }
+ });
+
+ mAvatar = (ConstraintLayout) findViewById(R.id.avatar);
+ mAvatar.setOnClickListener(this);
+ UserBean u = CommonAppConfig.getInstance().getUserBean();
+ ImgLoader.displayDrawable(mContext, u.getAvatar(), new ImgLoader.DrawableCallback() {
+ @Override
+ public void onLoadSuccess(Drawable drawable) {
+ mAvatar.setBackground(drawable);
+ }
+
+ @Override
+ public void onLoadFailed() {
+
+ }
+ });
+ mCoverText = (TextView) findViewById(R.id.cover_text);
+ mEditTitle = (EditText) findViewById(R.id.edit_title);
+ findViewById(R.id.btn_room_type).setOnClickListener(this);
+ mOpenLocation = true;
+ mLiveClass = (TextView) findViewById(R.id.live_class);
+ mLiveTypeTextView = (TextView) findViewById(R.id.text_room_type);
+ mLiveWishListTextView = (TextView) findViewById(R.id.text_wishlist);
+ faceTextView = (TextView) findViewById(R.id.faceTextView);
+
+ mImageUtil = ((LiveActivity) mContext).getProcessImageUtil();
+ mImageUtil.setImageResultCallback(new ImageResultCallback() {
+
+ @Override
+ public void beforeCamera() {
+ ((LiveSwAnchorActivity) mContext).beforeCamera();
+ }
+
+ @Override
+ public void onSuccess(File file) {
+ if (file != null) {
+ ImgLoader.displayFileDrawable(mContext, file, new ImgLoader.DrawableCallback() {
+ @Override
+ public void onLoadSuccess(Drawable drawable) {
+ mAvatar.setBackground(drawable);
+ }
+
+ @Override
+ public void onLoadFailed() {
+
+ }
+ });
+ if (mAvatarFile == null) {
+ mCoverText.setText(mContext.getString(R.string.live_cover_2));
+ mCoverText.setBackground(ContextCompat.getDrawable(mContext, R.drawable.bg_live_cover));
+ }
+ mAvatarFile = file;
+ }
+ }
+
+ @Override
+ public void onFailure() {
+ }
+ });
+ findViewById(R.id.btn_camera).setOnClickListener(this);
+ findViewById(R.id.btn_live_class).setOnClickListener(this);
+ findViewById(R.id.btn_close).setOnClickListener(this);
+ findViewById(R.id.btn_beauty).setOnClickListener(this);
+ findViewById(R.id.btn_robot).setOnClickListener(this);
+ findViewById(R.id.btn_start_live).setOnClickListener(this);
+ findViewById(R.id.btn_wishlist).setOnClickListener(this);
+ findViewById(R.id.btn_horizontally).setOnClickListener(this);
+ findViewById(R.id.anchor_agreement_layout).setOnClickListener(this);
+ findViewById(R.id.btn_live_anchor_say).setOnClickListener(this);
+ findViewById(R.id.btn_live_anchor_call_me).setOnClickListener(this);
+
+ if (manager != null) {
+ manager.setFaceStatusChanged(new FaceManager.FaceStatusChanged() {
+ final Handler handler = new Handler(Looper.getMainLooper());
+
+ @Override
+ public void onFaceChanged(int num) {
+ handler.post(() -> {
+ if (num == 0) {
+ faceTextView.setVisibility(View.VISIBLE);
+ } else {
+ faceTextView.setVisibility(View.GONE);
+ }
+ });
+ }
+ });
+ //新美颜
+ setFaceUnity(true);
+
+ }
+ //设置清晰度
+// DeviceUtils.getMemory(mContext); //获取可用内存
+// DeviceUtils.getNetSpeed(mContext);//获取当前上传网速
+// Log.e("网速和内存", "内存:" + + " 网速:" + DeviceUtils.getNetSpeed(mContext));
+
+ IMLoginManager.get(mContext).setSelectClarity(selectClarity);
+ //setSelectClarity(IMLoginManager.get(mContext).getSelectClarity());
+ ViewClicksAntiShake
+ .clicksAntiShake(
+ findViewById(R.id.btn_live_clarity), () -> {
+
+ LiveClarityCustomPopup liveClarityCustomPopup =
+ new LiveClarityCustomPopup(mContext,
+ IMLoginManager.get(mContext).getSelectClarity(),
+ IMLoginManager.get(mContext).getClarity() ? 0 : LiveClarityCustomPopup.BAN_1080, false);
+ new XPopup.Builder(mContext)
+ .setPopupCallback(new XPopupCallback() {
+ @Override
+ public void onCreated(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void beforeShow(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void onShow(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void onDismiss(BasePopupView popupView) {
+ setSelectClarity(liveClarityCustomPopup.getSelectClarity());
+ }
+
+ @Override
+ public void beforeDismiss(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public boolean onBackPressed(BasePopupView popupView) {
+ return false;
+ }
+
+ @Override
+ public void onKeyBoardStateChanged(BasePopupView popupView, int height) {
+
+ }
+
+ @Override
+ public void onDrag(BasePopupView popupView, int value, float percent, boolean upOrLeft) {
+
+ }
+
+ @Override
+ public void onClickOutside(BasePopupView popupView) {
+
+ }
+ })
+ .asCustom(liveClarityCustomPopup)
+ .show();
+ });
+ String keywordHtml2 = "" + mContext.getString(R.string.anchor_hint) + "";
+ String contextHtml = "" + mContext.getString(R.string.anchor_agreement) + "";
+ anchorAgreement.setText(Html.fromHtml(contextHtml + keywordHtml2));
+ selectorProtocol.setPressed(true);
+ selectorProtocol.setSelected(true);
+ selector = selectorProtocol.isSelected();
+ selectorProtocol.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ selector = !selector;
+ selectorProtocol.setSelected(selector);
+ }
+ });
+ }
+
+ private void setSelectClarity(int selectClarity) {
+ this.selectClarity = selectClarity;
+ IMLoginManager.get(mContext).setSelectClarity(selectClarity);
+ switch (selectClarity) {
+ case 0:
+ imgClarity.setImageResource(R.mipmap.icon_sd);
+ liveClarity.setText(R.string.standard_clear);
+ break;
+ case 1:
+ imgClarity.setImageResource(R.mipmap.icon_hd);
+ liveClarity.setText(R.string.high_definition);
+ break;
+ case 2:
+ imgClarity.setImageResource(R.mipmap.icon_fhd);
+ liveClarity.setText(R.string.ultra_hd);
+ break;
+ }
+ if (liveOpenCustomPopup != null) {
+ liveOpenCustomPopup.setSelectClarity(selectClarity);
+ }
+ //SWManager.get().setDimensions(selectClarity);
+ Log.e("切换分辨率", "时间戳" + System.currentTimeMillis());
+ //重新发布一下流
+ Bus.get().post(new LivePushRyEvent());
+ }
+
+ public void setManager(FaceManager manager) {
+ this.manager = manager;
+ }
+
+
+ @Override
+ public void onClick(View v) {
+ if (!canClick()) {
+ return;
+ }
+ int i = v.getId();
+ if (i == R.id.avatar) {
+ setAvatar();
+
+ } else if (i == R.id.btn_camera) {
+ toggleCamera();
+ } else if (i == R.id.btn_close) {
+ close();
+ } else if (i == R.id.btn_live_class) {
+ chooseLiveClass();
+ } else if (i == R.id.btn_beauty) {
+ //beauty();//momo美颜
+ setFaceUnity(false); //新娱美颜
+ } else if (i == R.id.btn_wishlist) {
+ //点击心愿单
+ openWishListWindow();
+ } else if (i == R.id.btn_room_type) {
+ chooseLiveType();
+ } else if (i == R.id.btn_start_live) {
+ if (!selector) {
+ ToastUtil.show(mContext.getString(R.string.anchor_agreement_hint));
+ return;
+ }
+ if (mLiveClassID == 0) {
+ ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class));
+ return;
+ }
+// startLive();
+ liveOpenCustomPopup = new LiveOpenCustomPopup(mContext, IMLoginManager.get(mContext).getSelectClarity(), classBean, liveRoomTypeBean)
+ .setSayStatus(IMLoginManager.get(mContext).getAnchorSayStatus())
+ .setCallMeStatus(IMLoginManager.get(mContext).getAnchorCallStatus())
+ .setCallBack(new LiveOpenCustomPopup.LiveOpenCallBack() {
+ @Override
+
+ public void startLive(LiveRoomTypeBean liveRoomTypeModel, LiveClassBean classModel) {
+ if (classModel != null) {
+ classBean = classModel;
+ mLiveClassID = classBean.getId();
+ }
+ liveRoomTypeBean = liveRoomTypeModel;
+ mLiveType = liveRoomTypeModel.getId();
+ startLiveInit();
+ liveOpenCustomPopup = null;
+ }
+
+ @Override
+ public void selectClarity(int selectClarity) {
+ LiveClarityCustomPopup liveClarityCustomPopup =
+ new LiveClarityCustomPopup(mContext,
+ IMLoginManager.get(mContext).getSelectClarity(),
+ IMLoginManager.get(mContext).getClarity() ? 0 : LiveClarityCustomPopup.BAN_1080, false);
+ new XPopup.Builder(mContext)
+ .setPopupCallback(new XPopupCallback() {
+ @Override
+ public void onCreated(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void beforeShow(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void onShow(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void onDismiss(BasePopupView popupView) {
+ setSelectClarity(liveClarityCustomPopup.getSelectClarity());
+ }
+
+ @Override
+ public void beforeDismiss(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public boolean onBackPressed(BasePopupView popupView) {
+ return false;
+ }
+
+ @Override
+ public void onKeyBoardStateChanged(BasePopupView popupView, int height) {
+
+ }
+
+ @Override
+ public void onDrag(BasePopupView popupView, int value, float percent, boolean upOrLeft) {
+
+ }
+
+ @Override
+ public void onClickOutside(BasePopupView popupView) {
+
+ }
+ })
+ .asCustom(liveClarityCustomPopup)
+ .show();
+ }
+
+ @Override
+ public void openRobot() {
+ LiveRobotSettingCustomPopup liveRobotSettingCustomPopup = new LiveRobotSettingCustomPopup(mContext);
+ new XPopup.Builder(mContext)
+ .setPopupCallback(new XPopupCallback() {
+ @Override
+ public void onCreated(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void beforeShow(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void onShow(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void onDismiss(BasePopupView popupView) {
+ if (liveOpenCustomPopup != null) {
+ liveOpenCustomPopup.initDate();
+ }
+ }
+
+ @Override
+ public void beforeDismiss(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public boolean onBackPressed(BasePopupView popupView) {
+ return false;
+ }
+
+ @Override
+ public void onKeyBoardStateChanged(BasePopupView popupView, int height) {
+
+ }
+
+ @Override
+ public void onDrag(BasePopupView popupView, int value, float percent, boolean upOrLeft) {
+
+ }
+
+ @Override
+ public void onClickOutside(BasePopupView popupView) {
+
+ }
+ })
+ .asCustom(liveRobotSettingCustomPopup)
+ .show();
+ }
+
+ @Override
+ public void openLiveRoomType(LiveRoomTypeBean liveRoomTypeModel) {
+ liveRoomTypeBean = liveRoomTypeModel;
+ mLiveType = liveRoomTypeModel.getId();
+ chooseLiveType();
+ }
+
+ @Override
+ public void openLiveClass(LiveClassBean classModel) {
+ if (classModel != null) {
+ classBean = classModel;
+ mLiveClassID = classBean.getId();
+ }
+ chooseLiveClass();
+ }
+
+ @Override
+ public void openWishlist() {
+ //点击心愿单
+ openWishListWindow();
+ }
+
+ @Override
+ public void openAnchorSay() {
+ openAnchorSayDialog();
+ }
+
+ @Override
+ public void openCallMe() {
+ openAnchorCallMeDialog();
+ }
+ });
+ new XPopup.Builder(mContext)
+ .asCustom(liveOpenCustomPopup)
+ .show();
+ } else if (i == R.id.btn_locaiton) {
+ switchLocation();
+ } else if (i == R.id.btn_horizontally) {
+ SWManager.get().setMirrorMode();
+ } else if (i == R.id.btn_robot) {
+ new XPopup.Builder(mContext)
+ .asCustom(new LiveRobotSettingCustomPopup(mContext))
+ .show();
+ } else if (i == R.id.anchor_agreement_layout) {
+ String ct = Locale.getDefault().getLanguage();
+ IMLoginModel model = IMLoginManager.get(mContext).getUserInfo();
+ StringBuffer url = new StringBuffer();
+ url.append(CommonAppConfig.HOST);
+ if (TextUtils.equals(ct, "zh")) {
+ url.append("/index.php?g=portal&m=page&a=index&id=671");
+ } else {
+ url.append("/index.php?g=portal&m=page&a=index&id=672");
+ }
+ url.append("&uid=")
+ .append(model.getId())
+ .append("&token=")
+ .append(model.getToken()).append("&isZh=")
+ .append(WordUtil.isNewZh() ? "1" : 0);
+ RouteUtil.forwardLiveZhuangBanActivity(url.toString(), false);
+ } else if (i == R.id.btn_live_anchor_say) {
+ openAnchorSayDialog();
+ } else if (i == R.id.btn_live_anchor_call_me) {
+ openAnchorCallMeDialog();
+ }
+ }
+
+ /**
+ * 新娱美颜
+ */
+ public void setFaceUnity(boolean init) {
+ LiveFaceUnityDialogFragment fragment = new LiveFaceUnityDialogFragment(mContext);
+ fragment.setManager(manager);
+ fragment.setDismissShowUi(mRootView);
+ if (mContext instanceof LiveSwAnchorActivity) {
+ fragment.show(((LiveSwAnchorActivity) mContext).getSupportFragmentManager(), "FaceUnity");
+ mRootView.setVisibility(View.INVISIBLE);
+ if (init) {
+ fragment.dismiss();
+ }
+ }
+ }
+
+ public void setFaceUnityNew(boolean init){
+ LiveFaceUnityDialogNewFragment fragment = new LiveFaceUnityDialogNewFragment(mContext);
+ fragment.setManager(manager);
+ fragment.setDismissShowUi(mRootView);
+ if (mContext instanceof LiveSwAnchorActivity) {
+ fragment.show(((LiveSwAnchorActivity) mContext).getSupportFragmentManager(), "FaceUnity");
+ mRootView.setVisibility(View.INVISIBLE);
+ if (init) {
+ fragment.dismiss();
+ }
+ }
+ }
+
+
+ /**
+ * 打开心愿单窗口
+ */
+ public void openWishListWindow() {
+// LiveNewWishListDialogFragment fragment = new LiveNewWishListDialogFragment();
+//
+// if (mContext instanceof LiveRyAnchorActivity) {
+// fragment.show(((LiveRyAnchorActivity) mContext).getSupportFragmentManager(), "RY");
+//
+// }
+ new XPopup.Builder(mContext)
+ .enableDrag(false)
+ .asCustom(new LiveNewWishListPopup((LiveSwAnchorActivity) mContext))
+ .show();
+ }
+
+ public void openAnchorSayDialog() {
+ new LiveAnchorSayPopDialog(mContext).setLiveUid(mLiveUid).setOnItemClickListener(new OnItemClickListener() {
+ @Override
+ public void onItemClick(LiveAnchorSayModel bean, int position) {
+ if (liveOpenCustomPopup != null) {
+ liveOpenCustomPopup.setSayStatus(bean.getLivePreview().getIsShow() == 1);
+ }
+ }
+ }).showDialog();
+ }
+
+ public void openAnchorCallMeDialog() {
+ new LiveAnchorEditCallMeDialog(mContext).setLiveUid(mLiveUid).setOnItemClickListener(new OnItemClickListener() {
+ @Override
+ public void onItemClick(LiveAnchorCallMeModel bean, int position) {
+ if (liveOpenCustomPopup != null) {
+ liveOpenCustomPopup.setCallMeStatus(bean.getIsShow() == 1);
+ }
+ }
+ }).showDialog();
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void updateStart(LiveAudienceEvent event) {
+ if (event.getType() == WISH_LIST_UPDATE) {
+ if (liveOpenCustomPopup != null) {
+ liveOpenCustomPopup.initDate();
+ }
+ }
+ }
+
+ /**
+ * 打开 关闭位置
+ */
+ private void switchLocation() {
+ if (mOpenLocation) {
+ new DialogUitl.Builder(mContext)
+ .setContent(mContext.getString(R.string.live_location_close_3))
+ .setCancelable(true)
+ .setConfirmString(mContext.getString(R.string.live_location_close_2))
+ .setClickCallback(new DialogUitl.SimpleCallback() {
+
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ toggleLocation();
+ }
+ })
+ .build()
+ .show();
+ } else {
+ toggleLocation();
+ }
+ }
+
+ private void toggleLocation() {
+ mOpenLocation = !mOpenLocation;
+ }
+
+ /**
+ * 设置头像
+ */
+ private void setAvatar() {
+ if (mLiveSdk == Constants.LIVE_SDK_TX) {
+ mImageUtil.getImageByAlumb();
+ } else {
+ DialogUitl.showStringArrayDialog(mContext, new Integer[]{
+ R.string.camera, R.string.alumb}, new DialogUitl.StringArrayDialogCallback() {
+ @Override
+ public void onItemClick(String text, int tag) {
+ if (tag == R.string.camera) {
+ mImageUtil.getImageByCamera();
+ } else {
+ mImageUtil.getImageByAlumb();
+ }
+ }
+ });
+ }
+ }
+
+ /**
+ * 切换镜头
+ */
+ private void toggleCamera() {
+ ((LiveSwAnchorActivity) mContext).toggleCamera();
+ }
+
+ /**
+ * 关闭
+ */
+ private void close() {
+ ((LiveSwAnchorActivity) mContext).endLives();
+ }
+
+ /**
+ * 选择直播频道
+ */
+ private void chooseLiveClass() {
+ /* try {
+ Intent intent = new Intent(mContext, LiveChooseClassActivity.class);
+ intent.putExtra(Constants.CLASS_ID, mLiveClassID);
+ mImageUtil.startActivityForResult(intent, mActivityResultCallback);
+ }catch (Exception e){
+
+ }*/
+
+ Bundle bundle = new Bundle();
+ bundle.putInt(Constants.CLASS_ID, mLiveClassID);
+ LiveNewRoomClassDialogFragment fragment = new LiveNewRoomClassDialogFragment();
+ fragment.setArguments(bundle);
+ fragment.setCallback(new CommonCallback() {
+ @Override
+ public void callback(LiveClassBean bean) {
+ classBean = bean;
+ mLiveClassID = classBean.getId();
+ mLiveClass.setText(bean.getName());
+ if (liveOpenCustomPopup != null) {
+ liveOpenCustomPopup.setClassBean(classBean);
+ }
+ }
+ });
+ fragment.show(((LiveSwAnchorActivity) mContext).getSupportFragmentManager(), "LiveRoomTypeDialogFragment");
+
+ }
+
+ /**
+ * 设置美颜
+ */
+ private void beauty() {
+ ((LiveSwAnchorActivity) mContext).beauty();
+ // Intent intent = new Intent(mContext, Beauty360Activity3.class);
+ // mContext.startActivity(intent);
+
+ }
+
+ /**
+ * 选择直播类型
+ */
+ private LiveRoomTypeBean liveRoomTypeBean = new LiveRoomTypeBean(0, mContext.getString(R.string.live_room_public));
+
+ private void chooseLiveType() {
+ Bundle bundle = new Bundle();
+ bundle.putInt(Constants.CHECKED_ID, mLiveType);
+ LiveNewRoomTypeDialogFragment fragment = new LiveNewRoomTypeDialogFragment();
+ fragment.setArguments(bundle);
+ fragment.setCallback(new CommonCallback() {
+ @Override
+ public void callback(LiveRoomTypeBean bean) {
+ liveRoomTypeBean = bean;
+ switch (bean.getId()) {
+ case Constants.LIVE_TYPE_NORMAL:
+ onLiveTypeNormal(bean);
+ break;
+ case Constants.LIVE_TYPE_PWD:
+ onLiveTypePwd(bean);
+ break;
+ case Constants.LIVE_TYPE_PAY:
+ onLiveTypePay(bean);
+ break;
+ case Constants.LIVE_TYPE_TIME:
+ onLiveTypeTime(bean);
+ break;
+ }
+ if (liveOpenCustomPopup != null) {
+ liveOpenCustomPopup.setLiveRoomTypeBean(liveRoomTypeBean);
+ }
+ }
+ });
+ fragment.show(((LiveSwAnchorActivity) mContext).getSupportFragmentManager(), "LiveRoomTypeDialogFragment");
+ }
+
+ /**
+ * 普通房间
+ */
+ private void onLiveTypeNormal(LiveRoomTypeBean bean) {
+ mLiveType = bean.getId();
+ mLiveTypeTextView.setText(bean.getName());
+ mLiveTypeVal = 0;
+ mLiveTimeCoin = 0;
+ }
+
+ /**
+ * 密码房间
+ */
+ private void onLiveTypePwd(final LiveRoomTypeBean bean) {
+ DialogUitl.showSimpleInputDialog(mContext, mContext.getString(R.string.live_set_pwd), DialogUitl.INPUT_TYPE_NUMBER_PASSWORD, 8, new DialogUitl.SimpleCallback() {
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ if (TextUtils.isEmpty(content)) {
+ ToastUtil.show(mContext.getString(R.string.live_set_pwd_empty));
+ } else {
+ mLiveType = bean.getId();
+ mLiveTypeTextView.setText(WordUtil.isNewZh() ? "密碼房" : "password room");
+ if (StringUtil.isInt(content)) {
+ mLiveTypeVal = Integer.parseInt(content);
+ }
+ mLiveTimeCoin = 0;
+ dialog.dismiss();
+ }
+ }
+ });
+ }
+
+ /**
+ * 付费房间
+ */
+ private void onLiveTypePay(final LiveRoomTypeBean bean) {
+ DialogUitl.showSimpleInputDialog(mContext, mContext.getString(R.string.live_set_fee), DialogUitl.INPUT_TYPE_NUMBER, 8, new DialogUitl.SimpleCallback() {
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ if (TextUtils.isEmpty(content)) {
+ ToastUtil.show(mContext.getString(R.string.live_set_fee_empty));
+ } else {
+ mLiveType = bean.getId();
+ mLiveTypeTextView.setText(bean.getName());
+ if (StringUtil.isInt(content)) {
+ mLiveTypeVal = Integer.parseInt(content);
+ }
+ mLiveTimeCoin = 0;
+ dialog.dismiss();
+ }
+ }
+ });
+ }
+
+ /**
+ * 计时房间
+ */
+ private void onLiveTypeTime(final LiveRoomTypeBean bean) {
+ LiveTimeDialogFragment fragment = new LiveTimeDialogFragment();
+ Bundle bundle = new Bundle();
+ bundle.putInt(Constants.CHECKED_COIN, mLiveTimeCoin);
+ fragment.setArguments(bundle);
+ fragment.setCommonCallback(new CommonCallback() {
+ @Override
+ public void callback(Integer coin) {
+ mLiveType = bean.getId();
+ mLiveTypeTextView.setText(bean.getName());
+ mLiveTypeVal = coin;
+ mLiveTimeCoin = coin;
+ }
+ });
+ fragment.show(((LiveSwAnchorActivity) mContext).getSupportFragmentManager(), "LiveTimeDialogFragment");
+ }
+
+ public void hide() {
+ if (mContentView != null && mContentView.getVisibility() == View.VISIBLE) {
+ mContentView.setVisibility(View.INVISIBLE);
+ }
+ }
+
+
+ public void show() {
+ if (mContentView != null && mContentView.getVisibility() != View.VISIBLE) {
+ mContentView.setVisibility(View.VISIBLE);
+ }
+ }
+
+ /**
+ * 点击开始直播按钮
+ */
+ private void startLiveInit() {
+ if (isWifiProxy(mContext) || checkVPN((ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE))) {
+ ToastUtil.show(WordUtil.isNewZh()?"檢測開啓了VPN或者代理,請先關閉VPN或者代理再開播。":
+ "It is detected that VPN or proxy is turned on. Please turn off VPN or proxy before starting the broadcast.");
+ } else {
+ boolean startPreview = ((LiveSwAnchorActivity) mContext).isStartPreview();
+// if (!startPreview) {
+// ToastUtil.show(R.string.please_wait);
+// return;
+// }
+ if (mLiveClassID == 0) {
+ ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class));
+ return;
+ }
+ createRoom();
+ }
+ }
+
+ private boolean isWifiProxy(Context context) {
+ final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
+ String proxyAddress;
+ int proxyPort;
+ if (IS_ICS_OR_LATER) {
+ proxyAddress = System.getProperty("http.proxyHost");
+ String portStr = System.getProperty("http.proxyPort");
+ proxyPort = Integer.parseInt((portStr != null ? portStr : "-1"));
+ } else {
+ proxyAddress = android.net.Proxy.getHost(context);
+ proxyPort = android.net.Proxy.getPort(context);
+ }
+ return (!TextUtils.isEmpty(proxyAddress)) && (proxyPort != -1);
+ }
+
+ private boolean checkVPN(ConnectivityManager connMgr) {
+ //don't know why always returns null:
+ NetworkInfo networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_VPN);
+ boolean isVpnConn = networkInfo == null ? false : networkInfo.isConnected();
+ return isVpnConn;
+ }
+
+ /**
+ * 请求创建直播间接口,开始直播
+ */
+ boolean isHttpBack = false;
+
+ private void createRoom() {
+ if (!isHttpBack) {
+ isHttpBack = true;
+ if (mLiveClassID == 0) {
+ ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class));
+ return;
+ }
+ String title = mEditTitle.getText().toString().trim();
+ LiveHttpUtil.newcreateRoom(title, mLiveClassID, mLiveType, mLiveTypeVal, mAvatarFile, IMLoginManager.get(mContext).getSelectClarity() + 1,true, new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, final String[] info) {
+ if (code == 0 && info.length > 0) {
+ L.e("开播", "createRoom------->" + info[0]);
+ isHttpBack = false;
+ final CommonAppConfig appConfig = CommonAppConfig.getInstance();
+ UserBean u = appConfig.getUserBean();
+ ((LiveSwAnchorActivity) mContext).startLiveSuccess(info[0], mLiveType, mLiveTypeVal);
+ } else {
+ ToastUtil.show(msg);
+ }
+ }
+
+ @Override
+ public void onError() {
+ super.onError();
+ isHttpBack = false;
+ }
+ });
+ } else {
+ ToastUtil.show("請求中,請勿重複點擊");
+ }
+ }
+
+ public void release() {
+ mImageUtil = null;
+ }
+
+ @Override
+ public void onDestroy() {
+ LiveHttpUtil.cancel(LiveHttpConsts.CREATE_ROOM);
+ }
+
+ public void setLiveUid(String mLiveUid) {
+ this.mLiveUid = mLiveUid;
+ }
+}
diff --git a/live/src/main/java/com/yunbao/live/views/LivePlayKsyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePlayKsyViewHolder.java
index 4dc373b50..546f26826 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePlayKsyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePlayKsyViewHolder.java
@@ -15,6 +15,7 @@ import com.tencent.live2.V2TXLiveDef;
import com.tencent.live2.V2TXLivePlayer;
import com.tencent.live2.impl.V2TXLivePlayerImpl;
import com.tencent.rtmp.ui.TXCloudVideoView;
+import com.yunbao.common.bean.UserBean;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.L;
@@ -48,7 +49,6 @@ public class LivePlayKsyViewHolder extends LiveRoomPlayViewHolder {
public static int landscape; //1h 2s
public static Context contexts;
-
int screenWidth; // 屏幕宽(像素,如:480px)
int screenHeight; // 屏幕高(像素,如:800p)
@@ -68,7 +68,7 @@ public class LivePlayKsyViewHolder extends LiveRoomPlayViewHolder {
@Override
protected int getLayoutId() {
- return R.layout.view_live_play_ksy;
+ return R.layout.view_live_play_sw;
}
@Override
@@ -254,11 +254,55 @@ public class LivePlayKsyViewHolder extends LiveRoomPlayViewHolder {
}
}
+ @Override
+ public void setDrMicInfo(UserBean u) {
+ }
+
@Override
public void setLiveBeanLandscape(int landscape) {
LivePlayKsyViewHolder.landscape =landscape;
}
+ @Override
+ public void endPk() {
+
+ }
+
+ @Override
+ public void endpk(String liveUid) {
+
+ }
+
+ @Override
+ public void initSwEngine(String liveUid) {
+
+ }
+
+ @Override
+ public void removeLiveUid(String uid) {
+
+ }
+
+ @Override
+ public void removeDetailView() {
+
+ }
+
+ @Override
+ public void setPkView(String liveUid) {
+
+ }
+
+ @Override
+ public void claerDrPkInfoView() {
+
+ }
+
+ @Override
+ public void endLiveMic() {
+
+ }
+
@Override
public ViewGroup getSmallContainer() {
diff --git a/live/src/main/java/com/yunbao/live/views/LivePlayListener.java b/live/src/main/java/com/yunbao/live/views/LivePlayListener.java
index befa67854..39359037b 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePlayListener.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePlayListener.java
@@ -12,7 +12,7 @@ public interface LivePlayListener extends LiveActivityLifeCallback {
*
* @param data 房间信息
*/
- void onAdd(LiveBean data, int liveType, int liveTypeVal, int liveSdk);
+ void onAdd(LiveBean data, int liveType, int liveTypeVal, int liveSdk,boolean isSw);
/**
* 用户滑动移除该页面
diff --git a/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
index 126ec891c..e6a66e1e7 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
@@ -31,6 +31,7 @@ import com.lxj.xpopup.interfaces.XPopupCallback;
import com.lzf.easyfloat.EasyFloat;
import com.lzy.okserver.OkDownload;
import com.yunbao.common.bean.EnterRoomNewModel;
+import com.yunbao.common.bean.UserBean;
import com.yunbao.common.dialog.LiveFontSizeSettingDialog;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
@@ -409,6 +410,26 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
mCover.requestLayout();
}
+ @Override
+ public void endPk() {
+
+ }
+
+ @Override
+ public void endpk(String liveUid) {
+
+ }
+
+ @Override
+ public void initSwEngine(String liveUid) {
+
+ }
+
+ @Override
+ public void removeLiveUid(String uid) {
+
+ }
+
@Override
public void release() {
mEnd = true;
@@ -567,6 +588,11 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
// }
}
+ @Override
+ public void setDrMicInfo(UserBean u) {
+
+ }
+
public void removeDetailView() {
// if (detailsView != null) {
// mVideoView.removeView(detailsView);
@@ -574,6 +600,21 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
// }
}
+ @Override
+ public void setPkView(String liveUid) {
+
+ }
+
+ @Override
+ public void claerDrPkInfoView() {
+
+ }
+
+ @Override
+ public void endLiveMic() {
+
+ }
+
@Override
public ViewGroup getSmallContainer() {
return mSmallContainer;
@@ -629,7 +670,10 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(DpUtil.dp2px(24), DpUtil.dp2px(24));
params.addRule(RelativeLayout.CENTER_IN_PARENT);
mLoading.setLayoutParams(params);
- mRoot.addView(mLoading);
+ System.out.println(" changeToBig changeToBig changeToBig"+mLoading.getParent());
+ if(mLoading.getParent()!=mRoot){
+ mRoot.addView(mLoading);
+ }
}
}
diff --git a/live/src/main/java/com/yunbao/live/views/LivePlaySwViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePlaySwViewHolder.java
new file mode 100644
index 000000000..8ce62f8a6
--- /dev/null
+++ b/live/src/main/java/com/yunbao/live/views/LivePlaySwViewHolder.java
@@ -0,0 +1,1093 @@
+package com.yunbao.live.views;
+
+
+import android.Manifest;
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.Color;
+import android.media.AudioManager;
+import android.os.Build;
+import android.os.Handler;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewParent;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSONObject;
+import com.google.android.exoplayer2.ui.StyledPlayerView;
+import com.google.gson.Gson;
+import com.lxj.xpopup.XPopup;
+import com.lxj.xpopup.core.BasePopupView;
+import com.lxj.xpopup.interfaces.XPopupCallback;
+import com.lzf.easyfloat.EasyFloat;
+import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.Constants;
+import com.yunbao.common.bean.BaseModel;
+import com.yunbao.common.bean.EnterRoomNewModel;
+import com.yunbao.common.bean.UserBean;
+import com.yunbao.common.dialog.LiveFontSizeSettingDialog;
+import com.yunbao.common.http.API;
+import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.http.HttpClient;
+import com.yunbao.common.http.ResponseModel;
+import com.yunbao.common.interfaces.OnItemClickListener;
+import com.yunbao.common.manager.IMLoginManager;
+import com.yunbao.common.manager.MicUserManager;
+import com.yunbao.common.manager.MicedUserManager;
+import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
+import com.yunbao.common.utils.Bus;
+import com.yunbao.common.utils.DialogUitl;
+import com.yunbao.common.utils.DpUtil;
+import com.yunbao.common.utils.L;
+import com.yunbao.common.utils.MicStatusManager;
+import com.yunbao.common.utils.ScreenDimenUtil;
+import com.yunbao.common.utils.SpUtil;
+import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
+import com.yunbao.common.views.LiveClarityCustomPopup;
+import com.yunbao.live.R;
+import com.yunbao.live.activity.LiveActivity;
+import com.yunbao.live.activity.LiveAudienceActivity;
+import com.yunbao.live.bean.DrPkbean;
+import com.yunbao.live.event.LiveAudienceEvent;
+import com.yunbao.live.socket.SocketSendBean;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.rongcloud.rtc.api.stream.RCRTCInputStream;
+import io.agora.beautyapi.faceunity.agora.SWAuManager;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.functions.Consumer;
+import io.reactivex.schedulers.Schedulers;
+import io.rong.imkit.IMCenter;
+import io.rong.imlib.IRongCallback;
+import io.rong.imlib.RongIMClient;
+import io.rong.imlib.model.Conversation;
+import io.rong.imlib.model.Message;
+import io.rong.message.TextMessage;
+
+public class LivePlaySwViewHolder extends LiveRoomPlayViewHolder {
+
+ private static final String TAG = "LivePlayViewHolder";
+ private ViewGroup mRoot;
+ private ViewGroup mSmallContainer;
+ private ViewGroup mLeftContainer;
+ private ViewGroup mRightContainer;
+ private ViewGroup mPkContainer;
+ public StyledPlayerView mVideoView;
+
+ private View mLoading, mLoading2;
+ private ImageView mCover;
+ private boolean mPaused;//是否切后台了
+ private boolean mStarted;//是否开始了播放
+ private boolean mEnd;//是否结束了播放
+ public static ImageView leave;
+
+ private boolean mPausedPlay;//是否被动暂停了播放
+ public int landscape; //1h 2s
+ public Context contexts;
+ public FrameLayout ry_view;
+
+ private static final int VIDEO_VERTICAL = 2;
+ private static final int VIDEO_HORIZONTAL = 1;
+ int videoLandscape = -1; // 视频方向,2=竖屏,1=横屏
+
+ static int vHeight;//视频高
+ private TextView debugView;
+ //private LiveExoPlayerManager mPlayer;
+ private boolean isPk = false;
+ private boolean userJoinLinkMic = false;//用户是否已加入房间
+
+ //0未申请1申请中2连麦中
+ String purl, srcUrl;
+ SWAuManager swAuManager;
+ String liveUid;
+
+ private LinearLayout dr_pk_view;
+ private FrameLayout dr1_preview;
+ private FrameLayout dr2_preview;
+ private FrameLayout dr3_preview;
+ private FrameLayout dr4_preview;
+
+ private View detailsView1, detailsView2, detailsView3, detailsView4;
+ private LinearLayout detailsLinearLayout1, detailsLinearLayout2, detailsLinearLayout3, detailsLinearLayout4;
+ private LinearLayout linearGrade1, linearGrade2, linearGrade3, linearGrade4;
+ private TextView textPkName1, textPkName2, textPkName3, textPkName4;
+ private TextView textGrade1, textGrade2, textGrade3, textGrade4;
+ private ImageView imageGrade1, imageGrade2, imageGrade3, imageGrade4;
+
+
+ public int getLandscape() {
+ return landscape;
+ }
+
+ public LivePlaySwViewHolder(Context context, ViewGroup parentView, int landscapes) {
+ super(context, parentView);
+ contexts = context;
+ landscape = landscapes;
+ Log.i("收收收", landscape + "");
+ L.eSw("liveUid:" + liveUid);
+ }
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.view_live_play_sw;
+ }
+
+ @Override
+ public void init() {
+ Log.i(TAG, "init: 初始化播放器ViewHolder");
+ EventBus.getDefault().register(this);
+ Bus.getOn(this);
+ mRoot = (ViewGroup) findViewById(R.id.root);
+ mSmallContainer = (ViewGroup) findViewById(R.id.small_container);
+ mLeftContainer = (ViewGroup) findViewById(R.id.left_container);
+ mRightContainer = (ViewGroup) findViewById(R.id.right_container);
+ mPkContainer = (FrameLayout) findViewById(R.id.pk_container);
+ mVideoView = (StyledPlayerView) findViewById(R.id.video_view);
+ ry_view = (FrameLayout) findViewById(R.id.ry_view);
+ leave = (ImageView) findViewById(R.id.leave);
+ mLoading = findViewById(R.id.loading);
+ mLoading2 = findViewById(R.id.loading2);
+ mCover = (ImageView) findViewById(R.id.cover);
+ ScreenDimenUtil util = ScreenDimenUtil.getInstance();
+ int mScreenWdith = util.getScreenWdith();
+ vHeight = mScreenWdith * 720 / 960;
+
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mPkContainer.getLayoutParams();
+ params.height = vHeight;
+ mPkContainer.requestLayout();
+
+ debugView = new TextView(mContext);
+ debugView.setBackgroundColor(Color.WHITE);
+
+ dr_pk_view = (LinearLayout) findViewById(R.id.dr_pk_view);
+ dr1_preview = (FrameLayout) findViewById(R.id.dr1_preview);
+ dr2_preview = (FrameLayout) findViewById(R.id.dr2_preview);
+ dr3_preview = (FrameLayout) findViewById(R.id.dr3_preview);
+ dr4_preview = (FrameLayout) findViewById(R.id.dr4_preview);
+ dr_pk_view.setVisibility(View.GONE);
+ }
+
+ public void initSwEngine(String liveUid) {
+ this.liveUid = liveUid;
+ //初始化声网SDK
+ swAuManager = SWAuManager.get();
+ swAuManager.setAudienceContainer(ry_view);
+ swAuManager.initRtcEngine((Activity) mContext);
+ swAuManager.setupRemoteVideo(Integer.parseInt(liveUid));
+ swAuManager.setSwListener(new SWAuManager.SwListener() {
+ @Override
+ public void onUserOffline(int liveUid) {
+ API.get().createPDLiveApi(false)
+ .killDrLm(CommonAppConfig.getInstance().getUid(), String.valueOf(liveUid))
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribeOn(Schedulers.io())
+ .subscribe(new Consumer>() {
+ @Override
+ public void accept(ResponseModel stringResponseModel) throws Exception {
+
+ SocketSendBean socketSendBean = new SocketSendBean()
+ .param("_method_", Constants.LIAN_MAI)
+ .param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName())
+ .param("avatar", CommonAppConfig.getInstance().getUserBean().getAvatar())
+ .param("uid", CommonAppConfig.getInstance().getUid());
+
+ ToastUtil.show(mContext.getString(R.string.live_mic_user_down));
+
+ socketSendBean.param("action", 8);
+ socketSendBean.create();
+ Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
+ TextMessage messageContent = TextMessage.obtain(socketSendBean.mResult.toString());
+ io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(CommonAppConfig.getInstance().getUid(), conversationType, messageContent);
+ RongcloudIMManager.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", "发送成功");
+
+ IMCenter.getInstance().deleteRemoteMessages(Conversation.ConversationType.PRIVATE, message.getTargetId(), new Message[]{message}, null);
+ IMCenter.getInstance().clearMessagesUnreadStatus(Conversation.ConversationType.PRIVATE, message.getTargetId(), null);
+ MicedUserManager.get().removeMiscUser(CommonAppConfig.getInstance().getUid());
+ }
+
+ @Override
+ public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
+ Log.e("ry", "发送失敗" + errorCode.toString());
+ }
+ });
+
+ }
+ }, Throwable::printStackTrace).isDisposed();
+ }
+ });
+ //进入主播房间
+ swAuManager.joinRoom(CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, liveUid, SWAuManager.getChannelName(liveUid));
+ }
+
+ @Override
+ public void removeLiveUid(String uid) {
+ //先结束PK
+ if (drMicUserList != null) {
+ List tempList = new ArrayList<>();
+ int index = -1;
+ for (int i = 0; i < drMicUserList.size(); i++) {
+ if (!drMicUserList.get(i).getId().equals(uid)) {
+ tempList.add(drMicUserList.get(i));
+ }
+ }
+ //结束所有直播
+ endPk();
+ for (int i = 0; i < tempList.size(); i++) {
+ setDrMicInfo(tempList.get(i));
+ }
+ }
+ }
+
+ /**
+ * 开启单人PK
+ *
+ * @param Uid
+ */
+ public void setPkView(String Uid) {
+ L.eSw("setPkView Uid " + Uid);
+ mPkContainer.setVisibility(View.VISIBLE);
+ swAuManager.updateMyChannelView((FrameLayout) mLeftContainer, Integer.parseInt(liveUid));
+ ry_view.removeAllViews();
+ //加入对方主播房间
+ swAuManager.setPkContainer1((FrameLayout) mRightContainer);
+ swAuManager.joinExRoomEx(Integer.parseInt(Uid), CommonAppConfig.SWToken, SWAuManager.getChannelName(Uid));
+ }
+
+ List drMicUserList = new ArrayList<>();
+
+ boolean isAdd = true;
+
+ @Override
+ public void setDrMicInfo(UserBean u) {
+ isAdd = true;
+ L.eSw("setDrMicInfo:-----------------" + u.getId() + " drMicUserList" + new Gson().toJson(drMicUserList));
+ for (int i = 0; i < drMicUserList.size(); i++) {
+ if (u.getId().equals(drMicUserList.get(i).getId()) || u.getId().equals(liveUid)) {
+ isAdd = false;
+ }
+ }
+ L.eSw("setDrMicInfo:---------------isAdd--" + isAdd);
+ //加载多人PK(连麦)主播视图
+ if (isAdd) {
+ dr_pk_view.setVisibility(View.VISIBLE);
+ drMicUserList.add(u);
+ if (drMicUserList.size() == 1) {
+ L.eSw("setDrMicInfo:-----------------drMicUserList.size() == 1");
+ ry_view.removeAllViews();
+ swAuManager.updateMyChannelView((FrameLayout) dr1_preview, Integer.parseInt(liveUid));
+ swAuManager.joinChannelDrEx(dr2_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, u.getId(), SWAuManager.getChannelName(u.getId()));
+ dr1_preview.setVisibility(View.VISIBLE);
+ dr2_preview.setVisibility(View.VISIBLE);
+ dr3_preview.setVisibility(View.GONE);
+ dr4_preview.setVisibility(View.GONE);
+ } else if (drMicUserList.size() == 2) {
+ L.eSw("setDrMicInfo:-----------------drMicUserList.size() == 2");
+ dr4_preview.setVisibility(View.VISIBLE);
+ swAuManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, u.getId(), SWAuManager.getChannelName(u.getId()));
+ } else if (drMicUserList.size() == 3) {
+ L.eSw("setDrMicInfo:-----------------drMicUserList.size() == 3");
+ dr4_preview.setVisibility(View.VISIBLE);
+ dr3_preview.setVisibility(View.VISIBLE);
+ swAuManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), drMicUserList.get(1).getId());
+ swAuManager.joinChannelDrEx(dr3_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, drMicUserList.get(1).getId(), SWAuManager.getChannelName(drMicUserList.get(1).getId()));
+ swAuManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, drMicUserList.get(2).getId(), SWAuManager.getChannelName(drMicUserList.get(2).getId()));
+ }
+ }
+
+ HttpClient.getInstance().get("Live.getDRPKroom", "Live.getDRPKroom").params("uid", CommonAppConfig.getInstance().getUid()).params("roomid", liveUid).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (info.length > 0) {
+ JSONObject obj = JSONObject.parseObject(info[0]);
+ List drPkbeans = JSONObject.parseArray(obj.getString("userlist"), DrPkbean.class);
+ int removeIndex = -1;
+ for (int i = 0; i < drPkbeans.size(); i++) {
+ if (liveUid.equals(String.valueOf(drPkbeans.get(i).getId()))) {
+ removeIndex = i;
+ }
+ }
+ if (removeIndex != -1) {
+ drPkbeans.remove(removeIndex);
+ }
+ setDrPkView(drPkbeans);
+ }
+ }
+ });
+ }
+
+ public void claerDrPkInfoView() {
+ if (detailsView1 != null) {
+ dr1_preview.removeView(detailsView1);
+ }
+ if (detailsView2 != null) {
+ dr2_preview.removeView(detailsView2);
+ }
+ if (detailsView3 != null) {
+ dr3_preview.removeView(detailsView3);
+ }
+ if (detailsView4 != null) {
+ dr4_preview.removeView(detailsView4);
+ }
+ }
+
+ public void setDrPkView(List drPkbeanList) {
+ if (detailsView1 != null) {
+ dr1_preview.removeView(detailsView1);
+ }
+
+ }
+
+ /**
+ * 退出单人pk
+ *
+ * @param pkUid
+ */
+ public void endpk(String pkUid) {
+ L.eSw("endpk " + pkUid);
+ mPkContainer.setVisibility(View.GONE);
+ swAuManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), SWAuManager.getChannelName(pkUid));
+ swAuManager.updateMyChannelView(ry_view, Integer.parseInt(liveUid));
+ ry_view.setVisibility(View.VISIBLE);
+ mLeftContainer.removeAllViews();
+ mRightContainer.removeAllViews();
+ }
+
+ /**
+ * 退出所有连麦主播的房間
+ */
+ public void endPk() {
+ dr_pk_view.setVisibility(View.GONE);
+ dr1_preview.setVisibility(View.GONE);
+ dr2_preview.setVisibility(View.GONE);
+ dr3_preview.setVisibility(View.GONE);
+ dr4_preview.setVisibility(View.GONE);
+ dr1_preview.removeAllViews();
+ dr2_preview.removeAllViews();
+ dr3_preview.removeAllViews();
+ dr4_preview.removeAllViews();
+ //退出所有连麦主播的房間
+ for (int i = 0; i < drMicUserList.size(); i++) {
+ swAuManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), drMicUserList.get(i).getId());
+ }
+ drMicUserList = new ArrayList<>();
+ //將當前主播畫面放大
+ swAuManager.updateMyChannelView((FrameLayout) ry_view, Integer.parseInt(liveUid));
+ }
+
+ /**
+ * 将用户设置成主播,与主播连麦
+ */
+ private void joinLiveMic() {
+ L.eSw("joinLiveMic");
+ HttpClient.getInstance().get("live.joinDrLm", "live.joinDrLm").params("roomid", LiveActivity.mLiveUid).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ Log.e("ry", code + "热热热");
+ if (code == 0) {
+ MicStatusManager.getInstance().setMicData(MicStatusManager.MIC_TYPE_OPEN, LiveActivity.mLiveUid);
+ AudioManager audioManager = (AudioManager) contexts.getSystemService(Context.AUDIO_SERVICE);
+ audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
+ audioManager.setSpeakerphoneOn(true);
+ swAuManager.setMicAn(true);
+ userJoinLinkMic = true;
+ }
+ }
+ });
+ }
+
+ @Override
+ public void endLiveMic() {
+ L.eSw("endLiveMic");
+ if (swAuManager != null) {
+ swAuManager.setMicAn(false);
+ userJoinLinkMic = false;
+ MicStatusManager.getInstance().clear();
+ }
+ }
+
+ @Override
+ public void hideCover() {
+// if (mCover != null) {
+// if (mCover.getVisibility()==View.VISIBLE){
+//// new Handler().postDelayed(new Runnable() {
+//// @Override
+//// public void run() {
+////
+//// }
+//// },200);
+// mCover.setVisibility(View.GONE);
+// mLoading2.setVisibility(View.GONE);
+// }
+//
+//
+// }
+ }
+
+ @Override
+ public void setCover(String coverUrl) {
+// if (mCover != null) {
+// mCover.setVisibility(View.VISIBLE);
+// mLoading2.setVisibility(View.VISIBLE);
+// ImgLoader.displayBlurLive(mContext, coverUrl, mCover, 400, 600);
+//
+// }
+ }//
+
+ @Override
+ public synchronized void setLiveBeanLandscape(int landscape) {
+// landscape=1;
+ Log.i(TAG, "setLiveBeanLandscape: " + landscape + " isPk: " + isPk);
+ this.landscape = landscape;
+ this.videoLandscape = landscape;
+ if (landscape == 2) {
+ Log.i(TAG, "还原9:16");
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
+ params.height = RelativeLayout.LayoutParams.MATCH_PARENT;
+ params.topMargin = 0;
+ ry_view.setLayoutParams(params);
+ ry_view.requestLayout();
+
+ /* RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
+ params1.height = RelativeLayout.LayoutParams.MATCH_PARENT;
+ params1.topMargin = 0;
+ ry_view.setLayoutParams(params1);
+ ry_view.requestLayout();*/
+ RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) mCover.getLayoutParams();
+ params2.height = RelativeLayout.LayoutParams.MATCH_PARENT;
+ params2.topMargin = 0;
+ mCover.setLayoutParams(params2);
+ mCover.requestLayout();
+
+ } else {
+ Log.i(TAG, "还原16:9");
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
+ params.height = vHeight;
+ params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ ry_view.setLayoutParams(params);
+ ry_view.requestLayout();
+
+ /*RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
+ params1.height = vHeight;
+ params1.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ params1.addRule(RelativeLayout.ALIGN_TOP);
+ ry_view.setLayoutParams(params1);
+ ry_view.requestLayout();*/
+ RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) mCover.getLayoutParams();
+ params2.height = DpUtil.dp2px(270);
+ params2.topMargin = DpUtil.dp2px(120);
+ mCover.setLayoutParams(params2);
+ mCover.requestLayout();
+ }
+ }
+
+ @Override
+ public void setLiveEnterRoomNewModel(EnterRoomNewModel data) {
+ super.setLiveEnterRoomNewModel(data);
+ isPk = data.getEnterRoomInfo().getIsconnection().equals("1");
+ if (isPk) {
+ setLiveBeanLandscape(data.getLiveInfo().getLandscape());
+ }
+ }
+
+ /**
+ * 暂停播放
+ */
+ @Override
+ public void pausePlay() {
+
+ }
+
+ /**
+ * 暂停播放后恢复
+ */
+ @Override
+ public void resumePlay() {
+
+ }
+
+ /**
+ * 开始播放
+ *
+ * @param url 流地址
+ */
+ @Override
+ public void play(String url, int playModel) {
+ srcUrl = url;
+ PLAY_MODEL = playModel;
+ waitNextUrl = null;
+ Log.i(TAG, "play" + " url:" + url + " playModel: " + playModel + " landscape: " + landscape + " videoLandscape" + videoLandscape);
+ purl = url;
+ onPrepared();
+ }
+
+ @Override
+ public void switchStream(String url, int playModel) {
+ srcUrl = url;
+ PLAY_MODEL = playModel;
+ Log.i(TAG, "switchStream: " + " url:" + url + " playModel: " + playModel + " landscape: " + landscape + " videoLandscape = " + videoLandscape + " ispk = " + isPk + " bean = " + roomModel.getEnterRoomInfo().getIsconnection());
+ if (playModel != PLAY_MODEL_DEF && !url.contains(videoFps[0] + ".flv")) {
+ if (landscape == VIDEO_VERTICAL && !isPk) {
+ url = url.replace(".flv", videoRatioVertical[playModel] + videoFps[0] + ".flv");
+ } else if (landscape == VIDEO_HORIZONTAL || isPk) {
+ url = url.replace(".flv", videoRatioHorizontal[playModel] + videoFps[0] + ".flv");
+ }
+ } else if (!url.contains(videoFps[0] + ".flv")) {
+ }
+ Log.e("purl121", url);
+
+ if (TextUtils.isEmpty(url) || mVideoView == null) {
+ return;
+ }
+
+
+ if (TextUtils.isEmpty(url) || mVideoView == null) {
+ return;
+ }
+ purl = url;
+ }
+
+ boolean tmpPk = false;
+ String waitNextUrl = null;
+
+ @Override
+ public void switchStreamPk(boolean isPk) {
+ super.switchStreamPk(isPk);
+ Log.i(TAG, "switchStreamPk: isPk1" + isPk + " tmp = " + !tmpPk + " isPk2 = " + this.isPk);
+ if (this.isPk && tmpPk) return;
+ if (isPk && !tmpPk || this.isPk) {
+ String url;
+ if (PLAY_MODEL != -1) {
+ url = srcUrl.replace(".flv", videoRatioHorizontal[PLAY_MODEL] + videoFps[0] + ".flv");
+ } else {
+ url = srcUrl.replace(".flv", videoRatioHorizontal[1] + videoFps[0] + ".flv");
+ }
+ if (!tmpPk) {
+ waitNextUrl = url;
+ }
+ tmpPk = true;
+ } else if (!isPk) {
+ tmpPk = false;
+ if (landscape == VIDEO_VERTICAL && PLAY_MODEL != -1) {
+ waitNextUrl = srcUrl.replace(".flv", videoRatioVertical[PLAY_MODEL] + videoFps[0] + ".flv");
+ } else if (landscape == VIDEO_HORIZONTAL && PLAY_MODEL != -1) {
+ waitNextUrl = srcUrl.replace(".flv", videoRatioHorizontal[PLAY_MODEL] + videoFps[0] + ".flv");
+ } else {
+ waitNextUrl = null;
+ }
+ }
+ }
+
+ @Override
+ public void clearFrame() {
+ super.clearFrame();
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
+ params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
+ params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ mVideoView.setLayoutParams(params);
+ mVideoView.requestLayout();
+
+ /* RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
+ params1.height = ViewGroup.LayoutParams.WRAP_CONTENT;
+ params1.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ params1.addRule(RelativeLayout.ALIGN_TOP);
+ ry_view.setLayoutParams(params1);
+ ry_view.requestLayout();*/
+ RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) mCover.getLayoutParams();
+ params2.height = DpUtil.dp2px(270);
+ params2.topMargin = DpUtil.dp2px(120);
+ mCover.setLayoutParams(params2);
+ mCover.requestLayout();
+ }
+
+ @Override
+ public void release() {
+ mEnd = true;
+ mStarted = false;
+ Bus.getOff(this);
+ EventBus.getDefault().unregister(this);
+ //swAuManager.exitChannelAll();
+ L.e(TAG, "release------->");
+ }
+
+ @Override
+ public void stopPlay() {
+ Log.i(TAG, "stopPlay: ");
+ if (mCover != null) {
+ mCover.setAlpha(1f);
+ if (mCover.getVisibility() != View.VISIBLE) {
+ mCover.setVisibility(View.VISIBLE);
+ }
+ }
+ stopPlay2();
+ }
+
+ @Override
+ public void stopPlay2() {
+ swAuManager.exitChannelAll();
+ drMicUserList = new ArrayList<>();
+
+ }
+
+ @Override
+ public void setViewUP(int i) {
+ if (mVideoView == null) return;
+ Log.e("PK状态", "" + i);
+
+
+ /*RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
+ params1.height = vHeight;
+ params1.topMargin = contexts.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ params1.addRule(RelativeLayout.ALIGN_TOP);
+ ry_view.requestLayout();*/
+ isPk = true;
+ }
+
+ /**
+ * 播放开始
+ */
+ public void onPrepared() {
+ if (mEnd) {
+ release();
+ return;
+ }
+ int height;
+ if (videoLandscape == VIDEO_VERTICAL) {
+ height = ViewGroup.LayoutParams.MATCH_PARENT;
+ } else {
+ height = ViewGroup.LayoutParams.WRAP_CONTENT;
+ }
+ if (landscape == 2) {
+ Log.i(TAG, "onPrepared:还原9:16 land=" + videoLandscape);
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
+ params.height = height;
+ params.topMargin = 0;
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ mVideoView.setLayoutParams(params);
+ mVideoView.requestLayout();
+
+ /*RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
+ params1.height = height;
+ params1.topMargin = 0;
+ ry_view.setLayoutParams(params1);
+ ry_view.requestLayout();*/
+ RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) mCover.getLayoutParams();
+ params2.height = height;
+ params2.topMargin = 0;
+ mCover.setLayoutParams(params2);
+ mCover.requestLayout();
+ } else {
+ Log.i(TAG, "onPrepared:还原16:9");
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
+ params.height = height;
+ params.topMargin = 0;
+ if (videoLandscape == VIDEO_HORIZONTAL) {
+ params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ }
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ mVideoView.setLayoutParams(params);
+ mVideoView.requestLayout();
+
+ /*RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) ry_view.getLayoutParams();
+ params1.height = height;
+ params1.topMargin = 0;
+ params1.addRule(RelativeLayout.ALIGN_TOP);
+ if (videoLandscape == VIDEO_HORIZONTAL) {
+ params1.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ }
+ ry_view.setLayoutParams(params1);
+ ry_view.requestLayout();*/
+ RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) mCover.getLayoutParams();
+ params2.height = height;
+ params2.topMargin = DpUtil.dp2px(120);
+ mCover.setLayoutParams(params2);
+ mCover.requestLayout();
+ }
+ }
+
+ @Override
+ public void setPkview() {
+ Log.i("收到socket--->", "变成16:9");
+ String url = srcUrl;
+ isPk = true;
+ switchStreamPk(true);
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
+ params.height = vHeight;
+ params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ mVideoView.requestLayout();
+ }
+
+ @Override
+ public synchronized void setPkEndview() {
+
+ Log.i("收收收", landscape + "");
+ isPk = false;
+ tmpPk = false;
+ switchStreamPk(false);
+ if (landscape == 2) {
+ Log.i("收到socket--->", "还原9:16");
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
+ params.height = RelativeLayout.LayoutParams.MATCH_PARENT;
+ params.topMargin = 0;
+ mVideoView.requestLayout();
+
+ } else {
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
+ params.height = vHeight;
+ params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ mVideoView.requestLayout();
+ }
+// if (detailsView != null) {
+// mVideoView.removeView(detailsView);
+// detailsView = null;
+// }
+ }
+
+
+ public void removeDetailView() {
+// if (detailsView != null) {
+// mVideoView.removeView(detailsView);
+// detailsView = null;
+// }
+ }
+
+ @Override
+ public ViewGroup getSmallContainer() {
+ return mSmallContainer;
+ }
+
+
+ @Override
+ public ViewGroup getRightContainer() {
+ return mRightContainer;
+ }
+
+ @Override
+ public ViewGroup getPkContainer() {
+ return mPkContainer;
+ }
+
+ @Override
+ public void changeToLeft() {
+ if (mVideoView != null) {
+
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
+ params.height = vHeight;
+// params.height = mContext.getResources().getDimensionPixelOffset(R.dimen.live_view);
+ params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ mVideoView.requestLayout();
+
+ }
+ if (mLoading != null && mLeftContainer != null) {
+ ViewParent viewParent = mLoading.getParent();
+ if (viewParent != null) {
+ ((ViewGroup) viewParent).removeView(mLoading);
+ }
+ FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(DpUtil.dp2px(24), DpUtil.dp2px(24));
+ params.gravity = Gravity.CENTER;
+ mLoading.setLayoutParams(params);
+ mLeftContainer.addView(mLoading);
+ }
+ }
+
+ @Override
+ public void changeToBig() {
+ if (mVideoView != null) {
+ RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
+ mVideoView.setLayoutParams(params);
+
+ }
+ if (mLoading != null && mRoot != null) {
+ ViewParent viewParent = mLoading.getParent();
+ if (viewParent != null) {
+ ((ViewGroup) viewParent).removeView(mLoading);
+ }
+ RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(DpUtil.dp2px(24), DpUtil.dp2px(24));
+ params.addRule(RelativeLayout.CENTER_IN_PARENT);
+ mLoading.setLayoutParams(params);
+ mRoot.addView(mLoading);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ if (!mPausedPlay && mPaused && mVideoView != null) {
+// mVideoView.runInForeground();
+// mVideoView.start();
+ }
+ mPaused = false;
+// if (mPlayer.isPlaying() == 1) {
+// mPlayer.resumeVideo();
+// mPlayer.resumeAudio();
+// }
+ }
+
+ @Override
+ public void onPause() {
+// if (!mPausedPlay && mVideoView != null) {
+// mVideoView.runInBackground(false);
+// }
+// mPaused = true;
+// mPlayer.pauseVideo();
+// mPlayer.pauseAudio();
+ }
+
+ @Override
+ public void onDestroy() {
+ release();
+ }
+
+ //全屏
+ @Override
+ public void fullScreen() {
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
+ params.height = RelativeLayout.LayoutParams.MATCH_PARENT;
+ params.topMargin = 0;
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ mVideoView.requestLayout();
+ }
+
+ //小屏
+ @Override
+ public void smallScreen() {
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mVideoView.getLayoutParams();
+ params.height = vHeight;
+ params.topMargin = mContext.getResources().getDimensionPixelOffset(R.dimen.live_top);
+ // mPlayer.setRenderRotation(V2TXLiveDef.V2TXLiveRotation.V2TXLiveRotation0);
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ mVideoView.requestLayout();
+ }
+
+ boolean isShow = false;
+
+ boolean isShowInvitation = false;
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onUpdata(String str) {
+
+ if ("UsertoRY".equals(str)) {
+ //todo 新增dis监听
+ if (isShow || MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) {
+ return;
+ }
+ isShow = true;
+ DialogUitl.showSimpleDialog(mContext, mContext.getString(R.string.mic_tag), new DialogUitl.SimpleCallback2() {
+ @Override
+ public void onCancelClick() {
+ MicStatusManager.getInstance().setMicData(MicStatusManager.MIC_TYPE_DEFAULT, LiveActivity.mLiveUid);
+ userJoinLinkMic = false;
+ isShow = false;
+ }
+
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ UsertoRY();
+ isShow = false;
+ }
+ });
+
+ } else if ("inviteMic".equals(str)) {
+ if (isShowInvitation || MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) {
+ return;
+ }
+ isShowInvitation = true;
+ String content = "邀請您進行語音連麥";
+ String confirm = "接受";
+ String cancel = "拒絕";
+ if (!WordUtil.isNewZh()) {
+ content = "You are invited to join the voice connection";
+ confirm = "accept";
+ cancel = "cancel";
+ }
+ DialogUitl.Builder builder = new DialogUitl.Builder(mContext).setContent(content).setTitle(mLiveBean.getUserNiceName()).setConfirmString(confirm).setCancelString(cancel).setView(R.layout.dialog_live_mic_invite).setClickCallback3(new DialogUitl.SimpleCallback3() {
+ @Override
+ public void onConfirmClick(Dialog dialog) {
+ String[] permissions;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ permissions = new String[]{Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.RECORD_AUDIO};
+ } else {
+ permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO};
+ }
+ LiveAudienceActivity.mProcessResultUtil.requestPermissions(permissions, new Runnable() {
+ @Override
+ public void run() {
+ L.eSw("将自己设置成给主播,和主播连麦");
+ joinLiveMic();
+ isShowInvitation = false;
+ }
+ });
+ }
+
+ @Override
+ public void onCancel() {
+ isShowInvitation = false;
+ }
+ });
+ builder.build().show();
+
+ } else if ("endMic".equals(str)) {
+ L.eSw("endMic.equals(str))" + str);
+ // 开始切换为观众身份
+ //声网-将用户身份切换只观众
+ endLiveMic();
+ } else if ("Debug".equals(str)) {
+ if (EasyFloat.isShow("Debug")) {
+ EasyFloat.dismiss("Debug");
+ return;
+ }
+ EasyFloat.with(mContext).setDragEnable(true).setTag("Debug").setLayout(debugView).show();
+ }
+ }
+
+ public void endLiveMicUser() {
+ endLiveMic();
+ }
+
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onOpenDrawer(LiveAudienceEvent event) {
+ if (event.getType() == LiveAudienceEvent.LiveAudienceType.LIVE_VIDEO) {
+ int ban = 0;//全模式都可以选择
+ switch (roomModel.getClarityType() - 1) {
+ case PLAY_MODEL_720://仅允许720(高清),ban掉1080(超高清)模式
+ ban = LiveClarityCustomPopup.BAN_1080;
+ break;
+ case -1://没有该字段
+ case PLAY_MODEL_480://仅允许480(流畅),ban掉1080(超高清)和720(高清)模式
+ ban = LiveClarityCustomPopup.BAN_720;
+ break;
+
+ }
+ LiveClarityCustomPopup liveClarityCustomPopup = new LiveClarityCustomPopup(mContext, IMLoginManager.get(mContext).getInt(PLAY_MODEL_KEY, PLAY_MODEL_ANCHOR), ban, true);
+ new XPopup.Builder(mContext).setPopupCallback(new XPopupCallback() {
+ @Override
+ public void onCreated(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void beforeShow(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void onShow(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public void onDismiss(BasePopupView popupView) {
+ int selectClarity = liveClarityCustomPopup.getSelectClarity();
+ if (selectClarity == PLAY_MODEL || selectClarity == IMLoginManager.get(mContext).getInt(LiveRoomPlayViewHolder.PLAY_MODEL_KEY, PLAY_MODEL_ANCHOR))
+ return;
+ if (selectClarity == PLAY_MODEL_ANCHOR) {
+ switchStream(srcUrl, PLAY_MODEL_DEF);
+ setAudiencePlayModel(selectClarity);
+ } else {
+ switchStream(srcUrl, selectClarity);
+ }
+ IMLoginManager.get(mContext).put(LiveRoomPlayViewHolder.PLAY_MODEL_KEY, selectClarity);
+ showToast();
+ }
+
+ private void showToast() {
+ if (WordUtil.isNewZh()) {
+ DialogUitl.showToast(mContext, "設置成功\n" + "正在為你轉換中", 3000);
+ } else {
+ DialogUitl.showToast(mContext, "successful\n" + "It's being converted for you", 3000);
+ }
+ }
+
+ @Override
+ public void beforeDismiss(BasePopupView popupView) {
+
+ }
+
+ @Override
+ public boolean onBackPressed(BasePopupView popupView) {
+ return false;
+ }
+
+ @Override
+ public void onKeyBoardStateChanged(BasePopupView popupView, int height) {
+
+ }
+
+ @Override
+ public void onDrag(BasePopupView popupView, int value, float percent, boolean upOrLeft) {
+
+ }
+
+ @Override
+ public void onClickOutside(BasePopupView popupView) {
+
+ }
+ }).asCustom(liveClarityCustomPopup).show();
+ } else if (event.getType() == LiveAudienceEvent.LiveAudienceType.FONT_SIZE) {
+ int fount = 0;
+ try {
+ fount = Integer.parseInt(SpUtil.getStringValue("pd_live_room_fount_size"));
+ } catch (Exception ignored) {
+
+ }
+ new LiveFontSizeSettingDialog(mContext, fount).setOnItemClickListener(new OnItemClickListener() {
+ @Override
+ public void onItemClick(Integer bean, int position) {
+ EventBus.getDefault().post(new LiveAudienceEvent().setNums(bean).setType(LiveAudienceEvent.LiveAudienceType.LIVE_FONT_SIZE));
+ }
+ }).showDialog();
+ } else if (event.getType() == LiveAudienceEvent.LiveAudienceType.PK_TWO_START) {
+ //将当前主播画面换个画布展示
+ String pkUid = (String) event.getObject();
+ setPkView(pkUid);
+
+ } else if (event.getType() == LiveAudienceEvent.LiveAudienceType.LIVE_PK_END) {
+ String pkUid = (String) event.getObject();
+ //endpk(pkUid);
+ }
+ }
+
+ /**
+ * 把观众转换成主播
+ */
+ public List userinputStreamList = new ArrayList<>();
+
+ public void UsertoRY() {
+ userinputStreamList.clear();
+ Log.e("ry", "主播同意了UsertoRY");
+ joinLiveMic();
+ }
+
+ @Override
+ public void setLoadViewListener(LoadingListener listener) {
+ super.setLoadViewListener(listener);
+ }
+}
diff --git a/live/src/main/java/com/yunbao/live/views/LivePlayTxViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePlayTxViewHolder.java
index cb8a577fd..6097d1038 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePlayTxViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePlayTxViewHolder.java
@@ -18,6 +18,7 @@ import com.tencent.live2.impl.V2TXLivePlayerImpl;
import com.tencent.rtmp.ITXLivePlayListener;
import com.tencent.rtmp.TXLivePlayConfig;
import com.tencent.rtmp.ui.TXCloudVideoView;
+import com.yunbao.common.bean.UserBean;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.utils.L;
@@ -69,10 +70,55 @@ public class LivePlayTxViewHolder extends LiveRoomPlayViewHolder implements ITXL
}
+ @Override
+ public void setDrMicInfo(UserBean u) {
+
+ }
+
@Override
public void setLiveBeanLandscape(int landscape) {
}
+ @Override
+ public void endPk() {
+
+ }
+
+ @Override
+ public void endpk(String liveUid) {
+
+ }
+
+ @Override
+ public void initSwEngine(String liveUid) {
+
+ }
+
+ @Override
+ public void removeLiveUid(String uid) {
+
+ }
+
+ @Override
+ public void removeDetailView() {
+
+ }
+
+ @Override
+ public void setPkView(String liveUid) {
+
+ }
+
+ @Override
+ public void claerDrPkInfoView() {
+
+ }
+
+ @Override
+ public void endLiveMic() {
+
+ }
+
@Override
protected int getLayoutId() {
return R.layout.view_live_play_tx;
diff --git a/live/src/main/java/com/yunbao/live/views/LivePlayTxViewHolder_backup.java b/live/src/main/java/com/yunbao/live/views/LivePlayTxViewHolder_backup.java
deleted file mode 100644
index 28a1f10ed..000000000
--- a/live/src/main/java/com/yunbao/live/views/LivePlayTxViewHolder_backup.java
+++ /dev/null
@@ -1,470 +0,0 @@
-package com.yunbao.live.views;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.os.Handler;
-import android.text.TextUtils;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.ViewParent;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.tencent.rtmp.ITXLivePlayListener;
-import com.tencent.rtmp.TXLiveConstants;
-import com.tencent.rtmp.TXLivePlayConfig;
-import com.tencent.rtmp.TXLivePlayer;
-import com.tencent.rtmp.ui.TXCloudVideoView;
-import com.yunbao.common.glide.ImgLoader;
-import com.yunbao.common.http.HttpCallback;
-import com.yunbao.common.utils.DpUtil;
-import com.yunbao.common.utils.L;
-import com.yunbao.common.utils.ToastUtil;
-import com.yunbao.live.R;
-import com.yunbao.common.http.LiveHttpConsts;
-import com.yunbao.common.http.LiveHttpUtil;
-
-/**
- * Created by cxf on 2018/10/10.
- * 直播间播放器 腾讯播放器
- */
-
-public class LivePlayTxViewHolder_backup extends LiveRoomPlayViewHolder implements ITXLivePlayListener {
-
- private static final String TAG = "LiveTxPlayViewHolder";
- private ViewGroup mRoot;
- private ViewGroup mSmallContainer;
- private ViewGroup mLeftContainer;
- private ViewGroup mRightContainer;
- private ViewGroup mPkContainer;
- private TXCloudVideoView mVideoView;
- private View mLoading;
- private ImageView mCover;
- private TXLivePlayer mPlayer;
- private boolean mPaused;//是否切后台了
- private boolean mStarted;//是否开始了播放
- private boolean mEnd;//是否结束了播放
- private boolean mPausedPlay;//是否被动暂停了播放
- private boolean mChangeToLeft;
- private boolean mChangeToAnchorLinkMic;
- private String mUrl;
- private int mPlayType;
- private HttpCallback mGetTxLinkMicAccUrlCallback;
- private Handler mHandler;
- private int mVideoLastProgress;
-
- @Override
- public void setPkview() {
-
- }
-
- @Override
- public void setPkEndview() {
-
- }
-
- @Override
- public void setLiveBeanLandscape(int landscape) {
-
- }
-
- public LivePlayTxViewHolder_backup(Context context, ViewGroup parentView) {
- super(context, parentView);
- }
-
- @Override
- protected int getLayoutId() {
- return R.layout.view_live_play_tx;
- }
-
- @Override
- public void init() {
- mRoot = (ViewGroup) findViewById(R.id.root);
- mSmallContainer = (ViewGroup) findViewById(R.id.small_container);
- mLeftContainer = (ViewGroup) findViewById(R.id.left_container);
- mRightContainer = (ViewGroup) findViewById(R.id.right_container);
- mPkContainer = (ViewGroup) findViewById(R.id.pk_container);
- mLoading = findViewById(R.id.loading);
- mCover = (ImageView) findViewById(R.id.cover);
- mVideoView = (TXCloudVideoView) findViewById(R.id.video_view);
-
- mPlayer = new TXLivePlayer(mContext);
- mPlayer.setPlayListener(this);
- mPlayer.setPlayerView(mVideoView);
- mPlayer.enableHardwareDecode(false);
- mPlayer.setRenderRotation(TXLiveConstants.RENDER_ROTATION_PORTRAIT);
- mPlayer.setRenderMode(TXLiveConstants.RENDER_MODE_FULL_FILL_SCREEN);
- TXLivePlayConfig playConfig = new TXLivePlayConfig();
- playConfig.setAutoAdjustCacheTime(true);
- playConfig.setMaxAutoAdjustCacheTime(5.0f);
- playConfig.setMinAutoAdjustCacheTime(1.0f);
- mPlayer.setConfig(playConfig);
-
- }
-
-
- @Override
- public void onPlayEvent(int e, Bundle bundle) {
- if (mEnd) {
- return;
- }
- switch (e) {
- case TXLiveConstants.PLAY_EVT_PLAY_BEGIN://播放开始
- if (mLoading != null && mLoading.getVisibility() == View.VISIBLE) {
- mLoading.setVisibility(View.INVISIBLE);
- }
- break;
- case TXLiveConstants.PLAY_EVT_PLAY_LOADING:
- if (mLoading != null && mLoading.getVisibility() != View.VISIBLE) {
- mLoading.setVisibility(View.VISIBLE);
- }
- break;
- case TXLiveConstants.PLAY_EVT_RCV_FIRST_I_FRAME://第一帧
- hideCover();
- break;
- case TXLiveConstants.PLAY_EVT_PLAY_END://播放结束
- replay();
- break;
- case TXLiveConstants.PLAY_EVT_CHANGE_RESOLUTION://获取视频宽高
- if (mChangeToLeft || mChangeToAnchorLinkMic) {
- return;
- }
- float width = bundle.getInt("EVT_PARAM1", 0);
- float height = bundle.getInt("EVT_PARAM2", 0);
- L.e(TAG, "流---width----->" + width);
- L.e(TAG, "流---height----->" + height);
- FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mVideoView.getLayoutParams();
- int targetH = 0;
- if (width >= height) {//横屏 9:16=0.5625
- targetH = (int) (mVideoView.getWidth() / width * height);
- } else {
- targetH = ViewGroup.LayoutParams.MATCH_PARENT;
- }
- if (targetH != params.height) {
- params.height = targetH;
- params.gravity = Gravity.CENTER;
- mVideoView.requestLayout();
- }
-
- break;
- case TXLiveConstants.PLAY_ERR_NET_DISCONNECT://播放失败
- case TXLiveConstants.PLAY_ERR_FILE_NOT_FOUND:
- ToastUtil.show(mContext.getString(R.string.live_play_error));
- break;
- case TXLiveConstants.PLAY_EVT_PLAY_PROGRESS:
- int progress = bundle.getInt("EVT_PLAY_PROGRESS_MS");
- if (mVideoLastProgress == progress) {
- replay();
- } else {
- mVideoLastProgress = progress;
- }
- break;
- default:break;
- }
- }
-
- @Override
- public void onNetStatus(Bundle bundle) {
-
- }
-
-
- @Override
- public void hideCover() {
- if (mCover != null) {
- mCover.animate().alpha(0).setDuration(500).start();
- }
- }
-
- @Override
- public void setCover(String coverUrl) {
- if (mCover != null) {
- ImgLoader.displayBlur(mContext, coverUrl, mCover);
- }
- }
-
- @Override
- public void fullScreen() {
-
- }
-
- @Override
- public void smallScreen() {
-
- }
-
- /**
- * 循环播放
- */
- private void replay() {
- if (mStarted && mPlayer != null) {
- mPlayer.seek(0);
- mPlayer.resume();
- }
- }
-
-
- /**
- * 暂停播放
- */
- @Override
- public void pausePlay() {
- if (!mPausedPlay) {
- mPausedPlay = true;
- if (!mPaused) {
- if (mPlayer != null) {
- mPlayer.pause();
- }
- }
- if (mCover != null) {
- mCover.setAlpha(1f);
- if (mCover.getVisibility() != View.VISIBLE) {
- mCover.setVisibility(View.VISIBLE);
- }
- }
- }
- }
-
- /**
- * 暂停播放后恢复
- */
- @Override
- public void resumePlay() {
- if (mPausedPlay) {
- mPausedPlay = false;
- if (!mPaused) {
- if (mPlayer != null) {
- mPlayer.resume();
- }
- }
- hideCover();
- }
- }
-
- /**
- * 开始播放
- *
- * @param url 流地址
- */
- @Override
- public void play(String url,int playModel) {
- if (TextUtils.isEmpty(url)) {
- return;
- }
- int playType = -1;
- if (url.startsWith("rtmp://")) {
- playType = TXLivePlayer.PLAY_TYPE_LIVE_RTMP;
- } else if (url.endsWith(".flv")) {
- playType = TXLivePlayer.PLAY_TYPE_LIVE_FLV;
- } else if (url.endsWith(".m3u8")) {
- playType = TXLivePlayer.PLAY_TYPE_VOD_HLS;
- } else if (url.endsWith(".mp4")) {
- playType = TXLivePlayer.PLAY_TYPE_VOD_MP4;
- }
- if (playType == -1) {
- ToastUtil.show(mContext.getString(R.string.live_play_error_2));
- return;
- }
- if (mPlayer != null) {
- int result = mPlayer.startPlay(url, playType);
- if (result == 0) {
- mStarted = true;
- mUrl = url;
- mPlayType = playType;
- }
- }
- L.e(TAG, "play----url--->" + url);
- }
-
- @Override
- public void switchStream(String url, int playModel) {
-
- }
-
- @Override
- public void stopPlay() {
- mChangeToLeft = false;
- mChangeToAnchorLinkMic = false;
- if (mHandler != null) {
- mHandler.removeCallbacksAndMessages(null);
- }
- if (mCover != null) {
- mCover.setAlpha(1f);
- if (mCover.getVisibility() != View.VISIBLE) {
- mCover.setVisibility(View.VISIBLE);
- }
- }
- stopPlay2();
- }
-
- @Override
- public void stopPlay2() {
- if (mPlayer != null) {
- mPlayer.stopPlay(false);
- }
- }
-
- @Override
- public void release() {
- mEnd = true;
- if (mHandler != null) {
- mHandler.removeCallbacksAndMessages(null);
- }
- mHandler = null;
- LiveHttpUtil.cancel(LiveHttpConsts.GET_TX_LINK_MIC_ACC_URL);
- if (mPlayer != null) {
- mPlayer.stopPlay(false);
- mPlayer.setPlayListener(null);
- }
- mPlayer = null;
- L.e(TAG, "release------->");
- }
-
-
- @Override
- public ViewGroup getSmallContainer() {
- return mSmallContainer;
- }
-
-
- @Override
- public ViewGroup getRightContainer() {
- return mRightContainer;
- }
-
- @Override
- public ViewGroup getPkContainer() {
- return mPkContainer;
- }
-
- @Override
- public void changeToLeft() {
- mChangeToLeft = true;
- if (mVideoView != null) {
- FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mVideoView.getLayoutParams();
- params.width = mVideoView.getWidth() / 2;
- params.height = DpUtil.dp2px(250);
- params.topMargin = DpUtil.dp2px(130);
- mVideoView.setLayoutParams(params);
- }
- if (mLoading != null && mLeftContainer != null) {
- ViewParent viewParent = mLoading.getParent();
- if (viewParent != null) {
- ((ViewGroup) viewParent).removeView(mLoading);
- }
- FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(DpUtil.dp2px(24), DpUtil.dp2px(24));
- params.gravity = Gravity.CENTER;
- mLoading.setLayoutParams(params);
- mLeftContainer.addView(mLoading);
- }
- }
-
- @Override
- public void changeToBig() {
- mChangeToLeft = false;
- if (mVideoView != null) {
- FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mVideoView.getLayoutParams();
- params.width = ViewGroup.LayoutParams.MATCH_PARENT;
- params.height = ViewGroup.LayoutParams.MATCH_PARENT;
- params.topMargin = 0;
- mVideoView.setLayoutParams(params);
- }
- if (mLoading != null && mRoot != null) {
- ViewParent viewParent = mLoading.getParent();
- if (viewParent != null) {
- ((ViewGroup) viewParent).removeView(mLoading);
- }
- FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(DpUtil.dp2px(24), DpUtil.dp2px(24));
- params.gravity = Gravity.CENTER;
- mLoading.setLayoutParams(params);
- mRoot.addView(mLoading);
- }
- }
-
- @Override
- public void onResume() {
- if (!mPausedPlay && mPaused && mPlayer != null) {
- mPlayer.resume();
- }
- mPaused = false;
- }
-
- @Override
- public void onPause() {
- if (!mPausedPlay && mPlayer != null) {
- mPlayer.pause();
- }
- mPaused = true;
- }
-
- @Override
- public void onDestroy() {
- release();
- }
-
- /**
- * 腾讯sdk连麦时候切换低延时流
- */
- public void onLinkMicTxAccEvent(boolean linkMic) {
- if (mStarted && mPlayer != null && !TextUtils.isEmpty(mUrl)) {
- mPlayer.stopPlay(false);
- if (linkMic) {
- if (mGetTxLinkMicAccUrlCallback == null) {
- mGetTxLinkMicAccUrlCallback = new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- if (code == 0 && info.length > 0) {
- JSONObject obj = JSON.parseObject(info[0]);
- if (obj != null) {
- String accUrl = obj.getString("streamUrlWithSignature");
- if (!TextUtils.isEmpty(accUrl) && mPlayer != null) {
- L.e(TAG, "低延时流----->" + accUrl);
- mPlayer.startPlay(accUrl, TXLivePlayer.PLAY_TYPE_LIVE_RTMP_ACC);
- }
- }
- }
- }
- };
- }
- LiveHttpUtil.getTxLinkMicAccUrl(mUrl, mGetTxLinkMicAccUrlCallback);
- } else {
- mPlayer.startPlay(mUrl, mPlayType);
- }
- }
- }
-
- /**
- * 设置主播连麦模式
- *
- * @param anchorLinkMic
- */
- public void setAnchorLinkMic(final boolean anchorLinkMic, int delayTime) {
- if (mVideoView == null) {
- return;
- }
- if (mHandler == null) {
- mHandler = new Handler();
- }
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- mChangeToAnchorLinkMic = anchorLinkMic;
- FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mVideoView.getLayoutParams();
- if (anchorLinkMic) {
- params.height = DpUtil.dp2px(250);
- params.topMargin = DpUtil.dp2px(130);
- params.gravity = Gravity.TOP;
- } else {
- params.height = ViewGroup.LayoutParams.MATCH_PARENT;
- params.topMargin = 0;
- params.gravity = Gravity.CENTER;
- }
- mVideoView.setLayoutParams(params);
- }
- }, delayTime);
-
- }
-}
diff --git a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
index f849d6d3d..169b32dce 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
@@ -415,7 +415,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void onError(String error) {
- ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
+ ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
diff --git a/live/src/main/java/com/yunbao/live/views/LivePushSwViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePushSwViewHolder.java
new file mode 100644
index 000000000..2c124fad2
--- /dev/null
+++ b/live/src/main/java/com/yunbao/live/views/LivePushSwViewHolder.java
@@ -0,0 +1,677 @@
+package com.yunbao.live.views;
+
+import static com.yunbao.live.activity.LiveActivity.mLiveSwLinkMicPkPresenter;
+import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.LIVE_PK_END;
+import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.LIVE_PK_ING;
+import static com.yunbao.live.presenter.LiveSwLinkMicPkPresenter.inputStreamList;
+import static com.yunbao.live.presenter.LiveSwLinkMicPkPresenter.inputStreamList1;
+import static com.yunbao.live.presenter.LiveSwLinkMicPkPresenter.mPkUid;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
+import com.tencent.rtmp.ITXLivePushListener;
+import com.tencent.rtmp.TXLiveConstants;
+import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.Constants;
+import com.yunbao.common.bean.UserBean;
+import com.yunbao.common.event.AnchorInfoEvent;
+import com.yunbao.common.event.LivePushRyEvent;
+import com.yunbao.common.glide.ImgLoader;
+import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.http.HttpClient;
+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.L;
+import com.yunbao.common.utils.StringUtil;
+import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
+import com.yunbao.live.R;
+import com.yunbao.live.activity.LiveActivity;
+import com.yunbao.live.activity.LiveSwAnchorActivity;
+import com.yunbao.live.bean.DrPkbean;
+import com.yunbao.live.event.LiveAudienceEvent;
+import com.yunbao.common.http.LiveHttpConsts;
+import com.yunbao.common.http.LiveHttpUtil;
+import com.yunbao.live.presenter.LiveSwLinkMicPkPresenter;
+import com.yunbao.live.socket.SocketSendBean;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import cn.rongcloud.rtc.api.RCRTCEngine;
+import cn.rongcloud.rtc.api.RCRTCMixConfig;
+import cn.rongcloud.rtc.api.RCRTCRoom;
+import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
+import cn.rongcloud.rtc.api.callback.IRCRTCResultDataCallback;
+import cn.rongcloud.rtc.api.stream.RCRTCLiveInfo;
+import cn.rongcloud.rtc.base.RCRTCParamsType;
+import cn.rongcloud.rtc.base.RTCErrorCode;
+import io.agora.beautyapi.faceunity.agora.SWAuManager;
+import io.agora.beautyapi.faceunity.agora.SWManager;
+import io.rong.imlib.IRongCallback;
+import io.rong.imlib.RongIMClient;
+import io.rong.imlib.model.Conversation;
+import io.rong.imlib.model.Message;
+import io.rong.message.TextMessage;
+
+/**
+ * Created by cxf on 2018/10/7.
+ * 腾讯云直播推流
+ */
+
+public class LivePushSwViewHolder extends AbsRyLivePushViewHolder implements ITXLivePushListener {
+ private int mMeiBaiVal;//基础美颜 美白
+ private int mMoPiVal;//基础美颜 磨皮
+ private int mHongRunVal;//基础美颜 红润
+ private String mBgmPath;//背景音乐路径
+ private Bitmap mFilterBmp;
+ private Handler mMainHandler;
+ public static Context contexts;
+ public static TextView btn_close;
+ public LinearLayout dr_pk_view;
+ public static RCRTCRoom rtcRoom;
+ public static RCRTCLiveInfo rcrtcLiveInfo;
+ private ViewGroup liveActivityContainer;
+ public FrameLayout timeTitle;
+ public TextView textTime;
+ private TextView tv_avatarOther_name;
+ private ImageView avatarOther;
+ private LinearLayout goto_room_view;
+ private boolean isPk = false;
+ private boolean isNeedOpenCamera = false;
+ private SWManager swManager;
+ private String pkUid1; //单人PK 对方主播 uid
+
+ //修改上面主播的头像
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onUPAnchorInfo(AnchorInfoEvent e) {
+ Log.i(TAG, "onUPAnchorInfo: " + e);
+ if (e != null) {
+ if (!e.isClear()) {
+ tv_avatarOther_name.setText(e.getUserNiceName());
+ tv_avatarOther_name.setTag(e.getUserNiceName());
+ ImgLoader.displayAvatar(mContext, e.getAvatar(), avatarOther);
+ goto_room_view.setVisibility(View.VISIBLE);
+ } else {
+ goto_room_view.setVisibility(View.GONE);
+ }
+ }
+ }
+
+ public onDrPkJoinSuccessListener onDrPkJoinSuccessListener;
+
+ public void setOnDrPkJoinSuccessListener(LivePushSwViewHolder.onDrPkJoinSuccessListener onDrPkJoinSuccessListener) {
+ this.onDrPkJoinSuccessListener = onDrPkJoinSuccessListener;
+ }
+
+ public LivePushSwViewHolder(Context context, ViewGroup parentView) {
+ super(context, parentView);
+ this.contexts = context;
+ EventBus.getDefault().register(this);
+ }
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.view_live_push_sw;
+ }
+
+ public void setLiveActivityContainer(ViewGroup liveActivityContainer) {
+ this.liveActivityContainer = liveActivityContainer;
+ }
+
+ @Override
+ public void init() {
+ super.init();
+ Bus.getOn(this);
+ mPreView = (FrameLayout) findViewById(R.id.camera_preview);
+ camera = (LinearLayout) findViewById(R.id.camera);
+ mPreView1 = (FrameLayout) findViewById(R.id.camera_preview1);
+ cameraPreview3 = (FrameLayout) findViewById(R.id.camera_preview3);
+ dr1_preview = (FrameLayout) findViewById(R.id.dr1_preview);
+ dr2_preview = (FrameLayout) findViewById(R.id.dr2_preview);
+ dr3_preview = (FrameLayout) findViewById(R.id.dr3_preview);
+ dr4_preview = (FrameLayout) findViewById(R.id.dr4_preview);
+ leave = (ImageView) findViewById(R.id.leave);
+ dr_pk_view = (LinearLayout) findViewById(R.id.dr_pk_view);
+ timeTitle = (FrameLayout) findViewById(R.id.time_title);
+ textTime = (TextView) findViewById(R.id.text_time);
+ dr_pk_view.setVisibility(View.GONE);
+ cameraPreview3.setVisibility(View.GONE);
+ btn_close = (TextView) findViewById(R.id.btn_close);
+ tv_avatarOther_name = (TextView) findViewById(R.id.tv_avatarOther_name);
+ avatarOther = (ImageView) findViewById(R.id.avatarOther);
+ goto_room_view = (LinearLayout) findViewById(R.id.goto_room_view);
+ goto_room_view.setVisibility(View.GONE);
+ mMainHandler = new Handler(Looper.getMainLooper());
+ btn_close.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh() ? "是否要斷開連麥?" : "Do you want to disconnect Link?", new DialogUitl.SimpleCallback() {
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ Log.i("PK----->", "updateSub: " + isPk + "|");
+ aheadOfScheduleEndPK(mPkUid, CommonAppConfig.getInstance().getUserBean().getUserNiceName(), (String) tv_avatarOther_name.getTag());
+ //断开连麦
+ LiveSwAnchorActivity.isDRPK = 0;
+ HttpClient.getInstance().post("livepk.setliveuserout", "livepk.setliveuserout").execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ }
+ });
+
+ HttpClient.getInstance().get("Livepk.endPK", "Livepk.endPK").params("uid", CommonAppConfig.getInstance().getUid()).params("addtime", "1").params("type", "1").params("sign", "1").execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0) {
+ JSONObject datas = JSONObject.parseObject(info[0]);
+ String pkUid = datas.getString("pkuid");
+
+ //退出副房间
+ // TODO: 2024/4/13 退出对方主播直播间
+ SWManager.get().exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), pkUid1);
+ SWManager.get().updateMyChannelView((FrameLayout) mBigContainer);
+ btn_close.setVisibility(View.GONE);//隐藏连麦按钮
+ EventBus.getDefault().post(new AnchorInfoEvent(true, "", "", ""));
+ closeButtonGone();
+ L.eSw("ac333333333333333333333");
+ SocketSendBean seed_msg = new SocketSendBean().param("_method_", Constants.SOCKET_LINK_MIC_PK).param("action", 9).param("msgtype", 10).param("win_uid", datas.getString("win_uid")).param("uid", CommonAppConfig.getInstance().getUid());
+ seed_msg.create();
+ Log.i("seed", seed_msg.mResult.toString());
+ HttpClient.getInstance().get("Tx.sendmsgzs2", "Tx.sendmsgzs2").params("GroupId", "g" + pkUid).params("jsonstr", seed_msg.mResult.toString()).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+
+ HttpClient.getInstance().get("Tx.sendmsgzs2", "Tx.sendmsgzs2").params("GroupId", "g" + CommonAppConfig.getInstance().getUid()).params("jsonstr", seed_msg.mResult.toString()).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+
+ SocketSendBean seed_msgs = new SocketSendBean().param("_method_", Constants.SOCKET_LINK_MIC_PK).param("action", 5).param("msgtype", 10).param("uname", "1").param("uimg", "1").param("pkuid", LiveSwLinkMicPkPresenter.oldmPkUid).param("uid", CommonAppConfig.getInstance().getUid());
+ seed_msgs.create();
+ Log.i("seed", seed_msgs.mResult.toString());
+
+ HttpClient.getInstance().get("Tx.sendmsgzs2", "Tx.sendmsgzs2").params("GroupId", "g" + LiveSwLinkMicPkPresenter.oldmPkUid).params("jsonstr", seed_msgs.mResult.toString()).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ HttpClient.getInstance().get("Tx.sendmsgzs2", "Tx.sendmsgzs2").params("GroupId", "g" + CommonAppConfig.getInstance().getUid()).params("jsonstr", seed_msgs.mResult.toString()).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+ });
+
+ }
+
+ }
+ });
+
+
+ }
+ });
+ }
+ });
+ initRtcEngine();
+ }
+
+ /**
+ * 初始化声网SDK
+ */
+ private void initRtcEngine() {
+ swManager = SWManager.get();
+ swManager.setAnchorContainer((FrameLayout) mBigContainer);
+ swManager.initRtcEngine((Activity) mContext, CommonAppConfig.getInstance().getUid());
+ swManager.setOnRtcEngineListener(new SWManager.onRtcEngineListener() {
+ @Override
+ public void onOpenSuccess(String channel, int uid) {
+ //开播成功
+ L.eSw("开播成功");
+ }
+
+ @Override
+ public void onUserOffline(int uid) {
+
+ }
+ });
+ }
+
+ public void exitChannelDrPk(List drPkbeanList) {
+ for (int i = 0; i < drPkbeanList.size(); i++) {
+ if (!CommonAppConfig.getInstance().getUid().equals(String.valueOf(drPkbeanList.get(i).getId()))) {
+ SWManager.get().exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), String.valueOf(drPkbeanList.get(i).getId()));
+ }
+ }
+ SWManager.get().updateMyChannelView((FrameLayout) mBigContainer);
+ currentPosition = 0;
+ drpkUid3 = "";
+ }
+
+ public void setAnPkRtc(UserBean u) {
+ EventBus.getDefault().post(new AnchorInfoEvent(false, u.getId(), u.getUserNiceName(), u.getAvatar()));
+ if (swManager != null && u != null) {
+ //将多人pk画面屏蔽
+ dr_pk_view.setVisibility(View.GONE);
+ L.eSw("设置对方主播的视图setAnPkRtc" + u);
+ pkUid1 = u.getId();
+ mPkContainer.setVisibility(View.VISIBLE);
+ //将自己的渲染视图设置到 leftContainer
+ swManager.updateMyChannelView((FrameLayout) mLeftContainer);
+ //清除 mBigContainer 中的渲染
+ mBigContainer.removeAllViews();
+ showButtonGone();
+ //设置对方主播的渲染视图 设置到 rightContainer
+ swManager.setPkContainer(mRightContainer);
+ swManager.joinChannelEx(CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, u.getId(), SWAuManager.getChannelName(u.getId()));
+ }
+
+ HttpClient.getInstance().get("Livepk.changeLive", "Livepk.changeLive")
+ .params("uid", CommonAppConfig.getInstance().getUid())
+ .params("pkuid", u.getId())
+ .params("type", "1")
+ .params("sign", "1")
+ .execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msgs, String[] info) {
+ if (code == 0) {
+ HttpClient.getInstance().get("Livepk.setPK", "Livepk.setPK")
+ .params("uid", CommonAppConfig.getInstance().getUid())
+ .params("pkuid", u.getId())
+ .params("type", "1")
+ .params("sign", "1")
+ .execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msgs, String[] info) {
+ if (code == 0) {
+ L.eSw("555555555555555555555555555555555555");
+ final SocketSendBean msg1 = new SocketSendBean()
+ .param("_method_", Constants.SOCKET_LINK_MIC_PK)
+ .param("action", 4)
+ .param("pkname", u.getUserNiceName())
+ .param("pkuid", u.getId())
+ .param("pkhead", u.getAvatar())
+ .param("uname", u.getUserNiceName())
+ .param("uhead", u.getAvatar())
+ .param("uid", CommonAppConfig.getInstance().getUid());
+ msg1.create();
+
+ Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
+ TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
+ Message message1 = Message.obtain("g" + CommonAppConfig.getInstance().getUid(), conversationType, messageContent);
+
+ RongIMClient.getInstance().sendMessage(message1, null, null, new IRongCallback.ISendMessageCallback() {
+ @Override
+ public void onAttached(Message message) {
+
+ }
+
+ @Override
+ public void onSuccess(Message message) {
+ Log.i("tx", "发送成功");
+ }
+
+ @Override
+ public void onError(Message message, RongIMClient.ErrorCode errorCode) {
+
+ }
+ });
+ }
+
+ }
+ });
+ }
+ }
+ });
+ }
+
+ private int currentPosition = 0;
+
+ private String drpkUid3 = "";
+
+ public int setAnDrPkRtc(String uid, int position) {
+ L.eSw("setAnDrPkRtc uid:" + uid + " position" + position);
+ int temp = -1;
+ if (swManager != null && !StringUtil.isEmpty(uid)) {
+ L.eSw("设置对方主播的视图 setAnDrPkRtc" + uid + "position:" + position);
+ if (currentPosition == 0) {
+ position = 2;
+ }
+ if (position == -1) {
+ temp = currentPosition + 1;
+ } else {
+ temp = position;
+ }
+ switch (temp) {
+ case 2:
+ swManager.joinChannelDrEx(dr2_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid),temp);
+ swManager.updateMyChannelView(dr1_preview);
+ mBigContainer.removeAllViews();
+
+ dr3_preview.setVisibility(View.GONE);
+ dr4_preview.setVisibility(View.GONE);
+ break;
+ case 3:
+ drpkUid3 = uid;
+ swManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid),temp);
+ dr3_preview.setVisibility(View.GONE);
+ dr4_preview.setVisibility(View.VISIBLE);
+ break;
+ case 4:
+ dr3_preview.setVisibility(View.VISIBLE);
+ //先退出这个主播的直播间,在进入该直播间,(视图问题暂时這樣處理)
+ swManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()), drpkUid3);
+ swManager.joinChannelDrEx(dr3_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, drpkUid3, SWAuManager.getChannelName(drpkUid3),temp);
+
+ swManager.joinChannelDrEx(dr4_preview, CommonAppConfig.getInstance().getUid(), CommonAppConfig.SWToken, uid, SWAuManager.getChannelName(uid),temp);
+ break;
+ }
+ dr_pk_view.setVisibility(View.VISIBLE);
+ currentPosition = temp;
+ }
+ return currentPosition;
+ }
+
+ public void anchorClose() {
+ swManager.exitChannelToUid(Integer.parseInt(CommonAppConfig.getInstance().getUid()),pkUid1);
+ swManager.updateMyChannelView((FrameLayout) mBigContainer); //用户主动断开连麦再退出画面
+ mPkContainer.setVisibility(View.GONE);
+ pkUid1 = null;
+ }
+
+ public void onLinkMicAnchorClose() {
+ //swManager.updateMyChannelView((FrameLayout) mBigContainer); 用户主动断开连麦再退出画面
+ //LivePushRyViewHolder.btn_close.setVisibility(View.GONE);
+ }
+
+
+ public void onLinkDRMicPkApply(UserBean userBean) {
+ if (mLiveSwLinkMicPkPresenter != null) {
+ mLiveSwLinkMicPkPresenter.onLinkDRMicPkApply(userBean);
+ }
+ }
+
+
+ @Override
+ public void changeToLeft() {
+ if (mPreView != null) {
+ LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mPreView.getLayoutParams();
+ params.width = mPreView.getWidth() / 2;
+ params.height = DpUtil.dp2px(mPreView.getHeight());
+ params.topMargin = DpUtil.dp2px(130);
+ camera.setLayoutParams(params);
+ }
+ }
+
+ @Override
+ public void changeToBig() {
+ if (camera != null) {
+ LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) camera.getLayoutParams();
+ params.width = ViewGroup.LayoutParams.MATCH_PARENT;
+ params.height = ViewGroup.LayoutParams.MATCH_PARENT;
+ params.topMargin = 0;
+ camera.setLayoutParams(params);
+ }
+ if (mPreView1.getVisibility() == View.VISIBLE) {
+ mPreView1.removeAllViews();
+ mPreView1.setVisibility(View.GONE);
+ inputStreamList.clear();
+ inputStreamList1.clear();
+ }
+ }
+
+ public void closeButtonGone() {
+ btn_close.setVisibility(View.GONE);
+ }
+
+ public void showButtonGone() {
+ btn_close.setVisibility(View.VISIBLE);
+ }
+
+ @Override
+ public void toggleCamera() {
+ if (mCameraFront) {
+ mCameraFront = false;
+ } else {
+ mCameraFront = true;
+ }
+ swManager.switchCamera();
+ }
+
+ /**
+ * 打开关闭闪光灯
+ */
+ @Override
+ public void toggleFlash() {
+ if (mCameraFront) {
+ ToastUtil.show(mContext.getString(R.string.live_open_flash));
+ return;
+ }
+ }
+
+ /**
+ * 开始推流
+ *
+ * @param pushUrl 推流地址
+ */
+ @Override
+ public void startPush(String pushUrl) {
+ //开播成功,创建频道
+ if (swManager != null) {
+ swManager.createChannel(CommonAppConfig.SWToken, CommonAppConfig.getChannelName());
+ }
+ }
+
+ public boolean isPking() {
+ if (btn_close != null) {
+ return btn_close.getVisibility() == View.VISIBLE;
+ }
+ return false;
+ }
+
+ @Override
+ public void onPause() {
+ mPaused = true;
+ }
+
+ @Override
+ public void onResume() {
+ mPaused = false;
+ Log.i("摄像头", "onResume: " + isNeedOpenCamera);
+ if (isNeedOpenCamera) {
+ RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(new IRCRTCResultDataCallback() {
+ @Override
+ public void onSuccess(Boolean data) {
+ //设置摄像头最大缩放比例
+ boolean zoom = RCRTCEngine.getInstance().getDefaultVideoStream().setCameraZoomFactor(1.0f);
+ // ToastUtil.show("设置比例="+zoom);
+ Log.i("摄像头", "onSuccess: 打开摄像头");
+ isNeedOpenCamera = false;
+ }
+
+ @Override
+ public void onFailed(RTCErrorCode errorCode) {
+ Log.i("摄像头", "onFailed: 打开摄像头失败 " + errorCode);
+ }
+ });
+ }
+ }
+
+ @Override
+ public void startBgm(String path) {
+ mBgmPath = path;
+
+ }
+
+ @Override
+ public void pauseBgm() {
+
+ }
+
+ @Override
+ public void resumeBgm() {
+
+ }
+
+ @Override
+ public void stopBgm() {
+ mBgmPath = null;
+ }
+
+
+ @Override
+ public void release() {
+ super.release();
+ Bus.getOff(this);
+ LiveHttpUtil.cancel(LiveHttpConsts.LINK_MIC_TX_MIX_STREAM);
+ rtcRoom = null;
+ }
+
+ @Override
+ public void onPushEvent(int e, Bundle bundle) {
+ if (e == TXLiveConstants.PUSH_ERR_OPEN_CAMERA_FAIL) {
+ ToastUtil.show(mContext.getString(R.string.live_push_failed_1));
+
+ } else if (e == TXLiveConstants.PUSH_ERR_OPEN_MIC_FAIL) {
+ ToastUtil.show(mContext.getString(R.string.live_push_failed_2));
+
+ } else if (e == TXLiveConstants.PUSH_ERR_NET_DISCONNECT || e == TXLiveConstants.PUSH_ERR_INVALID_ADDRESS) {
+ L.e(TAG, "网络断开,推流失败------>");
+
+ } else if (e == TXLiveConstants.PUSH_WARNING_HW_ACCELERATION_FAIL) {
+ L.e(TAG, "不支持硬件加速------>");
+
+ } else if (e == TXLiveConstants.PUSH_EVT_FIRST_FRAME_AVAILABLE) {//预览成功
+ L.e(TAG, "mStearm--->初始化完毕");
+ if (mLivePushListener != null) {
+ mLivePushListener.onPreviewStart();
+ }
+ } else if (e == TXLiveConstants.PUSH_EVT_PUSH_BEGIN) {//推流成功
+ L.e(TAG, "mStearm--->推流成功");
+ if (!mStartPush) {
+ mStartPush = true;
+ if (mLivePushListener != null) {
+ mLivePushListener.onPushStart();
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onNetStatus(Bundle bundle) {
+
+ }
+
+ private void aheadOfScheduleEndPK(String pkUid, String uname, String pkname) {
+ if (!isPk) {
+ return;
+ }
+ String ct = "由於 " + uname + " 退出比賽," + pkname + " 獲得勝利";
+
+ SocketSendBean seed_msg = new SocketSendBean().param("_method_", Constants.SOCKET_SYSTEM).param("action", 1).param("ct", ct);
+ seed_msg.create();
+
+ HttpClient.getInstance().get("Tx.sendmsgzs2", "Tx.sendmsgzs2").params("GroupId", "g" + pkUid).params("jsonstr", seed_msg.mResult.toString()).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ HttpClient.getInstance().post("Tx.sendmsgzs2", "Tx.sendmsgzs2").params("GroupId", "g" + CommonAppConfig.getInstance().getUid()).params("jsonstr", seed_msg.mResult.toString()).execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+
+ }
+ });
+ }
+ });
+ }
+
+ private Bitmap decodeResource(Resources resources, int id) {
+ TypedValue value = new TypedValue();
+ resources.openRawResource(id, value);
+ BitmapFactory.Options opts = new BitmapFactory.Options();
+ opts.inTargetDensity = value.density;
+ return BitmapFactory.decodeResource(resources, id, opts);
+ }
+
+ public static String getLiveStream() {
+ return ((LiveActivity) contexts).getStream();
+ }
+
+ private String getTxAppId() {
+ return ((LiveActivity) mContext).getTxAppId();
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void setSelectClarity(LivePushRyEvent event) {
+ if (rtcRoom != null)
+ rtcRoom.getLocalUser().publishDefaultLiveStreams(new IRCRTCResultDataCallback() {
+ @Override
+ public void onSuccess(RCRTCLiveInfo rcrtcLiveInfo1) {
+ rcrtcLiveInfo = rcrtcLiveInfo1;
+ }
+
+ @Override
+ public void onFailed(RTCErrorCode rtcErrorCode) {
+ Log.e("ry", "rtcErrorCode" + rtcErrorCode);
+ }
+ });
+ }
+
+ public void setEnableBeauty(boolean flag) {
+ if (swManager != null) {
+ swManager.setEnableBeauty(flag);
+ }
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void updateSub(LiveAudienceEvent event) {
+ if (event.getType() == LIVE_PK_END) {
+ isPk = false;
+ } else if (event.getType() == LIVE_PK_ING) {
+ isPk = true;
+ }
+ Log.i("PK----->", "updateSub: " + isPk + "|" + event.getType());
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ if (swManager != null) {
+ swManager.exitChannelAll();
+ }
+ }
+
+ public interface onDrPkJoinSuccessListener{
+ void joinSuccess1();
+ void joinSuccess2();
+ void joinSuccess3();
+ void joinSuccess4();
+
+ }
+
+}
diff --git a/live/src/main/java/com/yunbao/live/views/LiveReadyRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveReadyRyViewHolder.java
index e329329eb..8d44d530f 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveReadyRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveReadyRyViewHolder.java
@@ -35,6 +35,7 @@ import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveChooseClassActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
+import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.live.adapter.LiveReadyShareAdapter;
import com.yunbao.common.bean.LiveRoomTypeBean;
import com.yunbao.live.dialog.LiveRoomTypeDialogFragment;
@@ -218,7 +219,7 @@ public class LiveReadyRyViewHolder extends AbsViewHolder implements View.OnClick
public void openWishListWindow() {
LiveWishListDialogFragment fragment = new LiveWishListDialogFragment();
- if (mContext instanceof LiveRyAnchorActivity){
+ if (mContext instanceof LiveRyAnchorActivity){
fragment.show(((LiveRyAnchorActivity) mContext).getSupportFragmentManager(), "RY");
}
}
@@ -471,7 +472,7 @@ public class LiveReadyRyViewHolder extends AbsViewHolder implements View.OnClick
return;
}
String title = mEditTitle.getText().toString().trim();
- LiveHttpUtil.newcreateRoom(title, mLiveClassID, mLiveType, mLiveTypeVal, mAvatarFile,0, new HttpCallback() {
+ LiveHttpUtil.newcreateRoom(title, mLiveClassID, mLiveType, mLiveTypeVal, mAvatarFile,0, false,new HttpCallback() {
@Override
public void onSuccess(int code, String msg, final String[] info) {
if (code == 0 && info.length > 0) {
diff --git a/live/src/main/java/com/yunbao/live/views/LiveReadyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveReadyViewHolder.java
index abf89e1fb..a19123a46 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveReadyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveReadyViewHolder.java
@@ -492,7 +492,7 @@ public class LiveReadyViewHolder extends AbsViewHolder implements View.OnClickLi
return;
}
String title = mEditTitle.getText().toString().trim();
- LiveHttpUtil.newcreateRoom(title, mLiveClassID, mLiveType, mLiveTypeVal, mAvatarFile, 0, new HttpCallback() {
+ LiveHttpUtil.newcreateRoom(title, mLiveClassID, mLiveType, mLiveTypeVal, mAvatarFile, 0, false,new HttpCallback() {
@Override
public void onSuccess(int code, String msg, final String[] info) {
if (code == 0 && info.length > 0) {
diff --git a/live/src/main/java/com/yunbao/live/views/LiveRoomPlayViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRoomPlayViewHolder.java
index 440030882..36c8f80b1 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveRoomPlayViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveRoomPlayViewHolder.java
@@ -6,6 +6,7 @@ import android.view.ViewGroup;
import com.alibaba.fastjson.JSONArray;
import com.yunbao.common.bean.EnterRoomNewModel;
import com.yunbao.common.bean.LiveBean;
+import com.yunbao.common.bean.UserBean;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.live.interfaces.ILiveLinkMicViewHolder;
@@ -70,6 +71,8 @@ public abstract class LiveRoomPlayViewHolder extends AbsViewHolder implements IL
public abstract void setPkEndview();
+ public abstract void setDrMicInfo(UserBean u);
+
public abstract void setLiveBeanLandscape(int landscape);
public void setLiveBean(LiveBean data) {
@@ -79,6 +82,18 @@ public abstract class LiveRoomPlayViewHolder extends AbsViewHolder implements IL
public void setViewUP(int i) {
}
+ public void setViewPkMic(int uid) {
+ }
+
+ public void setViewPk() {
+ }
+
+ public void setViewDrMic() {
+ }
+
+ public void setViewDrPk() {
+ }
+
public OnMicCallback getOnMicCallback() {
return onMicCallback;
}
@@ -101,6 +116,21 @@ public abstract class LiveRoomPlayViewHolder extends AbsViewHolder implements IL
public void clearFrame() {
}
+ public abstract void endPk();
+
+ public abstract void endpk(String liveUid);
+
+ public abstract void initSwEngine(String liveUid);
+
+ public abstract void removeLiveUid(String uid);
+
+ public abstract void removeDetailView();
+
+ public abstract void setPkView(String liveUid);
+
+ public abstract void claerDrPkInfoView();
+
+ public abstract void endLiveMic();
public interface OnMicCallback {
diff --git a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
index b9b144cdc..448bdf425 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
@@ -55,10 +55,10 @@ import com.bumptech.glide.load.resource.gif.GifDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.Target;
-import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.reflect.TypeToken;
+import com.google.gson.Gson;
import com.lxj.xpopup.XPopup;
import com.makeramen.roundedimageview.RoundedImageView;
import com.ms.banner.Banner;
@@ -134,6 +134,7 @@ import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
+import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
@@ -157,6 +158,7 @@ import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveAnchorActivity;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
+import com.yunbao.live.activity.LiveSwAnchorActivity;
import com.yunbao.live.activity.ZhuangBanActivity;
import com.yunbao.live.adapter.ComboAdapter;
import com.yunbao.live.adapter.LiveChatAdapter;
@@ -192,6 +194,7 @@ import com.yunbao.live.dialog.ReceiveRendPacketPopup;
import com.yunbao.live.dialog.ResultRendPacketPopup;
import com.yunbao.live.event.LiveAnchorEvent;
import com.yunbao.live.event.LiveAudienceEvent;
+import com.yunbao.live.event.LivePKRightUserInfoEvent;
import com.yunbao.live.presenter.LiveDanmuPresenter;
import com.yunbao.live.presenter.LiveEnterRoomAnimPresenter;
import com.yunbao.live.presenter.LiveGiftAnimPresenter;
@@ -230,6 +233,8 @@ import pl.droidsonroids.gif.GifImageView;
*/
public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickListener {
+ private static final int PK_LINE_HEIGHT = (960 + DpUtil.dp2px(65));//单人PK席位高度线
+ private static final int PK_BOTTOM = ScreenDimenUtil.getInstance().getScreenWdith() / 2;
public static Context Contexts;
private int mOffsetY;
private ViewGroup mRoot;
@@ -428,6 +433,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
private pl.droidsonroids.gif.GifDrawable mGifDrawable;
+ private static boolean isSw;
+
public LiveRoomViewHolder setGuardType(int guardType) {
this.guardType = guardType;
return this;
@@ -472,14 +479,12 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
if ("svga_new_user_gif".equals(str)) {
if (fastMsgRecyclerView == null) return;
- RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams)
- fastMsgRecyclerView.getLayoutParams();
+ 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)) {
if (fastMsgRecyclerView == null) return;
- RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams)
- fastMsgRecyclerView.getLayoutParams();
+ RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) fastMsgRecyclerView.getLayoutParams();
params1.rightMargin = 0;
fastMsgRecyclerView.setLayoutParams(params1);
} else if ("showBanner".equals(str)) {
@@ -579,8 +584,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
- 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, boolean isSw) {
super(context, parentView);
+ this.isSw = isSw;
Contexts = context;
this.forAct = forActivity;
// this.isRy = isRys;
@@ -691,8 +697,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
bean.setContent(model.getMsg());
bean.setUserNiceName(model.getUserName());
- bean.setAtUserName(model.getXydgiftname())
- .setLevel(model.getLevel());
+ bean.setAtUserName(model.getXydgiftname()).setLevel(model.getLevel());
bean.setType(LiveChatBean.XYD_COMPLETE);
mLiveChatAdapter.insertItem(bean);
xydCompleteModels.add(model);
@@ -722,9 +727,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
public void setSudName(String sudName, SudGameDateModel sudGameDateModel) {
sud_text_name = (TextView) findViewById(R.id.sud_text_name);
sud_layout_name = (LinearLayout) findViewById(R.id.sud_layout_name);
- sud_text_name.setText(WordUtil.isNewZh() ?
- String.format("主播创建了【%s】房间,快来与主播同玩~", sudName) :
- String.format("The anchor has created a 【%s】 room. Come and play with the anchor~", sudName));
+ sud_text_name.setText(WordUtil.isNewZh() ? String.format("主播创建了【%s】房间,快来与主播同玩~", sudName) : String.format("The anchor has created a 【%s】 room. Come and play with the anchor~", sudName));
sud_layout_name.setVisibility(View.VISIBLE);
ViewClicksAntiShake.clicksAntiShake(sud_layout_name, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
@@ -900,10 +903,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
dr_pk_end_gif.setVisibility(View.VISIBLE);
visibility = false;
RequestOptions options = new RequestOptions().skipMemoryCache(true);//配置
- Glide.with(mContext).asGif()
- .apply(options)//应用配置
- .load(WordUtil.isNewZh() ? R.mipmap.drpkend : R.mipmap.drpkend_en)
- .listener(new RequestListener() {
+ Glide.with(mContext).asGif().apply(options)//应用配置
+ .load(WordUtil.isNewZh() ? R.mipmap.drpkend : R.mipmap.drpkend_en).listener(new RequestListener() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
return false;
@@ -915,12 +916,10 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
resource.setLoopCount(1);//只播放一次
}
//发送延时消息,通知动画结束
- mHandler.sendEmptyMessageDelayed(1,
- 3000);
+ mHandler.sendEmptyMessageDelayed(1, 3000);
return false;
}
- })
- .into(dr_pk_end_gif);
+ }).into(dr_pk_end_gif);
}
@@ -1292,7 +1291,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
topBanner1 = (Banner) findViewById(R.id.top_banner1);
topBanner2 = (Banner) findViewById(R.id.top_banner2);
- if (LivePushTxViewHolder.mTRTCCloud != null || LivePushRyViewHolder.rtcRoom != null) {
+ if (LivePushTxViewHolder.mTRTCCloud != null || LivePushSwViewHolder.rtcRoom != null) {
fans_btn.setVisibility(View.GONE);
}
mPkRankTopIcon.setVisibility(View.GONE);
@@ -1335,8 +1334,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
chat_view = (RelativeLayout) findViewById(R.id.chat_view);
int topMargin = mScreenWdith * 720 / 960 + 210;
- RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)
- chat_view.getLayoutParams();
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) chat_view.getLayoutParams();
params.topMargin = topMargin;
chat_view.setLayoutParams(params);
@@ -1346,8 +1344,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
msgLayout.setLayoutParams(msgLayoutLayoutParams);
voteManager.setMarginPosition(topMargin + DpUtil.dp2px(50));
- RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams)
- mChatRecyclerView.getLayoutParams();
+ RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) mChatRecyclerView.getLayoutParams();
params1.topMargin = DpUtil.dp2px(65);
mChatRecyclerView.setLayoutParams(params1);
@@ -1511,18 +1508,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
liveAudienceActivity.pausePlay();
if (code == 1008) {//余额不足
liveAudienceActivity.setCoinNotEnough(true);
- DialogUitl.showSimpleDialog(mContext, mContext.getString(R.string.live_coin_not_enough), false,
- new DialogUitl.SimpleCallback2() {
- @Override
- public void onConfirmClick(Dialog dialog, String content) {
- RouteUtil.forwardMyCoin(mContext);
- }
+ DialogUitl.showSimpleDialog(mContext, mContext.getString(R.string.live_coin_not_enough), false, new DialogUitl.SimpleCallback2() {
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ RouteUtil.forwardMyCoin(mContext);
+ }
- @Override
- public void onCancelClick() {
- liveAudienceActivity.exitLiveRoom();
- }
- });
+ @Override
+ public void onCancelClick() {
+ liveAudienceActivity.exitLiveRoom();
+ }
+ });
}
}
}
@@ -1554,11 +1550,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
// ft_hot_add = (FrameLayout) findViewById(R.id.ft_hot_add);
// img_hot_gif = (ImageView) findViewById(R.id.img_hot_gif);
findViewById(R.id.ft_hot_add).setOnClickListener(this);
- ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.open_sidebar), () -> Bus.get().post(new LiveAudienceEvent()
- .setType(LiveAudienceEvent.LiveAudienceType.SIDEBAR)));
+ ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.open_sidebar), () -> Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.SIDEBAR)));
//点击心愿单
- ViewClicksAntiShake.clicksAntiShake(wishListLayout, () -> Bus.get().post(new LiveAudienceEvent()
- .setType(LiveAudienceEvent.LiveAudienceType.WISH_LIST)));
+ ViewClicksAntiShake.clicksAntiShake(wishListLayout, () -> Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.WISH_LIST)));
mBanner1.setOutlineProvider(new ViewOutlineProvider() {
@Override
@@ -1624,11 +1618,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
// fastMsgRecyclerView.setItemAnimator(new DefaultItemAnimator());
//主播页面隐藏头部
+ if (mContext instanceof LiveSwAnchorActivity) {
+ findViewById(R.id.open_sidebar).setVisibility(View.GONE);
+ findViewById(R.id.btn_follow).setVisibility(View.GONE);
+ findViewById(R.id.live_rank_pk).setVisibility(View.GONE);
+ }
if (mContext instanceof LiveRyAnchorActivity) {
findViewById(R.id.open_sidebar).setVisibility(View.GONE);
findViewById(R.id.btn_follow).setVisibility(View.GONE);
findViewById(R.id.live_rank_pk).setVisibility(View.GONE);
}
+
customFullServiceNotify = (ImageView) findViewById(R.id.custom_full_service_notify);
reloadIM();
// initStarChallengeStatus();
@@ -1973,7 +1973,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
private Runnable timeRunnable = new Runnable() {
@Override
public void run() {
- Log.i("红包", "run: 红包倒计时 "+redTimeCountdown);
+ Log.i("红包", "run: 红包倒计时 " + redTimeCountdown);
if (redTimeCountdown > 1) {
timeHandler.postDelayed(timeRunnable, 1000);
redPacketCountdown.setText(String.format(mContext.getString(R.string.red_packet_countdown), TimeUtils.getTime(redTimeCountdown)));
@@ -1982,9 +1982,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
redTimeCountdown = 0;
timeHandler.removeCallbacks(timeRunnable);
StringBuffer stringBuffer = new StringBuffer();
- stringBuffer.append(mRedPacketModel.getRedPacketRemain())
- .append("/")
- .append(mRedPacketModel.getRedPacketQuantity());
+ stringBuffer.append(mRedPacketModel.getRedPacketRemain()).append("/").append(mRedPacketModel.getRedPacketQuantity());
redSchedule.setText(stringBuffer.toString());
openRedPacket.setText(String.format(mContext.getString(R.string.open_red_packet), mRedPacketModel.getRedPacketCount() + ""));
redPacketCountdown.setVisibility(View.GONE);
@@ -1999,24 +1997,23 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
private Runnable anchorTimeRunnable = new Runnable() {
@Override
public void run() {
- Log.i("红包", "anchorTimeRunnable run: "+mCountdown);
+ Log.i("红包", "anchorTimeRunnable run: " + mCountdown);
if (mCountdown > 0) {
mCountdown = mCountdown - 1;
anchorTimeHandler.postDelayed(anchorTimeRunnable, 1000);
Log.e("主播倒计时", String.format(mContext.getString(R.string.red_packet_countdown), TimeUtils.getTime(mCountdown)));
if (mCountdown == 180) {
- LiveNetManager.get(mContext).
- startRedPacketRobot(mLiveUid, mStream, mRedPacketModel.getRedPacketId(), new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(String data) {
+ LiveNetManager.get(mContext).startRedPacketRobot(mLiveUid, mStream, mRedPacketModel.getRedPacketId(), new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(String data) {
- }
+ }
- @Override
- public void onError(String error) {
- ToastUtil.show(error);
- }
- });
+ @Override
+ public void onError(String error) {
+ ToastUtil.show(error);
+ }
+ });
}
} else {
redPacket.setVisibility(View.GONE);
@@ -2024,24 +2021,24 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(110);
dragonImmediateParticipation.setLayoutParams(layoutParams);
- } if (dragonImmediateParticipationTime.getVisibility() == View.VISIBLE) {
+ }
+ if (dragonImmediateParticipationTime.getVisibility() == View.VISIBLE) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(110);
dragonImmediateParticipationTime.setLayoutParams(layoutParams);
}
anchorTimeHandler.removeCallbacks(anchorTimeRunnable);
- LiveNetManager.get(mContext).
- endRedPacket(mLiveUid, mRedPacketModel.getRedPacketId(), new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(String data) {
+ LiveNetManager.get(mContext).endRedPacket(mLiveUid, mRedPacketModel.getRedPacketId(), new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(String data) {
- }
+ }
- @Override
- public void onError(String error) {
- ToastUtil.show(error);
- }
- });
+ @Override
+ public void onError(String error) {
+ ToastUtil.show(error);
+ }
+ });
}
}
};
@@ -2060,7 +2057,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
layoutParams.topMargin = DpUtil.dp2px(190);
dragonImmediateParticipation.setLayoutParams(layoutParams);
}
- if (dragonImmediateParticipationTime.getVisibility() == View.VISIBLE&&mContext instanceof LiveRyAnchorActivity) {
+ if (dragonImmediateParticipationTime.getVisibility() == View.VISIBLE && mContext instanceof LiveRyAnchorActivity) {
RelativeLayout.LayoutParams layoutParamsredPacket = (RelativeLayout.LayoutParams) redPacket.getLayoutParams();
layoutParamsredPacket.topMargin = DpUtil.dp2px(110);
redPacket.setLayoutParams(layoutParamsredPacket);
@@ -2069,10 +2066,12 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
layoutParams.topMargin = DpUtil.dp2px(190);
dragonImmediateParticipationTime.setLayoutParams(layoutParams);
}
- if (dragonImmediateParticipationTime.getVisibility() == View.GONE&&mContext instanceof LiveRyAnchorActivity){
- RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) redPacket.getLayoutParams();
- layoutParams.topMargin = DpUtil.dp2px(110);
- redPacket.setLayoutParams(layoutParams);
+ if (mContext instanceof LiveRyAnchorActivity || mContext instanceof LiveSwAnchorActivity) {
+ if (dragonImmediateParticipationTime.getVisibility() == View.GONE) {
+ RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) redPacket.getLayoutParams();
+ layoutParams.topMargin = DpUtil.dp2px(110);
+ redPacket.setLayoutParams(layoutParams);
+ }
}
if (redPacketModel.getCountdown() > 180) {
redPacketQueue.setVisibility(View.GONE);
@@ -2086,13 +2085,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
redPacketQueue.setVisibility(View.VISIBLE);
redPacketCountdown.setVisibility(View.GONE);
StringBuffer stringBuffer = new StringBuffer();
- stringBuffer.append(mRedPacketModel.getRedPacketRemain())
- .append("/")
- .append(mRedPacketModel.getRedPacketQuantity());
+ stringBuffer.append(mRedPacketModel.getRedPacketRemain()).append("/").append(mRedPacketModel.getRedPacketQuantity());
redSchedule.setText(stringBuffer.toString());
openRedPacket.setText(String.format(mContext.getString(R.string.open_red_packet), mRedPacketModel.getRedPacketCount() + ""));
}
- if (IMLoginManager.get(mContext).getUserInfo().anchorUserType() && mContext instanceof LiveRyAnchorActivity) {
+ if (IMLoginManager.get(mContext).getUserInfo().anchorUserType() && (mContext instanceof LiveSwAnchorActivity || mContext instanceof LiveRyAnchorActivity)) {
anchorTimeHandler.removeCallbacks(anchorTimeRunnable);
anchorTimeHandler.post(anchorTimeRunnable);
}
@@ -2104,38 +2101,29 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
@Override
public void onViewClicks() {
- if (!(mContext instanceof LiveRyAnchorActivity)) {
- LiveNetManager.get(mContext)
- .redPacketInfo(mLiveUid, redPacketModel.getRedPacketId(), new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(RedPacketInfoModel data) {
- if (TextUtils.equals(data.getReceiveStatus(), "0")) {
- redTimeCountdown = redTimeCountdown - 1;
- new XPopup.Builder(mContext)
- .asCustom(new ReceiveRendPacketPopup(mContext, redTimeCountdown, mLiveUid, mStream, redPacketModel.getRedPacketId(), data, false, isFans))
- .show();
- } else if (TextUtils.equals(data.getReceiveStatus(), "1")) {
- new XPopup.Builder(mContext)
- .asCustom(new ResultRendPacketPopup(mContext, true, data.setRedPacketId(redPacketModel.getRedPacketId()), false))
- .show();
- } else {
- if (data.getGiftModels().size() > 0) {
- new XPopup.Builder(mContext)
- .asCustom(new ResultRendPacketPopup(mContext, false, data.setRedPacketId(redPacketModel.getRedPacketId()), false))
- .show();
- } else {
- new XPopup.Builder(mContext)
- .asCustom(new ResultRendPacketPopup(mContext, true, data.setRedPacketId(redPacketModel.getRedPacketId()), false))
- .show();
- }
- }
+ if (!(mContext instanceof LiveSwAnchorActivity || mContext instanceof LiveRyAnchorActivity)) {
+ LiveNetManager.get(mContext).redPacketInfo(mLiveUid, redPacketModel.getRedPacketId(), new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(RedPacketInfoModel data) {
+ if (TextUtils.equals(data.getReceiveStatus(), "0")) {
+ redTimeCountdown = redTimeCountdown - 1;
+ new XPopup.Builder(mContext).asCustom(new ReceiveRendPacketPopup(mContext, redTimeCountdown, mLiveUid, mStream, redPacketModel.getRedPacketId(), data, false, isFans)).show();
+ } else if (TextUtils.equals(data.getReceiveStatus(), "1")) {
+ new XPopup.Builder(mContext).asCustom(new ResultRendPacketPopup(mContext, true, data.setRedPacketId(redPacketModel.getRedPacketId()), false)).show();
+ } else {
+ if (data.getGiftModels().size() > 0) {
+ new XPopup.Builder(mContext).asCustom(new ResultRendPacketPopup(mContext, false, data.setRedPacketId(redPacketModel.getRedPacketId()), false)).show();
+ } else {
+ new XPopup.Builder(mContext).asCustom(new ResultRendPacketPopup(mContext, true, data.setRedPacketId(redPacketModel.getRedPacketId()), false)).show();
}
+ }
+ }
- @Override
- public void onError(String error) {
- ToastUtil.show(error);
- }
- });
+ @Override
+ public void onError(String error) {
+ ToastUtil.show(error);
+ }
+ });
}
@@ -2158,9 +2146,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
public void setRedPacketInfoModel(RedPacketInfoModel redPacket) {
- new XPopup.Builder(mContext)
- .asCustom(new ReceiveRendPacketPopup(mContext, 0, mLiveUid, mStream, redPacket.getRedPacketId(), redPacket, true, isFans))
- .show();
+ new XPopup.Builder(mContext).asCustom(new ReceiveRendPacketPopup(mContext, 0, mLiveUid, mStream, redPacket.getRedPacketId(), redPacket, true, isFans)).show();
}
/**
@@ -2209,19 +2195,18 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
* 获取当前直播间星级
*/
private void initStarChallengeStatus() {
- LiveNetManager.get(mContext)
- .getStarChallengeStatus(PortraitLiveManager.liveID, new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(StarChallengeStatusModel data1) {
- showStart(data1);
- Log.e("PortraitLiveManager", data1.toString());
- }
+ LiveNetManager.get(mContext).getStarChallengeStatus(PortraitLiveManager.liveID, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(StarChallengeStatusModel data1) {
+ showStart(data1);
+ Log.e("PortraitLiveManager", data1.toString());
+ }
- @Override
- public void onError(String error) {
- Log.e("PortraitLiveManager", error);
- }
- });
+ @Override
+ public void onError(String error) {
+ Log.e("PortraitLiveManager", error);
+ }
+ });
}
@@ -2243,7 +2228,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
if (d_pk_view != null) {
d_pk_view.setVisibility(View.GONE);
}
- if (LivePushTxViewHolder.mTRTCCloud != null || LivePushRyViewHolder.rtcRoom != null) {
+ if (LivePushTxViewHolder.mTRTCCloud != null || LivePushSwViewHolder.rtcRoom != null) {
fans_btn.setVisibility(View.GONE);
}
mRedVal.setVisibility(View.GONE);
@@ -2365,155 +2350,94 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
if (mBannerList2 != null && mBanner2 != null) {
btn_event2.setVisibility(View.VISIBLE);
if (mBannerList2.size() == 1) {
- mBanner2.setAutoPlay(false)
- .setPages(mBannerList2, new CustomViewHolder())
- .setDelayTime(3200)
- .setBannerStyle(BannerConfig.NOT_INDICATOR)
- .setOnBannerClickListener(new OnBannerClickListener() {
- @Override
- public void onBannerClick(List datas, int p) {
- if (showLoadingDialog()) {
+ mBanner2.setAutoPlay(false).setPages(mBannerList2, new CustomViewHolder()).setDelayTime(3200).setBannerStyle(BannerConfig.NOT_INDICATOR).setOnBannerClickListener(new OnBannerClickListener() {
+ @Override
+ public void onBannerClick(List datas, int p) {
+ if (showLoadingDialog()) {
+ return;
+ }
+ if (mBannerList2 != null) {
+ if (p >= 0 && p < mBannerList2.size()) {
+ IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
+ BannerBean bean = mBannerList2.get(p);
+ String type = "";
+ if (bean.getLink().equals("BattlePass")) {
+ RouteUtil.forwardBattlePass();
return;
}
- if (mBannerList2 != null) {
- if (p >= 0 && p < mBannerList2.size()) {
- IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
- BannerBean bean = mBannerList2.get(p);
- String type = "";
- if (bean.getLink().equals("BattlePass")) {
- RouteUtil.forwardBattlePass();
- return;
- }
- StringBuffer htmlUrl = new StringBuffer();
- //判断是否是星级活动
- if (bean.isStart()) {
+ StringBuffer htmlUrl = new StringBuffer();
+ //判断是否是星级活动
+ if (bean.isStart()) {
- type = bean.getModel().getType();
- htmlUrl.append(CommonAppConfig.HOST)
- .append("/")
- .append(bean.getModel().getActivityUrl())
- .append(bean.getModel().getActivityUrl().contains("?") ? "&nickname=" : "?nickname=")
- .append(userInfo.getUserNicename())
- .append("&token=")
- .append(userInfo.getToken())
- .append("&anchorUid=")
- .append(mLiveUid)
- .append("&uid=")
- .append(userInfo.getId())
- .append("&k=")
- .append(System.currentTimeMillis())
- .append("&isZh=")
- .append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
- } else {
- type = bean.getShow_type();
- htmlUrl.append(bean.getLink())
- .append("?uid=")
- .append(userInfo.getId())
- .append("&token=")
- .append(userInfo.getToken())
- .append("&anchorUid=")
- .append(mLiveUid)
- .append("&t=")
- .append(System.currentTimeMillis())
- .append("&isZh=")
- .append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
- }
- if (htmlUrl.toString().contains("StarChallenge")) {
- Map map_ekv = new HashMap();
- map_ekv.put("link", htmlUrl.toString());
- MobclickAgent.onEvent(mContext, "live_room_star", map_ekv);
- }
- if (TextUtils.equals(type, "1")) {
- ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1);
- } else {
- Bundle bundle = new Bundle();
- bundle.putString("url", htmlUrl.toString());
- LiveHDDialogFragment fragment = new LiveHDDialogFragment();
- fragment.setArguments(bundle);
- fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
- }
- }
+ type = bean.getModel().getType();
+ htmlUrl.append(CommonAppConfig.HOST).append("/").append(bean.getModel().getActivityUrl()).append(bean.getModel().getActivityUrl().contains("?") ? "&nickname=" : "?nickname=").append(userInfo.getUserNicename()).append("&token=").append(userInfo.getToken()).append("&anchorUid=").append(mLiveUid).append("&uid=").append(userInfo.getId()).append("&k=").append(System.currentTimeMillis()).append("&isZh=").append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
+ } else {
+ type = bean.getShow_type();
+ htmlUrl.append(bean.getLink()).append("?uid=").append(userInfo.getId()).append("&token=").append(userInfo.getToken()).append("&anchorUid=").append(mLiveUid).append("&t=").append(System.currentTimeMillis()).append("&isZh=").append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
+ }
+ if (htmlUrl.toString().contains("StarChallenge")) {
+ Map map_ekv = new HashMap();
+ map_ekv.put("link", htmlUrl.toString());
+ MobclickAgent.onEvent(mContext, "live_room_star", map_ekv);
+ }
+ if (TextUtils.equals(type, "1")) {
+ ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1);
+ } else {
+ Bundle bundle = new Bundle();
+ bundle.putString("url", htmlUrl.toString());
+ LiveHDDialogFragment fragment = new LiveHDDialogFragment();
+ fragment.setArguments(bundle);
+ fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
}
}
- })
- .start();
+ }
+ }
+ }).start();
} else {
- mBanner2.setAutoPlay(true)
- .setPages(mBannerList2, new CustomViewHolder())
- .setDelayTime(3200)
- .setBannerStyle(BannerConfig.NOT_INDICATOR)
- .setOnBannerClickListener(new OnBannerClickListener() {
- @Override
- public void onBannerClick(List datas, int p) {
- if (showLoadingDialog()) {
+ mBanner2.setAutoPlay(true).setPages(mBannerList2, new CustomViewHolder()).setDelayTime(3200).setBannerStyle(BannerConfig.NOT_INDICATOR).setOnBannerClickListener(new OnBannerClickListener() {
+ @Override
+ public void onBannerClick(List datas, int p) {
+ if (showLoadingDialog()) {
+ return;
+ }
+ if (mBannerList2 != null) {
+ if (p >= 0 && p < mBannerList2.size()) {
+ IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
+ BannerBean bean = mBannerList2.get(p);
+ if (bean.getLink().equals("BattlePass")) {
+ RouteUtil.forwardBattlePass();
return;
}
- if (mBannerList2 != null) {
- if (p >= 0 && p < mBannerList2.size()) {
- IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
- BannerBean bean = mBannerList2.get(p);
- if (bean.getLink().equals("BattlePass")) {
- RouteUtil.forwardBattlePass();
- return;
- }
- String type = "";
- StringBuffer htmlUrl = new StringBuffer();
- //判断是否是星级活动
- if (bean.isStart()) {
- type = bean.getModel().getType();
- htmlUrl.append(CommonAppConfig.HOST)
- .append("/")
- .append(bean.getModel().getActivityUrl())
- .append(bean.getModel().getActivityUrl().contains("?") ? "&nickname=" : "?nickname=")
- .append(userInfo.getUserNicename())
- .append("&token=")
- .append(userInfo.getToken())
- .append("&anchorUid=")
- .append(mLiveUid)
- .append("&uid=")
- .append(userInfo.getId())
- .append("&k=")
- .append(System.currentTimeMillis())
- .append("&isZh=")
- .append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
+ String type = "";
+ StringBuffer htmlUrl = new StringBuffer();
+ //判断是否是星级活动
+ if (bean.isStart()) {
+ type = bean.getModel().getType();
+ htmlUrl.append(CommonAppConfig.HOST).append("/").append(bean.getModel().getActivityUrl()).append(bean.getModel().getActivityUrl().contains("?") ? "&nickname=" : "?nickname=").append(userInfo.getUserNicename()).append("&token=").append(userInfo.getToken()).append("&anchorUid=").append(mLiveUid).append("&uid=").append(userInfo.getId()).append("&k=").append(System.currentTimeMillis()).append("&isZh=").append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
- } else {
- type = bean.getShow_type();
- htmlUrl.append(bean.getLink())
- .append(bean.getLink().contains("?") ? "&uid=" : "?uid=")
- .append(userInfo.getId())
- .append("&token=")
- .append(userInfo.getToken())
- .append("&anchorUid=")
- .append(mLiveUid)
- .append("&liveUid=")
- .append(mLiveUid)
- .append("&t=")
- .append(System.currentTimeMillis())
- .append("&g=Appapi&m=Wish&a=index")
- .append("&isZh=")
- .append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
- }
- if (htmlUrl.toString().contains("StarChallenge")) {
- Map map_ekv = new HashMap();
- map_ekv.put("link", htmlUrl.toString());
- MobclickAgent.onEvent(mContext, "live_room_star", map_ekv);
- }
- if (TextUtils.equals(type, "1")) {
- ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1);
- } else {
- Bundle bundle = new Bundle();
- bundle.putString("url", htmlUrl.toString());
- LiveHDDialogFragment fragment = new LiveHDDialogFragment();
- fragment.setArguments(bundle);
- fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
- }
- }
+ } else {
+ type = bean.getShow_type();
+ htmlUrl.append(bean.getLink()).append(bean.getLink().contains("?") ? "&uid=" : "?uid=").append(userInfo.getId()).append("&token=").append(userInfo.getToken()).append("&anchorUid=").append(mLiveUid).append("&liveUid=").append(mLiveUid).append("&t=").append(System.currentTimeMillis()).append("&g=Appapi&m=Wish&a=index").append("&isZh=").append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
+ }
+ if (htmlUrl.toString().contains("StarChallenge")) {
+ Map map_ekv = new HashMap();
+ map_ekv.put("link", htmlUrl.toString());
+ MobclickAgent.onEvent(mContext, "live_room_star", map_ekv);
+ }
+ if (TextUtils.equals(type, "1")) {
+ ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1);
+ } else {
+ Bundle bundle = new Bundle();
+ bundle.putString("url", htmlUrl.toString());
+ LiveHDDialogFragment fragment = new LiveHDDialogFragment();
+ fragment.setArguments(bundle);
+ fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
}
}
- })
- .start();
+ }
+ }
+ }).start();
}
}
@@ -2605,73 +2529,67 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
public void showLiveRoomActivityBanner() {
- LiveNetManager.get(mContext)
- .getLiveRoomActivityBanner(new com.yunbao.common.http.base.HttpCallback>() {
- @Override
- public void onSuccess(List data) {
- mBannerList4.clear();
- for (LiveRoomActivityBanner datum : data) {
- if (datum.getHidden() == 1) {
- continue;
- }
- BannerBean bean = new BannerBean();
- bean.setActivityId(datum.getActiveId());
- bean.setName(datum.getName());
- bean.setLink(datum.getLink());
- bean.setImageUrl(datum.getImg());
- bean.setShow_type(datum.getType());
- mBannerList4.add(bean);
- }
- showBanner4();
+ LiveNetManager.get(mContext).getLiveRoomActivityBanner(new com.yunbao.common.http.base.HttpCallback>() {
+ @Override
+ public void onSuccess(List data) {
+ mBannerList4.clear();
+ for (LiveRoomActivityBanner datum : data) {
+ if (datum.getHidden() == 1) {
+ continue;
}
+ BannerBean bean = new BannerBean();
+ bean.setActivityId(datum.getActiveId());
+ bean.setName(datum.getName());
+ bean.setLink(datum.getLink());
+ bean.setImageUrl(datum.getImg());
+ bean.setShow_type(datum.getType());
+ mBannerList4.add(bean);
+ }
+ showBanner4();
+ }
- @Override
- public void onError(String error) {
+ @Override
+ public void onError(String error) {
- }
- });
+ }
+ });
}
private void showBanner() {
if (mBannerList1 == null || mBannerList1.size() == 0 || mBanner1 == null) {
return;
}
- mBanner1.setAutoPlay(true)
- .setPages(mBannerList1, new CustomViewHolder())
- .setDelayTime(3000)
- .setBannerStyle(BannerConfig.NOT_INDICATOR)
- .setOnBannerClickListener(new OnBannerClickListener() {
- @Override
- public void onBannerClick(List datas, int p) {
- if (mBannerList1 != null) {
- if (p >= 0 && p < mBannerList1.size()) {
- BannerBean bean = mBannerList1.get(p);
- if (bean != null) {
- String link = bean.getLink();
- if (link.equals("BattlePass")) {
- RouteUtil.forwardBattlePass();
- return;
- }
- if (link.equals("sc")) {
- String url;
- if (!"".equals(bean.getmIntoUrl()) && bean.getmIntoUrl() != null) {
- url = CommonAppConfig.HOST + bean.getmIntoUrl() + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
- } else {
- url = CommonAppConfig.HOST + "/h5/activity/firstTopUp/newUp.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
- }
- ZhuangBanActivity.forward(mContext, url, false, 1);
- } else if (link.equals("zxb")) {
- String url = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
- ZhuangBanActivity.forward(mContext, url, false, 1);
- } else if (link.equals("xyd")) {
- openWishListWindow();
- }
+ mBanner1.setAutoPlay(true).setPages(mBannerList1, new CustomViewHolder()).setDelayTime(3000).setBannerStyle(BannerConfig.NOT_INDICATOR).setOnBannerClickListener(new OnBannerClickListener() {
+ @Override
+ public void onBannerClick(List datas, int p) {
+ if (mBannerList1 != null) {
+ if (p >= 0 && p < mBannerList1.size()) {
+ BannerBean bean = mBannerList1.get(p);
+ if (bean != null) {
+ String link = bean.getLink();
+ if (link.equals("BattlePass")) {
+ RouteUtil.forwardBattlePass();
+ return;
+ }
+ if (link.equals("sc")) {
+ String url;
+ if (!"".equals(bean.getmIntoUrl()) && bean.getmIntoUrl() != null) {
+ url = CommonAppConfig.HOST + bean.getmIntoUrl() + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
+ } else {
+ url = CommonAppConfig.HOST + "/h5/activity/firstTopUp/newUp.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
}
+ ZhuangBanActivity.forward(mContext, url, false, 1);
+ } else if (link.equals("zxb")) {
+ String url = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
+ ZhuangBanActivity.forward(mContext, url, false, 1);
+ } else if (link.equals("xyd")) {
+ openWishListWindow();
}
}
}
- })
- .start();
+ }
+ }
+ }).start();
}
/**
@@ -2755,8 +2673,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
path = "/" + path;
}
String url = CommonAppConfig.HOST + path;
- url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token="
- + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid;
+ url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid;
bundle.putString("url", url);
bundle.putInt("height", DpUtil.dp2px(500));
bundle.putInt("show_type", 0);
@@ -2779,51 +2696,47 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
textParams.leftMargin = DpUtil.dp2px(5);
params.leftMargin = DpUtil.dp2px(5);
- API.get().pdLiveApi(mContext).getHourChartRank(mLiveUid)
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(listResponseModel -> {
- List info = listResponseModel.getData().getInfo();
- if (!info.isEmpty()) {
- View hotView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
- View hourView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
- ImageView hotPic = hotView.findViewById(R.id.wish_pic);
- ImageView hourPic = hourView.findViewById(R.id.wish_pic);
- mHotText = hotView.findViewById(R.id.wish_index);
- mHourRank = hourView.findViewById(R.id.wish_index);
- mHotText.setText("0");
- mHotText.setLayoutParams(textParams);
- mHourRank.setLayoutParams(textParams);
- mHotText.setGravity(Gravity.CENTER);
- mHourRank.setGravity(Gravity.CENTER);
- setHourRankData(info.get(0).getRank());
- hotPic.setImageResource(R.drawable.icon_time_new);
- hourPic.setImageResource(R.drawable.icon_heat_new);
- hotPic.setLayoutParams(params);
- hourPic.setLayoutParams(params);
- flipper.addView(hotView);
- flipper.addView(hourView);
- flipper.startFlipping();
+ API.get().pdLiveApi(mContext).getHourChartRank(mLiveUid).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(listResponseModel -> {
+ List info = listResponseModel.getData().getInfo();
+ if (!info.isEmpty()) {
+ View hotView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
+ View hourView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
+ ImageView hotPic = hotView.findViewById(R.id.wish_pic);
+ ImageView hourPic = hourView.findViewById(R.id.wish_pic);
+ mHotText = hotView.findViewById(R.id.wish_index);
+ mHourRank = hourView.findViewById(R.id.wish_index);
+ mHotText.setText("0");
+ mHotText.setLayoutParams(textParams);
+ mHourRank.setLayoutParams(textParams);
+ mHotText.setGravity(Gravity.CENTER);
+ mHourRank.setGravity(Gravity.CENTER);
+ setHourRankData(info.get(0).getRank());
+ hotPic.setImageResource(R.drawable.icon_time_new);
+ hourPic.setImageResource(R.drawable.icon_heat_new);
+ hotPic.setLayoutParams(params);
+ hourPic.setLayoutParams(params);
+ flipper.addView(hotView);
+ flipper.addView(hourView);
+ flipper.startFlipping();
// flipper.setOnClickListener(view -> {
//
// });
- ViewClicksAntiShake.clicksAntiShake(hotView, new ViewClicksAntiShake.ViewClicksCallBack() {
- @Override
- public void onViewClicks() {
- showUrlHDDialog(info.get(0).getUrl());
- }
- });
- ViewClicksAntiShake.clicksAntiShake(hourView, new ViewClicksAntiShake.ViewClicksCallBack() {
- @Override
- public void onViewClicks() {
- showUrlHDDialog(info.get(0).getUrl());
- }
- });
-
-
+ ViewClicksAntiShake.clicksAntiShake(hotView, new ViewClicksAntiShake.ViewClicksCallBack() {
+ @Override
+ public void onViewClicks() {
+ showUrlHDDialog(info.get(0).getUrl());
}
- }, Throwable::printStackTrace)
- .isDisposed();
+ });
+ ViewClicksAntiShake.clicksAntiShake(hourView, new ViewClicksAntiShake.ViewClicksCallBack() {
+ @Override
+ public void onViewClicks() {
+ showUrlHDDialog(info.get(0).getUrl());
+ }
+ });
+
+
+ }
+ }, Throwable::printStackTrace).isDisposed();
new LoadDian9TuUtil().loadDian9TuAssets2(mContext, hourRankLayout, "rectangle_new.png", 1);
}
@@ -2833,9 +2746,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
path = "/" + path;
}
String url = CommonAppConfig.HOST + path;
- url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token="
- + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid
- + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
+ url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
bundle.putString("url", url);
bundle.putInt("height", DpUtil.dp2px(500));
bundle.putInt("show_type", 0);
@@ -2925,85 +2836,82 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
public void initRankPKInfo(String mLiveUid, String pkUid) {
- LiveNetManager.get(mContext)
- .getRandomPk(mLiveUid, pkUid, new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(PkRankBean bean) {
- if (bean != null) {
- initPkRankView(bean);
- if (!StringUtil.isEmpty(bean.getClickUrl())) {
+ LiveNetManager.get(mContext).getRandomPk(mLiveUid, pkUid, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(PkRankBean bean) {
+ if (bean != null) {
+ initPkRankView(bean);
+ if (!StringUtil.isEmpty(bean.getClickUrl())) {
-
- pkRankVf.setOnClickListener(v -> {
- MobclickAgent.onEvent(mContext, "live_room_sky", "天梯赛按钮");
- Bundle bundle = new Bundle();
- String path = bean.getClickUrl();
- if (!path.startsWith("/") && !path.startsWith("http")) {
- path = "/" + path;
- }
- String url = null;
- if (path.startsWith("http") || path.startsWith("/http")) {
- url = path;
- } else {
- url = CommonAppConfig.HOST + path;
- }
- if (!url.contains("?")) {
- url += "?";
- } else {
- url += "&";
- }
- url += "uid=" + CommonAppConfig.getInstance().getUid() + "&token="
- + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
- bundle.putString("url", url);
- bundle.putInt("height", DpUtil.dp2px(500));
- bundle.putInt("show_type", 0);
- bundle.putString("roomId", mLiveUid);
- LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment();
- liveHDDialogFragment.setArguments(bundle);
- liveHDDialogFragment.show(((AbsActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
- });
+ pkRankVf.setOnClickListener(v -> {
+ MobclickAgent.onEvent(mContext, "live_room_sky", "天梯赛按钮");
+ Bundle bundle = new Bundle();
+ String path = bean.getClickUrl();
+ if (!path.startsWith("/") && !path.startsWith("http")) {
+ path = "/" + path;
}
- pkRankLayout.setVisibility(View.VISIBLE);
-
- liveRankPk2.setVisibility(View.VISIBLE);
- mPkRankText.setText(bean.getName());
- ImgLoader.display(mContext, bean.getImg(), mPkRankIcon);
- pkUidTmp = "";
- if (StringUtil.isEmpty(bean.getPkTopImgUrl())) {
- return;
+ String url = null;
+ if (path.startsWith("http") || path.startsWith("/http")) {
+ url = path;
+ } else {
+ url = CommonAppConfig.HOST + path;
}
- if (!StringUtil.isEmpty(isLadders)) {
- bean.setPkTopImgUrl(isLadders);
+ if (!url.contains("?")) {
+ url += "?";
+ } else {
+ url += "&";
}
- if (Integer.parseInt(bean.getRedVal()) > 2) {
- mRedVal.setVisibility(View.VISIBLE);
- mRedVal.setText(bean.getRedVal() + (WordUtil.isNewZh() ? "連勝" : "Win"));
- }
- if (Integer.parseInt(bean.getBlueVal()) > 2) {
- mBlueVal.setVisibility(View.VISIBLE);
- mBlueVal.setText(bean.getBlueVal() + (WordUtil.isNewZh() ? "連勝" : "Win"));
- }
- mPkRankTopIcon.setVisibility(View.VISIBLE);
- ImgLoader.display(mContext, bean.getPkTopImgUrl(), mPkRankTopIcon);
- }
- if (mRedVal.getVisibility() == View.VISIBLE) {
- RelativeLayout.LayoutParams redValLayoutParams = (RelativeLayout.LayoutParams) mRedVal.getLayoutParams();
- redValLayoutParams.bottomMargin = DpUtil.dp2px(10);
- mRedVal.setLayoutParams(redValLayoutParams);
- }
- if (mBlueVal.getVisibility() == View.VISIBLE) {
- RelativeLayout.LayoutParams blueValLayoutParams = (RelativeLayout.LayoutParams) mBlueVal.getLayoutParams();
- blueValLayoutParams.bottomMargin = DpUtil.dp2px(10);
- mBlueVal.setLayoutParams(blueValLayoutParams);
- }
+ url += "uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
+ bundle.putString("url", url);
+ bundle.putInt("height", DpUtil.dp2px(500));
+ bundle.putInt("show_type", 0);
+ bundle.putString("roomId", mLiveUid);
+ LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment();
+ liveHDDialogFragment.setArguments(bundle);
+ liveHDDialogFragment.show(((AbsActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
+ });
}
+ pkRankLayout.setVisibility(View.VISIBLE);
- @Override
- public void onError(String error) {
- ToastUtil.show(WordUtil.isNewZh() ? "抱歉!出錯了!" : "i \\'m sorry! An error occurred");
- pkUidTmp = "";
+ liveRankPk2.setVisibility(View.VISIBLE);
+ mPkRankText.setText(bean.getName());
+ ImgLoader.display(mContext, bean.getImg(), mPkRankIcon);
+ pkUidTmp = "";
+ if (StringUtil.isEmpty(bean.getPkTopImgUrl())) {
+ return;
}
- });
+ if (!StringUtil.isEmpty(isLadders)) {
+ bean.setPkTopImgUrl(isLadders);
+ }
+ if (Integer.parseInt(bean.getRedVal()) > 2) {
+ mRedVal.setVisibility(View.VISIBLE);
+ mRedVal.setText(bean.getRedVal() + (WordUtil.isNewZh() ? "連勝" : "Win"));
+ }
+ if (Integer.parseInt(bean.getBlueVal()) > 2) {
+ mBlueVal.setVisibility(View.VISIBLE);
+ mBlueVal.setText(bean.getBlueVal() + (WordUtil.isNewZh() ? "連勝" : "Win"));
+ }
+ mPkRankTopIcon.setVisibility(View.VISIBLE);
+ ImgLoader.display(mContext, bean.getPkTopImgUrl(), mPkRankTopIcon);
+ }
+ if (mRedVal.getVisibility() == View.VISIBLE) {
+ RelativeLayout.LayoutParams redValLayoutParams = (RelativeLayout.LayoutParams) mRedVal.getLayoutParams();
+ redValLayoutParams.bottomMargin = DpUtil.dp2px(10);
+ mRedVal.setLayoutParams(redValLayoutParams);
+ }
+ if (mBlueVal.getVisibility() == View.VISIBLE) {
+ RelativeLayout.LayoutParams blueValLayoutParams = (RelativeLayout.LayoutParams) mBlueVal.getLayoutParams();
+ blueValLayoutParams.bottomMargin = DpUtil.dp2px(10);
+ mBlueVal.setLayoutParams(blueValLayoutParams);
+ }
+ }
+
+ @Override
+ public void onError(String error) {
+ ToastUtil.show(WordUtil.isNewZh() ? "抱歉!出錯了!" : "i \\'m sorry! An error occurred");
+ pkUidTmp = "";
+ }
+ });
}
/**
@@ -3190,7 +3098,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
ScreenDimenUtil util = ScreenDimenUtil.getInstance();
int mScreenWdith = util.getScreenWdith();
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) lt_pk_line.getLayoutParams();
- params.height = mScreenWdith * 720 / 1120;
+ params.height = mScreenWdith * 720 / PK_LINE_HEIGHT;
+ //params.bottomMargin = (mScreenWdith * 720 / 960);
lt_pk_line.requestLayout();
lt_pk_line.setVisibility(View.VISIBLE);
@@ -3248,7 +3157,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
ScreenDimenUtil util = ScreenDimenUtil.getInstance();
int mScreenWdith = util.getScreenWdith();
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) lt_pk_line.getLayoutParams();
- params.height = mScreenWdith * 720 / 1120;
+ params.height = mScreenWdith * 720 / PK_LINE_HEIGHT;
+ //params.bottomMargin=(mScreenWdith * 720 / 960);
lt_pk_line.requestLayout();
lt_pk_line.setVisibility(View.VISIBLE);
@@ -3388,7 +3298,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
bundle.putString("toUid", toUid);
bundle.putInt("isAttention", isAttention);
bundle.putBoolean("isLive", isAnchor);
- bundle.putBoolean("SBW", !(mContext instanceof LiveRyAnchorActivity));
+ bundle.putBoolean("SBW", !(mContext instanceof LiveSwAnchorActivity || mContext instanceof LiveRyAnchorActivity));
giftWallDialog.setArguments(bundle);
giftWallDialog.show(((AbsActivity) mContext).getSupportFragmentManager(), "GiftWallDialog");
@@ -3396,6 +3306,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
public boolean pkHandler = true;
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void setOtherInfo(LivePKRightUserInfoEvent livePKRightUserInfoEvent) {
+ setOtherInfo(livePKRightUserInfoEvent.getUid(), livePKRightUserInfoEvent.getuHead(), livePKRightUserInfoEvent.getuName());
+ }
+
//左上角显示对方主播头像及昵称
public void setOtherInfo(String touids, String url, String name) {
if (!pkHandler) {
@@ -3613,19 +3528,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
participation_time.postDelayed(sendMoneyRunnable, 1000);
} else {
participation_time.removeCallbacks(sendMoneyRunnable);
- LiveNetManager.get(mContext)
- .endSendMoneyLong(mLiveUid, mSendMoneyLongModel.getSendMoneyLongKey(),
- new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(SendMoneyLongModel data) {
+ LiveNetManager.get(mContext).endSendMoneyLong(mLiveUid, mSendMoneyLongModel.getSendMoneyLongKey(), new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(SendMoneyLongModel data) {
- }
+ }
- @Override
- public void onError(String error) {
+ @Override
+ public void onError(String error) {
- }
- });
+ }
+ });
}
}
};
@@ -3665,10 +3578,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
weekViewPic.setLayoutParams(params);
if (!TextUtils.isEmpty(giftWallLightenNumber) && !TextUtils.isEmpty(giftWallLightenTotal)) {
StringBuffer stringBuffer = new StringBuffer();
- stringBuffer.append(mContext.getString(R.string.gift_wall))
- .append(giftWallLightenNumber)
- .append("/")
- .append(giftWallLightenTotal);
+ stringBuffer.append(mContext.getString(R.string.gift_wall)).append(giftWallLightenNumber).append("/").append(giftWallLightenTotal);
View giftWall = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
ImageView giftWallPic = giftWall.findViewById(R.id.wish_pic);
TextView giftText = giftWall.findViewById(R.id.wish_index);
@@ -3681,12 +3591,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
ViewClicksAntiShake.clicksAntiShake(giftWall, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
- Bus.get().post(new LiveAudienceEvent()
- .setType(LiveAudienceEvent.LiveAudienceType.GIFT_WALL)
- .setUid(mLiveUid)
- .setVoicePress(true)
- .setAvatar(mAvatarUrl)
- .setUname(mAnchorName));
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.GIFT_WALL).setUid(mLiveUid).setVoicePress(true).setAvatar(mAvatarUrl).setUname(mAnchorName));
}
});
}
@@ -3695,8 +3600,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "live_room_week", "周星榜按钮");
- Bus.get().post(new LiveAudienceEvent()
- .setType(LiveAudienceEvent.LiveAudienceType.LIVE_WKS));
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIVE_WKS));
}
});
wksAndGiftWall.addView(weekView);
@@ -3759,7 +3663,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
//直播间 粉丝排行榜
openMedalRankWindow();
} else if (i == R.id.btn_guard) {
- ((LiveActivity) mContext).openNewGuardListWindow(mContext instanceof LiveRyAnchorActivity);
+ ((LiveActivity) mContext).openNewGuardListWindow((mContext instanceof LiveSwAnchorActivity || mContext instanceof LiveRyAnchorActivity));
} else if (i == R.id.btn_red_pack) {
((LiveActivity) mContext).openRedPackListWindow();
@@ -3767,13 +3671,13 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
((LiveActivity) mContext).openPrizePoolWindow();
} else if (i == R.id.user_more) {
MobclickAgent.onEvent(mContext, "live_room_audience_list", "直播间上面点观众列表按钮");
- ((LiveActivity) mContext).openUserMoreListWindow(1, false, false, mContext instanceof LiveRyAnchorActivity);
+ ((LiveActivity) mContext).openUserMoreListWindow(1, false, false, mContext instanceof LiveSwAnchorActivity || mContext instanceof LiveRyAnchorActivity);
} else if (i == R.id.hot_btn) {
- ((LiveActivity) mContext).openUserMoreListWindow(1, false, false, mContext instanceof LiveRyAnchorActivity);
+ ((LiveActivity) mContext).openUserMoreListWindow(1, false, false, mContext instanceof LiveSwAnchorActivity || mContext instanceof LiveRyAnchorActivity);
} else if (i == R.id.noble_seat) {
MobclickAgent.onEvent(mContext, "live_room_noble", "贵族按钮");
- ((LiveActivity) mContext).openUserMoreListWindow(1, false, true, mContext instanceof LiveRyAnchorActivity);
+ ((LiveActivity) mContext).openUserMoreListWindow(1, false, true, mContext instanceof LiveSwAnchorActivity || mContext instanceof LiveRyAnchorActivity);
} else if (i == R.id.btn_close) {
// if (sudGameMin!=null&&sudGameMin.getVisibility()==View.VISIBLE) {
// new XPopup.Builder(mContext)
@@ -3806,7 +3710,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
} else if (i == R.id.user_guard) {
MobclickAgent.onEvent(mContext, "anchor_avatar_guard", "守护按钮");
// ((LiveActivity) mContext).openUserMoreListWindow(2, true);
- ((LiveActivity) mContext).openNewGuardListWindow(mContext instanceof LiveRyAnchorActivity);
+ ((LiveActivity) mContext).openNewGuardListWindow(mContext instanceof LiveSwAnchorActivity || mContext instanceof LiveRyAnchorActivity);
}
if (i == R.id.lt_trickery) {
showTrickeryDialog();
@@ -3831,7 +3735,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
* @param in 展示的view
*/
private void changeMsgView(View out, View in) {
- if (mContext instanceof LiveRyAnchorActivity) {
+ if (mContext instanceof LiveSwAnchorActivity || mContext instanceof LiveRyAnchorActivity) {
return;
}
if (in.getVisibility() == View.VISIBLE) {
@@ -3979,8 +3883,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
@Override
public void callback(Integer isAttention) {
if (isAttention == 1) {
- LiveActivity.sendSystemMessage(
- CommonAppConfig.getInstance().getUserBean().getUserNiceName() + Contexts.getString(R.string.live_follow_anchor));
+ if (isSw) {
+ LiveActivity.sendSystemMessageSw(CommonAppConfig.getInstance().getUserBean().getUserNiceName() + Contexts.getString(R.string.live_follow_anchor));
+ } else {
+ LiveActivity.sendSystemMessageRy(CommonAppConfig.getInstance().getUserBean().getUserNiceName() + Contexts.getString(R.string.live_follow_anchor));
+ }
}
}
});
@@ -4041,6 +3948,24 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
((LiveAudienceActivity) mContext).setBackIndex(1);
((LiveAnchorActivity) mContext).onBackPressed();
}
+ } else if (mContext instanceof LiveSwAnchorActivity) {
+ if (forAct == 1) {
+ //是否关注0==没关注
+ if (isAttention == 0) {
+ if (isStayRoomfive) {
+ showFollowDialog(mNameText, mAvatarUrl, mContext);
+ } else {
+ LiveSwAnchorActivity.backIndex = 1;
+ ((LiveSwAnchorActivity) mContext).onBackPressed();
+ }
+ } else {
+ LiveSwAnchorActivity.backIndex = 1;
+ ((LiveSwAnchorActivity) mContext).onBackPressed();
+ }
+ } else {
+ LiveSwAnchorActivity.backIndex = 1;
+ ((LiveSwAnchorActivity) mContext).onBackPressed();
+ }
} else if (mContext instanceof LiveRyAnchorActivity) {
if (forAct == 1) {
//是否关注0==没关注
@@ -4315,8 +4240,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
setHotData(formatBigNum.formatBigNum(bean.getHot_num()));
mTvMedalRank.setText(bean.getMedalRankNum());
//开通粉丝勋章成功弹窗
- if (!isAncher && bean.getMedalFirstGet() != null && bean.getMedalFirstGet().equals("1")
- && bean.getUid().equals(CommonAppConfig.getInstance().getUid())) {
+ if (!isAncher && bean.getMedalFirstGet() != null && bean.getMedalFirstGet().equals("1") && bean.getUid().equals(CommonAppConfig.getInstance().getUid())) {
((LiveAudienceActivity) mContext).openFansMedalOkWindow();
}
@@ -4328,7 +4252,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
if (mLiveGiftAnimPresenter == null) {
mLiveGiftAnimPresenter = new LiveGiftAnimPresenter(mContext, mContentView, mGifImageView, mSVGAImageView, mLiveGiftPrizePoolContainer, windowManager);
}
- mLiveGiftAnimPresenter.setLiveUidStream(mLiveUid,mStream);
+ mLiveGiftAnimPresenter.setLiveUidStream(mLiveUid, mStream);
mLiveGiftAnimPresenter.showGiftAnim(bean, isAncher);
}
@@ -4352,14 +4276,21 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
- public void showAllServerNotifyFFGGGD(AllServerNotifyFFGGGDJANEvent notifyFFGGGDJANEvent,boolean showB) {
+ public void showAllServerNotifyFFGGGD(AllServerNotifyFFGGGDJANEvent notifyFFGGGDJANEvent, boolean showB) {
if (mLiveGiftAnimPresenter == null) {
mLiveGiftAnimPresenter = new LiveGiftAnimPresenter(mContext, mContentView, mGifImageView, mSVGAImageView, mLiveGiftPrizePoolContainer, windowManager);
}
mLiveGiftAnimPresenter.setLiveUidStream(mLiveUid, mStream);
- mLiveGiftAnimPresenter.showAllServerNotifyFFGGGD(notifyFFGGGDJANEvent,showB);
+ mLiveGiftAnimPresenter.showAllServerNotifyFFGGGD(notifyFFGGGDJANEvent, showB);
}
+ public void cancelAllAnim() {
+ if (mLiveGiftAnimPresenter != null) {
+ mLiveGiftAnimPresenter.releaseServiceNotice();
+ }
+ }
+
+
//全服通知 购买坐骑
public void showBuyZuojiMessage(LiveReceiveGiftBean bean) {
if (mLiveGiftAnimPresenter == null) {
@@ -4385,60 +4316,25 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
switch (bean.getNobilityid()) {
case "1":
- noble.setRootView(bean.getUhead(),
- bean.getUname(),
- bean.getAncherName(),
- bean.getRoomnum())
- .setRoleType(NobleNoticeView.RoleType.BARON)
- .setCallBack(() -> gotoLive(bean.getRoomnum()));
+ noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.BARON).setCallBack(() -> gotoLive(bean.getRoomnum()));
break;
case "2":
- noble.setRootView(bean.getUhead(),
- bean.getUname(),
- bean.getAncherName(),
- bean.getRoomnum())
- .setRoleType(NobleNoticeView.RoleType.VISCOUNT)
- .setCallBack(() -> gotoLive(bean.getRoomnum()));
+ noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.VISCOUNT).setCallBack(() -> gotoLive(bean.getRoomnum()));
break;
case "3":
- noble.setRootView(bean.getUhead(),
- bean.getUname(),
- bean.getAncherName(),
- bean.getRoomnum())
- .setRoleType(NobleNoticeView.RoleType.MARQUIS)
- .setCallBack(() -> gotoLive(bean.getRoomnum()));
+ noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.MARQUIS).setCallBack(() -> gotoLive(bean.getRoomnum()));
break;
case "4":
- noble.setRootView(bean.getUhead(),
- bean.getUname(),
- bean.getAncherName(),
- bean.getRoomnum())
- .setRoleType(NobleNoticeView.RoleType.DUKE)
- .setCallBack(() -> gotoLive(bean.getRoomnum()));
+ noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.DUKE).setCallBack(() -> gotoLive(bean.getRoomnum()));
break;
case "5":
- noble.setRootView(bean.getUhead(),
- bean.getUname(),
- bean.getAncherName(),
- bean.getRoomnum())
- .setRoleType(NobleNoticeView.RoleType.KING)
- .setCallBack(() -> gotoLive(bean.getRoomnum()));
+ noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.KING).setCallBack(() -> gotoLive(bean.getRoomnum()));
break;
case "6":
- noble.setRootView(bean.getUhead(),
- bean.getUname(),
- bean.getAncherName(),
- bean.getRoomnum())
- .setRoleType(NobleNoticeView.RoleType.EMPEROR)
- .setCallBack(() -> gotoLive(bean.getRoomnum()));
+ noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.EMPEROR).setCallBack(() -> gotoLive(bean.getRoomnum()));
break;
case "7":
- noble.setRootView(bean.getUhead(),
- bean.getUname(),
- bean.getAncherName(),
- bean.getRoomnum())
- .setRoleType(NobleNoticeView.RoleType.BETTER_EMPEROR)
- .setCallBack(() -> gotoLive(bean.getRoomnum()));
+ noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.BETTER_EMPEROR).setCallBack(() -> gotoLive(bean.getRoomnum()));
break;
}
}
@@ -4749,8 +4645,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
public void setFastMessage(List greetings) {
fastMsgRecyclerView.setVisibility(View.VISIBLE);
fastMessageRecyclerViewAdapter.setMessage(greetings);
- RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams)
- mChatRecyclerView.getLayoutParams();
+ RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) mChatRecyclerView.getLayoutParams();
if (greetings.size() > 0) {
params1.bottomMargin = 100;
} else {
@@ -4810,14 +4705,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
public void openGiftDialog(String giftId) {
- Bus.get().post(new LiveAudienceEvent()
- .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP)
- .setmLiveUid(mLiveUid)
- .setmStream(mStream)
- .setPk(false)
- .setLiveGuardInfo(null)
- .setmWishGiftId(giftId)
- .setUname("0"));//setUname==by
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP).setmLiveUid(mLiveUid).setmStream(mStream).setPk(false).setLiveGuardInfo(null).setmWishGiftId(giftId).setUname("0"));//setUname==by
}
public void setFansGroup(String isFans) {
@@ -4935,32 +4823,27 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
return;
}
- mBanner3.setAutoPlay(true)
- .setPages(mBannerList3, new Banner3CustomViewHolder())
- .setDelayTime(3000)
- .setBannerStyle(BannerConfig.NOT_INDICATOR)
- .setOnBannerClickListener(new OnBannerClickListener() {
- @Override
- public void onBannerClick(List datas, int p) {
- if (mBannerList3 != null) {
- if (mBannerList3.get(p).getLink().equals("BattlePass")) {
- RouteUtil.forwardBattlePass();
- return;
- }
- if (mBannerList3.get(p).getLink().equals("0")) {
- if (p == 0) {
- ((LiveAudienceActivity) mContext).openGiftWindow("" + bean1.getId(), "1");
- EventBus.getDefault().post("svga_new_user_gif");
- } else if (p == 1) {
- EventBus.getDefault().post("svga_new_user_follow");
- } else if (p == 2) {
- EventBus.getDefault().post("svga_new_user_double");
- }
- }
+ mBanner3.setAutoPlay(true).setPages(mBannerList3, new Banner3CustomViewHolder()).setDelayTime(3000).setBannerStyle(BannerConfig.NOT_INDICATOR).setOnBannerClickListener(new OnBannerClickListener() {
+ @Override
+ public void onBannerClick(List datas, int p) {
+ if (mBannerList3 != null) {
+ if (mBannerList3.get(p).getLink().equals("BattlePass")) {
+ RouteUtil.forwardBattlePass();
+ return;
+ }
+ if (mBannerList3.get(p).getLink().equals("0")) {
+ if (p == 0) {
+ ((LiveAudienceActivity) mContext).openGiftWindow("" + bean1.getId(), "1");
+ EventBus.getDefault().post("svga_new_user_gif");
+ } else if (p == 1) {
+ EventBus.getDefault().post("svga_new_user_follow");
+ } else if (p == 2) {
+ EventBus.getDefault().post("svga_new_user_double");
}
}
- })
- .start();
+ }
+ }
+ }).start();
}
/**
@@ -4974,69 +4857,61 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
for (BannerBean bean : mBannerList4) {
Log.i("debug", "showBanner4: " + bean.toString());
}
- mBanner4.setAutoPlay(true)
- .setPages(mBannerList4, new Banner4CustomViewHolder())
- .setDelayTime(2800)
- .setBannerStyle(BannerConfig.NOT_INDICATOR)
- .setOnBannerClickListener(new OnBannerClickListener() {
+ mBanner4.setAutoPlay(true).setPages(mBannerList4, new Banner4CustomViewHolder()).setDelayTime(2800).setBannerStyle(BannerConfig.NOT_INDICATOR).setOnBannerClickListener(new OnBannerClickListener() {
- @Override
- public void onBannerClick(List datas, int p) {
- if (mBannerList4.get(p).getLink().equals("BattlePass") || mBannerList4.get(p).getType() == 888) {
- RouteUtil.forwardBattlePass();
- return;
- }
- if (TextUtils.equals("特惠首冲", mBannerList4.get(p).getName())) {
+ @Override
+ public void onBannerClick(List datas, int p) {
+ if (mBannerList4.get(p).getLink().equals("BattlePass") || mBannerList4.get(p).getType() == 888) {
+ RouteUtil.forwardBattlePass();
+ return;
+ }
+ if (TextUtils.equals("特惠首冲", mBannerList4.get(p).getName())) {
- Map map_ekv = new HashMap();
- map_ekv.put("link", mBannerList4.get(p).getLink());
- MobclickAgent.onEvent(mContext, "live_room_first_charge", map_ekv);
- }
- Log.i("debug", "onBannerClick: " + mBannerList4.get(p).toString());
- BannerBean bean = mBannerList4.get(p);
- if (showLoadingDialog()) {
- return;
- }
- if (bean.getActivityId() == -1) {//-1写死跳活动弹窗
- Bus.get().post(new LiveAudienceEvent()
- .setActivity(true)
- .setType(LiveAudienceEvent.LiveAudienceType.BOTTOM_COLLECTION));
- } else if (bean.getActivityId() == 0) {
- openWebDialog(bean.getLink());
- } else {
- LiveGameDialogFragment fragment = new LiveGameDialogFragment("1".equals(bean.getShow_type()));
- fragment.setActivityId(bean.getActivityId());
- fragment.setRoomId(mLiveUid);
- fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGameDialogFragment");
- }
+ Map map_ekv = new HashMap();
+ map_ekv.put("link", mBannerList4.get(p).getLink());
+ MobclickAgent.onEvent(mContext, "live_room_first_charge", map_ekv);
+ }
+ Log.i("debug", "onBannerClick: " + mBannerList4.get(p).toString());
+ BannerBean bean = mBannerList4.get(p);
+ if (showLoadingDialog()) {
+ return;
+ }
+ if (bean.getActivityId() == -1) {//-1写死跳活动弹窗
+ Bus.get().post(new LiveAudienceEvent().setActivity(true).setType(LiveAudienceEvent.LiveAudienceType.BOTTOM_COLLECTION));
+ } else if (bean.getActivityId() == 0) {
+ openWebDialog(bean.getLink());
+ } else {
+ LiveGameDialogFragment fragment = new LiveGameDialogFragment("1".equals(bean.getShow_type()));
+ fragment.setActivityId(bean.getActivityId());
+ fragment.setRoomId(mLiveUid);
+ fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGameDialogFragment");
+ }
+ }
+
+
+ private void openWebDialog(String url) {
+ if (!url.startsWith("http")) {
+ if (url.startsWith("/")) {
+ url = CommonAppConfig.HOST + url;
+ } else {
+ url = CommonAppConfig.HOST + "/" + url;
}
+ }
+ if (url.contains("?")) {
+ url += "&";
+ } else {
+ url += "?";
+ }
+ url += "uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid;
+ Log.i("tag", url);
+ Bundle bundle1 = new Bundle();
+ bundle1.putString("url", url);
+ LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment();
+ liveHDDialogFragment.setArguments(bundle1);
+ liveHDDialogFragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
-
- private void openWebDialog(String url) {
- if (!url.startsWith("http")) {
- if (url.startsWith("/")) {
- url = CommonAppConfig.HOST + url;
- } else {
- url = CommonAppConfig.HOST + "/" + url;
- }
- }
- if (url.contains("?")) {
- url += "&";
- } else {
- url += "?";
- }
- url += "uid=" + CommonAppConfig.getInstance().getUid() + "&token="
- + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid;
- Log.i("tag", url);
- Bundle bundle1 = new Bundle();
- bundle1.putString("url", url);
- LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment();
- liveHDDialogFragment.setArguments(bundle1);
- liveHDDialogFragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
-
- }
- })
- .start();
+ }
+ }).start();
}
private int nowTime = 0;
@@ -5216,7 +5091,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
lt_trickster_salvation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (mContext instanceof LiveRyAnchorActivity) {
+ if (mContext instanceof LiveSwAnchorActivity || mContext instanceof LiveRyAnchorActivity) {
dialog.dismiss();
return;
}
@@ -5242,9 +5117,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
* @param msgModel
*/
public void showFullScreen(MsgModel msgModel) {
- fullScreen.setUserNameAndUserText(msgModel.getUserName(), msgModel.getTrumpetMsg())
- .setType(msgModel.getRoleType())
- .setCallBack(() -> gotoLive(msgModel.getAnchorId()));
+ fullScreen.setUserNameAndUserText(msgModel.getUserName(), msgModel.getTrumpetMsg()).setType(msgModel.getRoleType()).setCallBack(() -> gotoLive(msgModel.getAnchorId()));
}
/**
@@ -5259,20 +5132,14 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk, boolean isSw) {
if (liveBean == null) {
return;
}
if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_REQUEST) {
- Bus.get().post(new LiveAudienceEvent()
- .setType(LiveAudienceEvent.LiveAudienceType.LIAN_MAI)
- .setMicIng(1)
- .setBean(liveBean).setLiveType(liveType).setLiveTypeVal(Integer.parseInt(liveTypeVal)));
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIAN_MAI).setMicIng(1).setBean(liveBean).setLiveType(liveType).setLiveTypeVal(Integer.parseInt(liveTypeVal)));
} else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) {
- Bus.get().post(new LiveAudienceEvent()
- .setType(LiveAudienceEvent.LiveAudienceType.LIAN_MAI)
- .setMicIng(2)
- .setBean(liveBean).setLiveType(liveType).setLiveTypeVal(Integer.parseInt(liveTypeVal)));
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.LIAN_MAI).setMicIng(2).setBean(liveBean).setLiveType(liveType).setLiveTypeVal(Integer.parseInt(liveTypeVal)));
} else {
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
@@ -5506,12 +5373,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
@Override
public void run() {
BannerBean bannerBean = new BannerBean();
- bannerBean.setWishlistIcon(model.getWishlistIcon())
- .setWishlistName(model.getWishlistName())
- .setWishlistNum(model.getWishlistNum())
- .setWishlistProgress(model.getWishlistProgress())
- .setmLink(CommonAppConfig.HOST + "/index.php")
- .setType(1);
+ bannerBean.setWishlistIcon(model.getWishlistIcon()).setWishlistName(model.getWishlistName()).setWishlistNum(model.getWishlistNum()).setWishlistProgress(model.getWishlistProgress()).setmLink(CommonAppConfig.HOST + "/index.php").setType(1);
bannerBean.setShow_type("2");
mTopBannerList.add(bannerBean);
LiveChatBean bean = new LiveChatBean();
@@ -5640,8 +5502,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
if (mPkTimeCount2 == 0) {
timeTitle.setVisibility(View.GONE);
timeTitle.removeCallbacks(countdownRunnable);
- Bus.get().post(new LiveAudienceEvent()
- .setType(LiveAudienceEvent.LiveAudienceType.PK_TIME_COUNT));
+ Bus.get().post(new LiveAudienceEvent().setType(LiveAudienceEvent.LiveAudienceType.PK_TIME_COUNT));
} else {
timeTitle.setVisibility(View.VISIBLE);
Log.e("多人Pk", "countdownRunnable mPkTimeCount:" + mPkTimeCount2);
@@ -5654,47 +5515,53 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
};
+
public void upDataPkScore(JSONArray pkScores, int time) {
+ L.eSw("upDataPkScore(JSONArray pkScores, int time) {" + new Gson().toJson(pkScores));
isShowGif = true;
- if (detailsView == null) {
- detailsView = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
- timeTitle = detailsView.findViewById(R.id.time_title);
- textTime = detailsView.findViewById(R.id.text_time);
- linearGrade1 = detailsView.findViewById(R.id.lin_pk1);
- linearGrade2 = detailsView.findViewById(R.id.lin_pk2);
- linearGrade3 = detailsView.findViewById(R.id.lin_pk3);
- linearGrade4 = detailsView.findViewById(R.id.lin_pk4);
- textPkName1 = detailsView.findViewById(R.id.text_pk_name1);
- textPkName2 = detailsView.findViewById(R.id.text_pk_name2);
- textPkName3 = detailsView.findViewById(R.id.text_pk_name3);
- textPkName4 = detailsView.findViewById(R.id.text_pk_name4);
- textGrade1 = detailsView.findViewById(R.id.text_grade1);
- textGrade2 = detailsView.findViewById(R.id.text_grade2);
- textGrade3 = detailsView.findViewById(R.id.text_grade3);
- textGrade4 = detailsView.findViewById(R.id.text_grade4);
- imageGrade1 = detailsView.findViewById(R.id.image_grade1);
- imageGrade2 = detailsView.findViewById(R.id.image_grade2);
- imageGrade3 = detailsView.findViewById(R.id.image_grade3);
- imageGrade4 = detailsView.findViewById(R.id.image_grade4);
- linearGrade1.setVisibility(View.GONE);
- linearGrade2.setVisibility(View.GONE);
- linearGrade3.setVisibility(View.GONE);
- linearGrade4.setVisibility(View.GONE);
- mRoot.addView(detailsView);
- mRoot.post(new Runnable() {
- @Override
- public void run() {
- int mScreenWdith = ScreenDimenUtil.getInstance().getScreenWdith();
- int vHeight = mScreenWdith * 720 / 960;
- RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) detailsView.getLayoutParams();
- params.height = vHeight;
- params.width = mScreenWdith;
- params.topMargin = DpUtil.dp2px(105);
- params.addRule(RelativeLayout.ALIGN_TOP);
- detailsView.setLayoutParams(params);
- }
- });
+ if (detailsView != null) {
+ mRoot.removeView(detailsView);
}
+ L.eSw("upDataPkScore(JSONArray pkScores, int time) {detailsView=null");
+ detailsView = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ timeTitle = detailsView.findViewById(R.id.time_title);
+ textTime = detailsView.findViewById(R.id.text_time);
+ linearGrade1 = detailsView.findViewById(R.id.lin_pk1);
+ linearGrade2 = detailsView.findViewById(R.id.lin_pk2);
+ linearGrade3 = detailsView.findViewById(R.id.lin_pk3);
+ linearGrade4 = detailsView.findViewById(R.id.lin_pk4);
+ textPkName1 = detailsView.findViewById(R.id.text_pk_name1);
+ textPkName2 = detailsView.findViewById(R.id.text_pk_name2);
+ textPkName3 = detailsView.findViewById(R.id.text_pk_name3);
+ textPkName4 = detailsView.findViewById(R.id.text_pk_name4);
+ textGrade1 = detailsView.findViewById(R.id.text_grade1);
+ textGrade2 = detailsView.findViewById(R.id.text_grade2);
+ textGrade3 = detailsView.findViewById(R.id.text_grade3);
+ textGrade4 = detailsView.findViewById(R.id.text_grade4);
+ imageGrade1 = detailsView.findViewById(R.id.image_grade1);
+ imageGrade2 = detailsView.findViewById(R.id.image_grade2);
+ imageGrade3 = detailsView.findViewById(R.id.image_grade3);
+ imageGrade4 = detailsView.findViewById(R.id.image_grade4);
+ //暂时关闭
+ linearGrade1.setVisibility(View.GONE);
+ linearGrade2.setVisibility(View.GONE);
+ linearGrade3.setVisibility(View.GONE);
+ linearGrade4.setVisibility(View.GONE);
+
+ mRoot.addView(detailsView);
+ mRoot.post(new Runnable() {
+ @Override
+ public void run() {
+ int mScreenWdith = ScreenDimenUtil.getInstance().getScreenWdith();
+ int vHeight = mScreenWdith * 720 / 960;
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) detailsView.getLayoutParams();
+ params.height = vHeight;
+ params.width = mScreenWdith;
+ params.topMargin = DpUtil.dp2px(105);
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ detailsView.setLayoutParams(params);
+ }
+ });
if (time > 0) {
mPkTimeCount2 = time;
drPKtIME = time;
@@ -5784,7 +5651,142 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
showUserDialog(userId3);
}
});
+ }
+ public void upDataPkScore(JSONArray pkScores) {
+ L.eSw("upDataPkScore(JSONArray pkScores, int time) {" + new Gson().toJson(pkScores));
+ isShowGif = true;
+ if (detailsView == null) {
+ L.eSw("upDataPkScore(JSONArray pkScores, int time) {detailsView=null");
+ detailsView = LayoutInflater.from(mContext).inflate(R.layout.view_live_pk_details, null);
+ timeTitle = detailsView.findViewById(R.id.time_title);
+ textTime = detailsView.findViewById(R.id.text_time);
+ linearGrade1 = detailsView.findViewById(R.id.lin_pk1);
+ linearGrade2 = detailsView.findViewById(R.id.lin_pk2);
+ linearGrade3 = detailsView.findViewById(R.id.lin_pk3);
+ linearGrade4 = detailsView.findViewById(R.id.lin_pk4);
+ textPkName1 = detailsView.findViewById(R.id.text_pk_name1);
+ textPkName2 = detailsView.findViewById(R.id.text_pk_name2);
+ textPkName3 = detailsView.findViewById(R.id.text_pk_name3);
+ textPkName4 = detailsView.findViewById(R.id.text_pk_name4);
+ textGrade1 = detailsView.findViewById(R.id.text_grade1);
+ textGrade2 = detailsView.findViewById(R.id.text_grade2);
+ textGrade3 = detailsView.findViewById(R.id.text_grade3);
+ textGrade4 = detailsView.findViewById(R.id.text_grade4);
+ imageGrade1 = detailsView.findViewById(R.id.image_grade1);
+ imageGrade2 = detailsView.findViewById(R.id.image_grade2);
+ imageGrade3 = detailsView.findViewById(R.id.image_grade3);
+ imageGrade4 = detailsView.findViewById(R.id.image_grade4);
+ //暂时关闭
+ linearGrade1.setVisibility(View.GONE);
+ linearGrade2.setVisibility(View.GONE);
+ linearGrade3.setVisibility(View.GONE);
+ linearGrade4.setVisibility(View.GONE);
+ mRoot.removeView(detailsView);
+ mRoot.addView(detailsView);
+ mRoot.post(new Runnable() {
+ @Override
+ public void run() {
+ int mScreenWdith = ScreenDimenUtil.getInstance().getScreenWdith();
+ int vHeight = mScreenWdith * 720 / 960;
+ RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) detailsView.getLayoutParams();
+ params.height = vHeight;
+ params.width = mScreenWdith;
+ params.topMargin = DpUtil.dp2px(105);
+ params.addRule(RelativeLayout.ALIGN_TOP);
+ detailsView.setLayoutParams(params);
+ }
+ });
+ }
+ Log.e("多人Pk", "upDataPkScore mPkTimeCount:" + mPkTimeCount);
+ if (pkScores.size() == 2) {
+ linearGrade3.setVisibility(View.GONE);
+ linearGrade4.setVisibility(View.GONE);
+ } else if (pkScores.size() == 3) {
+ linearGrade4.setVisibility(View.GONE);
+ }
+ for (int i = 0; i < pkScores.size(); i++) {
+ JSONObject score = pkScores.getJSONObject(i);
+ String userNiceName = score.getString("user_nicename");
+ long userScore = score.getLong("score");
+ String userId = score.getString("id");
+ int resScore = R.mipmap.icon_livepk_no1;
+ if (userScore == 0 && !score.containsKey("paiming")) {
+ resScore = R.mipmap.icon_livepk_no1;
+ } else {
+ if (score.containsKey("paiming")) {
+ int ranking = score.getIntValue("paiming");
+ switch (ranking) {
+ case 1:
+ resScore = R.mipmap.icon_livepk_no1;
+ break;
+ case 2:
+ resScore = R.mipmap.icon_livepk_no2;
+ break;
+ case 3:
+ resScore = R.mipmap.icon_livepk_no3;
+ break;
+ case 4:
+ resScore = R.mipmap.icon_livepk_no4;
+ break;
+ }
+ }
+ }
+ if (i == 0) {
+ linearGrade1.setVisibility(View.VISIBLE);
+ textPkName1.setText(userNiceName);
+ ImgLoader.display(mContext, resScore, imageGrade1);
+ textGrade1.setText(String.valueOf(userScore));
+
+ } else if (i == 1) {
+ linearGrade2.setVisibility(View.VISIBLE);
+ textPkName2.setText(userNiceName);
+ ImgLoader.display(mContext, resScore, imageGrade2);
+ textGrade2.setText(String.valueOf(userScore));
+ userId2 = userId;
+ } else if (i == 2) {
+ if (pkScores.size() == 3) {
+ linearGrade4.setVisibility(View.VISIBLE);
+ textPkName4.setText(userNiceName);
+ ImgLoader.display(mContext, resScore, imageGrade4);
+ textGrade4.setText(String.valueOf(userScore));
+ userId4 = userId;
+ } else {
+ linearGrade3.setVisibility(View.VISIBLE);
+ textPkName3.setText(userNiceName);
+ ImgLoader.display(mContext, resScore, imageGrade3);
+ textGrade3.setText(String.valueOf(userScore));
+ userId3 = userId;
+ }
+
+ } else if (i == 3) {
+ linearGrade4.setVisibility(View.VISIBLE);
+ textPkName4.setText(userNiceName);
+ ImgLoader.display(mContext, resScore, imageGrade4);
+ textGrade4.setText(String.valueOf(userScore));
+ userId4 = userId;
+ }
+ }
+
+
+ textPkName2.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ showUserDialog(userId2);
+ }
+ });
+ textPkName4.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ showUserDialog(userId4);
+ }
+ });
+ textPkName3.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ showUserDialog(userId3);
+ }
+ });
}
@@ -5813,8 +5815,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
* @param landscape
*/
public void changeMessageLandscape(int landscape) {
- RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams)
- mChatRecyclerView.getLayoutParams();
+ RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) mChatRecyclerView.getLayoutParams();
RelativeLayout.LayoutParams enterRoomParams = (RelativeLayout.LayoutParams) enterRoomLeave.getLayoutParams();
if (landscape == 2) {
params1.height = DpUtil.dp2px(200);
@@ -5907,10 +5908,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
TextView userName = fans_enter_room_leave.findViewById(R.id.user_name);
ImageView bg = fans_enter_room_leave.findViewById(R.id.bg);
- userName.setText(Html.fromHtml(String.format("@%s %s",
- model.getUserNiceName(),
- mContext.getString(R.string.live_fans_group_enter_room)
- )));
+ userName.setText(Html.fromHtml(String.format("@%s %s", model.getUserNiceName(), mContext.getString(R.string.live_fans_group_enter_room))));
ImgLoader.display(mContext, model.getFansEnterRoomUrl(), bg);
fans_enter_room_leave.setVisibility(View.VISIBLE);
TranslateAnimation animationTranslate = new TranslateAnimation(DeviceUtils.getScreenWidth((Activity) mContext), 0, 0, 0);
@@ -5999,47 +5997,46 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
LiveAnchorSayModel sayModel;
public void initAnchorSayData() {
- LiveNetManager.get(mContext)
- .getLivePreviewInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(LiveAnchorSayModel data) {
- Log.i("女神说", "onSuccess: " + data);
- sayModel = data;
- LiveAnchorSayModel.LivePreview preview = data.getLivePreview();
- if (preview != null) {
- mAnchorSayText.setText(getText(data.getLivePreview().getContent()));
- ImgLoader.display(mContext, preview.getStyleImage(), mAnchorSayImage);
- if (preview.getIsShow() == 1) {
- mAnchorSay.setVisibility(View.VISIBLE);
- } else {
- mAnchorSay.setVisibility(View.INVISIBLE);
- }
- } else {
- mAnchorSay.setVisibility(View.INVISIBLE);
- }
-
+ LiveNetManager.get(mContext).getLivePreviewInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(LiveAnchorSayModel data) {
+ Log.i("女神说", "onSuccess: " + data);
+ sayModel = data;
+ LiveAnchorSayModel.LivePreview preview = data.getLivePreview();
+ if (preview != null) {
+ mAnchorSayText.setText(getText(data.getLivePreview().getContent()));
+ ImgLoader.display(mContext, preview.getStyleImage(), mAnchorSayImage);
+ if (preview.getIsShow() == 1) {
+ mAnchorSay.setVisibility(View.VISIBLE);
+ } else {
+ mAnchorSay.setVisibility(View.INVISIBLE);
}
+ } else {
+ mAnchorSay.setVisibility(View.INVISIBLE);
+ }
- @Override
- public void onError(String error) {
+ }
+ @Override
+ public void onError(String error) {
+
+ }
+
+ public String getText(String content) {
+ int t = 4;
+ float len = (float) content.length() / t;
+ StringBuilder sb = new StringBuilder();
+ sb.append("\n");
+ for (int i = 0; i < len; i++) {
+ if (len - i < 1) {
+ sb.append(content.substring(i * t));
+ } else {
+ sb.append(content.substring(i * t, i * t + t)).append("\n");
}
-
- public String getText(String content) {
- int t = 4;
- float len = (float) content.length() / t;
- StringBuilder sb = new StringBuilder();
- sb.append("\n");
- for (int i = 0; i < len; i++) {
- if (len - i < 1) {
- sb.append(content.substring(i * t));
- } else {
- sb.append(content.substring(i * t, i * t + t)).append("\n");
- }
- }
- return sb.toString();
- }
- });
+ }
+ return sb.toString();
+ }
+ });
}
public void initAnchorSay() {
@@ -6063,10 +6060,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
public void showAnchorSayAndCallAnchor() {
isHinde = false;
- if (mAnchorSay.getVisibility() != View.VISIBLE &&
- sayModel != null && sayModel.getLivePreview() != null &&
- sayModel.getLivePreview().getIsShow() == 1
- ) {
+ if (mAnchorSay.getVisibility() != View.VISIBLE && sayModel != null && sayModel.getLivePreview() != null && sayModel.getLivePreview().getIsShow() == 1) {
Log.i("女神说", "sayModel: " + sayModel);
mAnchorSay.setVisibility(View.VISIBLE);
}
@@ -6099,12 +6093,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
BannerBean bannerBean = new BannerBean();
- bannerBean.setWishlistIcon(wishListProgress.getWishlistIcon())
- .setWishlistName(wishListProgress.getWishlistName())
- .setWishlistNum(wishListProgress.getWishlistNum())
- .setWishlistProgress(wishListProgress.getWishlistProgress())
- .setmLink(CommonAppConfig.HOST + "/index.php")
- .setType(1);
+ bannerBean.setWishlistIcon(wishListProgress.getWishlistIcon()).setWishlistName(wishListProgress.getWishlistName()).setWishlistNum(wishListProgress.getWishlistNum()).setWishlistProgress(wishListProgress.getWishlistProgress()).setmLink(CommonAppConfig.HOST + "/index.php").setType(1);
bannerBean.setShow_type("2");
if (mTopBannerList.size() == 1 || mTopBannerList.size() == 0) {
mTopBannerList.add(bannerBean);
@@ -6126,197 +6115,142 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
return;
}
topBanner1.setVisibility(View.GONE);
- topBanner1.setAutoPlay(true)
- .setPages(mTopBannerList, new TopBannerCustomViewHolder())
- .setDelayTime(3000)
- .setBannerStyle(BannerConfig.NOT_INDICATOR)
- .setOnBannerClickListener(new OnBannerClickListener() {
- @Override
- public void onBannerClick(List datas, int position) {
- if (datas.size() > 0 && mTopBannerList != null && mTopBannerList.size() > 0) {
- if (mTopBannerList.get(position).getType() == TopBannerCustomViewHolder.TYPE_CALL_ANCHOR) {
- MobclickAgent.onEvent(mContext, "live_room_contact", "联系方式按钮");
- Dialog loading = DialogUitl.loadingDialog(mContext);
- loading.show();
- LiveNetManager.get(mContext)
- .getContactInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() {
+ topBanner1.setAutoPlay(true).setPages(mTopBannerList, new TopBannerCustomViewHolder()).setDelayTime(3000).setBannerStyle(BannerConfig.NOT_INDICATOR).setOnBannerClickListener(new OnBannerClickListener() {
+ @Override
+ public void onBannerClick(List datas, int position) {
+ if (datas.size() > 0 && mTopBannerList != null && mTopBannerList.size() > 0) {
+ if (mTopBannerList.get(position).getType() == TopBannerCustomViewHolder.TYPE_CALL_ANCHOR) {
+ MobclickAgent.onEvent(mContext, "live_room_contact", "联系方式按钮");
+ Dialog loading = DialogUitl.loadingDialog(mContext);
+ loading.show();
+ LiveNetManager.get(mContext).getContactInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(LiveAnchorCallMeModel data) {
- if (data.getIsGet() == 1) {
- new LiveUserAnchorMailBoxWebInfoPopDialog(mContext, mAnchorName, data.getLink())
- .setOnDismissListener(dialog -> {
- checkNewLetter();
- loading.dismiss();
- })
- .showDialog();
- return;
- }
- new LiveContactDetailsSendGiftDialog(mContext)
- .setGiftId(data.getGiftId())
- .setAnchorName(mAnchorName)
- .setStream(mStream)
- .setLiveUid(mLiveUid)
- .setOnDismissListener(dialog1 -> {
- checkNewLetter();
- })
- .showDialog();
- loading.dismiss();
- }
-
- @Override
- public void onError(String error) {
- loading.dismiss();
- }
- });
-
- } else {
- MobclickAgent.onEvent(mContext, "live_room_wish", "心愿单按钮");
- BannerBean bean = mTopBannerList.get(position);
- IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
- String type = "";
- StringBuffer htmlUrl = new StringBuffer();
- htmlUrl.append(bean.getLink())
- .append(bean.getLink().contains("?") ? "&uid=" : "?uid=")
- .append(userInfo.getId())
- .append("&token=")
- .append(userInfo.getToken())
- .append("&anchorUid=")
- .append(mLiveUid)
- .append("&liveUid=")
- .append(mLiveUid)
- .append("&t=")
- .append(System.currentTimeMillis())
- .append("&g=Appapi&m=Wish&a=index")
- .append("&isZh=")
- .append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
- if (TextUtils.equals(type, "1")) {
- ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1);
- } else {
- Bundle bundle = new Bundle();
- bundle.putString("url", htmlUrl.toString());
- LiveHDDialogFragment fragment = new LiveHDDialogFragment();
- fragment.setArguments(bundle);
- fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
+ @Override
+ public void onSuccess(LiveAnchorCallMeModel data) {
+ if (data.getIsGet() == 1) {
+ new LiveUserAnchorMailBoxWebInfoPopDialog(mContext, mAnchorName, data.getLink()).setOnDismissListener(dialog -> {
+ checkNewLetter();
+ loading.dismiss();
+ }).showDialog();
+ return;
}
+ new LiveContactDetailsSendGiftDialog(mContext).setGiftId(data.getGiftId()).setAnchorName(mAnchorName).setStream(mStream).setLiveUid(mLiveUid).setOnDismissListener(dialog1 -> {
+ checkNewLetter();
+ }).showDialog();
+ loading.dismiss();
}
+
+ @Override
+ public void onError(String error) {
+ loading.dismiss();
+ }
+ });
+
+ } else {
+ MobclickAgent.onEvent(mContext, "live_room_wish", "心愿单按钮");
+ BannerBean bean = mTopBannerList.get(position);
+ IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
+ String type = "";
+ StringBuffer htmlUrl = new StringBuffer();
+ htmlUrl.append(bean.getLink()).append(bean.getLink().contains("?") ? "&uid=" : "?uid=").append(userInfo.getId()).append("&token=").append(userInfo.getToken()).append("&anchorUid=").append(mLiveUid).append("&liveUid=").append(mLiveUid).append("&t=").append(System.currentTimeMillis()).append("&g=Appapi&m=Wish&a=index").append("&isZh=").append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
+ if (TextUtils.equals(type, "1")) {
+ ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1);
+ } else {
+ Bundle bundle = new Bundle();
+ bundle.putString("url", htmlUrl.toString());
+ LiveHDDialogFragment fragment = new LiveHDDialogFragment();
+ fragment.setArguments(bundle);
+ fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
}
-
}
- })
- .start();
- topBanner2.setAutoPlay(true)
- .setPages(mTopBannerList, new TopBannerCustomViewHolder(false))
- .setDelayTime(3000)
- .setBannerStyle(BannerConfig.NOT_INDICATOR)
- .setOnBannerClickListener(new OnBannerClickListener() {
- @Override
- public void onBannerClick(List datas, int position) {
- if (datas.size() > 0) {
- if (position >= mTopBannerList.size()) {
- position = 0;
- }
- if (mTopBannerList.get(position).getType() == TopBannerCustomViewHolder.TYPE_CALL_ANCHOR) {
- MobclickAgent.onEvent(mContext, "live_room_contact", "联系方式按钮");
- Dialog loading = DialogUitl.loadingDialog(mContext);
- loading.show();
- LiveNetManager.get(mContext)
- .getContactInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() {
+ }
- @Override
- public void onSuccess(LiveAnchorCallMeModel data) {
- if (data.getIsGet() == 1) {
- new LiveUserAnchorMailBoxWebInfoPopDialog(mContext, mAnchorName, data.getLink())
- .setOnDismissListener(dialog -> {
- checkNewLetter();
- loading.dismiss();
- })
- .showDialog();
- return;
- }
- new LiveContactDetailsSendGiftDialog(mContext)
- .setGiftId(data.getGiftId())
- .setAnchorName(mAnchorName)
- .setStream(mStream)
- .setLiveUid(mLiveUid)
- .setOnDismissListener(dialog1 -> {
- checkNewLetter();
- })
- .showDialog();
- loading.dismiss();
- }
+ }
+ }).start();
+ topBanner2.setAutoPlay(true).setPages(mTopBannerList, new TopBannerCustomViewHolder(false)).setDelayTime(3000).setBannerStyle(BannerConfig.NOT_INDICATOR).setOnBannerClickListener(new OnBannerClickListener() {
+ @Override
+ public void onBannerClick(List datas, int position) {
+ if (datas.size() > 0) {
+ if (position >= mTopBannerList.size()) {
+ position = 0;
+ }
+ if (mTopBannerList.get(position).getType() == TopBannerCustomViewHolder.TYPE_CALL_ANCHOR) {
+ MobclickAgent.onEvent(mContext, "live_room_contact", "联系方式按钮");
+ Dialog loading = DialogUitl.loadingDialog(mContext);
+ loading.show();
+ LiveNetManager.get(mContext).getContactInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onError(String error) {
- loading.dismiss();
- }
- });
-
- } else {
- MobclickAgent.onEvent(mContext, "live_room_wish", "心愿单按钮");
- BannerBean bean = mTopBannerList.get(position);
- IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
- String type = "";
- StringBuffer htmlUrl = new StringBuffer();
- htmlUrl.append(bean.getLink())
- .append(bean.getLink().contains("?") ? "&uid=" : "?uid=")
- .append(userInfo.getId())
- .append("&token=")
- .append(userInfo.getToken())
- .append("&anchorUid=")
- .append(mLiveUid)
- .append("&liveUid=")
- .append(mLiveUid)
- .append("&t=")
- .append(System.currentTimeMillis())
- .append("&g=Appapi&m=Wish&a=index")
- .append("&isZh=")
- .append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
- if (TextUtils.equals(type, "1")) {
- ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1);
- } else {
- Bundle bundle = new Bundle();
- bundle.putString("url", htmlUrl.toString());
- LiveHDDialogFragment fragment = new LiveHDDialogFragment();
- fragment.setArguments(bundle);
- fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
+ @Override
+ public void onSuccess(LiveAnchorCallMeModel data) {
+ if (data.getIsGet() == 1) {
+ new LiveUserAnchorMailBoxWebInfoPopDialog(mContext, mAnchorName, data.getLink()).setOnDismissListener(dialog -> {
+ checkNewLetter();
+ loading.dismiss();
+ }).showDialog();
+ return;
}
+ new LiveContactDetailsSendGiftDialog(mContext).setGiftId(data.getGiftId()).setAnchorName(mAnchorName).setStream(mStream).setLiveUid(mLiveUid).setOnDismissListener(dialog1 -> {
+ checkNewLetter();
+ }).showDialog();
+ loading.dismiss();
}
- }
+ @Override
+ public void onError(String error) {
+ loading.dismiss();
+ }
+ });
+
+ } else {
+ MobclickAgent.onEvent(mContext, "live_room_wish", "心愿单按钮");
+ BannerBean bean = mTopBannerList.get(position);
+ IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
+ String type = "";
+ StringBuffer htmlUrl = new StringBuffer();
+ htmlUrl.append(bean.getLink()).append(bean.getLink().contains("?") ? "&uid=" : "?uid=").append(userInfo.getId()).append("&token=").append(userInfo.getToken()).append("&anchorUid=").append(mLiveUid).append("&liveUid=").append(mLiveUid).append("&t=").append(System.currentTimeMillis()).append("&g=Appapi&m=Wish&a=index").append("&isZh=").append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
+ if (TextUtils.equals(type, "1")) {
+ ZhuangBanActivity.forward(mContext, htmlUrl.toString(), false, 1);
+ } else {
+ Bundle bundle = new Bundle();
+ bundle.putString("url", htmlUrl.toString());
+ LiveHDDialogFragment fragment = new LiveHDDialogFragment();
+ fragment.setArguments(bundle);
+ fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
+ }
}
- })
- .start();
+ }
+
+ }
+ }).start();
updateCallMe();
}
private void updateCallMe() {
- LiveNetManager.get(mContext)
- .getContactInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(LiveAnchorCallMeModel data) {
- System.out.println(">>>>> 获取联系方式:" + data);
- if (data.getIsShow() == 1) {
- if (!isHinde) {
- topBanner1.setVisibility(View.VISIBLE);
- }
- BannerBean call = new BannerBean();
- call.setData(data);
- call.setType(TopBannerCustomViewHolder.TYPE_CALL_ANCHOR);
- mTopBannerList.add(0, call);
- topBanner1.update(mTopBannerList);
- topBanner2.update(mTopBannerList);
- }
-
-
+ LiveNetManager.get(mContext).getContactInfo(mLiveUid, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(LiveAnchorCallMeModel data) {
+ System.out.println(">>>>> 获取联系方式:" + data);
+ if (data.getIsShow() == 1) {
+ if (!isHinde) {
+ topBanner1.setVisibility(View.VISIBLE);
}
+ BannerBean call = new BannerBean();
+ call.setData(data);
+ call.setType(TopBannerCustomViewHolder.TYPE_CALL_ANCHOR);
+ mTopBannerList.add(0, call);
+ topBanner1.update(mTopBannerList);
+ topBanner2.update(mTopBannerList);
+ }
- @Override
- public void onError(String error) {
- System.out.println("!>>>>> 获取联系方式:" + error);
- }
- });
+
+ }
+
+ @Override
+ public void onError(String error) {
+ System.out.println("!>>>>> 获取联系方式:" + error);
+ }
+ });
}
@@ -6360,19 +6294,18 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
public void updateFansMessageRed() {
if (mContext instanceof LiveAudienceActivity) {
- LiveNetManager.get(mContext)
- .getCheckFansLevelUpgrade(mLiveUid, new com.yunbao.common.http.base.HttpCallback() {
- @Override
- public void onSuccess(FansCheckRed data) {
- ((LiveAudienceActivity) mContext).setShowCrownRed(data.getStatus() == 1);
+ LiveNetManager.get(mContext).getCheckFansLevelUpgrade(mLiveUid, new com.yunbao.common.http.base.HttpCallback() {
+ @Override
+ public void onSuccess(FansCheckRed data) {
+ ((LiveAudienceActivity) mContext).setShowCrownRed(data.getStatus() == 1);
- }
+ }
- @Override
- public void onError(String error) {
+ @Override
+ public void onError(String error) {
- }
- });
+ }
+ });
}
}
}
diff --git a/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java
index ca89f6dc9..331f1b262 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveRyAnchorViewHolder.java
@@ -1,8 +1,9 @@
package com.yunbao.live.views;
+import static com.yunbao.live.activity.LiveActivity.isSw;
import static com.yunbao.live.activity.LiveActivity.mLiveUid;
-import static com.yunbao.live.activity.LiveRyAnchorActivity.PKing;
-import static com.yunbao.live.activity.LiveRyAnchorActivity.pk_nub;
+import static com.yunbao.live.activity.LiveSwAnchorActivity.PKing;
+import static com.yunbao.live.activity.LiveSwAnchorActivity.pk_nub;
import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.START_MESSAGE;
import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.WISH_LIST_UPDATE;
@@ -24,6 +25,7 @@ import androidx.core.content.ContextCompat;
import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.GsonUtils;
+import com.google.gson.Gson;
import com.ms.banner.Banner;
import com.ms.banner.BannerConfig;
import com.ms.banner.listener.OnBannerClickListener;
@@ -39,11 +41,13 @@ import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
+import com.yunbao.common.utils.L;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveRyAnchorActivity;
+import com.yunbao.live.activity.LiveSwAnchorActivity;
import com.yunbao.live.activity.ZhuangBanActivity;
import com.yunbao.live.bean.WishlistModel;
import com.yunbao.live.dialog.LiveHDDialogFragment;
@@ -86,6 +90,25 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
private long mAnchorLiveTime;//主播直播时间
private LiveRoomHandler mLiveRoomHandler;
private TextView menuRed;
+ private static LinearLayout btn_end_pk_dr;
+ private String drpkRoomId; //多人 PK 房主 roomUid
+ public void setDrpkRoomId(String drpkRoomId) {
+ this.drpkRoomId = drpkRoomId;
+ }
+
+ public void showEndPkBt(){
+ if(btn_end_pk_dr!=null){
+ if(btn_start_dr_pk_view.getVisibility()==View.GONE){
+ btn_end_pk_dr.setVisibility(View.VISIBLE);
+ }
+ }
+ }
+
+ public void closeEndPkBt(){
+ if(btn_end_pk_dr!=null){
+ btn_end_pk_dr.setVisibility(View.GONE);
+ }
+ }
public LiveRyAnchorViewHolder(Context context, ViewGroup parentView) {
super(context, parentView);
@@ -107,6 +130,7 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
Bus.getOn(this);
mDrawable0 = ContextCompat.getDrawable(mContext, R.mipmap.icon_live_func_0);
mDrawable1 = ContextCompat.getDrawable(mContext, R.mipmap.icon_live_func_1);
+ btn_end_pk_dr = (LinearLayout) findViewById(R.id.btn_end_pk_dr);
mBtnFunction = (ImageView) findViewById(R.id.btn_function);
btn_dr = (TextView) findViewById(R.id.btn_dr);
mBanner = (Banner) findViewById(R.id.banner);
@@ -129,22 +153,25 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
btn_start_dr_pk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- if (pk_nub <= 0) return;
- //開始多人PK
- HttpClient.getInstance().post("live.startDRPK", "live.startDRPK")
- .params("roomid", CommonAppConfig.getInstance().getUid())
- .execute(new HttpCallback() {
- @Override
- public void onSuccess(int code, String msg, String[] info) {
- if (code == 0) {
- PKing = true;
- pk_nub = pk_nub - 1;
- btn_dr_pk_nub.setText("剩餘次數:" + pk_nub);
- } else {
- ToastUtil.show(msg);
+ if(pk_nub<= 0){
+ ToastUtil.show("多人PK次数已用完");
+ }else{
+ //開始多人PK
+ HttpClient.getInstance().get("live.startDRPK", "live.startDRPK")
+ .params("roomid", CommonAppConfig.getInstance().getUid())
+ .execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0) {
+ PKing = true;
+ pk_nub = pk_nub - 1;
+ btn_dr_pk_nub.setText("剩餘次數:" + pk_nub);
+ } else {
+ ToastUtil.show(msg);
+ }
}
- }
- });
+ });
+ }
}
});
@@ -167,6 +194,22 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
yaoqing.clear();
}
});
+ btn_end_pk_dr.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ closeEndPkBt();
+ HttpClient.getInstance().post("live.leaveDRPKroom", "live.leaveDRPKroom")
+ .params("roomid", drpkRoomId)
+ .params("uid", CommonAppConfig.getInstance().getUid())
+ .execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ L.eSw("live.leaveDRPKroom:code:" + code + " info" + new Gson().toJson(info));
+
+ }
+ });
+ }
+ });
btn_dr.setOnClickListener(new View.OnClickListener() {
@Override
@@ -174,7 +217,11 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
if (yaoqing.size() < 3) {
if (PKing == false) {
- ((LiveRyAnchorActivity) mContext).openLinkMicAnchorWindow(true);
+ if(isSw){
+ ((LiveSwAnchorActivity) mContext).openLinkMicAnchorWindow(true);
+ }else{
+ ((LiveRyAnchorActivity) mContext).openLinkMicAnchorWindow(true);
+ }
} else {
ToastUtil.show(WordUtil.isNewZh() ? "您已在PK中" : "You are already in the PK");
}
@@ -198,6 +245,10 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
yaoqing.put(numinda, numinda);
}
+ public void removeYaoqing(String numinda){
+ yaoqing.remove(numinda);
+ }
+
@Override
public void onClick(View v) {
if (!canClick()) {
@@ -244,7 +295,11 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
* 关闭直播
*/
private void close() {
- ((LiveRyAnchorActivity) mContext).closeLive();
+ if(isSw){
+ ((LiveSwAnchorActivity) mContext).closeLive();
+ }else{
+ ((LiveRyAnchorActivity) mContext).closeLive();
+ }
}
@Override
@@ -260,7 +315,11 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
if (mBtnFunction != null) {
mBtnFunction.setImageDrawable(mDrawable1);
}
- ((LiveRyAnchorActivity) mContext).showFunctionDialog();
+ if(isSw){
+ ((LiveSwAnchorActivity) mContext).showFunctionDialog();
+ }else{
+ ((LiveRyAnchorActivity) mContext).showFunctionDialog();
+ }
}
/**
@@ -293,7 +352,11 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
* 发起主播连麦pk
*/
private void applyLinkMicPk() {
- ((LiveRyAnchorActivity) mContext).applyLinkMicPk();
+ if(isSw){
+ ((LiveSwAnchorActivity) mContext).applyLinkMicPk();
+ }else{
+ ((LiveRyAnchorActivity) mContext).applyLinkMicPk();
+ }
}
public void setLinkMicEnable(boolean linkMicEnable) {
@@ -519,7 +582,7 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
bundle.putString("url", htmlUrl.toString());
LiveHDDialogFragment fragment = new LiveHDDialogFragment();
fragment.setArguments(bundle);
- fragment.show(((LiveRyAnchorActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
+ fragment.show(((LiveSwAnchorActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
}
}
}
@@ -580,7 +643,7 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
bundle.putString("url", htmlUrl.toString());
LiveHDDialogFragment fragment = new LiveHDDialogFragment();
fragment.setArguments(bundle);
- fragment.show(((LiveRyAnchorActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
+ fragment.show(((LiveSwAnchorActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
}
}
}
diff --git a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
index 128f3088e..aa591d939 100644
--- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
+++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
@@ -42,6 +42,7 @@ import com.yunbao.common.bean.BannerBean;
import com.yunbao.common.bean.CreateSudRoomModel;
import com.yunbao.common.bean.EnterRoomNewModel;
import com.yunbao.common.bean.LiveBean;
+import com.yunbao.common.bean.LivePkMicModel;
import com.yunbao.common.bean.LiveRoomActivityModel;
import com.yunbao.common.bean.LiveUserGiftBean;
import com.yunbao.common.bean.MsgModel;
@@ -77,6 +78,7 @@ import com.yunbao.common.manager.OpenAdManager;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DialogUitl;
+import com.yunbao.common.utils.L;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RandomUtil;
import com.yunbao.common.utils.RouteUtil;
@@ -84,10 +86,10 @@ 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.weight.LiveFloatView;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveAudienceActivity;
+import com.yunbao.live.bean.DrPkbean;
import com.yunbao.live.bean.LiveBuyGuardMsgBean;
import com.yunbao.live.bean.LiveChatBean;
import com.yunbao.live.bean.LiveDanMuBean;
@@ -103,13 +105,17 @@ import com.yunbao.live.dialog.BlowkissDialog;
import com.yunbao.live.dialog.NewUserDialog;
import com.yunbao.live.event.LinkMicTxAccEvent;
import com.yunbao.live.event.LiveAudienceEvent;
+import com.yunbao.live.event.LiveOpenSuccessEvent;
import com.yunbao.live.presenter.LiveLinkMicAnchorPresenter;
import com.yunbao.live.presenter.LiveLinkMicPresenter;
import com.yunbao.live.presenter.LiveRyLinkMicPkPresenter;
+import com.yunbao.live.presenter.LiveSwLinkMicPkPresenter;
import com.yunbao.live.socket.SocketClient;
import com.yunbao.live.socket.SocketMessageListener;
import com.yunbao.live.socket.SocketRyChatUtil;
import com.yunbao.live.socket.SocketRyClient;
+import com.yunbao.live.socket.SocketSwChatUtil;
+import com.yunbao.live.socket.SocketSwClient;
import com.yunbao.live.socket.SocketSendBean;
import com.yunbao.live.utils.LiveImDeletUtil;
import com.yunbao.live.utils.LiveTextRender;
@@ -123,6 +129,8 @@ import cn.rongcloud.rtc.api.RCRTCEngine;
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
import cn.rongcloud.rtc.api.callback.IRCRTCSwitchRoleCallback;
import cn.rongcloud.rtc.base.RTCErrorCode;
+import io.agora.beautyapi.faceunity.agora.LiveFloatView;
+import io.agora.beautyapi.faceunity.agora.SWAuManager;
import io.rong.imlib.IRongCallback;
import io.rong.imlib.IRongCoreCallback;
import io.rong.imlib.IRongCoreEnum;
@@ -155,7 +163,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
//侧滑布局
// private DrawerLayout drawerLayout;
//直播间拆分布局
- private LivePlayRyViewHolder mLivePlayViewHolder;
+ public LiveRoomPlayViewHolder mLivePlayViewHolder;
+
//头部布局
public LiveRoomViewHolder mLiveRoomViewHolder;
//底部布局
@@ -169,14 +178,20 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
//主播与主播连麦逻辑
private LiveLinkMicAnchorPresenter mLiveLinkMicAnchorPresenter;
//主播与主播PK逻辑
+ private LiveSwLinkMicPkPresenter mLiveSwLinkMicPkPresenter;
+
private LiveRyLinkMicPkPresenter mLiveRyLinkMicPkPresenter;
+
+
//直播间的类型 普通 密码 门票 计时等
private int mLiveType;
//收费价格,计时收费每次扣费的值
private int mLiveTypeVal;
//直播结束页面
private LiveEndViewHolder mLiveEndViewHolder;
+ private SocketSwClient mSocketSwClient;
private SocketRyClient mSocketRyClient;
+
private SocketClient mSocketClient;
private String mDanmuPrice;//弹幕价格
private int mSocketUserType;//socket用户类型 30 普通用户 40 管理员 50 主播 60超管
@@ -215,6 +230,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
public static PortraitLiveManager portraitLiveManager;
private static int waitShowTopBannerTime = 6000;
+ private boolean isSw;
+
public PortraitLiveManager setQuitF(boolean quitF) {
isQuitF = quitF;
return this;
@@ -265,13 +282,13 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
public PortraitLiveManager(Activity context, Intent intent) {
this.mContext = context;
this.mIntent = intent;
+ isSw = intent.getBooleanExtra(Constants.LIVE_SDK_IS_SW, false);
liveImDeletUtil = new LiveImDeletUtil();
portraitLiveManager = this;
ininView();
AppManager.runDebugCode(() -> waitShowTopBannerTime = 1000);
}
-
/**
* 初始化布局
*/
@@ -335,7 +352,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
@Override
- public synchronized void onAdd(LiveBean data, int liveType, int liveTypeVal, int liveSdk) {
+ public synchronized void onAdd(LiveBean data, int liveType, int liveTypeVal, int liveSdk, boolean isSw) {
+ Log.e("直播间接口调用排查", "onAdd onAdd onAdd onAdd");
isEnterRoom = false;
MobclickAgent.onEvent(mContext, "live_room_chat_list", "滑动直播间聊天列表");
openParametersModel = new OpenParametersModel();
@@ -353,6 +371,12 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRyLinkMicPkPresenter.release();
mLiveRyLinkMicPkPresenter = null;
}
+
+ if (mLiveSwLinkMicPkPresenter != null) {
+ mLiveSwLinkMicPkPresenter.clearData();
+ mLiveSwLinkMicPkPresenter.release();
+ mLiveSwLinkMicPkPresenter = null;
+ }
OpenAdManager.getInstance().dismiss();
mLiveBean = data;
mLiveSDK = liveSdk;
@@ -371,12 +395,22 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
liveHandler.removeCallbacks(loadRunnableGone);
liveHandler.removeCallbacks(loadTimeoutRunnableGone);
if (mLivePlayViewHolder == null) {
- mLivePlayViewHolder = new LivePlayRyViewHolder(mContext, playContainer, 1);
- mLiveRoomViewHolder = new LiveRoomViewHolder(false, 1, mContext, mContainer, mSecondPage.findViewById(R.id.gift_gif), mSecondPage.findViewById(R.id.gift_svga), mContainerWrap, mContext.getWindowManager());
+ if (isSw) {
+ mLivePlayViewHolder = new LivePlaySwViewHolder(mContext, playContainer, mLiveBean.getLandscape());
+ } else {
+ mLivePlayViewHolder = new LivePlayRyViewHolder(mContext, playContainer, 1);
+ }
+
+ mLiveRoomViewHolder = new LiveRoomViewHolder(false, 1, mContext, mContainer, mSecondPage.findViewById(R.id.gift_gif), mSecondPage.findViewById(R.id.gift_svga), mContainerWrap, mContext.getWindowManager(), isSw);
mLiveAudienceViewHolder = new LiveAudienceViewHolder(mContext, mContainer);
mLiveLinkMicPresenter = new LiveLinkMicPresenter(mContext, mLivePlayViewHolder, false, mLiveSDK, mLiveAudienceViewHolder.getContentView());
mLiveLinkMicAnchorPresenter = new LiveLinkMicAnchorPresenter(mContext, mLivePlayViewHolder, false, mLiveSDK, null);
- mLiveRyLinkMicPkPresenter = new LiveRyLinkMicPkPresenter(mContext, mLivePlayViewHolder, false, null);
+ if (isSw) {
+ mLiveSwLinkMicPkPresenter = new LiveSwLinkMicPkPresenter(mContext, mLivePlayViewHolder, false, null);
+ } else {
+ mLiveRyLinkMicPkPresenter = new LiveRyLinkMicPkPresenter(mContext, mLivePlayViewHolder, false, null);
+ }
+ mLivePlayViewHolder.initSwEngine(mLiveBean.getUid());
mLivePlayViewHolder.addToParent();
mLivePlayViewHolder.subscribeActivityLifeCycle();
mLivePlayViewHolder.setLoadViewListener(new LiveRoomPlayViewHolder.LoadingListener() {
@@ -391,21 +425,28 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRoomViewHolder.addToParent();
mLiveAudienceViewHolder.subscribeActivityLifeCycle();
} else {
- mLivePlayViewHolder.setLiveBeanLandscape(1);
+ mLivePlayViewHolder.initSwEngine(liveID);
+ mLivePlayViewHolder.setLiveBeanLandscape(mLiveBean.getLandscape());
mLiveLinkMicPresenter.setLiveSdk(mLiveSDK);
mLiveLinkMicAnchorPresenter.setLiveSdk(mLiveSDK);
}
+ if (isSw) {
+ if (mLiveSwLinkMicPkPresenter == null) {
+ mLiveSwLinkMicPkPresenter = new LiveSwLinkMicPkPresenter(mContext, mLivePlayViewHolder, false, null);
+ }
+ } else {
+ if (mLiveRyLinkMicPkPresenter == null) {
+ mLiveRyLinkMicPkPresenter = new LiveRyLinkMicPkPresenter(mContext, mLivePlayViewHolder, false, null);
+ }
+ }
- if (mLiveRyLinkMicPkPresenter == null) {
- mLiveRyLinkMicPkPresenter = new LiveRyLinkMicPkPresenter(mContext, mLivePlayViewHolder, false, null);
- }
//去除主播离开画面
- if (LivePlayKsyViewHolder.leave != null) {
- LivePlayKsyViewHolder.leave.setVisibility(View.GONE);
- }
if (LivePlayRyViewHolder.leave != null) {
LivePlayRyViewHolder.leave.setVisibility(View.GONE);
}
+ if (LivePlaySwViewHolder.leave != null) {
+ LivePlaySwViewHolder.leave.setVisibility(View.GONE);
+ }
//直播间背景
ImgLoader.displayBlurLive(mContext, mLiveBean.getAvatar(), liveBack, 400, 600);
@@ -439,13 +480,22 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRoomViewHolder.clearGuardIcon();
mLiveRoomViewHolder.clearChat();
mLiveRoomViewHolder.releaseGift();
- mLiveRyLinkMicPkPresenter.setLiveUid(data.getUid(), "");
- mSocketRyClient = new SocketRyClient(mLiveBean.getUid(), PortraitLiveManager.this, mContext);
+ if (isSw) {
+ mLiveSwLinkMicPkPresenter.setLiveUid(data.getUid(), "");
+ } else {
+ mLiveRyLinkMicPkPresenter.setLiveUid(data.getUid(), "");
+ }
+
+ if (isSw) {
+ mSocketSwClient = new SocketSwClient(mLiveBean.getUid(), PortraitLiveManager.this, mContext);
+ } else {
+ mSocketRyClient = new SocketRyClient(mLiveBean.getUid(), PortraitLiveManager.this, mContext);
+ }
if (mLiveLinkMicPresenter != null) {
mLiveLinkMicPresenter.setSocketClient(mSocketClient);
}
enterRoomNew();
-
+ Bus.get().post(new LiveOpenSuccessEvent());
} catch (Exception e) {
e.printStackTrace();
}
@@ -619,8 +669,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
if (leave == 1) {
- if (LivePlayRyViewHolder.leave != null) {
- LivePlayRyViewHolder.leave.setVisibility(View.VISIBLE);
+ if (LivePlaySwViewHolder.leave != null) {
+ LivePlaySwViewHolder.leave.setVisibility(View.VISIBLE);
}
}
//判断是否有连麦,要显示连麦窗口
@@ -647,18 +697,40 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
}
}
-
if (mLivePlayViewHolder != null && data.getEnterRoomInfo().getIsconnection() != null && data.getEnterRoomInfo().getIsconnection().equals("1")) {
-
- mLivePlayViewHolder.setViewUP(1);
-
+ JSONArray array = pkInfo.getJSONArray("userlist");
+ //判断是否是多人连麦
+ if (array!=null&& !array.isEmpty()) {//多人連麥
+ if (mLivePlayViewHolder != null) {
+ List drPkbeans = new ArrayList<>();
+ for (int j = 0; j < array.size(); j++) {
+ UserBean drPkbean = new UserBean();
+ DrPkbean drPkbean1 = new DrPkbean();
+ JSONObject da = array.getJSONObject(j);
+ if (!String.valueOf(da.getIntValue("id")).equals(String.valueOf(data.getLiveInfo().getUid()))) {
+ drPkbean.setId(String.valueOf(da.getIntValue("id")));
+ drPkbean1.setId(da.getIntValue("id"));
+ drPkbean1.setUser_nicename(da.getString("user_nicename"));
+ drPkbeans.add(drPkbean1);
+ mLivePlayViewHolder.setDrMicInfo(drPkbean);
+ }
+ }
+ //mLivePlayViewHolder.setDrPkView(drPkbeans);
+ }
+ } else {//单人连麦
+ LivePkMicModel connection_info = data.getEnterRoomInfo().getConnectionInfo();
+ if (!StringUtil.isEmpty(connection_info.getPkuid())) {
+ mPkUid = connection_info.getPkuid();
+ mLivePlayViewHolder.setPkView(connection_info.getPkuid());
+ }
+ }
}
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.pkHandler = false;
}
if (mLivePlayViewHolder != null && pkInfo.getIntValue("ifpk") == 1 && pkInfo.getString("end_pk_time").equals("0")) {//pk开始了
- mLivePlayViewHolder.setViewUP(2);
+ mLivePlayViewHolder.setPkView(data.getEnterRoomInfo().getPkinfo().getPkuid());
//pk排名数据
LivePKUserListBean livePKUserListBean = JSON.parseObject(pkInfo.getString("pk_top_users"), LivePKUserListBean.class);
@@ -670,13 +742,15 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
if (mLiveRoomViewHolder != null && pkInfo != null && pkInfo.containsKey("pkuid") && pkInfo.containsKey("pkuimg") && pkInfo.containsKey("pkuname")) {
mLiveRoomViewHolder.setOtherInfo(pkInfo.getString("pkuid"), pkInfo.getString("pkuimg"), pkInfo.getString("pkuname"));
}
-
}
};
linkMicPkStartHandler.postDelayed(linkMicPkStartRunnable, 4000);
-
}
- mLiveRyLinkMicPkPresenter.onEnterRoomPkStart(pkUid, pkInfo.getLongValue("pk_gift_liveuid"), pkInfo.getLongValue("pk_gift_pkuid"), pkInfo.getIntValue("pk_time"), livePKUserListBean);
+ if (isSw) {
+ mLiveSwLinkMicPkPresenter.onEnterRoomPkStart(pkUid, pkInfo.getLongValue("pk_gift_liveuid"), pkInfo.getLongValue("pk_gift_pkuid"), pkInfo.getIntValue("pk_time"), livePKUserListBean);
+ } else {
+ mLiveRyLinkMicPkPresenter.onEnterRoomPkStart(pkUid, pkInfo.getLongValue("pk_gift_liveuid"), pkInfo.getLongValue("pk_gift_pkuid"), pkInfo.getIntValue("pk_time"), livePKUserListBean);
+ }
} else if (!pkInfo.getString("end_pk_time").equals("0")) {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.pkHandler = true;
@@ -684,12 +758,17 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRoomViewHolder.initPkRank(null);
}
if (mLivePlayViewHolder != null) {
- mLivePlayViewHolder.setViewUP(3);
+ //mLivePlayViewHolder.setViewUP(3);
+ mLivePlayViewHolder.setPkView(data.getEnterRoomInfo().getPkinfo().getPkuid());
}
//pk排名数据
LivePKUserListBean livePKUserListBean = JSON.parseObject(pkInfo.getString("pk_top_users"), LivePKUserListBean.class);
- mLiveRyLinkMicPkPresenter.onEnterRoomCFStart(pkUid, pkInfo.getLongValue("pk_gift_liveuid"), pkInfo.getLongValue("pk_gift_pkuid"), pkInfo.getIntValue("end_pk_time"), livePKUserListBean);
+ if (isSw) {
+ mLiveSwLinkMicPkPresenter.onEnterRoomCFStart(pkUid, pkInfo.getLongValue("pk_gift_liveuid"), pkInfo.getLongValue("pk_gift_pkuid"), pkInfo.getIntValue("end_pk_time"), livePKUserListBean);
+ } else {
+ mLiveRyLinkMicPkPresenter.onEnterRoomCFStart(pkUid, pkInfo.getLongValue("pk_gift_liveuid"), pkInfo.getLongValue("pk_gift_pkuid"), pkInfo.getIntValue("end_pk_time"), livePKUserListBean);
+ }
} else {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.initPkRank(null);
@@ -706,7 +785,24 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
}
if (mLivePlayViewHolder != null) {
- mLivePlayViewHolder.setViewUP(4);
+ JSONArray array = pkInfo.getJSONArray("userlist");
+ if(array==null){
+ array=new JSONArray();
+ }
+ List drPkbeans = new ArrayList<>();
+ for (int j = 0; j < array.size(); j++) {
+ UserBean userBean = new UserBean();
+ DrPkbean drPkbean = new DrPkbean();
+ JSONObject da = array.getJSONObject(j);
+ if (!String.valueOf(da.getIntValue("id")).equals(String.valueOf(data.getLiveInfo().getUid()))) {
+ userBean.setId(String.valueOf(da.getIntValue("id")));
+ drPkbean.setId(da.getIntValue("id"));
+ drPkbean.setUser_nicename(da.getString("user_nicename"));
+ drPkbeans.add(drPkbean);
+ mLivePlayViewHolder.setDrMicInfo(userBean);
+ }
+ }
+ //mLivePlayViewHolder.setDrPkView(drPkbeans);
}
upDataPkScore(pkInfo.getJSONArray("userlist"), pkInfo.getIntValue("drpk_time"));
@@ -763,10 +859,10 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRoomViewHolder.showPrizePoolLevel(String.valueOf(giftPrizePoolLevel));
}
}
+ //liveHandler.postDelayed(loadTimeoutRunnableGone, 15_000);
AppManager.runDebugCode(() -> {
- // liveHandler.postDelayed(loadTimeoutRunnableGone, 1_000);
+ liveHandler.postDelayed(loadTimeoutRunnableGone, 1_000);
});
- liveHandler.postDelayed(loadTimeoutRunnableGone, 4_000);
if (TextUtils.equals(data.getEnterRoomInfo().getIsconnection(), "1")) {
//通知心愿单位置换地方
EventBus.getDefault().post(new LiveAudienceEvent()
@@ -809,6 +905,11 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
}
+ public void loadTimeoutRunnableGone() {
+ if (liveHandler != null) {
+ liveHandler.postDelayed(loadTimeoutRunnableGone, 1_000);
+ }
+ }
public void removeLiveEnd() {
if (mLiveEndViewHolder != null) {
@@ -836,11 +937,17 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRyLinkMicPkPresenter.clearData();
mLiveRyLinkMicPkPresenter.release();
}
+ if (mLiveSwLinkMicPkPresenter != null) {
+ mLiveSwLinkMicPkPresenter.clearData();
+ mLiveSwLinkMicPkPresenter.release();
+ }
+
mLiveAudienceViewHolder = null;
mLiveRoomViewHolder = null;
mLiveLinkMicPresenter = null;
mLiveLinkMicAnchorPresenter = null;
mLiveRyLinkMicPkPresenter = null;
+ mLiveSwLinkMicPkPresenter = null;
mLivePlayViewHolder = null;
}
@@ -862,11 +969,19 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
if (mLiveAudienceViewHolder != null) {
mLiveAudienceViewHolder.removeCallbacks();
}
+ if (mLivePlayViewHolder != null) {
+ mLivePlayViewHolder.stopPlay2();
+ mLiveRoomViewHolder.cancelAllAnim();
+ }
//断开socket
if (mSocketRyClient != null) {
mSocketRyClient.disConnect();
mSocketRyClient = null;
}
+ if (mSocketSwClient != null) {
+ mSocketSwClient.disConnect();
+ mSocketSwClient = null;
+ }
if (mSocketClient != null) {
mSocketClient.disConnect();
mSocketClient = null;
@@ -884,6 +999,12 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRyLinkMicPkPresenter.release();
mLiveRyLinkMicPkPresenter = null;
}
+ if (mLiveSwLinkMicPkPresenter != null) {
+ mLiveSwLinkMicPkPresenter.clearData();
+ mLiveSwLinkMicPkPresenter.release();
+ mLiveSwLinkMicPkPresenter = null;
+ }
+
if (mLiveEndViewHolder != null) {
removeLiveEnd();
}
@@ -906,7 +1027,6 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRoomViewHolder.removeFromParent();
mLiveRoomViewHolder.countDownTimerTrickery = null;
}
-
mLiveAudienceViewHolder = null;
mLivePlayViewHolder = null;
mLiveRoomViewHolder = null;
@@ -915,7 +1035,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRyLinkMicPkPresenter = null;
if (PermissionUtils.checkPermission(mContext) && !kick) {
LiveFloatView.getInstance()
- .cacheLiveData(mLiveBean, mLiveType, mLiveSDK, mLiveTypeVal)
+ .cacheLiveData(mLiveBean, mLiveType, isSw, mLiveTypeVal)
.builderSystemFloat(mContext, mLiveBean.getPull());
mContext.finish();
} else {
@@ -923,7 +1043,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
EventBus.getDefault()
.post(new LiveFloatEvent()
.setmLiveBean(mLiveBean)
- .setmLiveSDK(mLiveSDK)
+ .setmLiveSDK(isSw ? 2 : mLiveSDK)
.setmLiveType(mLiveType)
.setmLiveTypeVal(mLiveTypeVal));
}
@@ -962,7 +1082,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
boolean floatPermission = PermissionUtils.checkPermission(mContext);
if (mLiveBean != null && !isQuitF && !isForeground && floatPermission) {
LiveFloatView.getInstance()
- .cacheLiveData(mLiveBean, mLiveType, mLiveSDK, mLiveTypeVal)
+ .cacheLiveData(mLiveBean, mLiveType, isSw, mLiveTypeVal)
.builderSystemFloat(mContext, mLiveBean.getPull());
mContext.finish();
}
@@ -1062,26 +1182,9 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
DialogUitl.showSimpleDialog(mContext, null, "連麥中,退出將斷開語音連麥!", false, new DialogUitl.SimpleCallback3() {
@Override
public void onConfirmClick(Dialog dialog) {
- if (RCRTCEngine.getInstance().getRoom() == null || RCRTCEngine.getInstance().getRoom().getLocalUser() == null) {
- return;
- }
- ToastUtil.show("下麥中,稍等.....");
- RCRTCEngine.getInstance().getRoom().getLocalUser().switchToAudience(new IRCRTCSwitchRoleCallback() {
-
- /**
- * 当切换失败且SDK处于无法回退状态时回调,该角色已经无法使用当前角色继续进行音视频。
- * SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。
- */
- @Override
- public void onKicked() {
-
- }
-
- @Override
- public void onSuccess() {
- Log.e("ry", "下麦成功");
- // 该用户切换为观众成功,可以以观众身份进行音视频
- //退出多人房间
+ if (isSw) {
+ if (mLivePlayViewHolder != null) {
+ mLivePlayViewHolder.endLiveMic();
HttpClient.getInstance().get("live.leaveDrLm", "live.leaveDrLm")
.params("roomid", liveID)
.execute(new HttpCallback() {
@@ -1091,39 +1194,77 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
});
- //退出rtc播放
- RCRTCEngine.getInstance().leaveRoom(new IRCRTCResultCallback() {
- @Override
- public void onSuccess() {
- Log.e("ry", "退出多人房间成功");
+ if (isBackPressed) {
+ MicStatusManager.getInstance().clear();
+ ((LiveAudienceActivity) mContext).closeRoom();
+ } else {
+ EventBus.getDefault().post(new LiveRoomChangeEvent(bean, liveType, liveTypeVal));
+ }
+ }
+ } else {
+ if (RCRTCEngine.getInstance().getRoom() == null || RCRTCEngine.getInstance().getRoom().getLocalUser() == null) {
+ return;
+ }
+ ToastUtil.show("下麥中,稍等.....");
+ RCRTCEngine.getInstance().getRoom().getLocalUser().switchToAudience(new IRCRTCSwitchRoleCallback() {
- if (isBackPressed) {
- MicStatusManager.getInstance().clear();
- ((LiveAudienceActivity) mContext).closeRoom();
- } else {
- EventBus.getDefault().post(new LiveRoomChangeEvent(bean, liveType, liveTypeVal));
+ /**
+ * 当切换失败且SDK处于无法回退状态时回调,该角色已经无法使用当前角色继续进行音视频。
+ * SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。
+ */
+ @Override
+ public void onKicked() {
+
+ }
+
+ @Override
+ public void onSuccess() {
+ Log.e("ry", "下麦成功");
+ // 该用户切换为观众成功,可以以观众身份进行音视频
+ //退出多人房间
+ HttpClient.getInstance().get("live.leaveDrLm", "live.leaveDrLm")
+ .params("roomid", liveID)
+ .execute(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ Log.e("ry", code + "退出多人");
+
+ }
+ });
+ //退出rtc播放
+ RCRTCEngine.getInstance().leaveRoom(new IRCRTCResultCallback() {
+ @Override
+ public void onSuccess() {
+ Log.e("ry", "退出多人房间成功");
+
+ if (isBackPressed) {
+ MicStatusManager.getInstance().clear();
+ ((LiveAudienceActivity) mContext).closeRoom();
+ } else {
+ EventBus.getDefault().post(new LiveRoomChangeEvent(bean, liveType, liveTypeVal));
+ }
}
- }
- @Override
- public void onFailed(RTCErrorCode errorCode) {
- Log.e("ry", errorCode + "退出多人房间失敗");
+ @Override
+ public void onFailed(RTCErrorCode errorCode) {
+ Log.e("ry", errorCode + "退出多人房间失敗");
- }
- });
+ }
+ });
- }
+ }
- /**
- * 当切换失败且不影响当前角色继续音视频时回调
- * @param errorCode 失败错误码
- */
- @Override
- public void onFailed(RTCErrorCode errorCode) {
- Log.e("ry", "下麦失败" + errorCode);
+ /**
+ * 当切换失败且不影响当前角色继续音视频时回调
+ * @param errorCode 失败错误码
+ */
+ @Override
+ public void onFailed(RTCErrorCode errorCode) {
+ Log.e("ry", "下麦失败" + errorCode);
- }
- });
+ }
+ });
+ }
}
@Override
@@ -1148,11 +1289,17 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
if (!mFirstConnectSocket) {
mFirstConnectSocket = true;
if (mLiveType == Constants.LIVE_TYPE_PAY || mLiveType == Constants.LIVE_TYPE_TIME) {
-
- SocketRyChatUtil.sendUpdateVotesMessage(mLiveBean.getUid(), mLiveTypeVal, 1);
-
+ if (isSw) {
+ SocketSwChatUtil.sendUpdateVotesMessage(mLiveBean.getUid(), mLiveTypeVal, 1);
+ } else {
+ SocketRyChatUtil.sendUpdateVotesMessage(mLiveBean.getUid(), mLiveTypeVal, 1);
+ }
+ }
+ if (isSw) {
+ SocketSwChatUtil.getFakeFans(mLiveBean.getUid());
+ } else {
+ SocketRyChatUtil.getFakeFans(mLiveBean.getUid());
}
- SocketRyChatUtil.getFakeFans(mLiveBean.getUid());
}
}
}
@@ -1326,7 +1473,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
public void showAllServerNotifyFFGGGD(AllServerNotifyFFGGGDJANEvent notifyFFGGGDJANEvent) {
if (mLiveRoomViewHolder != null) {
- mLiveRoomViewHolder.showAllServerNotifyFFGGGD(notifyFFGGGDJANEvent,true);
+ mLiveRoomViewHolder.showAllServerNotifyFFGGGD(notifyFFGGGDJANEvent, true);
}
}
@@ -1358,20 +1505,34 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
@Override
public void onSendGiftPk(long leftGift, long rightGift, LivePKUserListBean bean) {
-
- if (mLiveRyLinkMicPkPresenter != null) {
- mLiveRyLinkMicPkPresenter.onPkProgressChanged(leftGift, rightGift, bean);
-
+ if (isSw) {
+ if (mLiveSwLinkMicPkPresenter != null) {
+ mLiveSwLinkMicPkPresenter.onPkProgressChanged(leftGift, rightGift, bean);
+ }
+ } else {
+ if (mLiveRyLinkMicPkPresenter != null) {
+ mLiveRyLinkMicPkPresenter.onPkProgressChanged(leftGift, rightGift, bean);
+ }
}
}
@Override
public void onEndPk(long leftUid, long rightUid, long left, long right, LivePKUserListBean bean) {
- if (mLiveRyLinkMicPkPresenter != null) {
- if (mLiveUid.equals(leftUid + "")) {
- mLiveRyLinkMicPkPresenter.onPkProgressEnd(left, right, bean);
- } else {
- mLiveRyLinkMicPkPresenter.onPkProgressEnd(right, left, bean);
+ if (isSw) {
+ if (mLiveSwLinkMicPkPresenter != null) {
+ if (mLiveUid.equals(leftUid + "")) {
+ mLiveSwLinkMicPkPresenter.onPkProgressEnd(left, right, bean);
+ } else {
+ mLiveSwLinkMicPkPresenter.onPkProgressEnd(right, left, bean);
+ }
+ }
+ } else {
+ if (mLiveRyLinkMicPkPresenter != null) {
+ if (mLiveUid.equals(leftUid + "")) {
+ mLiveRyLinkMicPkPresenter.onPkProgressEnd(left, right, bean);
+ } else {
+ mLiveRyLinkMicPkPresenter.onPkProgressEnd(right, left, bean);
+ }
}
}
}
@@ -1484,7 +1645,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
@Override
public void onAudienceApplyLinkMic(UserBean u) {
-
+ L.eSw("onAudienceApplyLinkMic(2)");
}
@Override
@@ -1573,10 +1734,32 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
@Override
- public void onLinkDRMicPkApplyOk(UserBean u) {
-
+ public void onLinkDRMicPKToUser(UserBean u) {
+ L.eSw("onLinkDRMicPKToUser(UserBean u)PortraitLiveManager");
+ mLivePlayViewHolder.setDrMicInfo(u);
}
+ @Override
+ public void onLinkDRMicPkApplyOk(UserBean u) {
+ L.eSw("onLinkDRMicPkApplyOk(UserBean u)PortraitLiveManager");
+ //mLivePlayViewHolder.setDrMicInfo(u);
+ }
+
+ @Override
+ public void onLinkDRMicPkQuit(String uid) {
+ L.eSw("onLinkDRMicPkQuit:" + uid);
+ mLivePlayViewHolder.removeLiveUid(uid);
+ int removeUid = 0;
+ for (int k = 0; k < pkScores.size(); k++) {
+ JSONObject score = pkScores.getJSONObject(k);
+ String userID = score.getString("id");
+ if (userID.equals(uid)) {
+ removeUid = k;
+ }
+ }
+ pkScores.remove(removeUid);
+ upDataPkScore(pkScores, -1);
+ }
/**
* 主播与主播PK 所有人收到PK开始的回调
@@ -1603,12 +1786,20 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
}
};
-
- if (mLiveRyLinkMicPkPresenter != null && mLiveRoomViewHolder != null) {
- mLiveRoomViewHolder.pkHandler = true;
- mLiveRyLinkMicPkPresenter.onLinkMicPkStart(pkUid, 1);
- linkMicPkStartHandler.postDelayed(linkMicPkStartRunnable, 4000);//3秒后执行Runnable中的run方法
+ if (isSw) {
+ if (mLiveSwLinkMicPkPresenter != null && mLiveRoomViewHolder != null) {
+ mLiveRoomViewHolder.pkHandler = true;
+ mLiveSwLinkMicPkPresenter.onLinkMicPkStart(pkUid, 1);
+ linkMicPkStartHandler.postDelayed(linkMicPkStartRunnable, 4000);//3秒后执行Runnable中的run方法
+ }
+ } else {
+ if (mLiveRyLinkMicPkPresenter != null && mLiveRoomViewHolder != null) {
+ mLiveRoomViewHolder.pkHandler = true;
+ mLiveRyLinkMicPkPresenter.onLinkMicPkStart(pkUid, 1);
+ linkMicPkStartHandler.postDelayed(linkMicPkStartRunnable, 4000);//3秒后执行Runnable中的run方法
+ }
}
+
if (mLivePlayViewHolder != null) {
mLivePlayViewHolder.setLiveBeanLandscape(1);
}
@@ -1631,15 +1822,24 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
@Override
public void onLinkMicPkClose(int i) {
-
- if (mLiveRyLinkMicPkPresenter != null) {
- mLiveRyLinkMicPkPresenter.onLinkMicPkClose(i);
- if (mLiveRoomViewHolder != null) {
- mLiveRoomViewHolder.resetViewGone();
+ if (isSw) {
+ if (mLiveSwLinkMicPkPresenter != null) {
+ mLiveSwLinkMicPkPresenter.onLinkMicPkClose(i);
+ if (mLiveRoomViewHolder != null) {
+ mLiveRoomViewHolder.resetViewGone();
+ }
+ }
+ } else {
+ if (mLiveRyLinkMicPkPresenter != null) {
+ mLiveRyLinkMicPkPresenter.onLinkMicPkClose(i);
+ if (mLiveRoomViewHolder != null) {
+ mLiveRoomViewHolder.resetViewGone();
+ }
}
}
if (mLiveRoomViewHolder != null) {
mLivePlayViewHolder.setLiveBeanLandscape(landscape);
+ mLivePlayViewHolder.endpk(mPkUid);
}
if (mContext instanceof LiveAudienceActivity) {
((LiveAudienceActivity) mContext).setPkStatus(false);
@@ -1663,9 +1863,16 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
@Override
public void onLinkMicPkEnd(String winUid) {
- if (mLiveRyLinkMicPkPresenter != null) {
- mLiveRyLinkMicPkPresenter.onLinkMicPkEnd(winUid);
- //mLiveRoomViewHolder.setDelOtherInfo();
+ if (isSw) {
+ if (mLiveSwLinkMicPkPresenter != null) {
+ mLiveSwLinkMicPkPresenter.onLinkMicPkEnd(winUid);
+ //mLiveRoomViewHolder.setDelOtherInfo();
+ }
+ } else {
+ if (mLiveRyLinkMicPkPresenter != null) {
+ mLiveRyLinkMicPkPresenter.onLinkMicPkEnd(winUid);
+ //mLiveRoomViewHolder.setDelOtherInfo();
+ }
}
}
@@ -1865,9 +2072,13 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
if (mSocketRyClient != null) {
mSocketRyClient.disConnect();
+ mSocketRyClient = null;
}
- mSocketRyClient = null;
+ if (mSocketSwClient != null) {
+ mSocketSwClient.disConnect();
+ mSocketSwClient = null;
+ }
//结束播放
if (mLivePlayViewHolder != null) {
@@ -1905,6 +2116,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
if (!isEnterRoom) {
return;
}
+ SWAuManager.get().exitChannelAll();
LiveNetManager.get(mContext)
.leaveRoomNew(leaveStream, leaveGroupId, new com.yunbao.common.http.base.HttpCallback() {
@Override
@@ -1984,8 +2196,11 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
MobclickAgent.onEvent(mContext, "live_room_light", "直播间点亮");
mLighted = true;
int guardType = mLiveGuardInfo != null ? mLiveGuardInfo.getMyGuardType() : Constants.GUARD_TYPE_NONE;
- SocketRyChatUtil.sendLightMessage(mLiveBean.getUid(), 1 + RandomUtil.nextInt(6), guardType);
-
+ if (isSw) {
+ SocketSwChatUtil.sendLightMessage(mLiveBean.getUid(), 1 + RandomUtil.nextInt(6), guardType);
+ } else {
+ SocketRyChatUtil.sendLightMessage(mLiveBean.getUid(), 1 + RandomUtil.nextInt(6), guardType);
+ }
}
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.playLightAnim();
@@ -2043,9 +2258,11 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
* 更新主播映票数
*/
public void sendUpdateVotesMessage() {
-
- SocketRyChatUtil.sendUpdateVotesMessage(mLiveBean.getUid(), mLiveTypeVal);
-
+ if (isSw) {
+ SocketSwChatUtil.sendUpdateVotesMessage(mLiveBean.getUid(), mLiveTypeVal);
+ } else {
+ SocketRyChatUtil.sendUpdateVotesMessage(mLiveBean.getUid(), mLiveTypeVal);
+ }
}
public void onFollowEvent(FollowEvent e) {
@@ -2167,6 +2384,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mViewPager.setCanScroll(enableScroll);
}
+ public JSONArray pkScores;
+
/**
* 用户端多人Pk
*
@@ -2174,6 +2393,11 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
* @param time
*/
public void upDataPkScore(JSONArray pkScores, int time) {
+ L.eSw("upDataPkScore" + time+"|"+pkScores);
+ if(pkScores==null){
+ return;
+ }
+ this.pkScores = pkScores;
if (mLiveRoomViewHolder != null) {
String liveId = mLiveBean.getUid();
JSONObject liveModel = null;
@@ -2188,7 +2412,12 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
pkScores.remove(index);
pkScores.add(0, liveModel);
- mLiveRoomViewHolder.upDataPkScore(pkScores, time);
+ if (time == -1) {
+ mLiveRoomViewHolder.upDataPkScore(pkScores);
+ } else {
+ mLiveRoomViewHolder.upDataPkScore(pkScores, time);
+ mLivePlayViewHolder.claerDrPkInfoView();
+ }
setPkStatus(true);
}
//通知心愿单位置换地方
diff --git a/live/src/main/java/com/yunbao/live/views/SidebarViewHoler.java b/live/src/main/java/com/yunbao/live/views/SidebarViewHoler.java
index 78561638b..4e3a49980 100644
--- a/live/src/main/java/com/yunbao/live/views/SidebarViewHoler.java
+++ b/live/src/main/java/com/yunbao/live/views/SidebarViewHoler.java
@@ -102,8 +102,8 @@ public class SidebarViewHoler extends RecyclerView.ViewHolder {
}
new LiveRoomCheckLivePresenter(itemView.getContext(), liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
}
@Override
diff --git a/live/src/main/res/layout/anchor_open_mic_view.xml b/live/src/main/res/layout/anchor_open_mic_view.xml
index 8141f4e93..5f7709c16 100644
--- a/live/src/main/res/layout/anchor_open_mic_view.xml
+++ b/live/src/main/res/layout/anchor_open_mic_view.xml
@@ -33,7 +33,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:layout_marginTop="8dp"
+ android:layout_marginTop="6dp"
android:text="打開語音連麥權限"
android:textColor="#FFFFFF"
android:textSize="12sp" />
@@ -43,8 +43,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:layout_marginTop="3dp"
- android:layout_marginBottom="8dp"
+ android:layout_marginTop="2dp"
android:text="粉絲等級5以上的用戶可向您發起申請"
android:textColor="#259484"
android:textSize="8sp" />
diff --git a/live/src/main/res/layout/item_anchor_mic_info.xml b/live/src/main/res/layout/item_anchor_mic_info.xml
index 1c254dd47..fade3f7a3 100644
--- a/live/src/main/res/layout/item_anchor_mic_info.xml
+++ b/live/src/main/res/layout/item_anchor_mic_info.xml
@@ -19,7 +19,6 @@
android:gravity="center_vertical"
android:orientation="horizontal">
-
-
@@ -65,8 +64,11 @@
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:maxLines="1"
+ android:ellipsize="end"
android:text="用户名称"
android:textColor="#F6F7FB"
+ tools:textColor="@color/gray1"
android:textSize="14sp" />
@@ -130,7 +132,7 @@
android:id="@+id/mic_btn"
android:layout_width="wrap_content"
android:layout_height="28dp"
- android:layout_marginEnd="36dp"
+ android:layout_marginEnd="10dp"
android:background="@drawable/bg_anchor_mic_info_btn_ok"
android:text="同意"
android:textColor="#FFFFFF"
diff --git a/live/src/main/res/layout/item_live_chat.xml b/live/src/main/res/layout/item_live_chat.xml
index bacd71816..c288cf804 100644
--- a/live/src/main/res/layout/item_live_chat.xml
+++ b/live/src/main/res/layout/item_live_chat.xml
@@ -16,7 +16,9 @@
android:layout_marginRight="9dp"
android:paddingBottom="7dp"
android:textColor="#fff"
+ android:breakStrategy="simple"
android:textSize="12sp"
+ tools:text="aaaaaaaaa111111111111111111111111111111111111111111111111111111111"
android:visibility="visible"
tools:ignore="RtlHardcoded" />
diff --git a/live/src/main/res/layout/view_live_pk_details.xml b/live/src/main/res/layout/view_live_pk_details.xml
index 1fa312eb6..981fa2f64 100644
--- a/live/src/main/res/layout/view_live_pk_details.xml
+++ b/live/src/main/res/layout/view_live_pk_details.xml
@@ -16,7 +16,6 @@
android:layout_height="wrap_content"
android:layout_marginStart="5.33dp"
android:layout_marginTop="4.67dp"
- android:background="@drawable/background_pk_time"
android:gravity="center_vertical"
android:orientation="horizontal">
diff --git a/live/src/main/res/layout/view_live_play_sw.xml b/live/src/main/res/layout/view_live_play_sw.xml
new file mode 100644
index 000000000..64cb1c25f
--- /dev/null
+++ b/live/src/main/res/layout/view_live_play_sw.xml
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/live/src/main/res/layout/view_live_push_sw.xml b/live/src/main/res/layout/view_live_push_sw.xml
new file mode 100644
index 000000000..bbe8f0a50
--- /dev/null
+++ b/live/src/main/res/layout/view_live_push_sw.xml
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/live/src/main/res/layout/view_live_room.xml b/live/src/main/res/layout/view_live_room.xml
index b1054eb1c..d0bd9e291 100644
--- a/live/src/main/res/layout/view_live_room.xml
+++ b/live/src/main/res/layout/view_live_room.xml
@@ -691,7 +691,7 @@
android:layout_height="27dp"
android:layout_below="@id/open_sidebar"
android:layout_alignParentRight="true"
- android:layout_marginTop="16dp"
+ android:layout_marginTop="20dp"
android:layout_marginRight="9dp"
android:background="@drawable/bg_live_other_ico"
android:gravity="center">
@@ -744,9 +744,8 @@
layout="@layout/view_red_packet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_below="@+id/live_rank_pk"
android:layout_marginStart="12dp"
- android:layout_marginTop="15dp"
+ android:layout_marginTop="100dp"
android:visibility="gone" />
-
+ android:layout_alignParentBottom="true"
+ android:layout_height="wrap_content">
+
+
+
+
+
+
() {
+ @Override
+ public void onSuccess(SwTokenModel data) {
+ CommonAppConfig.SWToken = data.getToken();
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
}
/**
@@ -1117,9 +1138,9 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
public void watchLive(LiveBean liveBean, String key, int position) {
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
MobclickAgent.onEvent(mContext, "home_page_enter_room", "首页点击直播间");
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
}
@Override
@@ -1555,7 +1576,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveFloatEvent(LiveFloatEvent event) {
if (event != null && event.getmLiveBean() != null && !TextUtils.isEmpty(event.getmLiveBean().getPull())) {
- new Handler().post(() -> LiveFloatView.getInstance().cacheLiveData(event.getmLiveBean(), event.getmLiveType(), event.getmLiveSDK(), event.getmLiveTypeVal()).builderFloat(mContext, event.getmLiveBean().getPull(), LiveAudienceActivity.class));
+ new Handler().post(() -> LiveFloatView.getInstance().cacheLiveData(event.getmLiveBean(), event.getmLiveType(), event.getmLiveSDK() ==Constants.LIVE_SDK_SW, event.getmLiveTypeVal()).builderFloat(mContext, event.getmLiveBean().getPull(), LiveAudienceActivity.class));
}
}
diff --git a/main/src/main/java/com/yunbao/main/activity/MyWebViewActivity.java b/main/src/main/java/com/yunbao/main/activity/MyWebViewActivity.java
index 751ae514d..729e0323d 100644
--- a/main/src/main/java/com/yunbao/main/activity/MyWebViewActivity.java
+++ b/main/src/main/java/com/yunbao/main/activity/MyWebViewActivity.java
@@ -261,7 +261,7 @@ public class MyWebViewActivity extends AbsActivity {
}
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
if (LiveRoomViewHolder.mHandler != null) {
LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
@@ -274,7 +274,7 @@ public class MyWebViewActivity extends AbsActivity {
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)).setLiveEnd(true));
} else {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk),isSw);
}
}
diff --git a/main/src/main/java/com/yunbao/main/activity/MyWebViewActivity2.java b/main/src/main/java/com/yunbao/main/activity/MyWebViewActivity2.java
index 07b6ddd1c..c5f3c15d1 100644
--- a/main/src/main/java/com/yunbao/main/activity/MyWebViewActivity2.java
+++ b/main/src/main/java/com/yunbao/main/activity/MyWebViewActivity2.java
@@ -230,7 +230,7 @@ public class MyWebViewActivity2 extends AbsActivity {
}
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
if (LiveRoomViewHolder.mHandler != null) {
LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
@@ -243,7 +243,7 @@ public class MyWebViewActivity2 extends AbsActivity {
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)));
} else {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk),isSw);
}
}
diff --git a/main/src/main/java/com/yunbao/main/activity/RegisterActivity.java b/main/src/main/java/com/yunbao/main/activity/RegisterActivity.java
index 11491f72a..82fcf0718 100644
--- a/main/src/main/java/com/yunbao/main/activity/RegisterActivity.java
+++ b/main/src/main/java/com/yunbao/main/activity/RegisterActivity.java
@@ -528,8 +528,8 @@ public class RegisterActivity extends AbsActivity {
}
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
NoviceInstructorManager.get(mContext).setFrist(false);
}
diff --git a/main/src/main/java/com/yunbao/main/activity/SearchActivity.java b/main/src/main/java/com/yunbao/main/activity/SearchActivity.java
index 7ccea01cb..82104fa30 100644
--- a/main/src/main/java/com/yunbao/main/activity/SearchActivity.java
+++ b/main/src/main/java/com/yunbao/main/activity/SearchActivity.java
@@ -176,8 +176,8 @@ public class SearchActivity extends AbsActivity {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
}
@Override
diff --git a/main/src/main/java/com/yunbao/main/activity/WeekWebViewActivity.java b/main/src/main/java/com/yunbao/main/activity/WeekWebViewActivity.java
index cd1fb5682..f0096f634 100644
--- a/main/src/main/java/com/yunbao/main/activity/WeekWebViewActivity.java
+++ b/main/src/main/java/com/yunbao/main/activity/WeekWebViewActivity.java
@@ -154,8 +154,8 @@ public class WeekWebViewActivity extends AbsActivity {
}
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
}
@Override
diff --git a/main/src/main/java/com/yunbao/main/activity/ZhuangBanActivity.java b/main/src/main/java/com/yunbao/main/activity/ZhuangBanActivity.java
index 81c65ad64..9b3bc4e02 100644
--- a/main/src/main/java/com/yunbao/main/activity/ZhuangBanActivity.java
+++ b/main/src/main/java/com/yunbao/main/activity/ZhuangBanActivity.java
@@ -396,7 +396,7 @@ public class ZhuangBanActivity extends AbsActivity {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
if (liveBean == null) {
return;
}
@@ -405,7 +405,7 @@ public class ZhuangBanActivity extends AbsActivity {
return;
}
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk),isSw);
finish();
}
diff --git a/main/src/main/java/com/yunbao/main/adapter/SearchAdapter.java b/main/src/main/java/com/yunbao/main/adapter/SearchAdapter.java
index d3ff13be0..a371e3f93 100644
--- a/main/src/main/java/com/yunbao/main/adapter/SearchAdapter.java
+++ b/main/src/main/java/com/yunbao/main/adapter/SearchAdapter.java
@@ -203,8 +203,8 @@ public class SearchAdapter extends RefreshAdapter {
}
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
}
@Override
diff --git a/main/src/main/java/com/yunbao/main/dialog/AnchorStartLiveNotifyDialog.java b/main/src/main/java/com/yunbao/main/dialog/AnchorStartLiveNotifyDialog.java
index a1237951c..c0177c0cb 100644
--- a/main/src/main/java/com/yunbao/main/dialog/AnchorStartLiveNotifyDialog.java
+++ b/main/src/main/java/com/yunbao/main/dialog/AnchorStartLiveNotifyDialog.java
@@ -77,8 +77,8 @@ public class AnchorStartLiveNotifyDialog extends AbsDialogPositionPopupWindow {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk),isSw);
}
@Override
diff --git a/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java b/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java
index 60d756c1b..7c8da569f 100644
--- a/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java
+++ b/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java
@@ -22,7 +22,6 @@ import android.widget.LinearLayout;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
@@ -32,6 +31,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.DialogUitl;
+import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.utils.PluginManager;
import com.yunbao.common.utils.ProcessResultUtil;
import com.yunbao.common.utils.ToastUtil;
@@ -39,6 +39,7 @@ import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.LiveConfig;
import com.yunbao.live.activity.LiveAnchorActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
+import com.yunbao.live.activity.LiveSwAnchorActivity;
import com.yunbao.live.bean.LiveKsyConfigBean;
import com.yunbao.main.R;
import com.yunbao.main.activity.MyWebViewActivity;
@@ -227,13 +228,22 @@ public class MainStartDialogFragment extends AbsDialogFragment implements View.O
@Override
public void onSuccess(int code, String msg, String[] info1) {
try {
- JSONObject obj = JSON.parseObject(info[0]);
- JSONObject obj1 = JSON.parseObject(info1[0]);
- if (obj1.getString("is_rong").equals("1")) {
- LiveRyAnchorActivity.forward(mContext, obj.getIntValue("live_sdk"), JSON.parseObject(obj.getString("android"), LiveKsyConfigBean.class));
- } else {
- LiveAnchorActivity.forward(mContext, obj.getIntValue("live_sdk"), JSON.parseObject(obj.getString("android"), LiveKsyConfigBean.class));
- }
+ LiveHttpUtil.getIsSw(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] infos) {
+ JSONObject obj = JSON.parseObject(info[0]);
+ JSONObject obj1 = JSON.parseObject(info1[0]);
+ try {
+ if(code==201){ //声网
+ LiveSwAnchorActivity.forward(mContext, Constants.LIVE_SDK_SW, JSON.parseObject(obj.getString("android"), LiveKsyConfigBean.class));
+ }else if(code==200){//融云
+ LiveRyAnchorActivity.forward(mContext, obj.getIntValue("live_sdk"), JSON.parseObject(obj.getString("android"), LiveKsyConfigBean.class));
+ }
+ } catch (Exception e) {
+
+ }
+ }
+ });
} catch (Exception e) {
}
diff --git a/main/src/main/java/com/yunbao/main/dialog/OneLoginDialog.java b/main/src/main/java/com/yunbao/main/dialog/OneLoginDialog.java
index 46bd068f6..fc6406056 100644
--- a/main/src/main/java/com/yunbao/main/dialog/OneLoginDialog.java
+++ b/main/src/main/java/com/yunbao/main/dialog/OneLoginDialog.java
@@ -150,11 +150,11 @@ public class OneLoginDialog extends AbsDialogFragment {
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
NoviceInstructorManager.get(mContext).setFrist(false);
}
diff --git a/main/src/main/java/com/yunbao/main/fragment/MainHomeCommunityFragment.java b/main/src/main/java/com/yunbao/main/fragment/MainHomeCommunityFragment.java
index ae5f07953..cd8d7f804 100644
--- a/main/src/main/java/com/yunbao/main/fragment/MainHomeCommunityFragment.java
+++ b/main/src/main/java/com/yunbao/main/fragment/MainHomeCommunityFragment.java
@@ -262,8 +262,8 @@ public class MainHomeCommunityFragment extends BaseFragment {
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
}
@Override
diff --git a/main/src/main/java/com/yunbao/main/views/AbsMainListChildViewHolder.java b/main/src/main/java/com/yunbao/main/views/AbsMainListChildViewHolder.java
index 410000ee8..6b8d7226b 100644
--- a/main/src/main/java/com/yunbao/main/views/AbsMainListChildViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/AbsMainListChildViewHolder.java
@@ -170,8 +170,8 @@ public abstract class AbsMainListChildViewHolder extends AbsMainViewHolder imple
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
}
@Override
@@ -406,8 +406,8 @@ public abstract class AbsMainListChildViewHolder extends AbsMainViewHolder imple
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
}
@Override
diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeFollLiveViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeFollLiveViewHolder.java
index 1a0c9b5af..92a160d22 100644
--- a/main/src/main/java/com/yunbao/main/views/MainHomeFollLiveViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/MainHomeFollLiveViewHolder.java
@@ -15,6 +15,7 @@ import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.custom.ItemDecoration;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
+import com.yunbao.common.utils.L;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.main.R;
@@ -32,6 +33,8 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import io.agora.beautyapi.faceunity.agora.SWAuManager;
+
public class MainHomeFollLiveViewHolder extends AbsMainHomeChildViewHolder implements OnItemClickListener {
private CommonRefreshView mRefreshView;
private MainHomeRemFollLiveAdapter mAdapter;
@@ -56,7 +59,7 @@ public class MainHomeFollLiveViewHolder extends AbsMainHomeChildViewHolder imple
mRefreshView.showRefreshBar();
mRefreshView.mRecyclerView.scrollToPosition(0);
}
- }else if ("blacklist".equals(str)) {
+ } else if ("blacklist".equals(str)) {
if (mRefreshView != null) {
mRefreshView.showRefreshBar();
}
@@ -99,6 +102,7 @@ public class MainHomeFollLiveViewHolder extends AbsMainHomeChildViewHolder imple
@Override
public void onRefreshSuccess(List list, int count) {
+ SWAuManager.get().preloadChannel(list);
EventBus.getDefault().post(new AnchorRecommendModel());
}
@@ -115,6 +119,7 @@ public class MainHomeFollLiveViewHolder extends AbsMainHomeChildViewHolder imple
new_data.add(loadItemList.get(j));
}
}
+ SWAuManager.get().preloadChannel(new_data);
mAdapter.insertList(new_data);
}
@@ -147,6 +152,9 @@ public class MainHomeFollLiveViewHolder extends AbsMainHomeChildViewHolder imple
// if (mRefreshView != null) {
// mRefreshView.initData();
// }
+ if (mAdapter != null) {
+ SWAuManager.get().preloadChannel(mAdapter.getList());
+ }
}
@Override
@@ -164,6 +172,6 @@ public class MainHomeFollLiveViewHolder extends AbsMainHomeChildViewHolder imple
@Override
public void onResume() {
super.onResume();
-
+ L.eSw("onResume");
}
}
diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeFollowViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeFollowViewHolder.java
index 0dfd0bc0f..88fc09831 100644
--- a/main/src/main/java/com/yunbao/main/views/MainHomeFollowViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/MainHomeFollowViewHolder.java
@@ -23,6 +23,8 @@ import com.yunbao.main.http.MainHttpUtil;
import java.util.List;
+import io.agora.beautyapi.faceunity.agora.SWAuManager;
+
/**
* Created by cxf on 2018/9/22.
* 首页 关注
@@ -70,7 +72,9 @@ public class MainHomeFollowViewHolder extends AbsMainHomeChildViewHolder impleme
public List processData(String[] info) {
if (info.length > 0) {
JSONObject obj = JSON.parseObject(info[0]);
- return JSON.parseArray(obj.getString("list"), LiveBean.class);
+ List liveBeanList = JSON.parseArray(obj.getString("list"), LiveBean.class);
+ SWAuManager.get().preloadChannel(liveBeanList);
+ return liveBeanList;
}
return null;
}
diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeGameViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeGameViewHolder.java
index 97345b408..605e2e89f 100644
--- a/main/src/main/java/com/yunbao/main/views/MainHomeGameViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/MainHomeGameViewHolder.java
@@ -17,7 +17,7 @@ import com.google.gson.Gson;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.enums.PopupPosition;
import com.yunbao.common.activity.AbsActivity;
-import com.yunbao.live.activity.SudGameActivity;
+import com.yunbao.live.activity.SudSwGameActivity;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.adapter.SudGameListAdapter;
import com.yunbao.common.bean.CreateSudRoomModel;
@@ -158,7 +158,7 @@ public class MainHomeGameViewHolder extends AbsMainHomeChildViewHolder implement
@Override
public void onSuccess(CreateSudRoomModel data) {
if (data != null) {
- Intent intent = new Intent(context, SudGameActivity.class);
+ Intent intent = new Intent(context, SudSwGameActivity.class);
intent.putExtra("CreateSudRoom", new Gson().toJson(data));
context.startActivity(intent);
} else {
diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeLiveViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeLiveViewHolder.java
index 904886749..a4f390768 100644
--- a/main/src/main/java/com/yunbao/main/views/MainHomeLiveViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/MainHomeLiveViewHolder.java
@@ -74,6 +74,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import io.agora.beautyapi.faceunity.agora.SWAuManager;
+
/**
* Created by cxf on 2018/9/22.
* MainActivity 首页 直播
@@ -242,6 +244,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
if (liveModel != null) {
old_data.remove(liveModel);
}
+ SWAuManager.get().preloadChannel(old_data);
new_data.addAll(old_data);
}
@@ -271,6 +274,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
}
}
if (loadItemList.size() > 0) {
+ SWAuManager.get().preloadChannel(new_data);
mAdapter.insertList(new_data);
}
}
@@ -402,8 +406,8 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
liveBean.setParams(gotoRoomKey);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
}
@Override
@@ -497,7 +501,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
}
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
if (LiveRoomViewHolder.mHandler != null) {
LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
@@ -509,7 +513,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)));
} else {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk),isSw);
}
}
@@ -533,6 +537,9 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
@Override
public void loadData() {
+ if (mAdapter != null) {
+ SWAuManager.get().preloadChannel(mAdapter.getList());
+ }
}
@Override
diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeRecomLiveViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeRecomLiveViewHolder.java
index d86234c2f..ec5025544 100644
--- a/main/src/main/java/com/yunbao/main/views/MainHomeRecomLiveViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/MainHomeRecomLiveViewHolder.java
@@ -31,6 +31,8 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.Arrays;
import java.util.List;
+import io.agora.beautyapi.faceunity.agora.SWAuManager;
+
/**
* 首页推荐
*/
@@ -104,6 +106,7 @@ public class MainHomeRecomLiveViewHolder extends AbsMainHomeChildViewHolder impl
@Override
public void onRefreshSuccess(List list, int count) {
+ SWAuManager.get().preloadChannel(list);
EventBus.getDefault().post(new AnchorRecommendModel());
}
@@ -149,6 +152,9 @@ public class MainHomeRecomLiveViewHolder extends AbsMainHomeChildViewHolder impl
// if (mRefreshView != null) {
// mRefreshView.initData();
// }
+ if (mAdapter != null) {
+ SWAuManager.get().preloadChannel(mAdapter.getList());
+ }
}
@Override
diff --git a/main/src/main/java/com/yunbao/main/views/MainMessageViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainMessageViewHolder.java
index c5f85f19c..865fda8bf 100644
--- a/main/src/main/java/com/yunbao/main/views/MainMessageViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/MainMessageViewHolder.java
@@ -515,8 +515,8 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
}
@Override
diff --git a/main/src/main/java/com/yunbao/main/views/UserHomeViewHolder2.java b/main/src/main/java/com/yunbao/main/views/UserHomeViewHolder2.java
index 7f691cf41..e4a566c88 100644
--- a/main/src/main/java/com/yunbao/main/views/UserHomeViewHolder2.java
+++ b/main/src/main/java/com/yunbao/main/views/UserHomeViewHolder2.java
@@ -794,7 +794,7 @@ public class UserHomeViewHolder2 extends AbsLivePageViewHolder implements LiveSh
}
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
- public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
if (mFromLiveRoom) {
if (MicStatusManager.getInstance().isMic(liveUid)) {
@@ -804,7 +804,7 @@ public class UserHomeViewHolder2 extends AbsLivePageViewHolder implements LiveSh
((UserHomeActivity) mContext).onBackPressed();
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)));
} else {
- RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk),isSw);
}
}
diff --git a/pluginsForAnchor/build.gradle b/pluginsForAnchor/build.gradle
index ef5b9896d..dff9b69f7 100644
--- a/pluginsForAnchor/build.gradle
+++ b/pluginsForAnchor/build.gradle
@@ -85,7 +85,7 @@ android {
doLast {
delete(fileTree(dir: outputDir, includes: [
'model/ai_bgseg_green.bundle',
- 'model/ai_face_processor.bundle',
+ //'model/ai_face_processor.bundle',
//'model/ai_face_processor_lite.bundle',
'model/ai_hairseg.bundle',
'model/ai_hand_processor.bundle',
@@ -119,7 +119,7 @@ android {
versionName rootProject.ext.android.versionName
manifestPlaceholders = rootProject.ext.manifestPlaceholders
ndk {
- abiFilters "armeabi-v7a", "arm64-v8a"
+ abiFilters "armeabi-v7a", "arm64-v8a","x86","x86_64"
}
}
aaptOptions {
diff --git a/settings.gradle b/settings.gradle
index b391e1573..16ddb4134 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -7,3 +7,4 @@ include ':pluginsForAnchor'
//include ':lib_huawei'
include ':lib_google'
include ':IAP6Helper'
+include ':lib_faceunity'
diff --git a/video/build.gradle b/video/build.gradle
index 7368bedbd..6eb58fb04 100644
--- a/video/build.gradle
+++ b/video/build.gradle
@@ -31,7 +31,7 @@ android {
versionName rootProject.ext.android.versionName
manifestPlaceholders = rootProject.ext.manifestPlaceholders
ndk {
- abiFilters "armeabi-v7a","arm64-v8a"
+ abiFilters "armeabi-v7a","arm64-v8a","x86","x86_64"
}
}
aaptOptions {