2025-10-28 16:56:13 +08:00
|
|
|
|
package com.xscm.modulemain.dialog;
|
2025-10-24 17:55:15 +08:00
|
|
|
|
|
|
|
|
|
|
import android.app.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.annotation.NonNull;
|
|
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
|
|
import androidx.recyclerview.widget.GridLayoutManager;
|
|
|
|
|
|
|
|
|
|
|
|
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.RoomCloseContacts;
|
|
|
|
|
|
import com.xscm.modulemain.databinding.RoomConcernDialogBinding;
|
|
|
|
|
|
import com.xscm.modulemain.activity.room.presenter.RoomClosePresenter;
|
2025-10-24 17:55:15 +08:00
|
|
|
|
import com.hjq.toast.ToastUtils;
|
|
|
|
|
|
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
|
|
|
|
|
|
import com.xscm.moduleutil.bean.RoomRelationBean;
|
|
|
|
|
|
import com.xscm.moduleutil.bean.room.FriendUserBean;
|
|
|
|
|
|
import com.xscm.moduleutil.utils.ImageUtils;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
import lombok.Setter;
|
|
|
|
|
|
/**
|
|
|
|
|
|
*@author qx
|
|
|
|
|
|
*@data 2025/8/24
|
|
|
|
|
|
*@description: 卡关系页面
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Setter
|
|
|
|
|
|
public class RoomConcernDialogFragment extends BaseMvpDialogFragment<RoomClosePresenter, RoomConcernDialogBinding> implements RoomCloseContacts.View {
|
|
|
|
|
|
private int selectedPosition = -1;
|
|
|
|
|
|
private BaseQuickAdapter<RoomRelationBean, BaseViewHolder> mAdapter;
|
|
|
|
|
|
private FriendUserBean relationshipList;
|
|
|
|
|
|
|
|
|
|
|
|
public static RoomConcernDialogFragment newInstance(FriendUserBean relationshipList, OnConcernSelectedListener listener) {
|
|
|
|
|
|
RoomConcernDialogFragment fragment = new RoomConcernDialogFragment(listener);
|
|
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
|
|
args.putSerializable("FriendUserBean", relationshipList);
|
|
|
|
|
|
fragment.setArguments(args);
|
|
|
|
|
|
return fragment;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void initArgs(Bundle arguments) {
|
|
|
|
|
|
super.initArgs(arguments);
|
|
|
|
|
|
relationshipList = (FriendUserBean) arguments.getSerializable("FriendUserBean");
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public int getLayoutId() {
|
|
|
|
|
|
return R.layout.room_concern_dialog;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected void initDialogStyle(Window window) {
|
|
|
|
|
|
super.initDialogStyle(window);
|
|
|
|
|
|
window.setGravity(Gravity.CENTER);
|
|
|
|
|
|
WindowManager.LayoutParams lp = window.getAttributes();
|
|
|
|
|
|
lp.dimAmount = 0.4f;
|
|
|
|
|
|
|
|
|
|
|
|
// 使用dp单位转换为像素
|
|
|
|
|
|
lp.width = com.blankj.utilcode.util.ConvertUtils.dp2px(275); // 宽度275dp
|
|
|
|
|
|
lp.height = com.blankj.utilcode.util.ConvertUtils.dp2px(452); // 高度452dp
|
|
|
|
|
|
|
|
|
|
|
|
window.setAttributes(lp);
|
|
|
|
|
|
window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void initView() {
|
|
|
|
|
|
// getWindow().setLayout((int) (ScreenUtils.getScreenWidth() / 375.0 * 341), RadioGroup.LayoutParams.WRAP_CONTENT);
|
|
|
|
|
|
|
|
|
|
|
|
ImageUtils.loadImageView(relationshipList.getUser1_avatar(), mBinding.image);
|
|
|
|
|
|
ImageUtils.loadImageView(relationshipList.getUser2_avatar(), mBinding.image2);
|
|
|
|
|
|
mBinding.tvName1.setText(relationshipList.getUser1_nickname());
|
|
|
|
|
|
mBinding.tvName2.setText(relationshipList.getUser2_nickname());
|
|
|
|
|
|
mBinding.tvZhi.setText(relationshipList.getHeart_value());
|
|
|
|
|
|
mBinding.btnAction.setOnClickListener(this::onViewClicked);
|
|
|
|
|
|
// mBinding.btnCancel.setOnClickListener(this::onViewClicked);
|
|
|
|
|
|
mBinding.rlList.setLayoutManager(new GridLayoutManager(getContext(), 3));
|
|
|
|
|
|
mAdapter = new BaseQuickAdapter<RoomRelationBean, BaseViewHolder>(R.layout.room_concern_item) {
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected void convert(BaseViewHolder helper, RoomRelationBean item) {
|
|
|
|
|
|
|
|
|
|
|
|
TextView tvRelation = helper.getView(R.id.tv_relation);
|
|
|
|
|
|
tvRelation.setText(item.getName());
|
|
|
|
|
|
|
|
|
|
|
|
// 根据当前选中的位置来设置颜色
|
|
|
|
|
|
if (helper.getAdapterPosition() == selectedPosition) {
|
|
|
|
|
|
tvRelation.setSelected(true);
|
|
|
|
|
|
tvRelation.setTextColor(getResources().getColor(com.xscm.moduleutil.R.color.white));
|
|
|
|
|
|
} else {
|
|
|
|
|
|
tvRelation.setSelected(false);
|
|
|
|
|
|
tvRelation.setTextColor(getResources().getColor(com.xscm.moduleutil.R.color.black));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 设置点击事件
|
|
|
|
|
|
tvRelation.setOnClickListener(v -> {
|
|
|
|
|
|
// 更新选中的位置
|
|
|
|
|
|
int previousPosition = selectedPosition;
|
|
|
|
|
|
selectedPosition = helper.getAdapterPosition();
|
|
|
|
|
|
|
|
|
|
|
|
// 通知Adapter数据集已更改,以刷新视图
|
|
|
|
|
|
if (previousPosition != -1) {
|
|
|
|
|
|
notifyItemChanged(previousPosition);
|
|
|
|
|
|
}
|
|
|
|
|
|
notifyItemChanged(selectedPosition);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
// mAdapter.setOnItemChildClickListener((adapter, view, position) -> {
|
|
|
|
|
|
// selectedPosition = position;
|
|
|
|
|
|
// });
|
|
|
|
|
|
mBinding.rlList.setAdapter(mAdapter);
|
|
|
|
|
|
mAdapter.bindToRecyclerView(mBinding.rlList);
|
|
|
|
|
|
// mAdapter.setNewData(list);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected RoomClosePresenter bindPresenter() {
|
|
|
|
|
|
return new RoomClosePresenter(this, getContext());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void initData() {
|
|
|
|
|
|
MvpPre.roomRelationList("2");
|
|
|
|
|
|
// MvpPre.getConcernList();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public OnConcernSelectedListener listener;
|
|
|
|
|
|
|
|
|
|
|
|
public void onViewClicked(View view) {
|
|
|
|
|
|
if (view.getId() == R.id.btn_action) {//确认
|
|
|
|
|
|
if (listener != null && selectedPosition != -1) {
|
|
|
|
|
|
RoomRelationBean selectedDean = mAdapter.getItem(selectedPosition);
|
|
|
|
|
|
listener.onConcernSelected(selectedDean, relationshipList);
|
|
|
|
|
|
dismiss();
|
|
|
|
|
|
}else {
|
|
|
|
|
|
ToastUtils.show("请选择关系");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
// else if (view.getId() == R.id.btn_cancel) {//取消
|
|
|
|
|
|
// dismiss();
|
|
|
|
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void dismiss() {
|
|
|
|
|
|
super.dismiss();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
@NonNull
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
|
|
|
|
|
Dialog dialog = super.onCreateDialog(savedInstanceState);
|
|
|
|
|
|
dialog.setCancelable(false); // 禁止通过返回键关闭对话框
|
|
|
|
|
|
return dialog;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void onStart() {
|
|
|
|
|
|
super.onStart();
|
|
|
|
|
|
Dialog dialog = getDialog();
|
|
|
|
|
|
if (dialog != null) {
|
|
|
|
|
|
dialog.setCanceledOnTouchOutside(false); // 禁止点击对话框外部关闭对话框
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public RoomConcernDialogFragment(OnConcernSelectedListener listener) {
|
|
|
|
|
|
this.listener = listener;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void roomRelationList(List<RoomRelationBean> list) {
|
|
|
|
|
|
mAdapter.setNewData(list);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public interface OnConcernSelectedListener {
|
|
|
|
|
|
void onConcernSelected(RoomRelationBean selectedDean, FriendUserBean relationshipList);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|