From b9cc7390e8e8ce64c41c26fb369c98ce669d660c Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 07 五月 2025 15:02:30 +0800
Subject: [PATCH] Merge branch '1.2.0'

---
 app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java |  118 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 87 insertions(+), 31 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java
index 971bfb9..fe74ce6 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java
@@ -1,11 +1,16 @@
 package com.hdl.photovoltaic.ui.test;
 
 
+import android.content.Intent;
+import android.net.Uri;
 import android.os.Bundle;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
+import android.text.TextUtils;
 import android.text.style.ForegroundColorSpan;
 import android.view.View;
+
+import androidx.core.content.FileProvider;
 
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.base.CustomBaseActivity;
@@ -17,6 +22,7 @@
 import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
 import com.hdl.photovoltaic.widget.ListStaticDialog;
 
+import java.io.File;
 import java.util.IdentityHashMap;
 import java.util.Map;
 
@@ -43,7 +49,7 @@
      * 鐩戝惉鍣ㄥ垵濮嬪寲
      */
     private void initEvent() {
-        viewBinding.topBackBtn.setOnClickListener(new View.OnClickListener() {
+        viewBinding.topBackLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 finish();
@@ -75,12 +81,43 @@
 
             }
         });
+
+        viewBinding.clickToBottomTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+//                int offset = (viewBinding.sv.getChildAt(0).getMeasuredHeight() - viewBinding.sv.getHeight()); // 璁$畻闇�瑕佹粴鍔ㄧ殑璺濈
+//                if (offset > 0) {
+//                    viewBinding.sv.smoothScrollTo(0, offset); // 骞虫粦鍦版粴鍔ㄥ埌搴曢儴浣嶇疆
+//                } else {
+//                    viewBinding.sv.fullScroll(View.FOCUS_DOWN); // 鐩存帴婊氬姩鍒版渶鍚庝竴琛�
+//                }
+                viewBinding.sv.fullScroll(View.FOCUS_DOWN); // 鐩存帴婊氬姩鍒版渶鍚庝竴琛�
+            }
+        });
         //涓婁紶鏃ュ織鍒颁簯绔笂
         viewBinding.uploadingLogTv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 //todo 闇�瑕佽皟浜戠鐨勬帴鍙�
-                HdlThreadLogic.toast(_mActivity, "杩樻病鏈夋敮鎸佷笂浼犳棩蹇�.");
+//                HdlThreadLogic.toast(_mActivity, "杩樻病鏈夋敮鎸佷笂浼犳棩蹇�.");
+
+//                Intent sendIntent = new Intent();
+//                sendIntent.setAction(Intent.ACTION_SEND);
+//                sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
+//                sendIntent.setType("text/plain");
+//                startActivity(Intent.createChooser(sendIntent, "Share via"));
+                try {
+                    // 鍦ˋctivity涓垱寤哄垎浜獻ntent
+                    Intent shareIntent = new Intent(Intent.ACTION_SEND);
+                    shareIntent.setType("application/pdf"); // 鏍规嵁瑕佸垎浜殑鏂囦欢绫诲瀷璁剧疆MIME绫诲瀷
+                    File file = new File(HdlFileLogic.getInstance().getLogFileNamePath()); // 鎸囧畾鏂囦欢璺緞
+                    Uri fileUri = FileProvider.getUriForFile(_mActivity, "com.hdl.photovoltaic.dc.fileprovider", file);
+                    shareIntent.putExtra(Intent.EXTRA_STREAM, fileUri);
+                    shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+                    startActivity(Intent.createChooser(shareIntent, "Share file using"));
+                } catch (Exception ignored) {
+                    HdlThreadLogic.toast(_mActivity, "鍒嗕韩澶辫触");
+                }
             }
         });
 
@@ -126,39 +163,58 @@
      * 鍒濆鍖栫晫闈�
      */
     private void initView() {
-        HdlThreadLogic.runMainThread(new Runnable() {
+        String homeId = "鏃ュ織浣忓畢ID=" + UserConfigManage.getInstance().getHomeId();
+        String homeName = "鏃ュ織浣忓畢鍚嶇О=" + UserConfigManage.getInstance().getHomeName();
+        viewBinding.homeIdTv.setText(homeId);
+        viewBinding.homeNameTv.setText(homeName);
+        showLoading();
+        HdlThreadLogic.runSubThread(new Runnable() {
             @Override
             public void run() {
-
-                String homeId = "娴嬭瘯浣忓畢ID=" + UserConfigManage.getInstance().getHomeId();
-                String homeName = "娴嬭瘯浣忓畢鍚嶇О=" + UserConfigManage.getInstance().getHomeName();
-                viewBinding.homeIdTv.setText(homeId);
-                viewBinding.homeNameTv.setText(homeName);
-
-                HdlFileLogic.getInstance().delFileLien(HdlFileLogic.getInstance().getLogFileNamePath(), 2);
+//                HdlFileLogic.getInstance().delFileLien(HdlFileLogic.getInstance().getLogFileNamePath(), 2);
                 String content = HdlLogLogic.readLog();
-                int startIndex = 0;
-                int endIndex;
-                Map<Integer, Integer> map = new IdentityHashMap<>();
-                String[] s = content.split("\r\n");
-                for (int i = 0; i < s.length; i++) {
-                    if (i == 0) {
-                        endIndex = s[i].indexOf("s%");
-                    } else {
-                        startIndex = 2 + startIndex + s[i - 1].length();//2鎹㈣绗﹂暱搴�
-                        endIndex = 2 + startIndex + s[i].indexOf("s%");//2鎹㈣绗﹂暱搴�
+                HdlThreadLogic.runMainThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        hideLoading();
+                        if (TextUtils.isEmpty(content)) {
+                            return;
+                        }
+                        int startIndex = 0;
+                        int endIndex;
+                        Map<Integer, Integer> map = new IdentityHashMap<>();
+                        String[] newArray = content.split("\r\n");
+//                String[] newArray = new String[oldArray.length];//鍊掑簭
+//                for (int i = oldArray.length - 1, j = 0; i >= 0; i--, j++) {
+//                    newArray[j] = oldArray[i];
+//                }
+//                StringBuilder stringBuilder = new StringBuilder();
+//                for (String s : newArray) {
+//                    stringBuilder.append(s).append("\r\n");
+//                }
+//                content = stringBuilder.toString();
+                        for (int i = 0; i < newArray.length; i++) {
+                            if (i == 0) {
+                                endIndex = newArray[i].indexOf("s%");
+                            } else {
+                                startIndex = 2 + startIndex + newArray[i - 1].length();//2鎹㈣绗﹂暱搴�
+                                endIndex = 2 + startIndex + newArray[i].indexOf("s%");//2鎹㈣绗﹂暱搴�
+                            }
+                            map.put(startIndex, endIndex);
+                        }
+                        SpannableStringBuilder spannable = new SpannableStringBuilder(content.replace("s%", "  "));//娉ㄦ剰s%鏄袱涓瓧绗�,鎵�浠ュ崰涓や綅
+                        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
+                            int start = entry.getKey();
+                            int end = entry.getValue();
+                            //璁剧疆鏃堕棿浣撻獙鏄彟涓�绉嶉鑹�
+                            spannable.setSpan(new ForegroundColorSpan(getColor(R.color.text_245EC3)), start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+                        }
+                        viewBinding.replyContentTv.setText(spannable);
+
                     }
-                    map.put(startIndex, endIndex);
-                }
-                SpannableStringBuilder spannable = new SpannableStringBuilder(content.replace("s%", "  "));//娉ㄦ剰s%鏄袱涓瓧绗�,鎵�浠ュ崰涓や綅
-                for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
-                    int start = entry.getKey();
-                    int end = entry.getValue();
-                    //璁剧疆鏃堕棿浣撻獙鏄彟涓�绉嶉鑹�
-                    spannable.setSpan(new ForegroundColorSpan(getColor(R.color.text_245EC3)), start, end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
-                }
-                viewBinding.replyContentTv.setText(spannable);
+                });
             }
-        }, null, null);
+        });
+
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0