From 87cd5df70918e6ba1af849c5f026d3719bfdb1ac Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 09 四月 2025 09:06:29 +0800
Subject: [PATCH] Merge branch '1.5.2' into dev

---
 app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java |  101 ++++++++++++++++----------------------------------
 1 files changed, 32 insertions(+), 69 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java
index 291350a..a6cc52c 100644
--- a/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java
+++ b/app/src/main/java/com/hdl/photovoltaic/widget/ListDialog.java
@@ -3,34 +3,28 @@
 import android.annotation.SuppressLint;
 import android.app.Dialog;
 import android.content.Context;
-import android.content.Intent;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
+import android.content.DialogInterface;
 import android.os.Bundle;
 import android.view.Gravity;
-import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.Window;
 import android.view.WindowManager;
-import android.widget.LinearLayout;
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.LinearLayoutManager;
 
-import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.base.BaseDialog;
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.DialogListBinding;
-import com.hdl.photovoltaic.ui.StartActivity;
 import com.hdl.photovoltaic.ui.adapter.LanguageAdapter;
-import com.hdl.photovoltaic.utils.AppManagerUtils;
 import com.hdl.photovoltaic.utils.LocalManageUtil;
+import com.hdl.photovoltaic.utils.UnitConversionUtils;
 import com.hdl.photovoltaic.widget.adapter.ListDialogAdapter;
 
-import java.util.ArrayList;
 import java.util.List;
+
 
 /**
  * 鍔ㄦ�佸垪琛ㄥ脊绐�
@@ -45,7 +39,7 @@
     private ListDialogAdapter.OnclickListener itemOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣�
 
     public ListDialog(@NonNull Context context) {
-        super(context, R.style.Custom_List_Dialog);
+        super(context, R.style.Custom_Dialog);
         this.mContext = context;
     }
 
@@ -53,9 +47,20 @@
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+
+        Window window = getWindow();
+        if (window != null) {
+            window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+            WindowManager.LayoutParams layoutParams = window.getAttributes();
+            layoutParams.gravity = Gravity.START | Gravity.TOP;
+            layoutParams.width = (int) UnitConversionUtils.dpToPx(mContext, 140);
+            layoutParams.x = (int) UnitConversionUtils.dpToPx(mContext, 20);
+            layoutParams.y = (int) UnitConversionUtils.dpToPx(mContext, 89);
+            window.setAttributes(layoutParams);
+        }
+
         viewBinding = DialogListBinding.inflate(getLayoutInflater());
         setContentView(viewBinding.getRoot());
-        setDialogTouchOutsideCloseable(this);
         initData();
         LinearLayoutManager linearLayout = new LinearLayoutManager(mContext);
         listDialogAdapter = new ListDialogAdapter(this.list, mContext);
@@ -102,23 +107,18 @@
      * @param itemData 閫変腑鏁版嵁
      */
     private void languageSelectionDialog(int position, LanguageAdapter.ItemData itemData) {
+
         ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(this.mContext);
-        dialog.setTitle(this.mContext.getString(R.string.loading_title_tip));
         dialog.setContent(this.mContext.getString(R.string.loading_app_restart));
         dialog.show();
+        dialog.isHideTitle(true);
         dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
             @Override
             public void Confirm() {
+                dialog.dismiss();
                 if (itemOnclickListener != null) {
                     itemOnclickListener.onClick(position, itemData);
                 }
-                dismiss();
-                UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage());
-                UserConfigManage.getInstance().Save();
-                AppManagerUtils.getAppManager().finishAllActivity();
-                Intent intent = new Intent();
-                intent.setClass(HDLApp.getInstance(), StartActivity.class);
-                mContext.startActivity(intent);
             }
         });
         dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
@@ -136,59 +136,22 @@
                 dialog.dismiss();
             }
         });
-    }
-
-
-    @SuppressLint("ClickableViewAccessibility")
-    public void setDialogTouchOutsideCloseable(Dialog dialog) {
-//        viewBinding.getRoot().setOnTouchListener(new View.OnTouchListener() {
-//
-//            @Override
-//            public boolean onTouch(View v, MotionEvent event) {
-//                int top = viewBinding.dialogParent.getTop();
-//                int left = viewBinding.dialogParent.getLeft();
-//                int bottom = viewBinding.dialogParent.getBottom();
-//                int right = viewBinding.dialogParent.getRight();
-//                int y = (int) event.getY();
-//                int x = (int) event.getX();
-//                if (event.getAction() == MotionEvent.ACTION_UP) {
-//                    if (top < y && y < bottom) {
-//
-//                    } else {
-//                        dismiss();
-//                    }
-//
-//                    if (left < x && x < right) {
-//
-//                    } else {
-//                        dismiss();
-//                    }
-//
-//
-//                }
-//                return true;
-//            }
-//        });
-        viewBinding.getRoot().setOnClickListener(new View.OnClickListener() {
+        dialog.setOnDismissListener(new OnDismissListener() {
             @Override
-            public void onClick(View v) {
-                int top = viewBinding.dialogParent.getTop();
-                int left = viewBinding.dialogParent.getLeft();
-                int bottom = viewBinding.dialogParent.getBottom();
-                int right = viewBinding.dialogParent.getRight();
-                int y = (int) v.getY();
-                int x = (int) v.getX();
-                if (top < y && y < bottom) {
-                } else {
-                    dismiss();
+            public void onDismiss(DialogInterface dialog) {
+                //鍙栨秷涔嬪悗杩樺師涔嬪墠鐘舵��
+                for (int i = 0; i < list.size(); i++) {
+                    LanguageAdapter.ItemData data = list.get(i);
+                    data.setState(false);
+                    if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(data.getLanguage())) {
+                        data.setState(true);
+                    }
                 }
-                if (left < x && x < right) {
-
-                } else {
-                    dismiss();
-                }
-
+                listDialogAdapter.notifyDataSetChanged();
             }
         });
+
     }
+
+
 }

--
Gitblit v1.8.0