From 70344ff9fd9ae9d64d5a4fb5d864269205893674 Mon Sep 17 00:00:00 2001 From: vvb2060 Date: Fri, 20 Aug 2021 02:00:02 +0800 Subject: [PATCH] Use java8 time API (#952) --- .../main/java/org/lsposed/manager/App.java | 2 +- .../ui/activity/CrashReportActivity.java | 27 +++++++------------ .../org/lsposed/lspd/util/ModuleLogger.java | 17 +++++++----- 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/org/lsposed/manager/App.java b/app/src/main/java/org/lsposed/manager/App.java index 1edd9a76..fa89e444 100644 --- a/app/src/main/java/org/lsposed/manager/App.java +++ b/app/src/main/java/org/lsposed/manager/App.java @@ -182,7 +182,7 @@ public class App extends Application { @Override public void onFailure(@NonNull Call call, @NonNull IOException e) { - Log.e(App.TAG, e.getMessage(), e); + Log.e(App.TAG, "loadRemoteVersion: " + e.getMessage()); if (pref.getBoolean("checked", false)) return; pref.edit().putBoolean("checked", true).apply(); } diff --git a/app/src/main/java/org/lsposed/manager/ui/activity/CrashReportActivity.java b/app/src/main/java/org/lsposed/manager/ui/activity/CrashReportActivity.java index cb6ac237..44fbb2f4 100644 --- a/app/src/main/java/org/lsposed/manager/ui/activity/CrashReportActivity.java +++ b/app/src/main/java/org/lsposed/manager/ui/activity/CrashReportActivity.java @@ -36,10 +36,8 @@ import org.lsposed.manager.BuildConfig; import org.lsposed.manager.R; import org.lsposed.manager.databinding.ActivityCrashReportBinding; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; +import java.time.Instant; +import java.time.format.DateTimeFormatter; public class CrashReportActivity extends AppCompatActivity { ActivityCrashReportBinding binding; @@ -62,21 +60,16 @@ public class CrashReportActivity extends AppCompatActivity { } public String getAllErrorDetailsFromIntent(@NonNull Intent intent) { - Date currentDate = new Date(); - DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US); - + var dateFormat = DateTimeFormatter.ISO_OFFSET_DATE_TIME; String versionName = String.format("%s (%s)", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE); - String errorDetails = ""; - - errorDetails += "Build version: " + versionName + " \n"; - errorDetails += "Current date: " + dateFormat.format(currentDate) + " \n"; - errorDetails += "Device: " + getDeviceModelName() + " \n"; - errorDetails += "Fingerprint: " + getFingerprint() + " \n \n"; - errorDetails += "SDK: " + Build.VERSION.SDK_INT + " \n \n"; - errorDetails += "Stack trace: \n"; - errorDetails += getStackTraceFromIntent(intent); - return errorDetails; + return "Build version: " + versionName + " \n" + + "Current date: " + dateFormat.format(Instant.now()) + " \n" + + "Device: " + getDeviceModelName() + " \n" + + "Fingerprint: " + getFingerprint() + " \n \n" + + "SDK: " + Build.VERSION.SDK_INT + " \n \n" + + "Stack trace: \n" + + getStackTraceFromIntent(intent); } private String getFingerprint() { diff --git a/core/src/main/java/org/lsposed/lspd/util/ModuleLogger.java b/core/src/main/java/org/lsposed/lspd/util/ModuleLogger.java index 91ba9e81..44f05a8b 100644 --- a/core/src/main/java/org/lsposed/lspd/util/ModuleLogger.java +++ b/core/src/main/java/org/lsposed/lspd/util/ModuleLogger.java @@ -23,22 +23,25 @@ package org.lsposed.lspd.util; import android.app.ActivityThread; import android.os.ParcelFileDescriptor; import android.os.Process; +import android.os.SystemProperties; import java.io.FileWriter; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; +import java.time.Instant; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.Locale; -import java.util.TimeZone; public class ModuleLogger { - static SimpleDateFormat logDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss", Locale.getDefault()); - static ParcelFileDescriptor fd = null; + private static DateTimeFormatter logDateFormat; + private static ParcelFileDescriptor fd = null; public static void initLogger(ParcelFileDescriptor fileDescriptor) { if (fd == null && fileDescriptor != null) { fd = fileDescriptor; - logDateFormat.setTimeZone(TimeZone.getDefault()); + var zone = ZoneId.of(SystemProperties.get("persist.sys.timezone")); + var pattern = "yyyy-MM-dd HH:mm:ss.SSS"; + logDateFormat = DateTimeFormatter.ofPattern(pattern, Locale.ROOT).withZone(zone); } } @@ -50,7 +53,7 @@ public class ModuleLogger { StringBuilder sb = new StringBuilder(); String processName = ActivityThread.currentProcessName(); - sb.append(logDateFormat.format(new Date())); + sb.append(logDateFormat.format(Instant.now())); sb.append(' '); sb.append(isThrowable ? "E" : "I"); sb.append('/');