Coverage Summary for Class: MainApplication (com.vsevolodganin.clicktrack)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| MainApplication |
0%
(0/4)
|
0%
(0/2)
|
0%
(0/22)
|
0%
(0/66)
|
| MainApplication$MetroMembersInjector |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/22)
|
| MainApplication$MetroMembersInjector$Companion |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/15)
|
| Total |
0%
(0/6)
|
0%
(0/2)
|
0%
(0/24)
|
0%
(0/103)
|
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