Coverage Summary for Class: LoggerImpl (com.vsevolodganin.clicktrack.utils.log)

Class Method, % Branch, % Line, % Instruction, %
LoggerImpl 0% (0/3) 0% (0/2) 0% (0/8) 0% (0/37)
LoggerImpl$MetroContributionToApplicationScope
LoggerImpl$MetroContributionToApplicationScope$BindsMirror 0% (0/1) 0% (0/1) 0% (0/2)
LoggerImpl$MetroFactory 0% (0/1) 0% (0/1) 0% (0/18)
LoggerImpl$MetroFactory$Companion 0% (0/1) 0% (0/1) 0% (0/14)
LoggerImpl$NonFatalException 0% (0/1) 0% (0/1) 0% (0/4)
Total 0% (0/7) 0% (0/2) 0% (0/12) 0% (0/75)


 package com.vsevolodganin.clicktrack.utils.log
 
 import android.util.Log
 import com.google.firebase.crashlytics.FirebaseCrashlytics
 import com.vsevolodganin.clicktrack.common.ApplicationBuildConfig
 import com.vsevolodganin.clicktrack.di.component.ApplicationScope
 import dev.zacsweers.metro.ContributesBinding
 import dev.zacsweers.metro.Inject
 import dev.zacsweers.metro.SingleIn
 
 @SingleIn(ApplicationScope::class)
 @ContributesBinding(ApplicationScope::class)
 @Inject
 class LoggerImpl(
     private val firebaseCrashlytics: FirebaseCrashlytics,
     private val applicationBuildConfig: ApplicationBuildConfig,
 ) : Logger {
     override fun logError(tag: String, message: String) = logError(tag, message, null)
 
     override fun logError(tag: String, message: String, throwable: Throwable?) {
         firebaseCrashlytics.setCustomKey("Tag", tag)
         firebaseCrashlytics.recordException(NonFatalException(message, throwable))
 
         if (applicationBuildConfig.isDebug) {
             Log.e("ClickTrack::$tag", message, throwable)
         }
     }
 
     private class NonFatalException(message: String, throwable: Throwable?) : Exception(message, throwable)
 }