mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
refactor: Implement the log writer myself
Kermit's official crashlytics integration enable firebase way too early.
This commit is contained in:
parent
d4f360c75d
commit
a8b1c7f05e
3 changed files with 26 additions and 5 deletions
24
app/src/main/java/dev/yokai/core/CrashlyticsLogWriter.kt
Normal file
24
app/src/main/java/dev/yokai/core/CrashlyticsLogWriter.kt
Normal file
|
@ -0,0 +1,24 @@
|
|||
package dev.yokai.core
|
||||
|
||||
import co.touchlab.kermit.DefaultFormatter
|
||||
import co.touchlab.kermit.LogWriter
|
||||
import co.touchlab.kermit.Message
|
||||
import co.touchlab.kermit.Severity
|
||||
import co.touchlab.kermit.Tag
|
||||
import com.google.firebase.crashlytics.ktx.crashlytics
|
||||
import com.google.firebase.ktx.Firebase
|
||||
|
||||
class CrashlyticsLogWriter : LogWriter() {
|
||||
override fun isLoggable(tag: String, severity: Severity): Boolean = severity >= Severity.Info
|
||||
|
||||
override fun log(severity: Severity, message: String, tag: String, throwable: Throwable?) {
|
||||
try {
|
||||
Firebase.crashlytics.log(DefaultFormatter.formatMessage(severity, Tag(tag), Message(message)))
|
||||
if (throwable != null && severity >= Severity.Warn) {
|
||||
Firebase.crashlytics.recordException(throwable)
|
||||
}
|
||||
} catch (_: Exception) {
|
||||
// Probably crashlytics not yet initialized or disabled
|
||||
}
|
||||
}
|
||||
}
|
|
@ -22,9 +22,7 @@ import androidx.lifecycle.LifecycleOwner
|
|||
import androidx.lifecycle.ProcessLifecycleOwner
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.multidex.MultiDex
|
||||
import co.touchlab.kermit.ExperimentalKermitApi
|
||||
import co.touchlab.kermit.Logger
|
||||
import co.touchlab.kermit.crashlytics.CrashlyticsLogWriter
|
||||
import coil3.ImageLoader
|
||||
import coil3.PlatformContext
|
||||
import coil3.SingletonImageLoader
|
||||
|
@ -36,6 +34,7 @@ import coil3.request.crossfade
|
|||
import coil3.util.DebugLogger
|
||||
import com.google.firebase.crashlytics.ktx.crashlytics
|
||||
import com.google.firebase.ktx.Firebase
|
||||
import dev.yokai.core.CrashlyticsLogWriter
|
||||
import dev.yokai.core.di.AppModule
|
||||
import dev.yokai.core.di.DomainModule
|
||||
import dev.yokai.core.di.PreferenceModule
|
||||
|
@ -73,7 +72,6 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F
|
|||
|
||||
private val disableIncognitoReceiver = DisableIncognitoReceiver()
|
||||
|
||||
@OptIn(ExperimentalKermitApi::class)
|
||||
@SuppressLint("LaunchActivityFromNotification")
|
||||
override fun onCreate() {
|
||||
super<Application>.onCreate()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue