From 5f42d00bca20726ba2b329344c6a4381c34369f2 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Tue, 2 Jan 2024 09:59:12 +0100 Subject: [PATCH] add most recent log lines to crash reports --- .../dslul/openboard/inputmethod/latin/define/DebugFlags.kt | 3 +++ .../openboard/inputmethod/latin/utils/CustomLayoutUtils.kt | 4 ++-- .../java/org/dslul/openboard/inputmethod/latin/utils/Log.kt | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/define/DebugFlags.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/define/DebugFlags.kt index be0efc5f5..1dead941f 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/define/DebugFlags.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/define/DebugFlags.kt @@ -11,6 +11,7 @@ import android.os.Build import org.dslul.openboard.inputmethod.latin.BuildConfig import org.dslul.openboard.inputmethod.latin.settings.DebugSettings import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils +import org.dslul.openboard.inputmethod.latin.utils.Log import java.io.File import java.io.IOException import java.io.PrintWriter @@ -54,6 +55,8 @@ Device: ${Build.BRAND} ${Build.DEVICE}, Android ${Build.VERSION.RELEASE} Locale: ${Locale.getDefault()} Stack trace: $stackTrace +Last log: +${Log.getLog(100).joinToString("\n")} """) defaultUncaughtExceptionHandler!!.uncaughtException(t, e) } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/CustomLayoutUtils.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/CustomLayoutUtils.kt index 5a1faa255..e0102ba16 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/CustomLayoutUtils.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/CustomLayoutUtils.kt @@ -47,7 +47,7 @@ fun loadCustomLayout(uri: Uri?, localeString: String, context: Context, onAdded: fun loadCustomLayout(layoutContent: String, layoutName: String, localeString: String, context: Context, onAdded: (String) -> Unit) { var name = layoutName val isJson = checkLayout(layoutContent, context) - ?: return infoDialog(context, context.getString(R.string.layout_error, "invalid layout file, ${Log.getLog().lastOrNull { it.tag == TAG }?.message}")) + ?: return infoDialog(context, context.getString(R.string.layout_error, "invalid layout file, ${Log.getLog(10).lastOrNull { it.tag == TAG }?.message}")) AlertDialog.Builder(context) .setTitle(R.string.title_layout_name_select) @@ -146,7 +146,7 @@ fun editCustomLayout(layoutName: String, context: Context, startContent: String? val isJson = checkLayout(content, context) if (isJson == null) { editCustomLayout(layoutName, context, content) - infoDialog(context, context.getString(R.string.layout_error, Log.getLog().lastOrNull { it.tag == TAG }?.message)) + infoDialog(context, context.getString(R.string.layout_error, Log.getLog(10).lastOrNull { it.tag == TAG }?.message)) } else { val wasJson = file.name.substringAfterLast(".") == "json" file.writeText(content) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/Log.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/Log.kt index 22a587792..c337dd5e9 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/Log.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/Log.kt @@ -81,7 +81,7 @@ object Log { private val logLines: MutableList = ArrayList(2000) /** returns a copy of [logLines] */ - fun getLog() = synchronized(logLines) { logLines.toList() } + fun getLog(maxLines: Int = logLines.size) = synchronized(logLines) { logLines.takeLast(maxLines) } } data class LogLine(val level: Char, val tag: String?, val message: String) {