Configuration service fetches default timers
This commit is contained in:
parent
0c183b9cc7
commit
2a546146a3
2 changed files with 42 additions and 1 deletions
|
@ -1,4 +1,11 @@
|
|||
package be.ugent.sel.studeez.domain
|
||||
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
|
||||
|
||||
interface ConfigurationService {
|
||||
|
||||
suspend fun fetchConfiguration(): Boolean
|
||||
|
||||
fun getDefaultTimers(): List<TimerInfo>
|
||||
|
||||
}
|
|
@ -1,4 +1,38 @@
|
|||
package be.ugent.sel.studeez.domain.implementation
|
||||
|
||||
class FirebaseConfigurationService {
|
||||
import be.ugent.sel.studeez.data.local.models.timer_info.*
|
||||
import be.ugent.sel.studeez.domain.ConfigurationService
|
||||
import com.google.firebase.ktx.Firebase
|
||||
import com.google.firebase.remoteconfig.ktx.get
|
||||
import com.google.firebase.remoteconfig.ktx.remoteConfig
|
||||
import com.google.firebase.remoteconfig.ktx.remoteConfigSettings
|
||||
import com.google.gson.Gson
|
||||
import kotlinx.coroutines.tasks.await
|
||||
import javax.inject.Inject
|
||||
|
||||
class FirebaseConfigurationService @Inject constructor() : ConfigurationService {
|
||||
|
||||
init {
|
||||
// fetch configs elke keer als app wordt opgestart
|
||||
val configSettings = remoteConfigSettings { minimumFetchIntervalInSeconds = 0 }
|
||||
remoteConfig.setConfigSettingsAsync(configSettings)
|
||||
}
|
||||
|
||||
private val remoteConfig
|
||||
get() = Firebase.remoteConfig
|
||||
|
||||
override suspend fun fetchConfiguration(): Boolean {
|
||||
return remoteConfig.fetchAndActivate().await()
|
||||
}
|
||||
|
||||
override fun getDefaultTimers(): List<TimerInfo> {
|
||||
val jsonString: String = remoteConfig[DEFAULT_TIMERS].asString()
|
||||
// Json is een lijst van timers
|
||||
val timerJsonList: List<TimerJson> = ToTimerConverter().jsonToTimerJsonList(jsonString)
|
||||
return ToTimerConverter().convertToTimerInfoList(timerJsonList)
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val DEFAULT_TIMERS = "default_timers"
|
||||
}
|
||||
}
|
Reference in a new issue