fix bugs.4

This commit is contained in:
2025-12-05 23:20:40 +08:00
parent cd80d03c7b
commit 7bcc347561
6 changed files with 295 additions and 104 deletions

View File

@@ -101,6 +101,7 @@ import com.xscm.modulemain.manager.RoomManager
import com.xscm.modulemain.service.ForegroundService
import com.xscm.modulemain.service.RoomPlayService
import com.xscm.moduleutil.BaseEvent
import com.xscm.moduleutil.adapter.LikeUser2Adapter
import com.xscm.moduleutil.adapter.LikeUserAdapter
import com.xscm.moduleutil.base.AppStateListener
import com.xscm.moduleutil.base.AppStateManager
@@ -211,7 +212,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
@Autowired
var taskId: String? = null
var likeUserAdapter: LikeUserAdapter<RoomOnlineBean>? = null
var likeUserAdapter: LikeUser2Adapter<RoomOnlineBean>? = null
var permissions: Array<String> = arrayOf(Manifest.permission.RECORD_AUDIO)
private var isSave = false //活动是否将被系统回收
@@ -507,7 +508,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
mBinding!!.roomTop.userRecyclerView.layoutManager = LinearLayoutManager(
this, LinearLayoutManager.HORIZONTAL, false
)
likeUserAdapter = LikeUserAdapter()
likeUserAdapter = LikeUser2Adapter()
mBinding?.roomTop?.userRecyclerView?.adapter = likeUserAdapter
likeUserAdapter!!.onItemClickListener =
BaseQuickAdapter.OnItemClickListener { adapter, view, position ->

View File

@@ -48,7 +48,6 @@ import java.util.List;
*/
public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, FragmentJukeboxBinding> implements JukeboxContacts.View {
RoomInfoResp roomInfoResp;
RoomJukeboxAdapter adapter;
private String roomId;
private PopupWindow popupWindow;
protected String pitNumber;//当前点击的麦序
@@ -64,6 +63,9 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
List<RoomPitBean> roomPitBeans = new ArrayList<>();
List<RoomJukeboxWheatView> viewList = new ArrayList<>();
public RoomJukeboxFragment() {
// Required empty public constructor
}
@@ -103,48 +105,60 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
protected void initView() {
initPopupWindow();
mBinding.guestContainer.setVisibility(GONE);
adapter = new RoomJukeboxAdapter(R.layout.item_jukebox);
GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 4);
mBinding.rvJukebox.setLayoutManager(layoutManager);
mBinding.rvJukebox.setAdapter(adapter);
adapter.setOnWheatClickListener(new RoomJukeboxAdapter.OnWheatClickListener() {
// adapter = new RoomJukeboxAdapter(R.layout.item_jukebox);
// GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 4);
// mBinding.rvJukebox.setLayoutManager(layoutManager);
// mBinding.rvJukebox.setAdapter(adapter);
@Override
public void onWheatClick(RoomJukeboxWheatView roomJukeboxWheatView, int position) {
if (ClickUtils.isFastDoubleClick(roomJukeboxWheatView)) {
return;
}
RoomPitBean pitBean = roomJukeboxWheatView.pitBean;
// 可选:点击事件处理
Log.d("Wheat", "Clicked pit: " + position);
if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
} else {
if (cheackWether(pitBean.getPit_number())) {
pitNumber = pitBean.getPit_number();
roomPitBean = pitBean;
showPopupMenu(roomJukeboxWheatView); // v 是点击的按钮视图
} else if ((position + 1) == 10) {
if (ActivityUtils.getTopActivity() instanceof RoomActivity) {
if (((RoomActivity) ActivityUtils.getTopActivity()).getHostUser() < 4) {
if (!isFastDoubleClick("online_dialog", position + 1 + "")) {
RoomOnlineDialogFragment.show(roomId, position + 1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
} else {
com.hjq.toast.ToastUtils.show("请等待主持抱麦");
}
}
viewList.clear();
viewList.add(mBinding.wheatView1);
viewList.add(mBinding.wheatView2);
viewList.add(mBinding.wheatView3);
viewList.add(mBinding.wheatView4);
viewList.add(mBinding.wheatView5);
viewList.add(mBinding.wheatView6);
viewList.add(mBinding.wheatView7);
viewList.add(mBinding.wheatView8);
for (int i = 0; i < viewList.size(); i++) {
RoomJukeboxWheatView roomJukeboxWheatView = viewList.get(i);
int finalI = i;
roomJukeboxWheatView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ClickUtils.isFastDoubleClick(roomJukeboxWheatView)) {
return;
}
RoomPitBean pitBean = roomJukeboxWheatView.pitBean;
// 可选:点击事件处理
Log.d("Wheat", "Clicked pit: " + finalI);
if (!pitBean.getUser_id().equals("0") && !pitBean.getUser_id().isEmpty()) {
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
} else {
MvpPre.applyPit(roomId, position + 1 + "");
if (cheackWether(pitBean.getPit_number())) {
pitNumber = pitBean.getPit_number();
roomPitBean = pitBean;
showPopupMenu(roomJukeboxWheatView); // v 是点击的按钮视图
} else if ((finalI + 1) == 10) {
if (ActivityUtils.getTopActivity() instanceof RoomActivity) {
if (((RoomActivity) ActivityUtils.getTopActivity()).getHostUser() < 4) {
if (!isFastDoubleClick("online_dialog", finalI + 1 + "")) {
RoomOnlineDialogFragment.show(roomId, finalI + 1 + "", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
}
} else {
com.hjq.toast.ToastUtils.show("请等待主持抱麦");
}
}
} else {
MvpPre.applyPit(roomId, finalI + 1 + "");
}
}
}
}
});
}
});
mBinding.wvZc.setOnClickListener(new View.OnClickListener() {
@Override
@@ -372,7 +386,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
return false;
} else {
if (roomInfoResp.getRoom_info().getPit_list().size() > 8) {
if (roomInfoResp.getUser_info().getPit_number() == 9 && !pitNumber.equals("10")) {
if (roomInfoResp.getRoom_info().getPit_list().get(8).getUser_id().equals(roomInfoResp.getUser_info().getUser_id() + "")) {
return true;
}
return false;
@@ -395,12 +409,16 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
}
public void setView() {
roomPitBeans.clear();
for (int i = 0; i < roomInfoResp.getRoom_info().getPit_list().size(); i++) {
RoomPitBean roomPitBean = roomInfoResp.getRoom_info().getPit_list().get(i);
if (!roomPitBean.getPit_number().equals("9") && !roomPitBean.getPit_number().equals("10")) {
roomPitBeans.add(roomPitBean);
if (roomPitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
roomPitBean.setIs_online(1);
}
viewList.get(i).setData(roomPitBean);
} else if (roomPitBean.getPit_number().equals("9")) {
// 确保视图的pitNumber与数据的pit_number匹配
mBinding.wvZc.setRoomWheatNumber("9");
@@ -411,7 +429,6 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
}
}
}
adapter.setNewData(roomPitBeans);
if (roomInfoResp.getSinger_info() != null) {
if (roomInfoResp.getSinger_info().getSong_info() != null) {
@@ -448,7 +465,6 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
roomPitBean.setImageType(false);
}
}
adapter.notifyDataSetChanged();
}
} else {
mBinding.ciUserAva.setImageResource(0);
@@ -532,8 +548,8 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
LogUtils.e("juke", e.getMessage());
pitBean.setImageType(false);
}
if (pitBean.getUser_id().equals(SpUtil.getUserId()+"")){
if (getActivity()!=null){
if (pitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
if (getActivity() != null) {
if (getActivity() instanceof RoomActivity) {
((RoomActivity) getActivity()).setrlMic(true);
}
@@ -542,7 +558,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
// 使用set方法更新数据然后通知适配器
roomPitBeans.set(position, pitBean);
adapter.notifyItemChanged(position);
viewList.get(position).setData(pitBean);
}
@@ -623,7 +639,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
pitBean.setImageType(false);
// 使用set方法更新数据然后通知适配器
roomPitBeans.set(position, pitBean);
adapter.notifyItemChanged(position);
viewList.get(position).setData(pitBean);
if (SpUtil.getUserId() == userId) {
if (getActivity() != null) {
if (getActivity() instanceof RoomActivity) {
@@ -649,7 +665,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
int toIndex = Integer.parseInt(toPit) - 1;
if (toPit.equals("9")) {
RoomPitBean fromBean = adapter.getData().get(fromIndex);
RoomPitBean fromBean = viewList.get(fromIndex).pitBean;
fromBean.setPit_number(toPit);
fromBean.clone();
//这里需要是重新的指向地址,不然会出现,虽然页面展示的是,但是在点击的时候,找不到对应的数据
@@ -664,7 +680,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
configGameOptionBtn();
}
RoomPitBean temp = adapter.getData().get(fromIndex);
RoomPitBean temp = viewList.get(fromIndex).pitBean;
temp.setUser_id("");
temp.setAvatar("");
temp.setNickname("");
@@ -675,18 +691,18 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
temp.setPit_number(fromPit);
roomInfoResp.getRoom_info().getPit_list().set(fromIndex, temp);
roomPitBeans.set(fromIndex, temp);
adapter.notifyItemChanged(fromIndex);
viewList.get(fromIndex).setData(temp);
} else {
RoomPitBean fromBean = adapter.getData().get(fromIndex);
RoomPitBean fromBean = viewList.get(fromIndex).pitBean;
fromBean.setPit_number(toPit);
RoomPitBean toBean = adapter.getData().get(toIndex);
RoomPitBean toBean = viewList.get(toIndex).pitBean;
toBean.setPit_number(fromPit);
roomInfoResp.getRoom_info().getPit_list().set(fromIndex, toBean);
roomInfoResp.getRoom_info().getPit_list().set(toIndex, fromBean);
roomPitBeans.set(fromIndex, toBean);
roomPitBeans.set(toIndex, fromBean);
adapter.notifyItemChanged(fromIndex);
adapter.notifyItemChanged(toIndex);
viewList.get(fromIndex).setData(toBean);
viewList.get(toIndex).setData(fromBean);
}
LogUtils.e("huanmai2", mBinding.wvZc.pitBean);
}
@@ -741,14 +757,18 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
mBinding.wvZc.pitBean.setImageType(false);
mBinding.wvZc.setData(mBinding.wvZc.pitBean);
} else {
for (RoomPitBean roomPitBean : roomPitBeans) {
for (int i = 0; i < roomPitBeans.size(); i++) {
if (roomPitBean.getUser_id().equals(userId)) {
roomPitBean.setImageType(true);
} else {
roomPitBean.setImageType(false);
}
viewList.get(i).setData(roomPitBean);
}
adapter.notifyDataSetChanged();
// adapter.notifyDataSetChanged();
}
} else {
mBinding.ciUserAva.setImageResource(0);
@@ -784,7 +804,8 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
roomPitBean2.setNickname(message.getText().getFromUserInfo().getNickname());
roomPitBean2.setDress(message.getText().getFromUserInfo().getDress());
roomPitBean2.setAvatar(message.getText().getFromUserInfo().getAvatar());
adapter.notifyItemChanged(i);
viewList.get(i).setData(roomPitBean2);
// adapter.notifyItemChanged(i);
}
}
}
@@ -797,7 +818,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
for (int i = 0; i < roomPitBeans.size(); i++) {
RoomPitBean roomPitBean2 = roomPitBeans.get(i);
roomPitBean2.setCharm("0");
adapter.notifyItemChanged(i);
viewList.get(i).setCharm("0");
}
}
@@ -834,7 +855,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
RoomPitBean pitBean = roomPitBeans.get(i);
if (pitBean.getUser_id().equals(userId)) {
pitBean.setCharm(charm);
adapter.notifyItemChanged(i);
viewList.get(i).setCharm(charm);
}
}
@@ -851,7 +872,7 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
RoomPitBean roomPitBean2 = roomPitBeans.get(i);
if (roomPitBean2.getUser_id().equals(userId)) {
roomPitBean2.setCharm("0");
adapter.notifyItemChanged(i);
viewList.get(i).setCharm("0");
}
}
@@ -859,6 +880,11 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
public void event1058(RoomMessageEvent messageEvent) {
int type = messageEvent.getText().getType();
// if (messageEvent.getText().getUser_id().equals(roomInfoResp.getUser_info().getUser_id() + "")) {
// setView();
// }
RoomPitBean pitBean = mBinding.wvZc.pitBean;
if (pitBean.getUser_id().equals(messageEvent.getText().getUser_id())) {
pitBean.setIs_online(type == 1 ? 1 : 2);
@@ -870,9 +896,8 @@ public class RoomJukeboxFragment extends BaseMvpFragment<JukeboxPresenter, Fragm
RoomPitBean roomPitBean2 = roomPitBeans.get(i);
if (roomPitBean2.getUser_id().equals(messageEvent.getText().getUser_id())) {
roomPitBean2.setIs_online(type == 1 ? 1 : 2);
adapter.notifyItemChanged(i);
viewList.get(i).setData(roomPitBean2);
}
}
}
}