package com.hdl.photovoltaic.ui.test.dialogs; import android.annotation.SuppressLint; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.View; import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.BaseDialog; import com.hdl.photovoltaic.databinding.DialogDeviceListTestBinding; import com.hdl.photovoltaic.ui.test.adapters.DeviceAdapter; import com.hdl.sdk.link.core.bean.gateway.GatewayBean; import java.util.List; public class DialogDeviceList extends BaseDialog { private OnclickListener mOnclickListener; private DialogDeviceListTestBinding viewBinding; private Context mContext; private List mList; private DeviceAdapter deviceAdapter; public DialogDeviceList(@NonNull Context context, List list) { super(context, R.style.Custom_List_Dialog); mContext = context; mList = list; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); viewBinding = DialogDeviceListTestBinding.inflate(getLayoutInflater()); setContentView(viewBinding.getRoot()); setDialogTouchOutsideCloseable(this); LinearLayoutManager linearLayout = new LinearLayoutManager(mContext); deviceAdapter = new DeviceAdapter(mList, mContext); viewBinding.testLogicRcv.setLayoutManager(linearLayout); viewBinding.testLogicRcv.setAdapter(deviceAdapter); deviceAdapter.setNoOnclickListener(new DeviceAdapter.OnclickListener() { @Override public void onClick(int position, GatewayBean gatewayBean) { if (mOnclickListener != null) { mOnclickListener.onClick(position, gatewayBean); } } }); } public void DeviceOnclickListener(OnclickListener onclickListener) { mOnclickListener = onclickListener; } public interface OnclickListener { void onClick(int position, GatewayBean gatewayBean); } @SuppressLint("ClickableViewAccessibility") public void setDialogTouchOutsideCloseable(Dialog dialog) { viewBinding.getRoot().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int top = viewBinding.testDialogParent.getTop(); int left = viewBinding.testDialogParent.getLeft(); int bottom = viewBinding.testDialogParent.getBottom(); int right = viewBinding.testDialogParent.getRight(); int y = (int) v.getY(); int x = (int) v.getX(); if (top < y && y < bottom) { } else { dismiss(); } if (left < x && x < right) { } else { dismiss(); } } }); } }