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()
|
||||
|
|
|
@ -43,7 +43,6 @@ image-decoder = { module = "com.github.tachiyomiorg:image-decoder", version = "e
|
|||
injekt-core = { module = "com.github.inorichi.injekt:injekt-core", version = "65b0440" }
|
||||
|
||||
kermit = { module = "co.touchlab:kermit", version.ref = "kermit" }
|
||||
kermit-crashlytics = { module = "co.touchlab:kermit-crashlytics", version.ref = "kermit" }
|
||||
|
||||
material = { module = "com.google.android.material:material", version = "1.12.0" }
|
||||
material-design-dimens = { module = "com.dmitrymalkovich.android:material-design-dimens", version = "1.4" }
|
||||
|
@ -101,7 +100,7 @@ gradle-versions = { id = "com.github.ben-manes.versions", version = "0.42.0" }
|
|||
archive = [ "common-compress", "junrar" ]
|
||||
db = [ "sqldelight-android-driver", "sqldelight-android-paging", "sqldelight-coroutines" ]
|
||||
coil = [ "coil3", "coil3-svg", "coil3-gif", "coil3-okhttp" ]
|
||||
logging = [ "kermit", "kermit-crashlytics" ]
|
||||
logging = [ "kermit" ]
|
||||
sqlite = [ "sqlite-framework", "sqlite-ktx" ]
|
||||
test = [ "junit-api", "mockk" ]
|
||||
test-android = [ "junit-android" ]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue