Pass uncaught exception to default handler in GlobalExceptionHandler

Fixes #1347

(cherry picked from commit f3a2f566c8a09ab862758ae69b43da2a2cd8f1db)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/crash/GlobalExceptionHandler.kt
This commit is contained in:
AntsyLich 2024-10-19 22:43:05 +06:00 committed by Jobobby04
parent 7f37989c4e
commit 310b1ad69b

View File

@ -2,8 +2,6 @@ package eu.kanade.tachiyomi.crash
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import com.google.firebase.crashlytics.ktx.crashlytics
import com.google.firebase.ktx.Firebase
import kotlinx.serialization.KSerializer import kotlinx.serialization.KSerializer
import kotlinx.serialization.descriptors.PrimitiveKind import kotlinx.serialization.descriptors.PrimitiveKind
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
@ -13,7 +11,6 @@ import kotlinx.serialization.encoding.Encoder
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import logcat.LogPriority import logcat.LogPriority
import tachiyomi.core.common.util.system.logcat import tachiyomi.core.common.util.system.logcat
import kotlin.system.exitProcess
class GlobalExceptionHandler private constructor( class GlobalExceptionHandler private constructor(
private val applicationContext: Context, private val applicationContext: Context,
@ -33,15 +30,10 @@ class GlobalExceptionHandler private constructor(
} }
override fun uncaughtException(thread: Thread, exception: Throwable) { override fun uncaughtException(thread: Thread, exception: Throwable) {
try {
logcat(priority = LogPriority.ERROR, throwable = exception) logcat(priority = LogPriority.ERROR, throwable = exception)
Firebase.crashlytics.recordException(exception)
launchActivity(applicationContext, activityToBeLaunched, exception) launchActivity(applicationContext, activityToBeLaunched, exception)
exitProcess(0)
} catch (_: Exception) {
defaultHandler.uncaughtException(thread, exception) defaultHandler.uncaughtException(thread, exception)
} }
}
private fun launchActivity( private fun launchActivity(
applicationContext: Context, applicationContext: Context,