Coverage Summary for Class: InjectExportWorkerComponentKt (com.vsevolodganin.clicktrack.di.component)
Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
InjectExportWorkerComponentKt |
0%
(0/1)
|
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/5)
|
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
)
}