58 lines
No EOL
2 KiB
Kotlin
58 lines
No EOL
2 KiB
Kotlin
package com.tangem.tap
|
|
|
|
import android.app.Application
|
|
import com.google.firebase.ktx.Firebase
|
|
import com.google.firebase.remoteconfig.ktx.remoteConfig
|
|
import com.google.firebase.remoteconfig.ktx.remoteConfigSettings
|
|
import com.tangem.tap.common.images.PicassoHelper
|
|
import com.tangem.tap.common.redux.AppState
|
|
import com.tangem.tap.common.redux.appReducer
|
|
import com.tangem.tap.common.redux.global.GlobalAction
|
|
import com.tangem.tap.domain.config.ConfigManager
|
|
import com.tangem.tap.domain.config.LocalLoader
|
|
import com.tangem.tap.domain.config.RemoteLoader
|
|
import com.tangem.tap.network.NetworkConnectivity
|
|
import com.tangem.tap.network.createMoshi
|
|
import com.tangem.tap.persistence.PreferencesStorage
|
|
import com.tangem.wallet.BuildConfig
|
|
import org.rekotlin.Store
|
|
import timber.log.Timber
|
|
|
|
val store = Store(
|
|
reducer = ::appReducer,
|
|
middleware = AppState.getMiddleware(),
|
|
state = AppState()
|
|
)
|
|
lateinit var preferencesStorage: PreferencesStorage
|
|
|
|
class TapApplication : Application() {
|
|
override fun onCreate() {
|
|
super.onCreate()
|
|
|
|
if (BuildConfig.DEBUG) {
|
|
Timber.plant(Timber.DebugTree())
|
|
Firebase.remoteConfig.setConfigSettingsAsync(remoteConfigSettings {
|
|
this.minimumFetchIntervalInSeconds = 60
|
|
})
|
|
} else {
|
|
Firebase.remoteConfig.setConfigSettingsAsync(remoteConfigSettings {
|
|
this.minimumFetchIntervalInSeconds = 3600
|
|
})
|
|
}
|
|
|
|
NetworkConnectivity.createInstance(store, this)
|
|
preferencesStorage = PreferencesStorage(this)
|
|
PicassoHelper.initPicassoWithCaching(this)
|
|
|
|
loadConfigs()
|
|
}
|
|
|
|
|
|
private fun loadConfigs() {
|
|
val moshi = createMoshi()
|
|
val localLoader = LocalLoader(this, moshi)
|
|
val remoteLoader = RemoteLoader(moshi)
|
|
val configManager = ConfigManager(localLoader, remoteLoader)
|
|
configManager.load { store.dispatch(GlobalAction.SetConfigManager(configManager)) }
|
|
}
|
|
} |