package com.xscm.modulemain.dialog; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; import androidx.recyclerview.widget.LinearLayoutManager; import com.blankj.utilcode.util.ToastUtils; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.xscm.modulemain.R; import com.xscm.modulemain.activity.room.contacts.RoomHostContacts; import com.xscm.modulemain.databinding.RoomFragmentItemListBinding; import com.xscm.modulemain.activity.room.presenter.RoomHostPresenter; import com.lihang.ShadowLayout; import com.xscm.moduleutil.base.BaseMvpDialogFragment; import com.xscm.moduleutil.bean.HostBean; import com.xscm.moduleutil.bean.RefreshEvent; import com.xscm.moduleutil.bean.RoomMessageEvent; import com.xscm.moduleutil.bean.RoomSearchResp; 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.List; /** * A fragment representing a list of Items. * 主持弹窗 */ public class RoomHostFragment extends BaseMvpDialogFragment implements RoomHostContacts.View { private String mRoomId; private BaseQuickAdapter mAdapter; // TODO: Customize parameter initialization @SuppressWarnings("unused") public static RoomHostFragment newInstance(String roomId) { RoomHostFragment fragment = new RoomHostFragment(); Bundle bundle = new Bundle(); bundle.putString("roomId", roomId); fragment.setArguments(bundle); return fragment; } @Override public void initArgs(Bundle arguments) { super.initArgs(arguments); mRoomId = arguments.getString("roomId"); } // TODO: 2025/3/7 固定dialog显示的位置和大小 @Override protected void initDialogStyle(Window window) { super.initDialogStyle(window); window.setGravity(Gravity.BOTTOM); WindowManager.LayoutParams lp = window.getAttributes(); lp.dimAmount = 0.4f; // 固定对话框的宽度和高度 lp.width = WindowManager.LayoutParams.MATCH_PARENT; // 宽度设置为屏幕宽度 lp.height = WindowManager.LayoutParams.WRAP_CONTENT; // 高度设置为内容高度 window.setAttributes(lp); window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); } @Override protected RoomHostPresenter bindPresenter() { return new RoomHostPresenter(this, getContext()); } @Override protected void initData() { } @Override protected void initView() { mBinding.tvTj.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO: 2025/3/7 点击弹出设置主持人模式 RoomHostAddFragment.newInstance(mRoomId).show(getChildFragmentManager(), "RoomHostAddFragment"); } }); mBinding.rvHostList.setLayoutManager(new LinearLayoutManager(getContext())); mAdapter = new BaseQuickAdapter(R.layout.room_fragment_item, null) { @Override protected void convert(BaseViewHolder helper, HostBean item) { helper.setText(R.id.tv_name, item.getNickname()); ImageUtils.loadHeadCC(item.getAvatar(), helper.getView(R.id.image)); if (item.getRatio() == null || item.getRatio().isEmpty()) { helper.setText(R.id.tv_proportion, "未设置"); } else { helper.setText(R.id.tv_proportion, item.getRatio() + "%"); } helper.setText(R.id.tv_shouyi,item.getEarnings()!=null&&!item.getEarnings().isEmpty()?item.getEarnings():"0.00"); // helper.setText(R.id.tv_income, "¥" + item.getEarnings()); ShadowLayout layout = helper.getView(R.id.shadow_layout); // layout.setShadowColor(R.color.picture_color_fa632d); layout.setShadowHiddenBottom(false); layout.setShadowHidden(false); layout.setShadowOffsetY(1); layout.setShadowOffsetX(1); TextView tv_sz=helper.getView(R.id.tv_sz); ThemeableDrawableUtils.setThemeableRoundedBackground(tv_sz, ColorManager.getInstance().getPrimaryColorInt(), 53); tv_sz.setTextColor(ColorManager.getInstance().getButtonColorInt()); helper.getView(R.id.tv_yc).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO: 2025/3/7 点击移除主持人 MvpPre.postHostAdd(mRoomId, item.getUser_id(), "1", "2"); } }); helper.getView(R.id.tv_sz).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO: 2025/3/7 点击设置收益比例 RoomHostIncomeDialog dialog = new RoomHostIncomeDialog(getContext()); dialog.setListener(new RoomHostIncomeDialog.OnConfirmClickListener() { @Override public void onConfirm(String proportion) { MvpPre.setPresidedRatio(item.getRoom_id(),item.getUser_id(), proportion); } }); dialog.show(); // dialog.setListener(new RoomHostIncomeDialog.OnConfirmClickListener() { // @Override // public void onConfirm(String proportion) { // // TODO: 2025/3/7 提交数据 // MvpPre.setPresidedRatio(item.getRoom_id(),item.getId(), proportion); // } // }); // dialog.show(); } }); } }; mBinding.rvHostList.setAdapter(mAdapter); mAdapter.bindToRecyclerView(mBinding.rvHostList); } @Override protected int getLayoutId() { return R.layout.room_fragment_item_list; } @Override public void setHostrList(List list) { mAdapter.setNewData(list); } @Override public void getUserHostList(List list) { } @Override public void postHostAdd(String s, String type, String is_add) { MvpPre.clearHostList(mRoomId,"1"); } @Override public void postPresidedRatio(String s) { ToastUtils.showShort("设置成功"); // MvpPre.clearHostList(mRoomId); MvpPre.clearHostList(mRoomId,"1"); } @Override public void postPresidedDel(String s) { ToastUtils.showShort("移除成功"); // MvpPre.clearHostList(mRoomId); } @Override public void doDismiss() { } @Subscribe(threadMode = ThreadMode.MAIN) public void onRefreshEvent(RefreshEvent refreshEvent) { // MvpPre.clearHostList(refreshEvent.getRoomId()); } @Override public void onStop() { super.onStop(); } @Override public void onResume() { super.onResume(); MvpPre.clearHostList(mRoomId,"1"); } @Subscribe(threadMode = ThreadMode.MAIN) public void refreshEvent(RoomMessageEvent event) { if (event.getMsgType() == 1007){ MvpPre.clearHostList(mRoomId,"1"); } } }