修复:
侧边栏问题
This commit is contained in:
parent
49ef55bfee
commit
b4a71e1282
@ -177,7 +177,7 @@ public class AppContext extends CommonAppContext {
|
|||||||
msg.obj = content.getContent();
|
msg.obj = content.getContent();
|
||||||
if (SocketRyClient.mSocketHandler != null
|
if (SocketRyClient.mSocketHandler != null
|
||||||
&& (TextUtils.equals("__system__", message.getTargetId())
|
&& (TextUtils.equals("__system__", message.getTargetId())
|
||||||
|| (TextUtils.equals("g" + PortraitLiveManager.liveID, message.getTargetId())))) {
|
|| ("g" + PortraitLiveManager.liveID).contains(message.getTargetId()))) {
|
||||||
SocketRyClient.mSocketHandler.sendMessage(msg);
|
SocketRyClient.mSocketHandler.sendMessage(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -240,7 +240,7 @@ public class AppContext extends CommonAppContext {
|
|||||||
/**
|
/**
|
||||||
* 注册全局异常捕获,有需要时可以在onCreate调用
|
* 注册全局异常捕获,有需要时可以在onCreate调用
|
||||||
*/
|
*/
|
||||||
private void registerError(){
|
private void registerError() {
|
||||||
NeverCrashUtils.getInstance()
|
NeverCrashUtils.getInstance()
|
||||||
.setDebugMode(BuildConfig.DEBUG)
|
.setDebugMode(BuildConfig.DEBUG)
|
||||||
.setMainCrashHandler((t, e) -> {
|
.setMainCrashHandler((t, e) -> {
|
||||||
|
@ -97,7 +97,7 @@ public class DialogUitl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void showSimpleDialog(Context context, String content, SimpleCallback callback) {
|
public static void showSimpleDialog(Context context, String content, SimpleCallback callback) {
|
||||||
showSimpleDialog(context, content, true, callback);
|
showSimpleDialog(context, content, false, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void showSimpleDialog(Context context, String content, boolean cancelable, SimpleCallback callback) {
|
public static void showSimpleDialog(Context context, String content, boolean cancelable, SimpleCallback callback) {
|
||||||
@ -114,6 +114,15 @@ public class DialogUitl {
|
|||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void showSimpleDialog(Context context, String title, String content, boolean cancelable, SimpleCallback3 callback) {
|
||||||
|
new Builder(context)
|
||||||
|
.setTitle(title)
|
||||||
|
.setContent(content)
|
||||||
|
.setCancelable(cancelable)
|
||||||
|
.setClickCallback3(callback)
|
||||||
|
.build()
|
||||||
|
.show();
|
||||||
|
}
|
||||||
|
|
||||||
public static void showSimpleInputDialog(Context context, String title, String hint, int inputType, int length, SimpleCallback callback) {
|
public static void showSimpleInputDialog(Context context, String title, String hint, int inputType, int length, SimpleCallback callback) {
|
||||||
new Builder(context).setTitle(title)
|
new Builder(context).setTitle(title)
|
||||||
@ -290,6 +299,7 @@ public class DialogUitl {
|
|||||||
private int mInputType;
|
private int mInputType;
|
||||||
private int mLength;
|
private int mLength;
|
||||||
private SimpleCallback mClickCallback;
|
private SimpleCallback mClickCallback;
|
||||||
|
private SimpleCallback3 mClickCallback3;
|
||||||
|
|
||||||
public Builder(Context context) {
|
public Builder(Context context) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
@ -350,6 +360,11 @@ public class DialogUitl {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Builder setClickCallback3(SimpleCallback3 clickCallback) {
|
||||||
|
mClickCallback3 = clickCallback;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public Dialog build() {
|
public Dialog build() {
|
||||||
final Dialog dialog = new Dialog(mContext, mBackgroundDimEnabled ? R.style.dialog : R.style.dialog2);
|
final Dialog dialog = new Dialog(mContext, mBackgroundDimEnabled ? R.style.dialog : R.style.dialog2);
|
||||||
dialog.setContentView(mInput ? R.layout.dialog_input : R.layout.dialog_simple);
|
dialog.setContentView(mInput ? R.layout.dialog_input : R.layout.dialog_simple);
|
||||||
@ -397,12 +412,24 @@ public class DialogUitl {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
|
if (mClickCallback3 != null) {
|
||||||
|
mClickCallback3.onConfirmClick(dialog);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
if (mClickCallback instanceof SimpleCallback2) {
|
if (mClickCallback3 != null) {
|
||||||
((SimpleCallback2) mClickCallback).onCancelClick();
|
mClickCallback3.onCancel();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if (mClickCallback instanceof SimpleCallback2) {
|
||||||
|
((SimpleCallback2) mClickCallback).onCancelClick();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -429,6 +456,12 @@ public class DialogUitl {
|
|||||||
void onCancelClick();
|
void onCancelClick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface SimpleCallback3 {
|
||||||
|
void onConfirmClick(Dialog dialog);
|
||||||
|
|
||||||
|
void onCancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 城市选择
|
* 城市选择
|
||||||
|
@ -75,6 +75,10 @@ public class VerticalViewPager extends ViewGroup {
|
|||||||
|
|
||||||
private boolean mEnableScroll = true;
|
private boolean mEnableScroll = true;
|
||||||
|
|
||||||
|
public boolean ismEnableScroll() {
|
||||||
|
return mEnableScroll;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to track what the expected number of items in the adapter should be.
|
* Used to track what the expected number of items in the adapter should be.
|
||||||
* If the app changes this when we don't expect it, we'll throw a big obnoxious exception.
|
* If the app changes this when we don't expect it, we'll throw a big obnoxious exception.
|
||||||
|
@ -10,9 +10,9 @@ ext {
|
|||||||
manifestPlaceholders = [
|
manifestPlaceholders = [
|
||||||
//正式
|
//正式
|
||||||
|
|
||||||
// serverHost : "https://napi.yaoulive.com",
|
serverHost : "https://napi.yaoulive.com",
|
||||||
//測試
|
//測試
|
||||||
serverHost : "https://ceshi.yaoulive.com",
|
// serverHost : "https://ceshi.yaoulive.com",
|
||||||
|
|
||||||
//腾讯地图
|
//腾讯地图
|
||||||
txMapAppKey : "EOZBZ-ASLCU-4XPV3-BDCHZ-4E3Q7-H4BWB",
|
txMapAppKey : "EOZBZ-ASLCU-4XPV3-BDCHZ-4E3Q7-H4BWB",
|
||||||
|
@ -327,6 +327,8 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBuyLiangName(LiveReceiveGiftBean bean) {
|
public void onBuyLiangName(LiveReceiveGiftBean bean) {
|
||||||
if (mLiveRoomViewHolder != null) {
|
if (mLiveRoomViewHolder != null) {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.yunbao.live.activity;
|
package com.yunbao.live.activity;
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
@ -62,8 +61,6 @@ import com.yunbao.live.event.LiveRoomChangeEvent;
|
|||||||
import com.yunbao.live.http.LiveHttpConsts;
|
import com.yunbao.live.http.LiveHttpConsts;
|
||||||
import com.yunbao.live.http.LiveHttpUtil;
|
import com.yunbao.live.http.LiveHttpUtil;
|
||||||
import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
|
import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
|
||||||
import com.yunbao.live.socket.SocketSendBean;
|
|
||||||
import com.yunbao.live.utils.LiveImDeletUtil;
|
|
||||||
import com.yunbao.live.views.LiveRoomPlayViewHolder;
|
import com.yunbao.live.views.LiveRoomPlayViewHolder;
|
||||||
import com.yunbao.live.views.PortraitLiveManager;
|
import com.yunbao.live.views.PortraitLiveManager;
|
||||||
|
|
||||||
@ -73,15 +70,6 @@ import org.greenrobot.eventbus.ThreadMode;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
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.rong.imlib.IRongCallback;
|
|
||||||
import io.rong.imlib.RongIMClient;
|
|
||||||
import io.rong.imlib.model.Conversation;
|
|
||||||
import io.rong.message.TextMessage;
|
|
||||||
|
|
||||||
import static com.yunbao.live.views.LivePlayRyViewHolder.Micing;
|
import static com.yunbao.live.views.LivePlayRyViewHolder.Micing;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -110,7 +98,7 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
public static int fansNum;
|
public static int fansNum;
|
||||||
|
|
||||||
public static ProcessResultUtil mProcessResultUtil;
|
public static ProcessResultUtil mProcessResultUtil;
|
||||||
private LiveImDeletUtil liveImDeletUtil;
|
|
||||||
public static int isattention;
|
public static int isattention;
|
||||||
|
|
||||||
private LiveBean mLiveBean;
|
private LiveBean mLiveBean;
|
||||||
@ -139,7 +127,7 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
Bus.getOn(this);
|
Bus.getOn(this);
|
||||||
super.main();
|
super.main();
|
||||||
liveAudienceActivity = this;
|
liveAudienceActivity = this;
|
||||||
liveImDeletUtil = new LiveImDeletUtil();
|
|
||||||
mProcessResultUtil = new ProcessResultUtil(this);
|
mProcessResultUtil = new ProcessResultUtil(this);
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
mLiveSDK = intent.getIntExtra(Constants.LIVE_SDK, Constants.LIVE_SDK_KSY);
|
mLiveSDK = intent.getIntExtra(Constants.LIVE_SDK, Constants.LIVE_SDK_KSY);
|
||||||
@ -149,11 +137,6 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
mLiveBean = intent.getParcelableExtra(Constants.LIVE_BEAN);
|
mLiveBean = intent.getParcelableExtra(Constants.LIVE_BEAN);
|
||||||
mLiveUid = mLiveBean.getUid();
|
mLiveUid = mLiveBean.getUid();
|
||||||
mStream = mLiveBean.getStream();
|
mStream = mLiveBean.getStream();
|
||||||
// if (getIntent().getIntExtra("isry", 0) == 1) {
|
|
||||||
// isRy = true;
|
|
||||||
// } else {
|
|
||||||
// isRy = false;
|
|
||||||
// }
|
|
||||||
setVolumeControlStream(AudioManager.STREAM_MUSIC);
|
setVolumeControlStream(AudioManager.STREAM_MUSIC);
|
||||||
manager = new PortraitLiveManager(this, intent);
|
manager = new PortraitLiveManager(this, intent);
|
||||||
initView();
|
initView();
|
||||||
@ -192,25 +175,39 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
verticalViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
|
verticalViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||||
mCurrentItem = position;
|
|
||||||
Log.e(TAG, "mCurrentItem:" + mCurrentItem);
|
|
||||||
if (mCurrentItem == itemModelList.size() - 1) {
|
|
||||||
MainNetManager.get(mContext)
|
|
||||||
.anchorRecommendType("30", new com.yunbao.common.http.base.HttpCallback<AnchorRecommendModel>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(AnchorRecommendModel data) {
|
|
||||||
if (TextUtils.equals(data.getList().get(0).getUid(), mLiveBean.getUid())) {
|
|
||||||
data.getList().remove(0);
|
|
||||||
}
|
|
||||||
itemModelList.addAll(data.getList());
|
|
||||||
mPagerAdapter.notifyDataSetChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
if (Micing == 1) {
|
||||||
public void onError(String error) {
|
|
||||||
}
|
manager.micIngTypeOne(mLiveBean, mLiveType, mLiveTypeVal);
|
||||||
});
|
verticalViewPager.setEnableScroll(false);
|
||||||
|
} else if (Micing == 2) {
|
||||||
|
verticalViewPager.setEnableScroll(false);
|
||||||
|
manager.micIngTypeTwo(mLiveBean, mLiveType, mLiveTypeVal);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
verticalViewPager.setEnableScroll(true);
|
||||||
|
mCurrentItem = position;
|
||||||
|
Log.e(TAG, "mCurrentItem:" + mCurrentItem);
|
||||||
|
if (mCurrentItem == itemModelList.size() - 1) {
|
||||||
|
MainNetManager.get(mContext)
|
||||||
|
.anchorRecommendType("30", new com.yunbao.common.http.base.HttpCallback<AnchorRecommendModel>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(AnchorRecommendModel data) {
|
||||||
|
if (TextUtils.equals(data.getList().get(0).getUid(), mLiveBean.getUid())) {
|
||||||
|
data.getList().remove(0);
|
||||||
|
}
|
||||||
|
itemModelList.addAll(data.getList());
|
||||||
|
mPagerAdapter.notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(String error) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -414,115 +411,15 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
|
manager.onBackPressed();
|
||||||
if (Micing == 1) {
|
if (Micing == 1) {
|
||||||
DialogUitl.showSimpleDialog(mContext, "您已申請,退出將取消語音連麥申請!", new DialogUitl.SimpleCallback() {
|
manager.micIngTypeOne(mLiveBean, mLiveType, mLiveTypeVal);
|
||||||
@Override
|
|
||||||
public void onConfirmClick(Dialog dialog, String content) {
|
|
||||||
Micing = 0;
|
|
||||||
//用户申请联麦
|
|
||||||
final SocketSendBean msg = new SocketSendBean()
|
|
||||||
.param("_method_", Constants.LIAN_MAI)
|
|
||||||
.param("action", 7)
|
|
||||||
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName())
|
|
||||||
.param("avatar", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
|
||||||
.param("uid", CommonAppConfig.getInstance().getUid());
|
|
||||||
msg.create();
|
|
||||||
|
|
||||||
String targetId = mLiveUid;
|
|
||||||
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
|
|
||||||
TextMessage messageContent = TextMessage.obtain(msg.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", "发送成功");
|
|
||||||
liveImDeletUtil.deleteMessages(message.getTargetId(), message.getMessageId());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
|
|
||||||
Log.e("ry", "发送失敗" + errorCode.toString());
|
|
||||||
liveImDeletUtil.deleteMessages(message.getTargetId(), message.getMessageId());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
end();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
} else if (Micing == 2) {
|
} else if (Micing == 2) {
|
||||||
DialogUitl.showSimpleDialog(mContext, "連麥中,退出將斷開語音連麥!", new DialogUitl.SimpleCallback() {
|
manager.micIngTypeTwo(mLiveBean, mLiveType, mLiveTypeVal);
|
||||||
@Override
|
} else {
|
||||||
public void onConfirmClick(Dialog dialog, String content) {
|
super.onBackPressed();
|
||||||
ToastUtil.show("下麥中,稍等.....");
|
|
||||||
RCRTCEngine.getInstance().getRoom().getLocalUser().switchToAudience(new IRCRTCSwitchRoleCallback() {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 当切换失败且SDK处于无法回退状态时回调,该角色已经无法使用当前角色继续进行音视频。
|
|
||||||
* SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onKicked() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSuccess() {
|
|
||||||
Log.e("ry", "下麦成功");
|
|
||||||
// 该用户切换为观众成功,可以以观众身份进行音视频
|
|
||||||
//退出多人房间
|
|
||||||
HttpClient.getInstance().get("live.leaveDrLm", "live.leaveDrLm")
|
|
||||||
.params("roomid", LiveActivity.mLiveUid)
|
|
||||||
.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", "退出多人房间成功");
|
|
||||||
new Handler(Looper.getMainLooper()).post(new Runnable() {
|
|
||||||
public void run() {
|
|
||||||
Micing = 0;
|
|
||||||
end();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode errorCode) {
|
|
||||||
Log.e("ry", errorCode + "退出多人房间失敗");
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 当切换失败且不影响当前角色继续音视频时回调
|
|
||||||
* @param errorCode 失败错误码
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onFailed(RTCErrorCode errorCode) {
|
|
||||||
Log.e("ry", "下麦失败" + errorCode);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
end();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void end() {
|
public void end() {
|
||||||
@ -635,24 +532,34 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
fragment.show(getSupportFragmentManager(), "ChatChargeDialogFragment");
|
fragment.show(getSupportFragmentManager(), "ChatChargeDialogFragment");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setEnableScroll(boolean enableScroll) {
|
||||||
|
verticalViewPager.setEnableScroll(enableScroll);
|
||||||
|
}
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
public void onLiveRoomChangeEvent(LiveRoomChangeEvent e) {
|
public void onLiveRoomChangeEvent(LiveRoomChangeEvent e) {
|
||||||
LiveBean liveBean = e.getLiveBean();
|
if (verticalViewPager.ismEnableScroll()) {
|
||||||
if (liveBean != null) {
|
LiveBean liveBean = e.getLiveBean();
|
||||||
LiveHttpUtil.cancel(LiveHttpConsts.CHECK_LIVE);
|
if (liveBean != null) {
|
||||||
LiveHttpUtil.cancel(LiveHttpConsts.ENTER_ROOM);
|
|
||||||
LiveHttpUtil.cancel(LiveHttpConsts.ROOM_CHARGE);
|
|
||||||
manager.onRemove();
|
|
||||||
mLiveType = e.getLiveType();
|
|
||||||
mLiveTypeVal = e.getLiveTypeVal();
|
|
||||||
mLiveBean = liveBean;
|
|
||||||
mLiveUid = liveBean.getUid();
|
|
||||||
mStream = liveBean.getStream();
|
|
||||||
mAncherName = liveBean.getUserNiceName();
|
|
||||||
manager.onAdd(liveBean, mLiveType, mLiveTypeVal, mLiveSDK);
|
|
||||||
|
|
||||||
|
LiveHttpUtil.cancel(LiveHttpConsts.CHECK_LIVE);
|
||||||
|
LiveHttpUtil.cancel(LiveHttpConsts.ENTER_ROOM);
|
||||||
|
LiveHttpUtil.cancel(LiveHttpConsts.ROOM_CHARGE);
|
||||||
|
manager.onRemove();
|
||||||
|
mLiveType = e.getLiveType();
|
||||||
|
mLiveTypeVal = e.getLiveTypeVal();
|
||||||
|
mLiveBean = liveBean;
|
||||||
|
mLiveUid = liveBean.getUid();
|
||||||
|
mStream = liveBean.getStream();
|
||||||
|
mAncherName = liveBean.getUserNiceName();
|
||||||
|
manager.onAdd(liveBean, mLiveType, mLiveTypeVal, mLiveSDK);
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
verticalViewPager.setEnableScroll(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -673,6 +580,15 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
|
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
|
||||||
switch (event.getType()) {
|
switch (event.getType()) {
|
||||||
case SIDEBAR:
|
case SIDEBAR:
|
||||||
|
int userIndex = -1;
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
if (TextUtils.equals(list.get(i).getUid(), PortraitLiveManager.liveID)) {
|
||||||
|
userIndex = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (userIndex != -1) {
|
||||||
|
list.remove(userIndex);
|
||||||
|
}
|
||||||
//从右边打开侧边栏
|
//从右边打开侧边栏
|
||||||
SidebarLiveAudience sidebarLiveAudience = new SidebarLiveAudience();
|
SidebarLiveAudience sidebarLiveAudience = new SidebarLiveAudience();
|
||||||
bundle.putString("Avatar", mLiveBean.getAvatar());
|
bundle.putString("Avatar", mLiveBean.getAvatar());
|
||||||
@ -749,26 +665,32 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
ZhuangBanActivity.forward(mContext, nobleUrl, false);
|
ZhuangBanActivity.forward(mContext, nobleUrl, false);
|
||||||
break;
|
break;
|
||||||
case LIAN_MAI:
|
case LIAN_MAI:
|
||||||
//获取房间连麦状态
|
if (event.getMicIng() == 1) {
|
||||||
HttpClient.getInstance().get("live.getDrLm", "live.getDrLm")
|
manager.micIngTypeOne(event.getBean(), event.getLiveType(), event.getLiveTypeVal());
|
||||||
.params("uid", mLiveUid, true)
|
} else if (event.getMicIng() == 2) {
|
||||||
.execute(new HttpCallback() {
|
manager.micIngTypeTwo(event.getBean(), event.getLiveType(), event.getLiveTypeVal());
|
||||||
@Override
|
} else {
|
||||||
public void onSuccess(int code, String msg, String[] info) {
|
//获取房间连麦状态
|
||||||
if (code == 0) {
|
HttpClient.getInstance().get("live.getDrLm", "live.getDrLm")
|
||||||
LiveMicUserDialogFragment fragment = new LiveMicUserDialogFragment();
|
.params("uid", mLiveUid, true)
|
||||||
Bundle bundle = new Bundle();
|
.execute(new HttpCallback() {
|
||||||
bundle.putString(Constants.LIVE_UID, mLiveUid);
|
@Override
|
||||||
bundle.putString(Constants.STREAM, mStream);
|
public void onSuccess(int code, String msg, String[] info) {
|
||||||
bundle.putString("By", "1");
|
if (code == 0) {
|
||||||
fragment.setArguments(bundle);
|
LiveMicUserDialogFragment fragment = new LiveMicUserDialogFragment();
|
||||||
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveUserMoreDialogFragment");
|
Bundle bundle = new Bundle();
|
||||||
LiveMicUserDialogFragment.activity = ((LiveAudienceActivity) mContext);
|
bundle.putString(Constants.LIVE_UID, mLiveUid);
|
||||||
} else {
|
bundle.putString(Constants.STREAM, mStream);
|
||||||
ToastUtil.show(R.string.no_mic_opn);
|
bundle.putString("By", "1");
|
||||||
|
fragment.setArguments(bundle);
|
||||||
|
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveUserMoreDialogFragment");
|
||||||
|
LiveMicUserDialogFragment.activity = ((LiveAudienceActivity) mContext);
|
||||||
|
} else {
|
||||||
|
ToastUtil.show(R.string.no_mic_opn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
}
|
||||||
break;
|
break;
|
||||||
case EFFECTS_SETTINGS:
|
case EFFECTS_SETTINGS:
|
||||||
EffectsSettingsDialog effectsSettingsDialog = new EffectsSettingsDialog();
|
EffectsSettingsDialog effectsSettingsDialog = new EffectsSettingsDialog();
|
||||||
@ -867,15 +789,7 @@ public class LiveAudienceActivity extends LiveActivity {
|
|||||||
list.clear();
|
list.clear();
|
||||||
slideInfoModels.clear();
|
slideInfoModels.clear();
|
||||||
List<AnchorRecommendItemModel> models = anchorRecommendModel.getList();
|
List<AnchorRecommendItemModel> models = anchorRecommendModel.getList();
|
||||||
int userIndex = -1;
|
|
||||||
for (int i = 0; i < list.size(); i++) {
|
|
||||||
if (TextUtils.equals(list.get(i).getUid(), PortraitLiveManager.liveID)) {
|
|
||||||
userIndex = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (userIndex != -1) {
|
|
||||||
models.remove(userIndex);
|
|
||||||
}
|
|
||||||
models.add(0, new AnchorRecommendItemModel());
|
models.add(0, new AnchorRecommendItemModel());
|
||||||
list.addAll(models);
|
list.addAll(models);
|
||||||
slideInfoModels = anchorRecommendModel.getSlide();
|
slideInfoModels = anchorRecommendModel.getSlide();
|
||||||
|
@ -34,6 +34,7 @@ import com.yunbao.live.event.LiveAudienceEvent;
|
|||||||
import com.yunbao.live.event.LiveRoomChangeEvent;
|
import com.yunbao.live.event.LiveRoomChangeEvent;
|
||||||
import com.yunbao.live.http.LiveHttpUtil;
|
import com.yunbao.live.http.LiveHttpUtil;
|
||||||
import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
|
import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
|
||||||
|
import com.yunbao.live.views.LivePlayRyViewHolder;
|
||||||
import com.yunbao.live.views.PortraitLiveManager;
|
import com.yunbao.live.views.PortraitLiveManager;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
@ -202,13 +203,25 @@ public class SidebarLiveAudience extends AbsDialogFragment {
|
|||||||
if (liveBean1 == null) {
|
if (liveBean1 == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, liveTypeVal));
|
if (LivePlayRyViewHolder.Micing == 1) {
|
||||||
|
Bus.get().post(new LiveAudienceEvent()
|
||||||
|
.setType(LiveAudienceEvent.LiveAudienceType.LIAN_MAI)
|
||||||
|
.setMicIng(1)
|
||||||
|
.setBean(liveBean).setLiveType(liveType).setLiveTypeVal(liveTypeVal));
|
||||||
|
} else if (LivePlayRyViewHolder.Micing == 2) {
|
||||||
|
Bus.get().post(new LiveAudienceEvent()
|
||||||
|
.setType(LiveAudienceEvent.LiveAudienceType.LIAN_MAI)
|
||||||
|
.setMicIng(2)
|
||||||
|
.setBean(liveBean).setLiveType(liveType).setLiveTypeVal(liveTypeVal));
|
||||||
|
} else {
|
||||||
|
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, liveTypeVal));
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
mCheckLivePresenter.checkLive(liveBean);
|
mCheckLivePresenter.checkLive(liveBean);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
RouteUtil.forwardUserHome(getActivity(), liveId, 0);
|
RouteUtil.forwardUserHome(getActivity(), liveId, 0);
|
||||||
getActivity().finish();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -219,6 +232,6 @@ public class SidebarLiveAudience extends AbsDialogFragment {
|
|||||||
super.onDismiss(dialog);
|
super.onDismiss(dialog);
|
||||||
Bus.get().post(new LiveAudienceEvent()
|
Bus.get().post(new LiveAudienceEvent()
|
||||||
.setType(LiveAudienceEvent.LiveAudienceType.REFRESH_THE_LIVEl_PAGE)
|
.setType(LiveAudienceEvent.LiveAudienceType.REFRESH_THE_LIVEl_PAGE)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package com.yunbao.live.event;
|
|||||||
import com.yunbao.common.bean.ActiveModel;
|
import com.yunbao.common.bean.ActiveModel;
|
||||||
import com.yunbao.common.bean.AnchorRecommendItemModel;
|
import com.yunbao.common.bean.AnchorRecommendItemModel;
|
||||||
import com.yunbao.common.bean.BaseModel;
|
import com.yunbao.common.bean.BaseModel;
|
||||||
|
import com.yunbao.live.bean.LiveBean;
|
||||||
import com.yunbao.live.bean.OpenParametersModel;
|
import com.yunbao.live.bean.OpenParametersModel;
|
||||||
|
|
||||||
public class LiveAudienceEvent extends BaseModel {
|
public class LiveAudienceEvent extends BaseModel {
|
||||||
@ -11,6 +12,46 @@ public class LiveAudienceEvent extends BaseModel {
|
|||||||
private String avatar = "";
|
private String avatar = "";
|
||||||
private OpenParametersModel parametersModel = new OpenParametersModel();
|
private OpenParametersModel parametersModel = new OpenParametersModel();
|
||||||
private AnchorRecommendItemModel anchorRecommendItemModel = new AnchorRecommendItemModel();
|
private AnchorRecommendItemModel anchorRecommendItemModel = new AnchorRecommendItemModel();
|
||||||
|
private int micIng = 0;//连麦状态
|
||||||
|
private LiveBean bean;
|
||||||
|
private int liveType;
|
||||||
|
private int liveTypeVal;
|
||||||
|
|
||||||
|
public int getLiveType() {
|
||||||
|
return liveType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveAudienceEvent setLiveType(int liveType) {
|
||||||
|
this.liveType = liveType;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLiveTypeVal() {
|
||||||
|
return liveTypeVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveAudienceEvent setLiveTypeVal(int liveTypeVal) {
|
||||||
|
this.liveTypeVal = liveTypeVal;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveBean getBean() {
|
||||||
|
return bean;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveAudienceEvent setBean(LiveBean bean) {
|
||||||
|
this.bean = bean;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMicIng() {
|
||||||
|
return micIng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LiveAudienceEvent setMicIng(int micIng) {
|
||||||
|
this.micIng = micIng;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public AnchorRecommendItemModel getAnchorRecommendItemModel() {
|
public AnchorRecommendItemModel getAnchorRecommendItemModel() {
|
||||||
return anchorRecommendItemModel;
|
return anchorRecommendItemModel;
|
||||||
|
@ -5,6 +5,8 @@ import android.app.Dialog;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.os.CountDownTimer;
|
import android.os.CountDownTimer;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.Looper;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@ -35,6 +37,7 @@ import com.yunbao.common.glide.ImgLoader;
|
|||||||
import com.yunbao.common.http.CommonHttpConsts;
|
import com.yunbao.common.http.CommonHttpConsts;
|
||||||
import com.yunbao.common.http.CommonHttpUtil;
|
import com.yunbao.common.http.CommonHttpUtil;
|
||||||
import com.yunbao.common.http.HttpCallback;
|
import com.yunbao.common.http.HttpCallback;
|
||||||
|
import com.yunbao.common.http.HttpClient;
|
||||||
import com.yunbao.common.manager.IMLoginManager;
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.utils.Bus;
|
import com.yunbao.common.utils.Bus;
|
||||||
import com.yunbao.common.utils.DialogUitl;
|
import com.yunbao.common.utils.DialogUitl;
|
||||||
@ -63,27 +66,38 @@ import com.yunbao.live.dialog.BlowkissDialog;
|
|||||||
import com.yunbao.live.dialog.NewUserDialog;
|
import com.yunbao.live.dialog.NewUserDialog;
|
||||||
import com.yunbao.live.event.LinkMicTxAccEvent;
|
import com.yunbao.live.event.LinkMicTxAccEvent;
|
||||||
import com.yunbao.live.event.LiveAudienceEvent;
|
import com.yunbao.live.event.LiveAudienceEvent;
|
||||||
|
import com.yunbao.live.event.LiveRoomChangeEvent;
|
||||||
import com.yunbao.live.http.LiveHttpConsts;
|
import com.yunbao.live.http.LiveHttpConsts;
|
||||||
import com.yunbao.live.http.LiveHttpUtil;
|
import com.yunbao.live.http.LiveHttpUtil;
|
||||||
import com.yunbao.live.presenter.LiveLinkMicAnchorPresenter;
|
import com.yunbao.live.presenter.LiveLinkMicAnchorPresenter;
|
||||||
import com.yunbao.live.presenter.LiveLinkMicPkPresenter;
|
|
||||||
import com.yunbao.live.presenter.LiveLinkMicPresenter;
|
import com.yunbao.live.presenter.LiveLinkMicPresenter;
|
||||||
import com.yunbao.live.presenter.LiveRyLinkMicPkPresenter;
|
import com.yunbao.live.presenter.LiveRyLinkMicPkPresenter;
|
||||||
import com.yunbao.live.socket.SocketClient;
|
import com.yunbao.live.socket.SocketClient;
|
||||||
import com.yunbao.live.socket.SocketMessageListener;
|
import com.yunbao.live.socket.SocketMessageListener;
|
||||||
import com.yunbao.live.socket.SocketRyChatUtil;
|
import com.yunbao.live.socket.SocketRyChatUtil;
|
||||||
import com.yunbao.live.socket.SocketRyClient;
|
import com.yunbao.live.socket.SocketRyClient;
|
||||||
|
import com.yunbao.live.socket.SocketSendBean;
|
||||||
|
import com.yunbao.live.utils.LiveImDeletUtil;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
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.rong.imlib.IRongCallback;
|
||||||
import io.rong.imlib.IRongCoreCallback;
|
import io.rong.imlib.IRongCoreCallback;
|
||||||
import io.rong.imlib.IRongCoreEnum;
|
import io.rong.imlib.IRongCoreEnum;
|
||||||
|
import io.rong.imlib.RongIMClient;
|
||||||
import io.rong.imlib.chatroom.base.RongChatRoomClient;
|
import io.rong.imlib.chatroom.base.RongChatRoomClient;
|
||||||
|
import io.rong.imlib.model.Conversation;
|
||||||
|
import io.rong.message.TextMessage;
|
||||||
|
|
||||||
import static com.yunbao.common.CommonAppContext.logger;
|
import static com.yunbao.common.CommonAppContext.logger;
|
||||||
import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics;
|
import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics;
|
||||||
|
import static com.yunbao.live.views.LivePlayRyViewHolder.Micing;
|
||||||
import static com.yunbao.live.views.LiveRoomViewHolder.isStayRoomfive;
|
import static com.yunbao.live.views.LiveRoomViewHolder.isStayRoomfive;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -123,8 +137,6 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
//主播与主播连麦逻辑
|
//主播与主播连麦逻辑
|
||||||
private LiveLinkMicAnchorPresenter mLiveLinkMicAnchorPresenter;
|
private LiveLinkMicAnchorPresenter mLiveLinkMicAnchorPresenter;
|
||||||
//主播与主播PK逻辑
|
//主播与主播PK逻辑
|
||||||
private LiveLinkMicPkPresenter mLiveLinkMicPkPresenter;
|
|
||||||
//主播与主播PK逻辑
|
|
||||||
private LiveRyLinkMicPkPresenter mLiveRyLinkMicPkPresenter;
|
private LiveRyLinkMicPkPresenter mLiveRyLinkMicPkPresenter;
|
||||||
//直播间的类型 普通 密码 门票 计时等
|
//直播间的类型 普通 密码 门票 计时等
|
||||||
private int mLiveType;
|
private int mLiveType;
|
||||||
@ -150,10 +162,13 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
private boolean mCoinNotEnough;//余额不足
|
private boolean mCoinNotEnough;//余额不足
|
||||||
private boolean mFirstConnectSocket;//是否是第一次连接成功socket
|
private boolean mFirstConnectSocket;//是否是第一次连接成功socket
|
||||||
private int liveBg;
|
private int liveBg;
|
||||||
|
private LiveImDeletUtil liveImDeletUtil;
|
||||||
|
|
||||||
|
|
||||||
public PortraitLiveManager(Activity context, Intent intent) {
|
public PortraitLiveManager(Activity context, Intent intent) {
|
||||||
this.mContext = context;
|
this.mContext = context;
|
||||||
this.mIntent = intent;
|
this.mIntent = intent;
|
||||||
|
liveImDeletUtil = new LiveImDeletUtil();
|
||||||
ininView();
|
ininView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,8 +218,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
.setmLiveType(mLiveType)
|
.setmLiveType(mLiveType)
|
||||||
.setmLiveTypeVal(mLiveTypeVal)));
|
.setmLiveTypeVal(mLiveTypeVal)));
|
||||||
|
|
||||||
mLivePlayViewHolder = new LivePlayKsyViewHolder(mContext, playContainer, mIntent.getIntExtra("landscape", 0));
|
mLivePlayViewHolder = new LivePlayRyViewHolder(mContext, playContainer, mIntent.getIntExtra("landscape", 0));
|
||||||
|
|
||||||
mLivePlayViewHolder.addToParent();
|
mLivePlayViewHolder.addToParent();
|
||||||
mLivePlayViewHolder.subscribeActivityLifeCycle();
|
mLivePlayViewHolder.subscribeActivityLifeCycle();
|
||||||
mLiveRoomViewHolder = new LiveRoomViewHolder(false, 1, mContext, mContainer, mSecondPage.findViewById(R.id.gift_gif), mSecondPage.findViewById(R.id.gift_svga), mContainerWrap, mContext.getWindowManager());
|
mLiveRoomViewHolder = new LiveRoomViewHolder(false, 1, mContext, mContainer, mSecondPage.findViewById(R.id.gift_gif), mSecondPage.findViewById(R.id.gift_svga), mContainerWrap, mContext.getWindowManager());
|
||||||
@ -307,9 +321,6 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
if (mLiveLinkMicAnchorPresenter != null) {
|
if (mLiveLinkMicAnchorPresenter != null) {
|
||||||
mLiveLinkMicAnchorPresenter.clearData();
|
mLiveLinkMicAnchorPresenter.clearData();
|
||||||
}
|
}
|
||||||
if (mLiveLinkMicPkPresenter != null) {
|
|
||||||
mLiveLinkMicPkPresenter.clearData();
|
|
||||||
}
|
|
||||||
if (mLiveRyLinkMicPkPresenter != null) {
|
if (mLiveRyLinkMicPkPresenter != null) {
|
||||||
mLiveRyLinkMicPkPresenter.clearData();
|
mLiveRyLinkMicPkPresenter.clearData();
|
||||||
}
|
}
|
||||||
@ -366,9 +377,146 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请连麦但是主播还未同意的状态
|
||||||
|
*/
|
||||||
|
public void micIngTypeOne(LiveBean bean, int liveType, int liveTypeVal) {
|
||||||
|
DialogUitl.showSimpleDialog(mContext, null, "您已申請,退出將取消語音連麥申請!", false, new DialogUitl.SimpleCallback3() {
|
||||||
|
@Override
|
||||||
|
public void onConfirmClick(Dialog dialog) {
|
||||||
|
Micing = 0;
|
||||||
|
//用户申请联麦
|
||||||
|
final SocketSendBean msg = new SocketSendBean()
|
||||||
|
.param("_method_", Constants.LIAN_MAI)
|
||||||
|
.param("action", 7)
|
||||||
|
.param("uname", CommonAppConfig.getInstance().getUserBean().getUserNiceName())
|
||||||
|
.param("avatar", CommonAppConfig.getInstance().getUserBean().getAvatar())
|
||||||
|
.param("uid", CommonAppConfig.getInstance().getUid());
|
||||||
|
msg.create();
|
||||||
|
|
||||||
|
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
|
||||||
|
TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
|
||||||
|
io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(liveID, 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", "发送成功");
|
||||||
|
liveImDeletUtil.deleteMessages(message.getTargetId(), message.getMessageId());
|
||||||
|
if (isBackPressed) {
|
||||||
|
((LiveAudienceActivity) mContext).onBackPressed();
|
||||||
|
} else {
|
||||||
|
EventBus.getDefault().post(new LiveRoomChangeEvent(bean, liveType, liveTypeVal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
|
||||||
|
Log.e("ry", "发送失敗" + errorCode.toString());
|
||||||
|
liveImDeletUtil.deleteMessages(message.getTargetId(), message.getMessageId());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel() {
|
||||||
|
((LiveAudienceActivity) mContext).setEnableScroll(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 正处于连麦中
|
||||||
|
*/
|
||||||
|
public void micIngTypeTwo(LiveBean bean, int liveType, int liveTypeVal) {
|
||||||
|
DialogUitl.showSimpleDialog(mContext, null, "連麥中,退出將斷開語音連麥!", false, new DialogUitl.SimpleCallback3() {
|
||||||
|
@Override
|
||||||
|
public void onConfirmClick(Dialog dialog) {
|
||||||
|
ToastUtil.show("下麥中,稍等.....");
|
||||||
|
RCRTCEngine.getInstance().getRoom().getLocalUser().switchToAudience(new IRCRTCSwitchRoleCallback() {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当切换失败且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", "退出多人房间成功");
|
||||||
|
new Handler(Looper.getMainLooper()).post(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
Micing = 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (isBackPressed) {
|
||||||
|
((LiveAudienceActivity) mContext).onBackPressed();
|
||||||
|
} else {
|
||||||
|
EventBus.getDefault().post(new LiveRoomChangeEvent(bean, liveType, liveTypeVal));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(RTCErrorCode errorCode) {
|
||||||
|
Log.e("ry", errorCode + "退出多人房间失敗");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当切换失败且不影响当前角色继续音视频时回调
|
||||||
|
* @param errorCode 失败错误码
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void onFailed(RTCErrorCode errorCode) {
|
||||||
|
Log.e("ry", "下麦失败" + errorCode);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel() {
|
||||||
|
((LiveAudienceActivity) mContext).setEnableScroll(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//是否处于返回键
|
||||||
|
private boolean isBackPressed = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
|
isBackPressed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -968,23 +1116,14 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
|
|||||||
if (mLiveRoomViewHolder != null) {
|
if (mLiveRoomViewHolder != null) {
|
||||||
mLiveRoomViewHolder.setOtherInfo(pkInfo.getString("pkuid"), pkInfo.getString("pkuimg"), pkInfo.getString("pkuname"));
|
mLiveRoomViewHolder.setOtherInfo(pkInfo.getString("pkuid"), pkInfo.getString("pkuimg"), pkInfo.getString("pkuname"));
|
||||||
}
|
}
|
||||||
if (mLiveLinkMicPkPresenter != null) {
|
mLiveRyLinkMicPkPresenter.onEnterRoomPkStart(pkUid, pkInfo.getLongValue("pk_gift_liveuid"), pkInfo.getLongValue("pk_gift_pkuid"), pkInfo.getIntValue("pk_time"), livePKUserListBean);
|
||||||
mLiveLinkMicPkPresenter.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")) {
|
} else if (!pkInfo.getString("end_pk_time").equals("0")) {
|
||||||
|
|
||||||
LivePlayRyViewHolder.setViewUP(3);
|
LivePlayRyViewHolder.setViewUP(3);
|
||||||
|
|
||||||
//pk排名数据
|
//pk排名数据
|
||||||
LivePKUserListBean livePKUserListBean = JSON.parseObject(pkInfo.getString("pk_top_users"), LivePKUserListBean.class);
|
LivePKUserListBean livePKUserListBean = JSON.parseObject(pkInfo.getString("pk_top_users"), LivePKUserListBean.class);
|
||||||
if (mLiveLinkMicPkPresenter != null) {
|
mLiveRyLinkMicPkPresenter.onEnterRoomCFStart(pkUid, pkInfo.getLongValue("pk_gift_liveuid"), pkInfo.getLongValue("pk_gift_pkuid"), pkInfo.getIntValue("end_pk_time"), livePKUserListBean);
|
||||||
mLiveLinkMicPkPresenter.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);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//多人PK
|
//多人PK
|
||||||
} else if (pkInfo != null && pkInfo.getIntValue("drpk_status") == 1) {
|
} else if (pkInfo != null && pkInfo.getIntValue("drpk_status") == 1) {
|
||||||
|
Loading…
Reference in New Issue
Block a user