mac
2024-01-05 51d7007fd4bcaaa771d43a745cb6728d4e6d29ae
app/src/main/java/com/hdl/photovoltaic/ui/test/TestLogActivity.java
@@ -4,6 +4,7 @@
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;
@@ -75,6 +76,19 @@
            }
        });
        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
@@ -126,39 +140,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);
                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);
        });
    }
}