From bae677bcbf12e6e7bff63baff362f3ce91184a62 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 09 五月 2024 17:49:33 +0800
Subject: [PATCH] 2024年05月09日17:49:28

---
 app/src/main/java/com/hdl/photovoltaic/widget/DefaultFilteringDialog.java |  275 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 270 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/DefaultFilteringDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/DefaultFilteringDialog.java
index 6f41018..5fd99bc 100644
--- a/app/src/main/java/com/hdl/photovoltaic/widget/DefaultFilteringDialog.java
+++ b/app/src/main/java/com/hdl/photovoltaic/widget/DefaultFilteringDialog.java
@@ -2,13 +2,18 @@
 
 import android.content.Context;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.View;
+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 +21,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,7 +49,7 @@
         //鍒濆鍖栫晫闈㈡帶浠�
         initView();
         //鍒濆鍖栫晫闈㈡暟鎹�
-        initData();
+//        initData(mMinValue, mMaxValue, mStateValue);
         //鍒濆鍖栫晫闈㈡帶浠剁殑浜嬩欢
         initEvent();
     }
@@ -42,12 +59,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) {
+                        //寮哄埗杞崲鍥犺緭鍏ュ�艰秴鍑篿nt鍊煎煙鑼冨洿鎶ュ嚭寮傚父
+                        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 +96,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 +328,14 @@
 
 
     public interface OnClickListener {
-        void confirm();
+        void confirm(String min, String max, String state);
     }
+
+    public enum TitleType {
+        string_capacity,//缁勪覆瀹归噺
+        GridConnectedState//骞剁綉鐘舵��
+
+    }
+
+
 }

--
Gitblit v1.8.0