ultrasonic-app-subsonic-and.../ultrasonic/src/main/kotlin/org/moire/ultrasonic/app/UApp.kt

66 lines
1.8 KiB
Kotlin
Raw Normal View History

package org.moire.ultrasonic.app
import android.content.Context
2020-05-29 11:23:51 +02:00
import androidx.multidex.MultiDexApplication
import org.koin.android.ext.koin.androidContext
import org.koin.core.context.startKoin
import org.koin.core.logger.Level
2020-09-30 14:47:59 +02:00
import org.moire.ultrasonic.BuildConfig
2020-06-30 17:09:13 +02:00
import org.moire.ultrasonic.di.appPermanentStorage
2021-02-05 21:45:50 +01:00
import org.moire.ultrasonic.di.applicationModule
2020-06-30 17:09:13 +02:00
import org.moire.ultrasonic.di.baseNetworkModule
import org.moire.ultrasonic.di.mediaPlayerModule
import org.moire.ultrasonic.di.musicServiceModule
import org.moire.ultrasonic.log.FileLoggerTree
import org.moire.ultrasonic.log.TimberKoinLogger
import org.moire.ultrasonic.util.Settings
2020-09-30 14:47:59 +02:00
import timber.log.Timber
import timber.log.Timber.DebugTree
/**
* The Main class of the Application
*/
2020-05-29 11:23:51 +02:00
class UApp : MultiDexApplication() {
init {
instance = this
}
override fun onCreate() {
super.onCreate()
2020-09-30 14:47:59 +02:00
if (BuildConfig.DEBUG) {
Timber.plant(DebugTree())
}
if (Settings.debugLogToFile) {
FileLoggerTree.plantToTimberForest()
2020-09-30 14:47:59 +02:00
}
startKoin {
// TODO Currently there is a bug in Koin which makes necessary to set the loglevel to ERROR
logger(TimberKoinLogger(Level.ERROR))
// logger(TimberKoinLogger(Level.INFO))
// declare Android context
androidContext(this@UApp)
// declare modules to use
modules(
2021-02-05 21:45:50 +01:00
applicationModule,
appPermanentStorage,
baseNetworkModule,
musicServiceModule,
mediaPlayerModule
)
}
}
companion object {
private var instance: UApp? = null
fun applicationContext(): Context {
return instance!!.applicationContext
}
}
}