Skip to content
Snippets Groups Projects
Commit 4756b0c8 authored by chris-cwa's avatar chris-cwa
Browse files

flow a pair

parent 92a675dc
No related branches found
No related tags found
No related merge requests found
......@@ -48,6 +48,7 @@ import de.rki.coronawarnapp.util.ui.viewBindingLazy
import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider
import de.rki.coronawarnapp.util.viewmodel.cwaViewModels
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.joda.time.DateTime
......@@ -165,7 +166,7 @@ class TestForAPIFragment : Fragment(R.layout.fragment_test_for_a_p_i),
buttonRetrieveExposureSummary.setOnClickListener {
vm.launch {
val summary = exposureSummaryRepository.exposureWindowEntities.toString()
val summary = exposureSummaryRepository.entities.first().first.toString()
withContext(Dispatchers.Main) {
showToast(summary)
......
......@@ -12,6 +12,7 @@ import de.rki.coronawarnapp.diagnosiskeys.storage.KeyCacheRepository
import de.rki.coronawarnapp.exception.ExceptionCategory
import de.rki.coronawarnapp.exception.reporting.report
import de.rki.coronawarnapp.nearby.ENFClient
import de.rki.coronawarnapp.risk.ExposureResultStore
import de.rki.coronawarnapp.risk.RiskLevel
import de.rki.coronawarnapp.risk.RiskLevelTask
import de.rki.coronawarnapp.risk.RiskLevels
......@@ -52,7 +53,8 @@ class TestRiskLevelCalculationFragmentCWAViewModel @AssistedInject constructor(
private val taskController: TaskController,
private val keyCacheRepository: KeyCacheRepository,
private val appConfigProvider: AppConfigProvider,
tracingCardStateProvider: TracingCardStateProvider
tracingCardStateProvider: TracingCardStateProvider,
private val exposureResultStore: ExposureResultStore
) : CWAViewModel(
dispatcherProvider = dispatcherProvider
) {
......@@ -99,6 +101,8 @@ class TestRiskLevelCalculationFragmentCWAViewModel @AssistedInject constructor(
// Export File Reset
keyCacheRepository.clear()
exposureResultStore.entities.value = Pair(emptyList(), null)
LocalData.lastCalculatedRiskLevel(RiskLevel.UNDETERMINED.raw)
LocalData.lastSuccessfullyCalculatedRiskLevel(RiskLevel.UNDETERMINED.raw)
LocalData.lastTimeDiagnosisKeysFromServerFetch(null)
......
......@@ -27,7 +27,7 @@ class ExposureStateUpdateWorker @AssistedInject constructor(
try {
Timber.v("worker to persist exposure summary started")
enfClient.exposureWindows().also {
exposureResultStore.exposureWindowEntities = Pair(it, null)
exposureResultStore.entities.value = Pair(it, null)
Timber.v("exposure summary state updated: $it")
}
......
......@@ -110,7 +110,7 @@ class DefaultRiskLevels @Inject constructor(
val aggregatedResult = aggregateResults(riskResultsPerWindow)
exposureResultStore.exposureWindowEntities = Pair(exposureWindows, aggregatedResult)
exposureResultStore.entities.value = Pair(exposureWindows, aggregatedResult)
val highRisk = aggregatedResult.totalRiskLevel == ProtoRiskLevel.HIGH
......
......@@ -2,25 +2,12 @@ package de.rki.coronawarnapp.risk
import com.google.android.gms.nearby.exposurenotification.ExposureWindow
import de.rki.coronawarnapp.risk.result.AggregatedRiskResult
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import javax.inject.Inject
class ExposureResultStore @Inject constructor() {
private val internalResult = MutableStateFlow<AggregatedRiskResult?>(null)
val result: Flow<AggregatedRiskResult?> = internalResult
private val internalWindows = MutableStateFlow<List<ExposureWindow>>(emptyList())
val windows: Flow<List<ExposureWindow>> = internalWindows
private var entities: Pair<List<ExposureWindow>, AggregatedRiskResult?> = Pair(emptyList(), null)
var exposureWindowEntities: Pair<List<ExposureWindow>, AggregatedRiskResult?>
get() = entities
set(value) {
entities = value
internalWindows.value = value.first
internalResult.value = value.second
}
val entities = MutableStateFlow<ExposureResult>(Pair(emptyList(), null))
}
typealias ExposureResult = Pair<List<ExposureWindow>, AggregatedRiskResult?>
package de.rki.coronawarnapp.appconfig.mapping
import de.rki.coronawarnapp.diagnosiskeys.server.LocationCode
import de.rki.coronawarnapp.server.protocols.internal.AppConfig
import de.rki.coronawarnapp.server.protocols.internal.v2.AppConfigAndroid
import de.rki.coronawarnapp.server.protocols.internal.v2.KeyDownloadParameters
import io.kotest.matchers.shouldBe
......
package de.rki.coronawarnapp.appconfig.mapping
import de.rki.coronawarnapp.server.protocols.internal.AppConfig
import de.rki.coronawarnapp.server.protocols.internal.v2.AppConfigAndroid
import de.rki.coronawarnapp.server.protocols.internal.v2.ExposureDetectionParameters.ExposureDetectionParametersAndroid
import io.kotest.matchers.shouldBe
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment