From ebf1b9c813030a366bdc8967d2788eba3f3d9b5a Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 21 八月 2023 13:18:58 +0800
Subject: [PATCH] 2023年08月21日13:18:56

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java |   86 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 71 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java
index 73fe38b..a50ae9f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java
@@ -4,11 +4,14 @@
 import android.content.Context;
 import android.os.Handler;
 import android.os.Looper;
+import android.util.Log;
 import android.widget.Toast;
 
 import androidx.appcompat.app.AlertDialog;
 
 import com.hdl.photovoltaic.enums.ShowErrorMode;
+import com.hdl.photovoltaic.widget.ConfirmationDialog;
+import com.hdl.photovoltaic.widget.ConfirmationExceptionDialog;
 
 /**
  * 绾跨▼閫昏緫
@@ -18,7 +21,7 @@
 
 
     /**
-     * 鍒囨崲鍥炰富绾跨▼
+     * 鍒囨崲鍥炰富绾跨▼鎵ц
      *
      * @param run           鍥炶皟
      * @param context       涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null)
@@ -32,13 +35,14 @@
                 handler.post(run);
             }
         } catch (Exception e) {
+
             exception(e, showErrorMode, context);
         }
     }
 
 
     /**
-     * 瀛愮嚎绋�
+     * 瀛愮嚎绋嬫墽琛�
      *
      * @param run           鍥炶皟
      * @param context       涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null)
@@ -61,12 +65,37 @@
 
 
     /**
-     * @param e             寮傚父淇℃伅绫�
+     * 鍏ㄥ眬寮瑰嚭妗�,绯荤粺榛樿Toast
+     */
+    public static void toast(final Context context, final String text) {
+        handler.post(new Runnable() {
+            @Override
+            public void run() {
+                Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
+            }
+        });
+    }
+
+    /**
+     * 鍏ㄥ眬寮瑰嚭妗�,绯荤粺榛樿Toast
+     */
+    public static void toast(final Context context, final int resId) {
+        handler.post(new Runnable() {
+            @Override
+            public void run() {
+                Toast.makeText(context, resId, Toast.LENGTH_SHORT).show();
+            }
+        });
+    }
+
+
+    /**
+     * @param ex            寮傚父淇℃伅绫�
      * @param context       涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null)
      * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佸~null)
      */
-    private static void exception(Exception e, ShowErrorMode showErrorMode, Context context) {
-        if (showErrorMode == null || context == null || e == null) {
+    private static void exception(Exception ex, ShowErrorMode showErrorMode, Context context) {
+        if (showErrorMode == null || context == null || ex == null) {
             return;
         }
         if (showErrorMode == ShowErrorMode.NO) {
@@ -76,18 +105,45 @@
         handler.post(new Runnable() {
             @Override
             public void run() {
-                Dialog alertDialog = new AlertDialog.Builder(context).
-                        setTitle("鎶辨瓑绋嬪簭鍑虹幇閿欒浜�,鐐瑰嚮\"纭\"鑾峰彇鏇村璇︾粏淇℃伅.").
-                        setMessage(e.getMessage()).
-                        create();
-                alertDialog.show();
-                //鎻愮ず
-//                AlertDialog alertDialog = new AlertDialog(context, androidx.fragment.R.style.TextAppearance_Compat_Notification);
-//                alertDialog.setTitle("鎶辨瓑绋嬪簭鍑虹幇閿欒浜�");
-//                alertDialog.show();
-//                Toast.makeText(context, "鎶辨瓑绋嬪簭鍑虹幇閿欒浜�", Toast.LENGTH_SHORT).show();
+
+                ConfirmationDialog confirmationDialog = new ConfirmationDialog(context);
+                confirmationDialog.setTitle("鎻愮ず");
+                confirmationDialog.setContent("寰堟姳姝�,绋嬪簭鍑虹幇閿欒浜�,鐐瑰嚮\"纭\"鑾峰彇鏇村璇︾粏閿欒淇℃伅.");
+                confirmationDialog.setConfirmation("纭");
+                confirmationDialog.setCancel("鍙栨秷");
+                confirmationDialog.show();
+                confirmationDialog.setNoOnclickListener(new ConfirmationDialog.onNoOnclickListener() {
+                    @Override
+                    public void Cancel() {
+                        confirmationDialog.dismiss();
+                    }
+                });
+                confirmationDialog.setYesOnclickListener(new ConfirmationDialog.onYesOnclickListener() {
+                    @Override
+                    public void Confirm() {
+                        confirmationDialog.dismiss();
+                        ConfirmationExceptionDialog confirmationExceptionDialog = new ConfirmationExceptionDialog(context);
+//                        String s = getStackTrace(ex);
+                        String s = Log.getStackTraceString(ex);
+                        confirmationExceptionDialog.setContent(s);
+                        confirmationExceptionDialog.show();
+                    }
+                });
 
             }
         });
     }
+
+    /**
+     * @return 璋冪敤鏍�
+     */
+    private static String getStackTrace(Exception ex) {
+        StringBuilder sb = new StringBuilder("");
+        StackTraceElement[] trace = ex.getStackTrace();
+        for (StackTraceElement stackTraceElement : trace) {
+            sb.append(stackTraceElement).append("\n");
+        }
+        return sb.toString();
+    }
+
 }

--
Gitblit v1.8.0