From 8e35f5075b2ce1a2e47415ae2bba7c158de9cbfe Mon Sep 17 00:00:00 2001
From: Matthias Urhahn <matthias.urhahn@sap.com>
Date: Thu, 29 Apr 2021 12:53:30 +0200
Subject: [PATCH] Fix crashing PCR test result update worker (DEV) (#3003)

* Correctly filter results to those that we targeted during refresh.

* Remove unnecessary test result logging, will be logged elsewhere already.

* Spacing.
---
 .../coronawarnapp/coronatest/CoronaTestRepository.kt   |  2 +-
 .../type/pcr/execution/PCRResultRetrievalWorker.kt     | 10 +++-------
 .../rapidantigen/execution/RAResultRetrievalWorker.kt  |  3 ++-
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/CoronaTestRepository.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/CoronaTestRepository.kt
index 3e35ebfa0..bcac8ebee 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/CoronaTestRepository.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/CoronaTestRepository.kt
@@ -188,7 +188,7 @@ class CoronaTestRepository @Inject constructor(
             }
         }
 
-        return refreshedData.values.toSet()
+        return refreshedData.values.filter { toRefresh.contains(it.identifier) }.toSet()
     }
 
     suspend fun clear() {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/execution/PCRResultRetrievalWorker.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/execution/PCRResultRetrievalWorker.kt
index 74c5e98d6..0a9076d06 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/execution/PCRResultRetrievalWorker.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/execution/PCRResultRetrievalWorker.kt
@@ -9,7 +9,6 @@ import dagger.assisted.AssistedInject
 import de.rki.coronawarnapp.coronatest.CoronaTestRepository
 import de.rki.coronawarnapp.coronatest.latestPCRT
 import de.rki.coronawarnapp.coronatest.type.CoronaTest
-import de.rki.coronawarnapp.coronatest.type.pcr.PCRCoronaTest
 import de.rki.coronawarnapp.util.worker.InjectedWorkerFactory
 import de.rki.coronawarnapp.worker.BackgroundConstants
 import kotlinx.coroutines.flow.first
@@ -42,12 +41,9 @@ class PCRResultRetrievalWorker @AssistedInject constructor(
                 return Result.success()
             }
 
-            Timber.tag(TAG).d(" $id Running task.")
-            val coronaTest = coronaTestRepository.refresh(
-                type = CoronaTest.Type.PCR
-            ).single() as PCRCoronaTest
-            val testResult = coronaTest.testResult
-            Timber.tag(TAG).d("$id: Test result retrieved is $testResult")
+            Timber.tag(TAG).v("$id Running PCR test result refresh.")
+            coronaTestRepository.refresh(type = CoronaTest.Type.PCR)
+            Timber.tag(TAG).d("$id: PCR test result refreshed.")
 
             return Result.success()
         } catch (e: Exception) {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/execution/RAResultRetrievalWorker.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/execution/RAResultRetrievalWorker.kt
index f390af2d9..33e3b2f49 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/execution/RAResultRetrievalWorker.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/execution/RAResultRetrievalWorker.kt
@@ -46,8 +46,9 @@ class RAResultRetrievalWorker @AssistedInject constructor(
                 Timber.tag(TAG).w("There is no RapidAntigen test available!?")
                 return Result.success()
             }
-
+            Timber.tag(TAG).v("$id Running RA test result refresh.")
             coronaTestRepository.refresh(CoronaTest.Type.RAPID_ANTIGEN)
+            Timber.tag(TAG).d("$id: RA test result refreshed.")
 
             val nowUTC = timeStamper.nowUTC
             val days = Duration(rat.registeredAt, nowUTC).standardDays
-- 
GitLab