酒吧房 1
This commit is contained in:
@@ -3714,11 +3714,17 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
setvisibTop(true)
|
||||
QXRoomSeatViewType.SIGNCONTRACT
|
||||
}
|
||||
|
||||
RoomType.PUB_ROOM -> {
|
||||
changeBackgroundColor(mRoomInfoResp?.room_info?.room_background)
|
||||
setvisibTop(true)
|
||||
QXRoomSeatViewType.PUB
|
||||
}
|
||||
null -> {
|
||||
LogUtils.e("@@@", "RoomType is null")
|
||||
QXRoomSeatViewType.NONE
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (roomFragment == null) {
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.xscm.modulemain.activity.room.contacts
|
||||
|
||||
import android.app.Activity
|
||||
import com.xscm.moduleutil.activity.IPresenter
|
||||
import com.xscm.moduleutil.activity.IView
|
||||
import com.xscm.moduleutil.bean.WalletBean
|
||||
|
||||
class PubContacts {
|
||||
|
||||
interface View : IView<Activity>{
|
||||
|
||||
fun signCoinList(list:List<String>)
|
||||
|
||||
fun wallet(list:List<String>,walletBean: WalletBean?)
|
||||
}
|
||||
|
||||
interface Ipre : IPresenter{
|
||||
fun applyPit(roomId:String,pitNumber:String)
|
||||
|
||||
fun signStart(roomId:String,userId:String)
|
||||
|
||||
fun signEnd(signId:String)
|
||||
|
||||
fun signDelay(signId:String,roomId:String)
|
||||
|
||||
fun signRefuse(roomId: String)
|
||||
|
||||
fun signCoinList(signId:String)
|
||||
|
||||
fun signCoin(signId:String,sign_value:String)
|
||||
|
||||
fun setMutePit(roomId:String,pitNumber:String,isMute:String)
|
||||
|
||||
fun setLockPit(roomId:String,pitNumber:String,isLock:String)
|
||||
|
||||
fun wallet(list:List<String>)
|
||||
}
|
||||
}
|
||||
@@ -102,6 +102,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
private RoomJukeboxFragment roomJukeboxFragment;//点唱房
|
||||
|
||||
private RoomMentorShipFragment mentorShipFragment;//签约
|
||||
private RoomPubFragment roomPubFragment;//酒吧
|
||||
public QXRoomSeatViewType qxRoomSeatViewType;
|
||||
private void setRoomSeatViewType() {
|
||||
if (mRoomInfoResp == null || mRoomInfoResp.getRoom_info() == null) {
|
||||
@@ -129,6 +130,8 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
qxRoomSeatViewType = QXRoomSeatViewType.JUKEBOX;
|
||||
} else if (roomType == RoomType.SIGN_CONTRACT) {
|
||||
qxRoomSeatViewType = QXRoomSeatViewType.SIGNCONTRACT;
|
||||
} else if (roomType == RoomType.PUB_ROOM) {
|
||||
qxRoomSeatViewType = QXRoomSeatViewType.PUB;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,6 +206,8 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
roomJukeboxFragment = null;
|
||||
} else if (fragment instanceof RoomMentorShipFragment) {
|
||||
mentorShipFragment = null;
|
||||
} else if (fragment instanceof RoomPubFragment) {
|
||||
roomPubFragment = null;
|
||||
}
|
||||
|
||||
// 安全 remove
|
||||
@@ -296,6 +301,10 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
if (mentorShipFragment == currentFragment && mentorShipFragment.isAdded()) {
|
||||
mentorShipFragment.roomInfoUpdate(mRoomInfoResp);
|
||||
}
|
||||
} else if (roomType == RoomType.PUB_ROOM) {
|
||||
if (roomPubFragment == currentFragment && roomPubFragment.isAdded()) {
|
||||
roomPubFragment.roomInfoUpdate(mRoomInfoResp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -419,6 +428,11 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
mentorShipFragment = RoomMentorShipFragment.Companion.newInstance(mRoomInfoResp);
|
||||
} else mentorShipFragment.roomTypeSwitch(mRoomInfoResp);
|
||||
newFragment = mentorShipFragment;
|
||||
} else if (roomType == RoomType.PUB_ROOM) {
|
||||
if (roomPubFragment == null) {
|
||||
roomPubFragment = RoomPubFragment.Companion.newInstance(mRoomInfoResp);
|
||||
} else roomPubFragment.roomTypeSwitch(mRoomInfoResp);
|
||||
newFragment = roomPubFragment;
|
||||
}
|
||||
|
||||
if (newFragment != null) {
|
||||
@@ -775,6 +789,13 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
handleMentorshipEvent(messageEvent);
|
||||
}
|
||||
break;
|
||||
|
||||
case PUB:
|
||||
if (roomPubFragment == currentFragment) {
|
||||
roomPubFragment.roomInfoUpdate(mRoomInfoResp);
|
||||
handlePubEvent(messageEvent);
|
||||
}
|
||||
break;
|
||||
case CABIN:
|
||||
break;
|
||||
default:
|
||||
@@ -782,7 +803,34 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void handlePubEvent(RoomMessageEvent messageEvent) {
|
||||
switch (messageEvent.getMsgType()) {
|
||||
case 1003:
|
||||
roomPubFragment.event1003(messageEvent);
|
||||
break;
|
||||
case 1004:
|
||||
roomPubFragment.event1004(messageEvent);
|
||||
break;
|
||||
case 1035:
|
||||
roomPubFragment.event1035(messageEvent);
|
||||
break;
|
||||
case 1039:
|
||||
roomPubFragment.event1039(messageEvent);
|
||||
break;
|
||||
case 1059:
|
||||
roomPubFragment.event1059(messageEvent);
|
||||
break;
|
||||
case 1005:
|
||||
roomPubFragment.event1005(messageEvent);
|
||||
break;
|
||||
case 1021:
|
||||
roomPubFragment.event1021(messageEvent);
|
||||
break;
|
||||
case 1058:
|
||||
roomPubFragment.event1058(messageEvent);
|
||||
break;
|
||||
}
|
||||
}
|
||||
private void handleMentorshipEvent(RoomMessageEvent messageEvent) {
|
||||
switch (messageEvent.getMsgType()) {
|
||||
case 1003:
|
||||
|
||||
@@ -0,0 +1,254 @@
|
||||
package com.xscm.modulemain.activity.room.fragment
|
||||
|
||||
import com.blankj.utilcode.util.ActivityUtils
|
||||
import com.blankj.utilcode.util.LogUtils
|
||||
import com.blankj.utilcode.util.ToastUtils
|
||||
import com.xscm.modulemain.R
|
||||
import com.xscm.modulemain.activity.room.activity.RoomActivity
|
||||
import com.xscm.modulemain.activity.room.presenter.PubPresenter
|
||||
import com.xscm.modulemain.databinding.FragmentPubRoomBinding
|
||||
import com.xscm.modulemain.dialog.RoomUserInfoFragment
|
||||
import com.xscm.modulemain.widget.RoomPubWheatView
|
||||
import com.xscm.moduleutil.base.BaseMvpFragment
|
||||
import com.xscm.moduleutil.bean.RoomMessageEvent
|
||||
import com.xscm.moduleutil.bean.UserInfo
|
||||
import com.xscm.moduleutil.bean.room.RoomInfoResp
|
||||
import com.xscm.moduleutil.bean.room.RoomUserBean
|
||||
import com.xscm.moduleutil.utils.ClickUtils
|
||||
|
||||
|
||||
class RoomPubFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
BaseMvpFragment<PubPresenter, FragmentPubRoomBinding>() {
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.fragment_pub_room
|
||||
}
|
||||
|
||||
override fun bindPresenter(): PubPresenter {
|
||||
return PubPresenter(ActivityUtils.getTopActivity(), null)
|
||||
}
|
||||
|
||||
// 无参构造函数
|
||||
constructor() : this(null)
|
||||
|
||||
companion object {
|
||||
|
||||
fun newInstance(roomInfoResp: RoomInfoResp): RoomPubFragment {
|
||||
return RoomPubFragment(roomInfoResp)
|
||||
}
|
||||
}
|
||||
|
||||
private var mUserInfo: RoomUserBean? = mRoomInfoResp?.user_info
|
||||
private var mRoomId: String = mRoomInfoResp?.room_info?.room_id!!
|
||||
|
||||
private var viewList: MutableList<RoomPubWheatView> = mutableListOf()
|
||||
private val indexList: MutableList<String> =
|
||||
mutableListOf("9", "10", "1", "2", "3", "4", "5", "6")
|
||||
|
||||
override fun initData() {
|
||||
|
||||
}
|
||||
|
||||
override fun initView() {
|
||||
viewList.clear()
|
||||
|
||||
viewList.add(mBinding.rpwvTopLeft)
|
||||
viewList.add(mBinding.rpwvTopRight)
|
||||
viewList.add(mBinding.rpwv1)
|
||||
viewList.add(mBinding.rpwv2)
|
||||
viewList.add(mBinding.rpwv3)
|
||||
viewList.add(mBinding.rpwv4)
|
||||
viewList.add(mBinding.rpwv5)
|
||||
viewList.add(mBinding.rpwv6)
|
||||
|
||||
|
||||
for ((idx, view) in viewList.withIndex()) {
|
||||
if (mRoomInfoResp?.room_info?.pit_list!!.size > indexList[idx].toInt() - 1) {
|
||||
view.setRoomWheatNumber(indexList[idx])
|
||||
val bean = mRoomInfoResp?.room_info?.pit_list!![indexList[idx].toInt() - 1]
|
||||
view.setData(bean)
|
||||
|
||||
view.iv_custom_gift?.setOnClickListener {
|
||||
ToastUtils.showShort("礼物")
|
||||
}
|
||||
|
||||
view.ivYueT?.setOnClickListener {
|
||||
ToastUtils.showShort("约她")
|
||||
}
|
||||
|
||||
view.ivLiaoT?.setOnClickListener {
|
||||
ToastUtils.showShort("撩她")
|
||||
}
|
||||
|
||||
view.setOnClickListener { v ->
|
||||
if (ClickUtils.isFastDoubleClick(v)) {
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
||||
if (mUserInfo?.pit_number == 9 && (view.pitBean.user_id == "0" || view.pitBean.user_id.isEmpty())){
|
||||
val mPitBean =
|
||||
mRoomInfoResp?.room_info?.pit_list!![indexList[idx].toInt() - 1]
|
||||
|
||||
// 处理抱麦逻辑
|
||||
(activity as RoomActivity).showUserListDialog(
|
||||
mRoomId,
|
||||
mPitBean?.pit_number,
|
||||
mRoomInfoResp?.user_info,
|
||||
mRoomInfoResp,
|
||||
childFragmentManager
|
||||
)
|
||||
} else if (mUserInfo?.pit_number == 9 && !(view.pitBean.user_id == "0" || view.pitBean.user_id.isEmpty())){
|
||||
RoomUserInfoFragment.show(
|
||||
mRoomInfoResp?.room_info?.room_id,
|
||||
view.getUserId(),
|
||||
view.pitNumber,
|
||||
getHostUser(),
|
||||
false,
|
||||
2,
|
||||
isNumberWhether(),
|
||||
childFragmentManager
|
||||
)
|
||||
}else{
|
||||
if (view.pitBean.user_id == "0" || view.pitBean.user_id.isEmpty()) {
|
||||
MvpPre!!.applyPit(mRoomInfoResp?.room_info?.room_id!!, view.pitNumber)
|
||||
}else {
|
||||
RoomUserInfoFragment.show(
|
||||
mRoomInfoResp?.room_info?.room_id,
|
||||
view.getUserId(),
|
||||
view.pitNumber,
|
||||
getHostUser(),
|
||||
false,
|
||||
2,
|
||||
isNumberWhether(),
|
||||
childFragmentManager
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun roomInfoUpdate(roomInfoResp: RoomInfoResp) {
|
||||
this.mRoomInfoResp = roomInfoResp
|
||||
mUserInfo = this.mRoomInfoResp?.user_info
|
||||
mRoomId = this.mRoomInfoResp?.room_info?.room_id!!
|
||||
}
|
||||
|
||||
fun roomTypeSwitch(mRoomInfoResp: RoomInfoResp) {
|
||||
this.mRoomInfoResp = mRoomInfoResp
|
||||
|
||||
mUserInfo = this.mRoomInfoResp?.user_info
|
||||
mRoomId = this.mRoomInfoResp?.room_info?.room_id!!
|
||||
initView()
|
||||
}
|
||||
|
||||
private fun isNumberWhether(): Int {
|
||||
if (mRoomInfoResp?.user_info?.pit_number == 9) {
|
||||
return 1
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
private fun getHostUser(): Int {
|
||||
LogUtils.e("getHostUser:${mRoomInfoResp?.user_info.toString()}")
|
||||
return if (mRoomInfoResp?.user_info?.is_room_owner == 1) {
|
||||
1
|
||||
} else if (mRoomInfoResp?.user_info?.is_management == 1) {
|
||||
2
|
||||
} else if (mRoomInfoResp?.user_info?.is_host == 1) {
|
||||
3
|
||||
} else {
|
||||
4
|
||||
}
|
||||
}
|
||||
|
||||
fun event1003(messageEvent: RoomMessageEvent) {
|
||||
val pitNumber = messageEvent.text.pit_number
|
||||
if (indexList.contains(pitNumber)) {
|
||||
val viewPos = indexList.indexOf(pitNumber)
|
||||
val pitBean = mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1]
|
||||
viewList[viewPos].setData(pitBean)
|
||||
}
|
||||
}
|
||||
|
||||
fun event1004(messageEvent: RoomMessageEvent) {
|
||||
val pitNumber = messageEvent.text.pit_number
|
||||
if (indexList.contains(pitNumber)) {
|
||||
val viewPos = indexList.indexOf(pitNumber)
|
||||
val pitBean = mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1]
|
||||
viewList[viewPos].setData(pitBean)
|
||||
}
|
||||
}
|
||||
|
||||
fun event1035(messageEvent: RoomMessageEvent) {
|
||||
val fromUserId = messageEvent.text.fromUserInfo.user_id
|
||||
for (i in 0 until viewList.size) {
|
||||
if (viewList[i].pitBean?.user_id == fromUserId.toString()) {
|
||||
val pitBean = mRoomInfoResp?.room_info?.pit_list!![indexList[i].toInt() - 1]
|
||||
viewList[i].setData(pitBean)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun event1039(messageEvent: RoomMessageEvent) {
|
||||
val fromId = messageEvent.text.from_pit_number
|
||||
val toId = messageEvent.text.to_pit_number
|
||||
if (indexList.contains(fromId)) {
|
||||
val viewPos = indexList.indexOf(fromId)
|
||||
val pitBean = mRoomInfoResp?.room_info?.pit_list!![fromId.toInt() - 1]
|
||||
viewList[viewPos].setData(pitBean)
|
||||
}
|
||||
|
||||
if (indexList.contains(toId)) {
|
||||
val viewPos = indexList.indexOf(toId)
|
||||
val pitBean = mRoomInfoResp?.room_info?.pit_list!![toId.toInt() - 1]
|
||||
viewList[viewPos].setData(pitBean)
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: 清除个人魅力
|
||||
fun event1059(messageEvent: RoomMessageEvent) {
|
||||
val userId: String? = messageEvent.text.user_id
|
||||
|
||||
}
|
||||
|
||||
fun event1005(message: RoomMessageEvent) {
|
||||
// 检查是否有多个用户信息
|
||||
if (!message.text.toUserInfos.isNullOrEmpty()) {
|
||||
// 处理多个用户的情况
|
||||
for (userOnlineStatusBean in message.text.toUserInfos) {
|
||||
updateCharmForUser(userOnlineStatusBean)
|
||||
}
|
||||
} else {
|
||||
// 处理单个用户的情况
|
||||
val toUserInfo: UserInfo? = message.text.toUserInfo
|
||||
if (toUserInfo != null) {
|
||||
updateCharmForUser(toUserInfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateCharmForUser(userInfo: UserInfo) {
|
||||
val userId = userInfo.user_id.toString()
|
||||
val charm = userInfo.charm
|
||||
|
||||
}
|
||||
|
||||
// TODO: 清除房间的魅力,一键全清
|
||||
fun event1021(messageEvent: RoomMessageEvent) {
|
||||
|
||||
}
|
||||
|
||||
fun event1058(messageEvent: RoomMessageEvent) {
|
||||
val type = messageEvent.text.type
|
||||
for (view in viewList) {
|
||||
if (view.userId.isNotEmpty() && view.userId.equals(messageEvent.text.user_id)) {
|
||||
view.pitBean.is_online = if (type == 1) 1 else 2
|
||||
view.setData(view.pitBean)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
package com.xscm.modulemain.activity.room.presenter
|
||||
|
||||
import android.content.Context
|
||||
import com.xscm.modulemain.activity.room.contacts.MentorShipContacts
|
||||
import com.xscm.modulemain.activity.room.contacts.PubContacts
|
||||
import com.xscm.moduleutil.bean.WalletBean
|
||||
import com.xscm.moduleutil.http.BaseObserver
|
||||
import com.xscm.moduleutil.http.RetrofitClient
|
||||
import com.xscm.moduleutil.presenter.BasePresenter
|
||||
import com.xscm.moduleutil.presenter.RewardGiftContacts
|
||||
import io.reactivex.disposables.Disposable
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
|
||||
class PubPresenter(context: Context, val view: PubContacts.View?) :
|
||||
BasePresenter<PubContacts.View>(view, context), PubContacts.Ipre {
|
||||
override fun applyPit(roomId: String, pitNumber: String) {
|
||||
RetrofitClient.getInstance().applyPit(roomId, pitNumber, object : BaseObserver<String?>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
addDisposable(d)
|
||||
}
|
||||
|
||||
override fun onNext(s: String) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
override fun wallet(list:List<String>) {
|
||||
RetrofitClient.getInstance().wallet(object : BaseObserver<WalletBean?>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
addDisposable(d)
|
||||
}
|
||||
|
||||
override fun onNext(walletBean: WalletBean) {
|
||||
if (MvpRef == null) {
|
||||
MvpRef = WeakReference(view)
|
||||
}
|
||||
MvpRef.get()?.wallet(list,walletBean)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
override fun signStart(roomId: String, userId: String) {
|
||||
RetrofitClient.getInstance().signStart(roomId, userId, object : BaseObserver<String?>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
addDisposable(d)
|
||||
}
|
||||
|
||||
override fun onNext(s: String) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun signEnd(signId: String) {
|
||||
RetrofitClient.getInstance().signEnd(signId, object : BaseObserver<String?>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
addDisposable(d)
|
||||
}
|
||||
|
||||
override fun onNext(s: String) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun signDelay(signId: String, roomId: String) {
|
||||
RetrofitClient.getInstance().signDelay(signId, roomId, object : BaseObserver<String?>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
addDisposable(d)
|
||||
}
|
||||
|
||||
override fun onNext(s: String) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun signRefuse(roomId: String) {
|
||||
RetrofitClient.getInstance().signRefuse(roomId, object : BaseObserver<String?>(){
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
|
||||
}
|
||||
|
||||
override fun onNext(t: String) {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun signCoinList(signId: String) {
|
||||
RetrofitClient.getInstance().signCoinList(signId, object : BaseObserver<List<String>>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
addDisposable(d)
|
||||
}
|
||||
|
||||
override fun onNext(list: List<String>) {
|
||||
if (MvpRef == null){
|
||||
MvpRef = WeakReference(view)
|
||||
}
|
||||
MvpRef.get()?.signCoinList(list)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun signCoin(signId: String, sign_value: String) {
|
||||
RetrofitClient.getInstance().signCoin(signId, sign_value, object : BaseObserver<String?>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
addDisposable(d)
|
||||
}
|
||||
|
||||
override fun onNext(s: String) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
override fun setMutePit(roomId: String, pitNumber: String, isMute: String) {
|
||||
RetrofitClient.getInstance()
|
||||
.setMutePit(roomId, pitNumber, isMute, object : BaseObserver<String?>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
addDisposable(d)
|
||||
}
|
||||
|
||||
override fun onNext(string: String) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun setLockPit(roomId: String, pitNumber: String, isLock: String) {
|
||||
RetrofitClient.getInstance()
|
||||
.setLockPit(roomId, pitNumber, isLock, object : BaseObserver<String?>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
addDisposable(d)
|
||||
}
|
||||
|
||||
override fun onNext(string: String) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user