enhancement: write crash report in append mode (#935)

This commit is contained in:
Diego Beraldin 2024-06-05 21:53:35 +02:00 committed by GitHub
parent 858ddc58ec
commit a6672c76f2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 25 additions and 10 deletions

View File

@ -218,6 +218,6 @@ class DefaultDetailOpenerTest {
}
companion object {
private val OPEN_DELAY = 1.seconds
private val OPEN_DELAY = 1.5.seconds
}
}

View File

@ -12,7 +12,7 @@ class DefaultCrashReportConfiguration(
override fun isEnabled(): Boolean =
context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE)
.getBoolean(KEY, true)
.getBoolean(KEY, false)
override fun setEnabled(value: Boolean) {
context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE).apply {

View File

@ -21,13 +21,10 @@ class DefaultCrashReportWriter(
} else {
File(context.cacheDir, FILE_NAME)
}
try {
val writer = FileWriter(logFile, false)
FileWriter(logFile, true).use { writer ->
writer.append(reportText)
writer.append("\n")
writer.flush()
writer.close()
} catch (e: Exception) {
e.printStackTrace()
}
}
}

View File

@ -1,15 +1,21 @@
package com.github.diegoberaldin.raccoonforlemmy.core.utils.debug
import kotlinx.cinterop.BetaInteropApi
import platform.Foundation.NSCachesDirectory
import platform.Foundation.NSFileHandle
import platform.Foundation.NSFileManager
import platform.Foundation.NSSearchPathForDirectoriesInDomains
import platform.Foundation.NSString
import platform.Foundation.NSUTF8StringEncoding
import platform.Foundation.NSUserDomainMask
import platform.Foundation.closeFile
import platform.Foundation.create
import platform.Foundation.dataUsingEncoding
import platform.Foundation.fileHandleForReadingAtPath
import platform.Foundation.stringByAppendingPathComponent
import platform.Foundation.writeData
@OptIn(BetaInteropApi::class)
class DefaultCrashReportWriter : CrashReportWriter {
companion object {
const val FILE_NAME = "crash_report.txt"
@ -17,8 +23,18 @@ class DefaultCrashReportWriter : CrashReportWriter {
override fun write(reportText: String) {
val paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, true)
val file = (paths.first() as NSString).stringByAppendingPathComponent(FILE_NAME)
val data = NSString.create(string = reportText).dataUsingEncoding(NSUTF8StringEncoding)
NSFileManager.defaultManager.createFileAtPath(file, data, null)
val path = (paths.first() as NSString).stringByAppendingPathComponent(FILE_NAME)
val data =
NSString.create(string = reportText + "\n")
.dataUsingEncoding(NSUTF8StringEncoding) ?: return
val existing = NSFileManager.defaultManager.fileExistsAtPath(path)
if (!existing) {
NSFileManager.defaultManager.createFileAtPath(path, data, null)
} else {
NSFileHandle.fileHandleForReadingAtPath(path)?.run {
writeData(data)
closeFile()
}
}
}
}

View File

@ -12,3 +12,5 @@ kotlin.mpp.androidSourceSetLayoutVersion=2
org.jetbrains.compose.experimental.uikit.enabled=true
#Native
kotlin.native.ignoreDisabledTargets=true
#AGP
kotlin.mpp.androidGradlePluginCompatibility.nowarn=true