From dfd09f45416cd362681e783e4aa9d8093db055ca Mon Sep 17 00:00:00 2001
From: Matthias Urhahn <matthias.urhahn@sap.com>
Date: Wed, 11 Nov 2020 15:18:26 +0100
Subject: [PATCH] The timeout checker doesn't need to force an app-config
 refresh, it's fine working with the latest available one. (#1573)

Co-authored-by: Ralf Gehrer <ralfgehrer@users.noreply.github.com>
---
 .../detectiontracker/DefaultExposureDetectionTracker.kt      | 3 ++-
 .../detectiontracker/DefaultExposureDetectionTrackerTest.kt  | 5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTracker.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTracker.kt
index d75e3d2c4..c5e4b8073 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTracker.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTracker.kt
@@ -10,6 +10,7 @@ import de.rki.coronawarnapp.util.mutate
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
@@ -48,7 +49,7 @@ class DefaultExposureDetectionTracker @Inject constructor(
                     hd.updateSafely {
                         val timeNow = timeStamper.nowUTC
                         Timber.v("Running timeout check (now=%s): %s", timeNow, values)
-                        val timeoutLimit = appConfigProvider.getAppConfig().overallDetectionTimeout
+                        val timeoutLimit = appConfigProvider.currentConfig.first().overallDetectionTimeout
                         mutate {
                             values.filter { it.isCalculating }.toList().forEach {
                                 if (timeNow.isAfter(it.startedAt.plus(timeoutLimit))) {
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTrackerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTrackerTest.kt
index f40ea545e..0521bdb63 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTrackerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/detectiontracker/DefaultExposureDetectionTrackerTest.kt
@@ -18,6 +18,7 @@ import io.mockk.just
 import io.mockk.verify
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runBlockingTest
 import org.joda.time.Duration
 import org.joda.time.Instant
@@ -44,7 +45,7 @@ class DefaultExposureDetectionTrackerTest : BaseTest() {
         coEvery { storage.load() } returns emptyMap()
         coEvery { storage.save(any()) } just Runs
 
-        coEvery { configProvider.getAppConfig() } returns appConfigData
+        coEvery { configProvider.currentConfig } returns flowOf(appConfigData)
         every { appConfigData.overallDetectionTimeout } returns Duration.standardMinutes(15)
     }
 
@@ -107,7 +108,7 @@ class DefaultExposureDetectionTrackerTest : BaseTest() {
             advanceUntilIdle()
         }
 
-        coVerify { configProvider.getAppConfig() }
+        coVerify { configProvider.currentConfig }
     }
 
     @Test
-- 
GitLab