diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomOnline.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomOnline.java index 97e7dffd..92687185 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomOnline.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomOnline.java @@ -1,11 +1,12 @@ package com.xscm.moduleutil.bean.room; +import java.io.Serializable; import java.util.List; import lombok.Data; @Data -public class RoomOnline { +public class RoomOnline implements Serializable { private List on_pit;//麦上用户 private List off_pit;//麦下用户 diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomOnlineBean.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomOnlineBean.java index cfdaa6df..26920039 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomOnlineBean.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/room/RoomOnlineBean.java @@ -2,6 +2,7 @@ package com.xscm.moduleutil.bean.room; import com.chad.library.adapter.base.entity.MultiItemEntity; +import java.io.Serializable; import java.util.List; import lombok.Data; @@ -12,7 +13,7 @@ import lombok.Data; * @description: 房间在线列表 */ @Data -public class RoomOnlineBean implements MultiItemEntity { +public class RoomOnlineBean implements MultiItemEntity, Serializable { private int itemViewType; private String typeNames; private int user_id; diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt b/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt index ce64c5de..ecf87329 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/activity/RoomActivity.kt @@ -47,6 +47,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager import androidx.recyclerview.widget.LinearLayoutManager import com.alibaba.android.arouter.facade.annotation.Autowired import com.alibaba.android.arouter.facade.annotation.Route @@ -515,15 +516,10 @@ class RoomActivity : BaseMvpActivity(), mBinding?.roomTop?.userRecyclerView?.adapter = likeUserAdapter likeUserAdapter!!.onItemClickListener = BaseQuickAdapter.OnItemClickListener { adapter, view, position -> - val fragment = RoomOnlineDialogFragment.show( + showUserListDialog( roomId, "", mRoomUserBean, mRoomInfoResp, supportFragmentManager ) - - LogUtils.e("fragment_onItemClickListener: ${(fragment != null)}") - if (fragment != null) { - addActiveDialogFragment(fragment) // 添加到管理列表 - } } mBinding!!.ivChat.setOnClickListener { view: View -> @@ -792,10 +788,7 @@ class RoomActivity : BaseMvpActivity(), // 调用退出房间方法 MessageListenerSingleton.quitGroup(roomId); quit(); - if (mRoomInfoResp?.room_info?.label_id != null && mRoomInfoResp?.room_info?.label_id.equals( - "5" - ) - ) { + if (mRoomInfoResp?.room_info?.label_id != null && mRoomInfoResp?.room_info?.label_id.equals("5")) { jiaR() return } else { @@ -1019,12 +1012,11 @@ class RoomActivity : BaseMvpActivity(), Observable.timer(1000, TimeUnit.MILLISECONDS).observeOn( AndroidSchedulers.mainThread() ).subscribe { aLong: Long? -> - if (ActivityUtils.getTopActivity() is RoomActivity) startActivity( - Intent( - ActivityUtils.getTopActivity(), - TransparentActivity::class.java + if (ActivityUtils.getTopActivity() is RoomActivity) { + startActivity( + Intent(ActivityUtils.getTopActivity(), TransparentActivity::class.java) ) - ) + } } } @@ -1532,7 +1524,7 @@ class RoomActivity : BaseMvpActivity(), roomFragment?.handleRoomMessage(messageEvent) } else if (msgType == EMMessageInfo.QXRoomMessageTypeSignDelayText) { roomFragment?.handleRoomMessage(messageEvent) - }else if (msgType == EMMessageInfo.QXRoomMessageTypeSignTipText) { + } else if (msgType == EMMessageInfo.QXRoomMessageTypeSignTipText) { roomFragment?.handleRoomMessage(messageEvent) } } @@ -1938,11 +1930,13 @@ class RoomActivity : BaseMvpActivity(), roomFragment!!.upRoomInfoData(mRoomInfoResp) roomFragment?.handleRoomMessage(messageEvent) } - RoomType.SIGN_CONTRACT ->{ + + RoomType.SIGN_CONTRACT -> { mRoomInfoResp?.room_info?.pit_list!![pitNumber.toInt() - 1] = RoomPitBean(pitNumber) roomFragment!!.upRoomInfoData(mRoomInfoResp) roomFragment?.handleRoomMessage(messageEvent) } + else -> { roomFragment!!.updateSeatViewExchangedWithPitArray(mRoomInfoResp) } @@ -2015,8 +2009,8 @@ class RoomActivity : BaseMvpActivity(), LogUtils.e("1020_mRoomBean", mRoomInfoResp?.room_info.toString()) EventBus.getDefault().post(mRoomInfoResp?.room_info) changeBackgroundColor(mRoomInfoResp?.room_info?.room_background) - ImageUtils.loadHeadCC( mRoomInfoResp?.room_info?.room_cover, mBinding!!.roomTop.avatar) - mBinding?.roomTop?.name?.text= mRoomInfoResp?.room_info?.room_name + ImageUtils.loadHeadCC(mRoomInfoResp?.room_info?.room_cover, mBinding!!.roomTop.avatar) + mBinding?.roomTop?.name?.text = mRoomInfoResp?.room_info?.room_name } private fun handleMsgType1011(messageEvent: RoomMessageEvent, text: T?) { @@ -2635,13 +2629,10 @@ class RoomActivity : BaseMvpActivity(), } else if (id == R.id.btn_close_live) { //退出房间 showExitRoomDialog() } else if (id == R.id.tv_num) { - val fragment = RoomOnlineDialogFragment.show( + showUserListDialog( roomId, "", mRoomUserBean, mRoomInfoResp, supportFragmentManager ) - if (fragment != null) { - addActiveDialogFragment(fragment) // 添加到管理列表 - } } else if (id == R.id.rl) { MvpPre!!.clearUserCharm(roomId, "") } else if (id == R.id.ll_input) { @@ -3392,7 +3383,7 @@ class RoomActivity : BaseMvpActivity(), // ) // MessageListenerSingleton.getInstance() // .joinGroup(mRoomInfoResp?.room_info?.head_line?.room_id) - roomId2=mRoomInfoResp?.room_info?.head_line?.room_id + roomId2 = mRoomInfoResp?.room_info?.head_line?.room_id getHour() MvpPre?.getRoomIn(mRoomInfoResp?.room_info?.head_line?.room_id, "") } else { @@ -3793,7 +3784,7 @@ class RoomActivity : BaseMvpActivity(), } fun refreshRoomInfo(roomId: String) { - roomId2=roomId + roomId2 = roomId getHour() MvpPre?.getRoomIn(roomId, "") } @@ -3903,10 +3894,11 @@ class RoomActivity : BaseMvpActivity(), } return result } - + var mOnlineBean: RoomOnline? = null // TODO: 根据返回的在线列表获取对应的值,查看是否有在线用户 override fun getRoomOnline(onlineBean: RoomOnline?) { if (onlineBean != null) { + mOnlineBean = onlineBean val onlineBeans: MutableList = ArrayList() if (onlineBean.on_pit.size > 0) { onlineBeans.addAll(onlineBean.on_pit) @@ -3923,6 +3915,25 @@ class RoomActivity : BaseMvpActivity(), } } + + fun showUserListDialog( + roomId: String?, + pitNumber: String?, + mRoomUserBean: RoomUserBean?, + mRoomInfoResp: RoomInfoResp?, + supportFragmentManager: FragmentManager + ) { + val fragment = RoomOnlineDialogFragment.show( + roomId, pitNumber,mOnlineBean, mRoomUserBean, mRoomInfoResp, + supportFragmentManager + ) + + LogUtils.e("fragment_onItemClickListener: ${(fragment != null)}") + if (fragment != null) { + addActiveDialogFragment(fragment) // 添加到管理列表 + } + } + override fun applyPit() { } diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java index 12679172..78cd51ad 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/FriendshipRoomFragment.java @@ -82,6 +82,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment { // 处理抱麦逻辑 - RoomOnlineDialogFragment.show(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); + if (getActivity() != null && getActivity() instanceof RoomActivity) { + ((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); + } popupWindow.dismiss(); }); } diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomAuctionFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomAuctionFragment.java index de700db6..3db0be27 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomAuctionFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomAuctionFragment.java @@ -406,7 +406,9 @@ public class RoomAuctionFragment extends BaseMvpFragment { // 处理抱麦逻辑 - RoomOnlineDialogFragment.show(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); + if (getActivity() != null && getActivity() instanceof RoomActivity) { + ((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); + } popupWindow.dismiss(); }); } diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomKtvFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomKtvFragment.java index 0e2b7445..11eee912 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomKtvFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RoomKtvFragment.java @@ -432,8 +432,8 @@ public class RoomKtvFragment extends BaseMvpFragment - LogUtils.e("startTimer:"+time) - if (time/1000 <= 10){ - mBinding.tvJsq.visibility= View.VISIBLE - mBinding.tvJsq.text = (time/1000).toString() - if ((time/1000).toInt() <= 0){ - mBinding.tvJsq.visibility= View.GONE + LogUtils.e("startTimer:" + time) + if (time / 1000 <= 10) { + mBinding.tvJsq.visibility = View.VISIBLE + mBinding.tvJsq.text = (time / 1000).toString() + if ((time / 1000).toInt() <= 0) { + mBinding.tvJsq.visibility = View.GONE } - }else{ - mBinding.tvJsq.visibility= View.GONE + } else { + mBinding.tvJsq.visibility = View.GONE } val formattedTime = timer.formatTime(time) // 更新UI显示 @@ -645,8 +650,11 @@ class RoomMentorShipFragment(var mRoomInfoResp: RoomInfoResp?) : tvHugMic.setOnClickListener { v: View? -> // 处理抱麦逻辑 - RoomOnlineDialogFragment.show( - mRoomId, mPitBean?.pit_number, mRoomInfoResp?.user_info, mRoomInfoResp, + (activity as RoomActivity).showUserListDialog( + mRoomId, + mPitBean?.pit_number, + mRoomInfoResp?.user_info, + mRoomInfoResp, childFragmentManager ) popupWindow!!.dismiss() diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/SingSongFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/SingSongFragment.java index 8f40264c..2df858a5 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/SingSongFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/SingSongFragment.java @@ -184,9 +184,9 @@ public class SingSongFragment extends BaseRoomFragment { // 处理抱麦逻辑 - RoomOnlineDialogFragment.show(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); + if(getActivity() != null && getActivity() instanceof RoomActivity) { + ((RoomActivity) getActivity()).showUserListDialog(roomId, pitNumber, roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager()); + } popupWindow.dismiss(); }); } @@ -713,7 +715,9 @@ public class SingSongFragment extends BaseRoomFragment onlineBeanList = new ArrayList<>(); + + private RoomOnline mOnlineBean; + @Override protected RoomPresenter bindPresenter() { return new RoomPresenter(this, getActivity()); } - public static RoomOnlineDialogFragment show(String id, String pit_number, RoomUserBean hostUser, RoomInfoResp roomInfoResp, FragmentManager fragmentManager) { + public static RoomOnlineDialogFragment show(String id, String pit_number, RoomOnline mOnlineBean, RoomUserBean hostUser, RoomInfoResp roomInfoResp, FragmentManager fragmentManager) { RoomOnlineDialogFragment dialogFragment = new RoomOnlineDialogFragment(); Bundle args = new Bundle(); args.putString("roomId", id); // 可选:传递参数 args.putString("pit_number", pit_number); args.putSerializable("hostUser", hostUser); // 可选:传递参数 args.putSerializable("roomInfoResp", roomInfoResp); + args.putSerializable("mOnlineBean", mOnlineBean); dialogFragment.setArguments(args); dialogFragment.show(fragmentManager, "RoomOnlineDialogFragment"); return dialogFragment; @@ -66,7 +72,7 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment roomOnlineBeanList = processOnlineData(mOnlineBean); + onlineBeanList.addAll(roomOnlineBeanList); + updateUserCount(mOnlineBean.getCount()); mBinding.rvComment.setLayoutManager(new LinearLayoutManager(getActivity())); - roomOnlineAdapter = new RoomOnlineAdapter(new ArrayList()); + roomOnlineAdapter = new RoomOnlineAdapter(onlineBeanList); mBinding.rvComment.setAdapter(roomOnlineAdapter); roomOnlineAdapter.setListener(new RoomOnlineAdapter.OnJoinButtonClickListener() { @@ -216,41 +225,15 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment { - finishRefreshOrLoad(); - - if (onlineBean == null) { - handleEmptyData(); - return; - } - - List roomOnlineBeanList = processOnlineData(onlineBean); - updateAdapterData(roomOnlineBeanList); - updateUserCount(onlineBean.getCount()); - }); + List roomOnlineBeanList = processOnlineData(onlineBean); + updateAdapterData(roomOnlineBeanList); + updateUserCount(onlineBean.getCount()); } private boolean isValidContext() { return getActivity() != null && mBinding != null; } - private void finishRefreshOrLoad() { - if (mBinding.srl == null) return; - - if (page <= 1) { - mBinding.srl.finishRefresh(); - } else { - mBinding.srl.finishLoadMore(); - } - } - - private void handleEmptyData() { - if (page <= 1) { - roomOnlineAdapter.setNewData(new ArrayList<>()); - } else if (mBinding.srl != null) { - mBinding.srl.finishLoadMoreWithNoMoreData(); - } - } private List processOnlineData(RoomOnline onlineBean) { List result = new ArrayList<>(); @@ -296,13 +279,11 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment newData) { - if (page <= 1) { - roomOnlineAdapter.setNewData(newData); - } else if (!newData.isEmpty()) { - roomOnlineAdapter.addData(newData); - } else if (mBinding.srl != null) { - mBinding.srl.finishLoadMoreWithNoMoreData(); + if (page == 1) { + onlineBeanList.clear(); } + onlineBeanList.addAll(newData); + roomOnlineAdapter.notifyDataSetChanged(); } private void updateUserCount(int count) { @@ -315,11 +296,7 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment onlineBean) { -// roomOnlineAdapter.setNewData(onlineBean); -// mBinding.tvNum.setText("在线用户("+onlineBean.size()+")人"); -// } + @Override public void onResume() { super.onResume(); diff --git a/MainModule/src/main/res/layout/fragment_jukebox.xml b/MainModule/src/main/res/layout/fragment_jukebox.xml index 4df32fbf..b5e789c7 100644 --- a/MainModule/src/main/res/layout/fragment_jukebox.xml +++ b/MainModule/src/main/res/layout/fragment_jukebox.xml @@ -75,7 +75,7 @@ android:id="@+id/tv_performer_name" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="@dimen/dp_3" + android:layout_marginTop="-15dp" android:text="请点歌" android:textColor="@color/colorWhite45" android:textSize="@dimen/sp_12" @@ -210,7 +210,7 @@ + android:lines="1" + android:ellipsize="end" + tools:text="演唱歌曲:我的好兄弟我的好兄弟我的好兄弟我的好兄弟我的好兄弟我的好兄弟" />