Files
yusheng-android/MainModule/src/main/java/com/xscm/modulemain/dialog/WheatFeedingDialogFragment.java
2025-11-26 12:01:31 +08:00

305 lines
12 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.xscm.modulemain.dialog;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xscm.modulemain.R;
import com.xscm.modulemain.activity.room.contacts.WheatContacts;
import com.xscm.modulemain.activity.room.presenter.WheatPresenter;
import com.xscm.modulemain.adapter.WheatFeedingSelectAdapter;
import com.xscm.modulemain.databinding.FragmentWheatFeedingDialogBinding;
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.bean.RoomWheatEvent;
import com.xscm.moduleutil.bean.room.RoomApplyListBean;
import com.xscm.moduleutil.bean.room.RoomInfoResp;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
/**
* @author qx
* @data 2025/6/10
* @description: 上麦申请dialog弹框等待申请
*/
public class WheatFeedingDialogFragment extends BaseMvpDialogFragment<WheatPresenter, FragmentWheatFeedingDialogBinding> implements
WheatContacts.View {
private int page;
private int displayMode; // 用于决定显示模式的参数
WheatFeedingSelectAdapter mSpecialAdapter;
WheatFeedingSelectAdapter mRegularAdapter;
private String roomId;
private RoomInfoResp roomInfoResp;
private RoomApplyListBean roomApplyListBeans;
@Override
protected WheatPresenter bindPresenter() {
return new WheatPresenter(this, getActivity());
}
public static void show(String id, int displayMode, RoomInfoResp roomInfoResp, FragmentManager fragmentManager) {
WheatFeedingDialogFragment dialogFragment = new WheatFeedingDialogFragment();
Bundle args = new Bundle();
args.putString("roomId", id); // 可选:传递参数
args.putInt("displayMode", displayMode);
args.putSerializable("roomInfoResp", roomInfoResp);
dialogFragment.setArguments(args);
dialogFragment.show(fragmentManager, "WheatFeedingDialogFragment");
}
@Override
protected void initData() {
// 从 Bundle 中获取 displayMode 参数
displayMode = getArguments().getInt("displayMode", 2); // 默认值为 0
roomInfoResp = (RoomInfoResp) getArguments().getSerializable("roomInfoResp");
// 根据 displayMode 显示不同的控件
updateViewBasedOnDisplayMode();
roomId = getArguments().getString("roomId");
MvpPre.roomApplyListBean(roomId);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onRoomApplyListEvent(RoomWheatEvent event) {
MvpPre.roomApplyListBean(roomId);
}
private void updateViewBasedOnDisplayMode() {
switch (displayMode) {
case 1: // 模式房主或者主持模式
mBinding.tvLjsq.setVisibility(GONE);
mBinding.tvQk.setVisibility(VISIBLE);
mBinding.tvWheatRefuse.setVisibility(VISIBLE);
mBinding.tvWheatAccept.setVisibility(VISIBLE);
mBinding.tvWheatSq.setVisibility(GONE);
mBinding.tv3.setVisibility(VISIBLE);
mBinding.tv3.setText("设置");
// ... 设置其他控件的可见性
break;
case 2: // 模式 2//观众模式
mBinding.tvQk.setVisibility(GONE);
mBinding.tvWheatRefuse.setVisibility(GONE);
mBinding.tvWheatAccept.setVisibility(GONE);
mBinding.tvWheatSq.setVisibility(GONE);
mBinding.tvLjsq.setVisibility(VISIBLE);
mBinding.tv3.setVisibility(GONE);
break;
// ... 其他模式
}
}
public void updateDisplayMode(int newDisplayMode) {
if (newDisplayMode == displayMode) {
return; // 如果新旧模式相同,直接返回
}
displayMode = newDisplayMode;
updateViewBasedOnDisplayMode();
}
@Override
public void onStart() {
super.onStart();
Window window = getDialog().getWindow();
if (window != null) {
// 设置固定高度为 500dp
int screenHeight = getResources().getDisplayMetrics().heightPixels;
int heightInDp = (int) (screenHeight * 0.6f);
;
// int heightInPx = (int) (heightInDp * getResources().getDisplayMetrics().density);
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, heightInDp);
// 可选:设置动画样式(从底部弹出)
window.setWindowAnimations(com.xscm.moduleutil.R.style.CommonShowDialogBottom);
}
}
@Override
protected void initView() {
mBinding.tv3.setOnClickListener(this::onClick);
mBinding.tvWheatAccept.setOnClickListener(this::onClick);
mBinding.tvWheatRefuse.setOnClickListener(this::onClick);
mBinding.tvWheatSq.setOnClickListener(this::onClick);
mBinding.tvLjsq.setOnClickListener(this::onClick);
mBinding.tvQk.setOnClickListener(this::onClick);
mBinding.recycleView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false));
mBinding.recycleView2.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false));
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.tv3, ColorManager.getInstance().getPrimaryColorInt(), 65);
mBinding.tv3.setTextColor(ColorManager.getInstance().getButtonColorInt());
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.tvQk, ColorManager.getInstance().getPrimaryColorInt(), 65);
mBinding.tvQk.setTextColor(ColorManager.getInstance().getButtonColorInt());
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.tvWheatAccept, ColorManager.getInstance().getPrimaryColorInt(), 53);
mBinding.tvWheatAccept.setTextColor(ColorManager.getInstance().getButtonColorInt());
}
@Override
public void onDestroy() {
super.onDestroy();
if (EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().unregister(this);
}
}
private void onClick(View view) {
int id = view.getId();
// 通过 ID 获取资源名称
String viewName = "";
try {
viewName = view.getContext().getResources().getResourceEntryName(id);
} catch (Exception e) {
viewName = "未知View ID: " + id;
}
LogUtils.e("wheatFeedingDF","点击了" + viewName );
if (id == R.id.tv_3) {
if (mBinding.tv3.getText().equals("设置")) {
RoomWheatGiftSettingFragment.show(roomId, getChildFragmentManager());
}
// else {
// if (roomApplyListBeans!=null) {
// MvpPre.roomGift(roomId, roomApplyListBeans.getGift_info().getGift_id(), "1", roomInfoResp.getRoom_info().getPit_list().get(8).getUser_id(), "1", "");
// }
// }
} else if (id == R.id.tv_wheat_accept) {
// MvpPre.agreePit(roomId,);
up(1);
} else if (id == R.id.tv_wheat_refuse) {
// MvpPre.refusePit(roomId,);
up(2);
} else if (id == R.id.tv_wheat_sq) {
ToastUtils.showShort("点击了申请");
} else if (id == R.id.tv_ljsq) {
MvpPre.applyPit(roomId, "");
} else if (id == R.id.tv_qk) {
MvpPre.clearApply(roomId);
}
}
/**
* @param type 1:同意上麦 2拒绝上麦
*/
private void up(int type) {
List<String> stringList = new ArrayList<>();
List<String> selectedTopics = mSpecialAdapter.getSelectedItems();
List<String> selectedRegular = mRegularAdapter.getSelectedItems();
// 返回结果给调用页面(可使用接口或 onActivityResult 等方式)
Log.d("Selected Topics", selectedTopics.toString());
if (selectedTopics.size() > 0) {
stringList.addAll(selectedTopics);
}
if (selectedRegular.size() > 0) {
stringList.addAll(selectedRegular);
}
if (selectedTopics.size() == 0 && selectedRegular.size() == 0) {
ToastUtils.showShort("未选择需要上麦人员");
return;
}
String string = TextUtils.join(",", stringList);
if (type == 1) {
MvpPre.agreePit(roomId, string);
} else if (type == 2) {
MvpPre.refusePit(roomId, string);
}
}
@Override
protected void initDialogStyle(Window window) {
super.initDialogStyle(window);
window.setGravity(Gravity.BOTTOM);
}
@Override
protected int getLayoutId() {
return R.layout.fragment_wheat_feeding_dialog;
}
@Override
public void roomApplyListBean(RoomApplyListBean roomApplyListBeans) {
if (roomApplyListBeans.getSpecial() != null || !roomApplyListBeans.getSpecial().isEmpty()) {
mBinding.tv1.setText("优先通道(" + roomApplyListBeans.getSpecial().size() + "/20)");
mSpecialAdapter = new WheatFeedingSelectAdapter(roomApplyListBeans.getSpecial());
mBinding.recycleView.setAdapter(mSpecialAdapter);
mSpecialAdapter.setOnItemClickListener(new WheatFeedingSelectAdapter.OnItemClickListener() {
@Override
public void onTvBmClick(RoomApplyListBean.Special item, int position) {
MvpPre.helpApply(roomId, item.getUser_id());
}
});
}
if (roomApplyListBeans.getRegular() != null || !roomApplyListBeans.getRegular().isEmpty()) {
mBinding.tv4.setText("普通通道(" + roomApplyListBeans.getRegular().size() + "/20)");
mRegularAdapter = new WheatFeedingSelectAdapter(roomApplyListBeans.getRegular());
mBinding.recycleView2.setAdapter(mRegularAdapter);
mRegularAdapter.setOnItemClickListener(new WheatFeedingSelectAdapter.OnItemClickListener() {
@Override
public void onTvBmClick(RoomApplyListBean.Special item, int position) {
MvpPre.helpApply(roomId, item.getUser_id());
}
});
}
if (roomApplyListBeans.getGift_info() != null) {
mBinding.tv2.setText("" + roomApplyListBeans.getGift_info().getGift_name() + "礼物插队");
ImageUtils.loadHeadCC(roomApplyListBeans.getGift_info().getBase_image(), mBinding.im1);
}
this.roomApplyListBeans=roomApplyListBeans;
}
@Override
public void clearApply() {
MvpPre.roomApplyListBean(roomId);
}
@Override
public void agreePit() {
// MvpPre.roomApplyListBean(roomId);
dismiss();
}
@Override
public void applyPit() {
//
// if (roomApplyListBeans!=null){
// if ((roomApplyListBeans.getSpecial() != null && !roomApplyListBeans.getSpecial().isEmpty())
// ||(roomApplyListBeans.getRegular() != null && !roomApplyListBeans.getRegular().isEmpty())){
// MvpPre.roomApplyListBean(roomId);
// }else {
// dismiss();
// }
// }else {
dismiss();
// }
}
@Override
public void giveGift() {
}
}