Coverage Summary for Class: InjectExportWorkerComponent (com.vsevolodganin.clicktrack.di.component)

Class Class, % Method, % Branch, % Line, % Instruction, %
InjectExportWorkerComponent 0% (0/1) 0% (0/26) 0% (0/18) 0% (0/63) 0% (0/335)


 package com.vsevolodganin.clicktrack.di.component
 
 import android.content.ContentResolver
 import androidx.core.app.NotificationManagerCompat
 import androidx.work.WorkManager
 import com.vsevolodganin.clicktrack.Database
 import com.vsevolodganin.clicktrack.IntentFactory
 import com.vsevolodganin.clicktrack.common.MediaStoreAccess
 import com.vsevolodganin.clicktrack.export.ExportToAudioFile
 import com.vsevolodganin.clicktrack.notification.NotificationChannels
 import com.vsevolodganin.clicktrack.primitiveaudio.PrimitiveAudioExtractor
 import com.vsevolodganin.clicktrack.primitiveaudio.PrimitiveAudioMonoRenderer
 import com.vsevolodganin.clicktrack.primitiveaudio.PrimitiveAudioProvider
 import com.vsevolodganin.clicktrack.soundlibrary.UserSelectedSounds
 import com.vsevolodganin.clicktrack.storage.ClickSoundsRepository
 import com.vsevolodganin.clicktrack.storage.ClickTrackRepository
 import com.vsevolodganin.clicktrack.utils.log.Logger
 import com.vsevolodganin.clicktrack.utils.log.LoggerImpl
 import kotlin.reflect.KClass
 import kotlinx.serialization.json.Json
 import me.tatarka.inject.`internal`.ScopedComponent
 
 public fun KClass<ExportWorkerComponent>.create(applicationComponent: ApplicationComponent):
     ExportWorkerComponent = InjectExportWorkerComponent(applicationComponent)
 
 public class InjectExportWorkerComponent(
   applicationComponent: ApplicationComponent,
 ) : ExportWorkerComponent(applicationComponent) {
   private val database: Database
     get() {
       require(applicationComponent is ScopedComponent)
       return applicationComponent._scoped.get("com.vsevolodganin.clicktrack.Database") {
         applicationComponent.provideDatabase(
           application = applicationComponent.application
         )
       }
     }
 
   private val json: Json
     get() {
       require(applicationComponent is ScopedComponent)
       return applicationComponent._scoped.get("kotlinx.serialization.json.Json") {
         applicationComponent.provideJson()
       }
     }
 
   private val logger: Logger
     get() {
       require(applicationComponent is ScopedComponent)
       return with(applicationComponent) {
         _scoped.get("com.vsevolodganin.clicktrack.utils.log.LoggerImpl") {
           LoggerImpl(
             firebaseCrashlytics =
                 _scoped.get("com.google.firebase.crashlytics.FirebaseCrashlytics") {
               provideCrashlytics()
             }
           )
         }.binding
       }
     }
 
   private val contentResolver: ContentResolver
     get() {
       require(applicationComponent is ScopedComponent)
       return applicationComponent._scoped.get("android.content.ContentResolver") {
         applicationComponent.provideContentResolver(
           application = applicationComponent.application
         )
       }
     }
 
   override val workManager: WorkManager
     get() {
       require(applicationComponent is ScopedComponent)
       return applicationComponent._scoped.get("androidx.work.WorkManager") {
         applicationComponent.provideWorkManager(
           application = applicationComponent.application
         )
       }
     }
 
   override val clickTrackRepository: ClickTrackRepository
     get() {
       require(applicationComponent is ScopedComponent)
       return applicationComponent._scoped.get("com.vsevolodganin.clicktrack.storage.ClickTrackRepository") {
         ClickTrackRepository(
           database = database,
           json = json
         )
       }
     }
 
   override val exportToAudioFile: ExportToAudioFile
     get() {
       require(applicationComponent is ScopedComponent)
       return ExportToAudioFile(
         application = applicationComponent.application,
         primitiveAudioMonoRendererFactory = { arg0 ->
           PrimitiveAudioMonoRenderer(
             targetSampleRate = arg0,
             primitiveAudioProvider =
                 applicationComponent._scoped.get("com.vsevolodganin.clicktrack.primitiveaudio.PrimitiveAudioProvider") {
               PrimitiveAudioProvider(
                 application = applicationComponent.application,
                 primitiveAudioExtractor =
                     applicationComponent._scoped.get("com.vsevolodganin.clicktrack.primitiveaudio.PrimitiveAudioExtractor") {
                   PrimitiveAudioExtractor(
                     logger = logger
                   )
                 },
                 contentResolver = contentResolver,
                 logger = logger
               )
             }
           )
         },
         userSelectedSounds =
             applicationComponent._scoped.get("com.vsevolodganin.clicktrack.soundlibrary.UserSelectedSounds") {
           UserSelectedSounds(
             userPreferencesRepository = applicationComponent.userPreferences,
             clickSoundsRepository =
                 applicationComponent._scoped.get("com.vsevolodganin.clicktrack.storage.ClickSoundsRepository") {
               ClickSoundsRepository(
                 database = database,
                 json = json
               )
             }
           )
         },
         logger = logger
       )
     }
 
   override val mediaStoreAccess: MediaStoreAccess
     get() = MediaStoreAccess(
       resolver = contentResolver
     )
 
   override val notificationManager: NotificationManagerCompat
     get() {
       require(applicationComponent is ScopedComponent)
       return applicationComponent._scoped.get("androidx.core.app.NotificationManagerCompat") {
         applicationComponent.provideNotificationManager(
           application = applicationComponent.application
         )
       }
     }
 
   override val notificationChannels: NotificationChannels
     get() {
       require(applicationComponent is ScopedComponent)
       return applicationComponent._scoped.get("com.vsevolodganin.clicktrack.notification.NotificationChannels") {
         NotificationChannels(
           application = applicationComponent.application,
           notificationManager = notificationManager
         )
       }
     }
 
   override val intentFactory: IntentFactory
     get() = IntentFactory(
       application = applicationComponent.application
     )
 }