diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/ConfigurationService.kt b/app/src/main/java/be/ugent/sel/studeez/domain/ConfigurationService.kt index c20b772..26aeba5 100644 --- a/app/src/main/java/be/ugent/sel/studeez/domain/ConfigurationService.kt +++ b/app/src/main/java/be/ugent/sel/studeez/domain/ConfigurationService.kt @@ -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 + } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseConfigurationService.kt b/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseConfigurationService.kt index 1e11fd8..e3db024 100644 --- a/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseConfigurationService.kt +++ b/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseConfigurationService.kt @@ -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 { + val jsonString: String = remoteConfig[DEFAULT_TIMERS].asString() + // Json is een lijst van timers + val timerJsonList: List = ToTimerConverter().jsonToTimerJsonList(jsonString) + return ToTimerConverter().convertToTimerInfoList(timerJsonList) + } + + companion object { + private const val DEFAULT_TIMERS = "default_timers" + } } \ No newline at end of file