mac
2024-05-11 438e4880f3f43021b222b201378377c1ec34c634
app/src/main/java/com/hdl/photovoltaic/widget/DefaultFilteringDialog.java
@@ -2,13 +2,20 @@
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.content.res.AppCompatResources;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.BaseDialog;
import com.hdl.photovoltaic.databinding.DialogDefaultFilteringBinding;
import com.hdl.photovoltaic.enums.GridType;
import com.hdl.photovoltaic.other.HdlThreadLogic;
public class DefaultFilteringDialog extends BaseDialog {
    private final Context mContext;
@@ -16,6 +23,18 @@
    DialogDefaultFilteringBinding viewBinding;
    OnClickListener mOnClickListener;
    final String text1 = "0-5";
    final String text2 = "5-10";
    final String text3 = "10-15";
    final String text4 = "15-30";
    final String text5 = "30-100";
    final String text6 = "100-300";
    final String text7 = "300-500";
    final String text8 = "500+";
    private String mStateValue = GridType.All;
    public DefaultFilteringDialog(@NonNull Context context) {
        super(context, R.style.Custom_Dialog);
@@ -32,9 +51,11 @@
        //初始化界面控件
        initView();
        //初始化界面数据
        initData();
//        initData(mMinValue, mMaxValue, mStateValue);
        //初始化界面控件的事件
        initEvent();
    }
    private void initEvent() {
@@ -42,12 +63,36 @@
        viewBinding.affirmLl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mOnClickListener != null) {
                    mOnClickListener.confirm();
                String minValue = viewBinding.minEt.getText().toString();
                String maxValue = viewBinding.maxEt.getText().toString();
                if (!TextUtils.isEmpty(minValue) && !TextUtils.isEmpty(maxValue)) {
                    try {
                        if (Integer.parseInt(minValue) > Integer.parseInt(maxValue)) {
                            //最小值在前面
                            if (mOnClickListener != null) {
                                mOnClickListener.confirm(maxValue, minValue, mStateValue);
                            }
                        } else {
                            if (mOnClickListener != null) {
                                mOnClickListener.confirm(minValue, maxValue, mStateValue);
                            }
                        }
                    } catch (Exception e) {
                        //强制转换因输入值超出int值域范围报出异常
                        int maxValueInt = Integer.MAX_VALUE;
                        HdlThreadLogic.toast(mContext, mContext.getString(R.string.the_input_value_has_been_exceeded) + "(" + maxValueInt + ").");
                        return;
                    }
                } else {
                    if (mOnClickListener != null) {
                        mOnClickListener.confirm(minValue, maxValue, mStateValue);
                    }
                }
                dismiss();
            }
        });
        viewBinding.cancelLl.setOnClickListener(new View.OnClickListener() {
            @Override
@@ -55,12 +100,228 @@
                dismiss();
            }
        });
        viewBinding.resetTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(null, TitleType.string_capacity);
                setSelectedText("");
            }
        });
        viewBinding.text1Tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.text1Tv, TitleType.string_capacity);
                setSelectedText(viewBinding.text1Tv.getTag().toString());
            }
        });
        viewBinding.text2Tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.text2Tv, TitleType.string_capacity);
                setSelectedText(viewBinding.text2Tv.getTag().toString());
            }
        });
        viewBinding.text3Tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.text3Tv, TitleType.string_capacity);
                setSelectedText(viewBinding.text3Tv.getTag().toString());
            }
        });
        viewBinding.text4Tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.text4Tv, TitleType.string_capacity);
                setSelectedText(viewBinding.text4Tv.getTag().toString());
            }
        });
        viewBinding.text5Tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.text5Tv, TitleType.string_capacity);
                setSelectedText(viewBinding.text5Tv.getTag().toString());
            }
        });
        viewBinding.text6Tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.text6Tv, TitleType.string_capacity);
                setSelectedText(viewBinding.text6Tv.getTag().toString());
            }
        });
        viewBinding.text7Tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.text7Tv, TitleType.string_capacity);
                setSelectedText(viewBinding.text7Tv.getTag().toString());
            }
        });
        viewBinding.text8Tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.text8Tv, TitleType.string_capacity);
                setSelectedText(viewBinding.text8Tv.getTag().toString());
            }
        });
        viewBinding.allTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.allTv, TitleType.GridConnectedState);
                setSelectedText(viewBinding.allTv.getTag().toString());
            }
        });
        viewBinding.gridConnectedTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.gridConnectedTv, TitleType.GridConnectedState);
                setSelectedText(viewBinding.gridConnectedTv.getTag().toString());
            }
        });
        viewBinding.offNetworkTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setBackgroundColor(viewBinding.offNetworkTv, TitleType.GridConnectedState);
                setSelectedText(viewBinding.offNetworkTv.getTag().toString());
            }
        });
    }
    private void initData() {
    /**
     * @param value 选中的值
     */
    private void setSelectedText(String value) {
        String minValue = "", maxValue = "";
        if (TextUtils.isEmpty(value)) {
            minValue = "";
            maxValue = "";
        } else if (value.contains("+")) {
            minValue = "500";
            maxValue = "";
        } else if (value.contains("-")) {
            String[] min_max = value.split("-");
            if (min_max.length == 2) {
                minValue = min_max[0];
                maxValue = min_max[1];
            }
        } else {
            mStateValue = value;
        }
        viewBinding.minEt.setText(minValue);
        viewBinding.maxEt.setText(maxValue);
    }
    /**
     * 改变组件背景,字体颜色格式
     *
     * @param textView  组件可以(设置为null,没有选中状态)
     * @param titleType 修改类型
     */
    private void setBackgroundColor(TextView textView, TitleType titleType) {
        if (titleType == TitleType.string_capacity) {
            viewBinding.text1Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.text1Tv.setTextColor(mContext.getColor(R.color.text_90000000));
            viewBinding.text2Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.text2Tv.setTextColor(mContext.getColor(R.color.text_90000000));
            viewBinding.text3Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.text3Tv.setTextColor(mContext.getColor(R.color.text_90000000));
            viewBinding.text4Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.text4Tv.setTextColor(mContext.getColor(R.color.text_90000000));
            viewBinding.text5Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.text5Tv.setTextColor(mContext.getColor(R.color.text_90000000));
            viewBinding.text6Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.text6Tv.setTextColor(mContext.getColor(R.color.text_90000000));
            viewBinding.text7Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.text7Tv.setTextColor(mContext.getColor(R.color.text_90000000));
            viewBinding.text8Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.text8Tv.setTextColor(mContext.getColor(R.color.text_90000000));
        } else {
            viewBinding.allTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.allTv.setTextColor(mContext.getColor(R.color.text_90000000));
            viewBinding.gridConnectedTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.gridConnectedTv.setTextColor(mContext.getColor(R.color.text_90000000));
            viewBinding.offNetworkTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000));
            viewBinding.offNetworkTv.setTextColor(mContext.getColor(R.color.text_90000000));
        }
        if (textView != null) {
            textView.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.selected_38c494));
            textView.setTextColor(mContext.getColor(R.color.text_FFFFFFFF));
        }
    }
    public void initState(String min, String max, String stateValue) {
        try {
            mStateValue = stateValue;
            viewBinding.minEt.setText(min);
            viewBinding.maxEt.setText(max);
            if (!TextUtils.isEmpty(min) || !TextUtils.isEmpty(max)) {
                String str = min + "-" + max;
                switch (str) {
                    case text1:
                        setBackgroundColor(viewBinding.text1Tv, TitleType.string_capacity);
                        break;
                    case text2:
                        setBackgroundColor(viewBinding.text2Tv, TitleType.string_capacity);
                        break;
                    case text3:
                        setBackgroundColor(viewBinding.text3Tv, TitleType.string_capacity);
                        break;
                    case text4:
                        setBackgroundColor(viewBinding.text4Tv, TitleType.string_capacity);
                        break;
                    case text5:
                        setBackgroundColor(viewBinding.text5Tv, TitleType.string_capacity);
                        break;
                    case text6:
                        setBackgroundColor(viewBinding.text6Tv, TitleType.string_capacity);
                        break;
                    case text7:
                        setBackgroundColor(viewBinding.text7Tv, TitleType.string_capacity);
                        break;
                    case text8:
                        setBackgroundColor(viewBinding.text8Tv, TitleType.string_capacity);
                        break;
                }
            }
            if (TextUtils.isEmpty(stateValue)) {
                setBackgroundColor(viewBinding.allTv, TitleType.GridConnectedState);
            } else if (stateValue.equals(GridType.FULL_GRID)) {
                setBackgroundColor(viewBinding.gridConnectedTv, TitleType.GridConnectedState);
            } else {
                setBackgroundColor(viewBinding.offNetworkTv, TitleType.GridConnectedState);
            }
        } catch (Exception ignored) {
        }
    }
    private void initView() {
        viewBinding.text1Tv.setTag(text1);
        viewBinding.text2Tv.setTag(text2);
        viewBinding.text3Tv.setTag(text3);
        viewBinding.text4Tv.setTag(text4);
        viewBinding.text5Tv.setTag(text5);
        viewBinding.text6Tv.setTag(text6);
        viewBinding.text7Tv.setTag(text7);
        viewBinding.text8Tv.setTag(text8);
        viewBinding.allTv.setTag(GridType.All);
        viewBinding.gridConnectedTv.setTag(GridType.FULL_GRID);
        viewBinding.offNetworkTv.setTag(GridType.OFFLINE);
        setBackgroundColor(null, TitleType.string_capacity);
        setBackgroundColor(viewBinding.allTv, TitleType.GridConnectedState);
    }
    public void setOnClickListener(OnClickListener onClickListener) {
@@ -71,6 +332,14 @@
    public interface OnClickListener {
        void confirm();
        void confirm(String min, String max, String state);
    }
    public enum TitleType {
        string_capacity,//组串容量
        GridConnectedState//并网状态
    }
}