wulkanowy-mod/app/src/main/java/io/github/wulkanowy/WulkanowyApp.kt

63 lines
2.1 KiB
Kotlin
Raw Normal View History

2018-07-18 14:13:57 -05:00
package io.github.wulkanowy
2018-08-22 15:31:17 -05:00
import android.content.Context
import androidx.appcompat.app.AppCompatDelegate
2018-10-20 13:59:46 -05:00
import androidx.multidex.MultiDex
import androidx.work.Configuration
import androidx.work.WorkManager
2018-07-18 14:13:57 -05:00
import com.crashlytics.android.Crashlytics
import com.crashlytics.android.core.CrashlyticsCore
import com.jakewharton.threetenabp.AndroidThreeTen
import dagger.android.AndroidInjector
import dagger.android.support.DaggerApplication
import eu.davidea.flexibleadapter.FlexibleAdapter
2018-10-03 14:28:23 -05:00
import eu.davidea.flexibleadapter.utils.Log
2018-07-18 14:13:57 -05:00
import io.fabric.sdk.android.Fabric
2018-10-03 14:28:23 -05:00
import io.github.wulkanowy.BuildConfig.DEBUG
2019-02-13 14:44:40 -06:00
import io.github.wulkanowy.data.repositories.preferences.PreferencesRepository
2018-07-18 14:13:57 -05:00
import io.github.wulkanowy.di.DaggerAppComponent
import io.github.wulkanowy.services.sync.SyncWorkerFactory
2018-10-03 14:28:23 -05:00
import io.github.wulkanowy.utils.CrashlyticsTree
import io.github.wulkanowy.utils.DebugLogTree
2018-07-18 14:13:57 -05:00
import timber.log.Timber
import javax.inject.Inject
2018-07-18 14:13:57 -05:00
class WulkanowyApp : DaggerApplication() {
@Inject
lateinit var prefRepository: PreferencesRepository
@Inject
lateinit var workerFactory: SyncWorkerFactory
2018-08-22 15:31:17 -05:00
override fun attachBaseContext(base: Context?) {
super.attachBaseContext(base)
MultiDex.install(this)
}
2018-07-18 14:13:57 -05:00
override fun onCreate() {
super.onCreate()
AndroidThreeTen.init(this)
initializeFabric()
2018-10-03 14:28:23 -05:00
if (DEBUG) enableDebugLog()
AppCompatDelegate.setDefaultNightMode(prefRepository.currentTheme)
WorkManager.initialize(this, Configuration.Builder().setWorkerFactory(workerFactory).build())
2018-07-18 14:13:57 -05:00
}
private fun enableDebugLog() {
2018-11-03 08:49:20 -05:00
Timber.plant(DebugLogTree())
2018-10-03 14:28:23 -05:00
FlexibleAdapter.enableLogs(Log.Level.DEBUG)
2018-07-18 14:13:57 -05:00
}
private fun initializeFabric() {
2018-11-03 08:49:20 -05:00
Fabric.with(Fabric.Builder(this).kits(
2018-12-13 17:20:54 -06:00
Crashlytics.Builder().core(CrashlyticsCore.Builder().disabled(!BuildConfig.CRASHLYTICS_ENABLED).build()).build()
2018-11-03 08:49:20 -05:00
).debuggable(BuildConfig.DEBUG).build())
Timber.plant(CrashlyticsTree())
2018-07-18 14:13:57 -05:00
}
2018-10-03 14:28:23 -05:00
override fun applicationInjector(): AndroidInjector<out DaggerApplication> {
return DaggerAppComponent.builder().create(this)
}
2018-07-18 14:13:57 -05:00
}