feat : 麦位上麦 检测判断接口
This commit is contained in:
@@ -7,13 +7,6 @@ import android.text.TextUtils;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chwl.core.room.bean.RoomOnlineUserBean;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.sys.NetworkUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadmoreListener;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.RoomInviteAdapter;
|
||||
import com.chwl.app.avroom.presenter.RoomInvitePresenter;
|
||||
@@ -21,11 +14,18 @@ import com.chwl.app.avroom.view.IRoomInviteView;
|
||||
import com.chwl.app.base.BaseMvpActivity;
|
||||
import com.chwl.core.Constants;
|
||||
import com.chwl.core.noble.NobleResourceType;
|
||||
import com.chwl.core.room.bean.RoomOnlineUserBean;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.library.base.factory.CreatePresenter;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.netease.nim.uikit.StatusBarUtil;
|
||||
import com.netease.nim.uikit.common.util.sys.NetworkUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadmoreListener;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -36,7 +36,6 @@ import java.util.Map;
|
||||
* @author jiahui
|
||||
* @date 2017/12/21
|
||||
*/
|
||||
//todo do 上麦逻辑
|
||||
@CreatePresenter(RoomInvitePresenter.class)
|
||||
public class RoomInviteActivity extends BaseMvpActivity<IRoomInviteView, RoomInvitePresenter>
|
||||
implements IRoomInviteView, RoomInviteAdapter.OnItemClickListener, RoomInviteAdapter.OnRoomOnlineNumberChangeListener {
|
||||
|
@@ -11,23 +11,20 @@ import android.widget.TextView;
|
||||
import androidx.recyclerview.widget.DiffUtil;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.library.utils.json.JsonUtils;
|
||||
import com.netease.nim.uikit.impl.cache.NimUserInfoCache;
|
||||
import com.netease.nimlib.sdk.RequestCallbackWrapper;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.netease.nimlib.sdk.uinfo.constant.GenderEnum;
|
||||
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.ChatMemberDiffUtilCallback;
|
||||
import com.chwl.app.ui.utils.ImageLoadUtils;
|
||||
import com.chwl.core.manager.AvRoomDataManager;
|
||||
import com.chwl.core.manager.IMNetEaseManager;
|
||||
import com.chwl.core.manager.RoomEvent;
|
||||
import com.chwl.core.user.bean.UserInfo;
|
||||
import com.chwl.library.common.util.OtherExtKt;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.tencent.cos.xml.crypto.JSONUtils;
|
||||
import com.netease.nim.uikit.impl.cache.NimUserInfoCache;
|
||||
import com.netease.nimlib.sdk.RequestCallbackWrapper;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.netease.nimlib.sdk.uinfo.constant.GenderEnum;
|
||||
import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -175,25 +172,31 @@ public class RoomInviteAdapter extends RecyclerView.Adapter<RoomInviteAdapter.Ro
|
||||
ImageLoadUtils.loadAvatar(mContext, chatRoomMember.getAvatar(), holder.mIvAvatar);
|
||||
holder.mTvMemberName.setText(chatRoomMember.getNick());
|
||||
|
||||
// try {
|
||||
// Map<String, Object> map = (Map<String, Object>) chatRoomMember.getExtension().get(chatRoomMember.getAccount());
|
||||
// String nick = map.get(UserInfo.NICK).toString();
|
||||
// String avatar = map.get(UserInfo.AVATAR).toString();
|
||||
// boolean enterHide = (boolean) map.get(UserInfo.ENTER_HIDE);
|
||||
//
|
||||
// if (enterHide) {
|
||||
// holder.mIvAvatar.setImageResource(R.drawable.ic_mystery);
|
||||
// } else {
|
||||
// if (chatRoomMember.getAvatar() == null || TextUtils.isEmpty(chatRoomMember.getAvatar())) {
|
||||
// ImageLoadUtils.loadAvatar(mContext, avatar, holder.mIvAvatar);
|
||||
// }
|
||||
// }
|
||||
// if (nick != null && !TextUtils.isEmpty(nick)) {
|
||||
// holder.mTvMemberName.setText(nick);
|
||||
// }
|
||||
// }catch (Exception e){
|
||||
//
|
||||
// }
|
||||
try {
|
||||
Map<String, Object> map = (Map<String, Object>) chatRoomMember.getExtension().get(chatRoomMember.getAccount());
|
||||
String nick = map.get(UserInfo.NICK).toString();
|
||||
String avatar = map.get(UserInfo.AVATAR).toString();
|
||||
boolean enterHide = (boolean) map.get(UserInfo.ENTER_HIDE);
|
||||
|
||||
if (enterHide) {
|
||||
holder.mIvAvatar.setImageResource(R.drawable.ic_mystery);
|
||||
} else {
|
||||
if (chatRoomMember.getAvatar() == null || TextUtils.isEmpty(chatRoomMember.getAvatar())) {
|
||||
ImageLoadUtils.loadAvatar(mContext, avatar, holder.mIvAvatar);
|
||||
}
|
||||
|
||||
CharSequence nickText = holder.mTvMemberName.getText();
|
||||
if (!OtherExtKt.isVerify(nickText)){
|
||||
if (OtherExtKt.isVerify(nick)) {
|
||||
holder.mTvMemberName.setText(nick);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}catch (Exception e){
|
||||
|
||||
}
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
@@ -20,10 +20,8 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.adapter.MicQueueAdapter;
|
||||
import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.app.home.helper.LoadPageDataHelper;
|
||||
import com.chwl.app.ui.widget.dialog.BaseDialog;
|
||||
import com.chwl.app.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
@@ -40,12 +38,14 @@ import com.chwl.core.room.queuing_mic.bean.QueuingMicMemeberInfo;
|
||||
import com.chwl.core.room.queuing_mic.bean.RespQueuingMicListInfo;
|
||||
import com.chwl.core.user.bean.BaseInfo;
|
||||
import com.chwl.core.utils.net.BeanObserver;
|
||||
import com.chwl.library.common.util.Utils;
|
||||
import com.chwl.library.net.rxnet.callback.CallBack;
|
||||
import com.chwl.library.utils.CommonUtils;
|
||||
import com.chwl.library.utils.JavaUtil;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -60,7 +60,6 @@ import io.reactivex.disposables.Disposable;
|
||||
* @Description
|
||||
* @Date 2018/12/14
|
||||
*/
|
||||
//todo do 上麦逻辑
|
||||
public class MicQueueDialog extends BaseDialog implements
|
||||
LoadPageDataHelper.LoadData<List<QueuingMicMemeberInfo>>, View.OnClickListener {
|
||||
|
||||
@@ -242,6 +241,7 @@ public class MicQueueDialog extends BaseDialog implements
|
||||
break;
|
||||
}
|
||||
}
|
||||
//todo do 上麦逻辑- 这里限制死了 8个坑位,得改
|
||||
//房主的坑位key是-1 ,剩下的 8个坑的key从0 - 7
|
||||
if (micPosition != -1 && micPosition < 8) {
|
||||
if (itemPos < adapter.getItemCount()) {
|
||||
|
@@ -1165,9 +1165,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P1 : BaseRoomPresenter<V>?> :
|
||||
}
|
||||
|
||||
override fun onUpMicBtnClick(position: Int, chatRoomMember: MicMemberInfo?) {
|
||||
if (AvRoomDataManager.get().isDatingVipMic(position) &&
|
||||
!AvRoomDataManager.get().isDatingVip(AuthModel.get().currentUid)
|
||||
) {
|
||||
if (AvRoomDataManager.get().isDatingVipMic(position) && !AvRoomDataManager.get().isDatingVip(AuthModel.get().currentUid)) {
|
||||
DatingVipRuleDialog.newInstance(mContext).show()
|
||||
} else {
|
||||
mvpPresenter?.microPhonePositionClick(position, chatRoomMember)
|
||||
|
@@ -52,6 +52,7 @@ import com.chwl.core.gift.bean.LuckyGiftMsgSelfBean;
|
||||
import com.chwl.core.gift.bean.MsgSuperLuckyGift;
|
||||
import com.chwl.core.gift.bean.MultiGiftReceiveInfo;
|
||||
import com.chwl.core.gift.bean.RoomBgChangeBean;
|
||||
import com.chwl.core.gift.bean.RoomLevelChangeBean;
|
||||
import com.chwl.core.gift.bean.RoomNotifyDialogBean;
|
||||
import com.chwl.core.gift.event.GiftComboEvent;
|
||||
import com.chwl.core.gift.toolbox.GiftToolbox;
|
||||
@@ -307,6 +308,8 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
onCpAboutMsg(roomEvent);
|
||||
case RoomEvent.MSG_ROOM_BG_CHANGE:
|
||||
onRoomBgChange(roomEvent);
|
||||
case RoomEvent.MSG_ROOM_LEVEL_CHANGE:
|
||||
onRoomLevelChange(roomEvent);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -861,6 +864,24 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新房间等级消息
|
||||
*/
|
||||
private void onRoomLevelChange(RoomEvent roomEvent) {
|
||||
Object anyData = roomEvent.getAnyData();
|
||||
if (anyData instanceof RoomLevelChangeBean ){
|
||||
|
||||
Object roomLevel = gameMainBinding.roomLevelIcon.getTag();
|
||||
if (roomLevel != null && roomLevel instanceof Integer) {
|
||||
if ((Integer) roomLevel > ((RoomLevelChangeBean) anyData).roomLevel) return;
|
||||
}
|
||||
|
||||
gameMainBinding.roomLevelIcon.setTag(((RoomLevelChangeBean) anyData).roomLevel);
|
||||
OtherExtKt.setVis(gameMainBinding.roomLevelIcon,OtherExtKt.isVerify(((RoomLevelChangeBean) anyData).getRoomLevelIcon()),false);
|
||||
ImageLoadKt.loadImage(gameMainBinding.roomLevelIcon,((RoomLevelChangeBean) anyData).getRoomLevelIcon());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onFollowRoomEvent(FollowRoomEvent event) {
|
||||
|
@@ -6,19 +6,11 @@ import android.util.Log;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.chwl.app.public_chat.core.ChatRoomClient;
|
||||
import com.chwl.app.public_chat.core.ChatRoomClientManager;
|
||||
import com.chwl.core.initial.InitialModel;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.netease.nimlib.sdk.util.Entry;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.avroom.view.IBaseRoomView;
|
||||
import com.chwl.app.base.BaseMvpPresenter;
|
||||
import com.chwl.app.public_chat.core.ChatRoomClient;
|
||||
import com.chwl.app.public_chat.core.ChatRoomClientManager;
|
||||
import com.chwl.core.auth.AuthModel;
|
||||
import com.chwl.core.bean.RoomQueueInfo;
|
||||
import com.chwl.core.gift.GiftModel;
|
||||
@@ -49,6 +41,13 @@ import com.chwl.library.net.rxnet.callback.CallBack;
|
||||
import com.chwl.library.utils.ListUtils;
|
||||
import com.chwl.library.utils.ResUtil;
|
||||
import com.chwl.library.utils.SingleToastUtil;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.netease.nimlib.sdk.util.Entry;
|
||||
import com.orhanobut.logger.Logger;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -281,8 +280,8 @@ public class BaseRoomPresenter<V extends IBaseRoomView> extends BaseMvpPresenter
|
||||
upMicroPhone(micPosition, uId, isInviteUpMic, false);
|
||||
}
|
||||
|
||||
public void upMicroPhone(int micPosition, String uId, boolean isInviteUpMic, RoomInfo roomInfo,
|
||||
boolean isReconnect) {
|
||||
|
||||
public void upMicroPhone(int micPosition, String uId, boolean isInviteUpMic, RoomInfo roomInfo, boolean isReconnect) {
|
||||
mHomePartyMode.upMicroPhone(micPosition, uId, String.valueOf(roomInfo.getRoomId()),
|
||||
isInviteUpMic, new CallBack<String>() {
|
||||
@Override
|
||||
|
@@ -11,17 +11,18 @@ import com.chwl.app.databinding.DialogMicSelectBinding
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.manager.IMNetEaseManager
|
||||
import com.chwl.core.room.bean.RoomInfo
|
||||
import com.chwl.core.room.giftvalue.helper.GiftValueMrg
|
||||
import com.chwl.core.room.model.HomePartyModel
|
||||
import com.chwl.core.user.bean.BaseInfo
|
||||
import com.chwl.core.user.bean.UserInfo
|
||||
import com.chwl.library.common.util.ClickUtils.click
|
||||
import com.chwl.library.common.util.doToast
|
||||
import com.chwl.library.net.rxnet.callback.CallBack
|
||||
import com.chwl.library.utils.SingleToastUtil
|
||||
import com.example.lib_utils.ktx.getString
|
||||
import io.reactivex.functions.Consumer
|
||||
|
||||
//todo do 上麦逻辑
|
||||
class MicSelectDialog : BaseDialogFragment<DialogMicSelectBinding>() {
|
||||
|
||||
|
||||
@@ -39,6 +40,7 @@ class MicSelectDialog : BaseDialogFragment<DialogMicSelectBinding>() {
|
||||
var homePartyModel: HomePartyModel? = null
|
||||
|
||||
var mPosition : Int? = null
|
||||
var mBoosMicPos = 7 // 19麦房间的 boss pos
|
||||
|
||||
override fun init() {
|
||||
|
||||
@@ -50,46 +52,28 @@ class MicSelectDialog : BaseDialogFragment<DialogMicSelectBinding>() {
|
||||
|
||||
mAdapter = UpMicAdapter(context, targetUser.uid,
|
||||
Consumer<Int> { position: Int ->
|
||||
//todo do 上麦逻辑- 资料卡上麦 自己和别人 上麦 走这里 !
|
||||
val roomInfo = AvRoomDataManager.get().mCurrentRoomInfo ?: return@Consumer
|
||||
mPosition = position
|
||||
mPosition?.let {
|
||||
if (AvRoomDataManager.get().isLeaveMode && targetUser.uid == AvRoomDataManager.get().roomUid) {
|
||||
SingleToastUtil.showToast(R.string.tips_close_leave_mode_first.getString())
|
||||
dismiss()
|
||||
return@Consumer
|
||||
}
|
||||
|
||||
if (AvRoomDataManager.get().is19Room && position == mBoosMicPos && !isMySelf) {
|
||||
homePartyModel?.getRoomBossMicUp(roomInfo.roomUid, targetUser.uid)
|
||||
?.compose(bindToLifecycle())
|
||||
?.doOnSuccess {
|
||||
upMicOther(roomInfo)
|
||||
}
|
||||
?.doOnError {
|
||||
it?.message?.doToast()
|
||||
}
|
||||
?.subscribe()
|
||||
} else {
|
||||
if (isMySelf) {
|
||||
val roomInfo = AvRoomDataManager.get().mCurrentRoomInfo ?: return@Consumer
|
||||
//自己抱自己上麦
|
||||
AvRoomDataManager.get().haveStartDragon = false
|
||||
homePartyModel?.upMicroPhone(
|
||||
it - 1,
|
||||
targetUser.uid.toString(),
|
||||
roomInfo.roomId.toString(),
|
||||
true,
|
||||
object : CallBack<String?> {
|
||||
override fun onSuccess(data: String?) {
|
||||
GiftValueMrg.get().requestUpMic(it - 1, targetUser.uid.toString())
|
||||
mActionCallBack?.onAction(0,null) //随便通知下外头
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, error: String?) {
|
||||
}
|
||||
}
|
||||
)
|
||||
dismiss()
|
||||
return@Consumer
|
||||
uoMicMySelf(roomInfo)
|
||||
} else {
|
||||
upMicOther(roomInfo)
|
||||
}
|
||||
|
||||
if (targetUser.defUser == UserInfo.USER_TYPE_ROBOT) {
|
||||
SingleToastUtil.showToast(R.string.unable_to_up_mic_by_level.getString())
|
||||
return@Consumer
|
||||
}
|
||||
|
||||
val baseInfo = BaseInfo(targetUser.uid, targetUser.nick)
|
||||
IMNetEaseManager.get().inviteMicroPhoneBySdk(baseInfo, it - 1).subscribe()
|
||||
dismiss()
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
val span = if (AvRoomDataManager.get().isHomeParty) 4 else 5
|
||||
@@ -110,6 +94,56 @@ class MicSelectDialog : BaseDialogFragment<DialogMicSelectBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
//别人上麦
|
||||
private fun upMicOther(roomInfo: RoomInfo) : Boolean{
|
||||
mPosition?.let {
|
||||
if (AvRoomDataManager.get().isLeaveMode && targetUser.uid == AvRoomDataManager.get().roomUid) {
|
||||
SingleToastUtil.showToast(R.string.tips_close_leave_mode_first.getString())
|
||||
dismiss()
|
||||
return false
|
||||
}
|
||||
|
||||
if (targetUser.defUser == UserInfo.USER_TYPE_ROBOT) {
|
||||
SingleToastUtil.showToast(R.string.unable_to_up_mic_by_level.getString())
|
||||
return false
|
||||
}
|
||||
|
||||
val baseInfo = BaseInfo(targetUser.uid, targetUser.nick)
|
||||
IMNetEaseManager.get().inviteMicroPhoneBySdk(baseInfo, it - 1).subscribe()
|
||||
dismiss()
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
//自己上麦
|
||||
private fun uoMicMySelf(roomInfo: RoomInfo) :Boolean{
|
||||
mPosition?.let {
|
||||
if (isMySelf) {
|
||||
//自己抱自己上麦
|
||||
AvRoomDataManager.get().haveStartDragon = false
|
||||
homePartyModel?.upMicroPhone(
|
||||
it - 1,
|
||||
targetUser.uid.toString(),
|
||||
roomInfo.roomId.toString(),
|
||||
true,
|
||||
object : CallBack<String?> {
|
||||
override fun onSuccess(data: String?) {
|
||||
GiftValueMrg.get().requestUpMic(it - 1, targetUser.uid.toString())
|
||||
mActionCallBack?.onAction(0,null) //随便通知下外头
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, error: String?) {
|
||||
|
||||
}
|
||||
}
|
||||
)
|
||||
dismiss()
|
||||
return true
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
homePartyModel = null
|
||||
super.onDestroy()
|
||||
|
Reference in New Issue
Block a user