From a9706d1dcf725f950b5fa703e4484db7467be9ef Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 11 三月 2025 17:35:23 +0800
Subject: [PATCH] 2025年03月11日17:35:21

---
 app/src/main/java/com/hdl/photovoltaic/widget/DefaultFilteringDialog.java |  320 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 314 insertions(+), 6 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..2b10e7c 100644
--- a/app/src/main/java/com/hdl/photovoltaic/widget/DefaultFilteringDialog.java
+++ b/app/src/main/java/com/hdl/photovoltaic/widget/DefaultFilteringDialog.java
@@ -1,14 +1,28 @@
 package com.hdl.photovoltaic.widget;
 
+import android.app.Activity;
 import android.content.Context;
+import android.graphics.Color;
 import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.Gravity;
 import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.widget.TextView;
 
 import androidx.annotation.NonNull;
+import androidx.appcompat.content.res.AppCompatResources;
+import androidx.core.content.ContextCompat;
 
+import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.base.BaseDialog;
 import com.hdl.photovoltaic.databinding.DialogDefaultFilteringBinding;
+import com.hdl.photovoltaic.enums.DebugStatus;
+import com.hdl.photovoltaic.enums.GridType;
+import com.hdl.photovoltaic.enums.UnitType;
+import com.hdl.photovoltaic.other.HdlThreadLogic;
 
 public class DefaultFilteringDialog extends BaseDialog {
     private final Context mContext;
@@ -16,6 +30,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);
@@ -27,14 +53,20 @@
         super.onCreate(savedInstanceState);
         viewBinding = DialogDefaultFilteringBinding.inflate(getLayoutInflater());
         setContentView(viewBinding.getRoot());
-        //绌虹櫧澶勪笉鑳藉彇娑堝姩鐢�
+        Window window = getWindow();
+        if (window != null) {
+            window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+            window.setGravity(Gravity.BOTTOM);
+        }
         setCanceledOnTouchOutside(false);
         //鍒濆鍖栫晫闈㈡帶浠�
         initView();
         //鍒濆鍖栫晫闈㈡暟鎹�
-        initData();
+//        initData(mMinValue, mMaxValue, mStateValue);
         //鍒濆鍖栫晫闈㈡帶浠剁殑浜嬩欢
         initEvent();
+
+
     }
 
     private void initEvent() {
@@ -42,12 +74,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 +111,256 @@
                 dismiss();
             }
         });
+
+        viewBinding.resetRl.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                setBackgroundColor(null, TitleType.string_capacity);
+                setSelectedText("");
+                setBackgroundColor(viewBinding.allTv, TitleType.debuggingState);
+                mStateValue = DebugStatus.All;
+            }
+        });
+        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.debuggingState);
+                mStateValue = DebugStatus.All;
+            }
+        });
+        //璋冭瘯涓�
+        viewBinding.beDebuggingTv.setOnClickListener(new View.OnClickListener() {
+
+            @Override
+            public void onClick(View v) {
+                setBackgroundColor(viewBinding.beDebuggingTv, TitleType.debuggingState);
+                mStateValue = DebugStatus.Debugging;
+            }
+        });
+        //璋冭瘯瀹屾垚
+        viewBinding.debuggingcOmpletedTv.setOnClickListener(new View.OnClickListener() {
+
+            @Override
+            public void onClick(View v) {
+                setBackgroundColor(viewBinding.debuggingcOmpletedTv, TitleType.debuggingState);
+                mStateValue = DebugStatus.WAIT_DELIVERED;
+            }
+        });
+        //宸蹭氦浠�
+        viewBinding.deliveredTv.setOnClickListener(new View.OnClickListener() {
+
+            @Override
+            public void onClick(View v) {
+                setBackgroundColor(viewBinding.deliveredTv, TitleType.debuggingState);
+                mStateValue = DebugStatus.Delivered;
+            }
+        });
+        //鎺堟潈璋冭瘯
+        viewBinding.authorizationDebuggingTv.setOnClickListener(new View.OnClickListener() {
+
+            @Override
+            public void onClick(View v) {
+                setBackgroundColor(viewBinding.authorizationDebuggingTv, TitleType.debuggingState);
+                mStateValue = DebugStatus.SECONDARY_DEBUGGIN;
+            }
+        });
+
     }
 
-    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];
+            }
+        }
+
+        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.config_129));
+            viewBinding.text2Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+            viewBinding.text3Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+            viewBinding.text4Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+            viewBinding.text5Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+            viewBinding.text6Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+            viewBinding.text7Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+            viewBinding.text8Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+        } else {
+            viewBinding.allTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+            viewBinding.beDebuggingTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+            viewBinding.debuggingcOmpletedTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+            viewBinding.deliveredTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+            viewBinding.authorizationDebuggingTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_129));
+        }
+        if (textView != null) {
+            textView.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.config_yes_129));
+        }
+
+    }
+
+    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;
+                }
+            }
+            switch (stateValue) {
+                case DebugStatus.All:
+                    setBackgroundColor(viewBinding.allTv, TitleType.debuggingState);
+                    break;
+                case DebugStatus.Debugging:
+                    setBackgroundColor(viewBinding.beDebuggingTv, TitleType.debuggingState);
+                    break;
+                case DebugStatus.WAIT_DELIVERED:
+                    setBackgroundColor(viewBinding.debuggingcOmpletedTv, TitleType.debuggingState);
+                    break;
+                case DebugStatus.Delivered:
+                    setBackgroundColor(viewBinding.deliveredTv, TitleType.debuggingState);
+                    break;
+                case DebugStatus.SECONDARY_DEBUGGIN:
+                    setBackgroundColor(viewBinding.authorizationDebuggingTv, TitleType.debuggingState);
+                    break;
+                default: {
+                    setBackgroundColor(viewBinding.allTv, TitleType.debuggingState);
+                    break;
+                }
+            }
+        } catch (Exception ignored) {
+        }
+
     }
 
     private void initView() {
+
+        String s = mContext.getString(R.string.string_capacity) + "(" + UnitType.kWp + ")";
+        viewBinding.capacityTv.setText(s);
+        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(DebugStatus.All);
+        viewBinding.beDebuggingTv.setTag(DebugStatus.Debugging);
+        viewBinding.debuggingcOmpletedTv.setTag(DebugStatus.WAIT_DELIVERED);
+        viewBinding.deliveredTv.setTag(DebugStatus.Delivered);
+        viewBinding.authorizationDebuggingTv.setTag(DebugStatus.SECONDARY_DEBUGGIN);
+        setBackgroundColor(null, TitleType.string_capacity);
+        setBackgroundColor(viewBinding.allTv, TitleType.debuggingState);
     }
 
     public void setOnClickListener(OnClickListener onClickListener) {
@@ -71,6 +371,14 @@
 
 
     public interface OnClickListener {
-        void confirm();
+        void confirm(String min, String max, String state);
     }
+
+    public enum TitleType {
+        string_capacity,//缁勪覆瀹归噺
+        debuggingState//璋冭瘯鐘舵��
+
+    }
+
+
 }

--
Gitblit v1.8.0