Coverage Summary for Class: MainApplicationKt (com.vsevolodganin.clicktrack)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| MainApplicationKt |
0%
(0/1)
|
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/6)
|
package com.vsevolodganin.clicktrack
import android.app.Application
import android.content.Context
import android.os.StrictMode
import com.vsevolodganin.clicktrack.common.ApplicationBuildConfig
import com.vsevolodganin.clicktrack.di.component.ApplicationComponent
import com.vsevolodganin.clicktrack.theme.ThemeManager
import com.vsevolodganin.clicktrack.utils.cast
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.createGraphFactory
class MainApplication : Application() {
lateinit var component: ApplicationComponent
private set
@Inject
private lateinit var themeManager: ThemeManager
@Inject
private lateinit var applicationBuildConfig: ApplicationBuildConfig
override fun onCreate() {
super.onCreate()
component = createGraphFactory<ApplicationComponent.Factory>()
.create(this)
.also {
it.inject(this)
}
if (applicationBuildConfig.isDebug) {
strictMode()
}
themeManager.start()
}
private fun strictMode() {
StrictMode.setThreadPolicy(
StrictMode.ThreadPolicy.Builder()
.detectAll()
.penaltyLog()
.build(),
)
StrictMode.setVmPolicy(
StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyLog()
.build(),
)
}
}
val Context.applicationComponent: ApplicationComponent
get() = applicationContext.cast<MainApplication>().component