Files
yusheng-android/MainModule/src/main/java/com/xscm/modulemain/dialog/PkTimeDialogFragment.java
2025-11-07 09:22:39 +08:00

140 lines
4.5 KiB
Java

package com.xscm.modulemain.dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.xscm.modulemain.R;
import com.xscm.modulemain.adapter.PkTimeAdapter;
import com.xscm.modulemain.activity.room.contacts.PkTimeContract;
import com.xscm.modulemain.databinding.FragmentPkTimeFragmentBinding;
import com.xscm.modulemain.activity.room.presenter.PkTimePresenter;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.RoomAutionTimeBean;
import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import java.util.ArrayList;
import java.util.List;
/**
*@author qx
*@data 2025/7/3
*@description: pk点击开始选择时间
*/
public class PkTimeDialogFragment extends BaseMvpDialogFragment<PkTimePresenter, FragmentPkTimeFragmentBinding> implements PkTimeContract.View {
private String pk_id;
private PkTimeAdapter mAdapter;
@Override
protected PkTimePresenter bindPresenter() {
return new PkTimePresenter(this, getActivity());
}
public static void show(String pk_id, FragmentManager fragmentManager) {
PkTimeDialogFragment dialogFragment = new PkTimeDialogFragment();
Bundle args = new Bundle();
args.putString("pk_id", pk_id);
dialogFragment.setArguments(args);
dialogFragment.show(fragmentManager, "PkTimeDialogFragment");
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
pk_id = getArguments().getString("pk_id");
}
@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;
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, heightInPx);
// 可选:设置动画样式(从底部弹出)
window.setWindowAnimations(com.xscm.moduleutil.R.style.CommonShowDialogBottom);
}
}
@Override
protected void initDialogStyle(Window window) {
super.initDialogStyle(window);
window.setGravity(Gravity.BOTTOM);
setStyle(DialogFragment.STYLE_NORMAL, com.xscm.moduleutil.R.style.CustomDialogFragmentTheme);
}
@Override
protected void initData() {
}
@Override
protected void initView() {
RecyclerView recyclerView = mBinding.recycleView;
GridLayoutManager layoutManager = new GridLayoutManager(requireContext(), 4); // 最大支持 4 列
recyclerView.setLayoutManager(layoutManager);
mAdapter = new PkTimeAdapter();
recyclerView.setAdapter(mAdapter);
mAdapter.setNewData(getDefaultTimeOptions());
mBinding.tvWheatQd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RoomAutionTimeBean roomAutionTimeBean = mAdapter.getSelectedTime();
if (roomAutionTimeBean != null) {
MvpPre.startPk(pk_id, roomAutionTimeBean.getDays() + "");
dismiss();
}else {
ToastUtils.show("请选择时间");
}
}
});
mBinding.tvWheatCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
}
@Override
protected int getLayoutId() {
return R.layout.fragment_pk_time_fragment;
}
public static List<RoomAutionTimeBean> getDefaultTimeOptions() {
List<RoomAutionTimeBean> list = new ArrayList<>();
list.add(new RoomAutionTimeBean(1));
list.add(new RoomAutionTimeBean(5));
list.add(new RoomAutionTimeBean(10));
list.add(new RoomAutionTimeBean(15));
list.add(new RoomAutionTimeBean(20));
list.add(new RoomAutionTimeBean(25));
list.add(new RoomAutionTimeBean(30));
list.add(new RoomAutionTimeBean(35));
list.add(new RoomAutionTimeBean(40));
return list;
}
@Override
public void startPk() {
dismiss();
}
}