140 lines
4.5 KiB
Java
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();
|
|
}
|
|
}
|