Files
capod/app/src/main/java/eu/darken/cap/App.kt
T
2021-12-29 22:18:53 +01:00

50 lines
1.5 KiB
Kotlin

package eu.darken.cap
import android.app.Application
import androidx.hilt.work.HiltWorkerFactory
import androidx.work.Configuration
import com.getkeepsafe.relinker.ReLinker
import dagger.hilt.android.HiltAndroidApp
import eu.darken.cap.common.coroutine.AppScope
import eu.darken.cap.common.debug.bugreporting.BugReporter
import eu.darken.cap.common.debug.logging.*
import eu.darken.cap.monitor.core.worker.MonitorControl
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import javax.inject.Inject
@HiltAndroidApp
open class App : Application(), Configuration.Provider {
@Inject lateinit var workerFactory: HiltWorkerFactory
@Inject lateinit var bugReporter: BugReporter
@Inject lateinit var monitorControl: MonitorControl
@Inject @AppScope lateinit var appScope: CoroutineScope
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) Logging.install(LogCatLogger())
ReLinker
.log { message -> log(TAG) { "ReLinker: $message" } }
.loadLibrary(this, "bugsnag-plugin-android-anr")
bugReporter.setup()
log(TAG) { "onCreate() done! ${Exception().asLog()}" }
appScope.launch {
monitorControl.startMonitor(forceStart = true)
}
}
override fun getWorkManagerConfiguration(): Configuration = Configuration.Builder()
.setMinimumLoggingLevel(android.util.Log.VERBOSE)
.setWorkerFactory(workerFactory)
.build()
companion object {
internal val TAG = logTag("CAP")
}
}