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