2025-10-28 16:56:13 +08:00
|
|
|
package com.xscm.modulemain.dialog;
|
2025-10-20 10:16:44 +08:00
|
|
|
|
|
|
|
|
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;
|
2025-10-28 16:56:13 +08:00
|
|
|
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;
|
2025-10-20 10:16:44 +08:00
|
|
|
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<RoomHostPresenter, RoomFragmentItemListBinding> implements RoomHostContacts.View {
|
|
|
|
|
private String mRoomId;
|
|
|
|
|
private BaseQuickAdapter<HostBean, BaseViewHolder> 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<HostBean, BaseViewHolder>(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<HostBean> list) {
|
|
|
|
|
mAdapter.setNewData(list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void getUserHostList(List<RoomSearchResp> 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");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|