From 11fa50561609d9c22f7a0ff34ff9a905a83f7d2e Mon Sep 17 00:00:00 2001
From: Kolya Opahle <k.opahle@sap.com>
Date: Mon, 31 May 2021 14:38:19 +0200
Subject: [PATCH] For RAT the test date is not set correct (EXPOSUREAPP-7555)
 (#3328)

Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com>
---
 .../coronatest/type/rapidantigen/RACoronaTest.kt         | 9 +++++----
 .../rapidantigen/RapidAntigenCoronaTestExtensions.kt     | 4 ++--
 .../ui/testresults/negative/RATResultNegativeFragment.kt | 2 +-
 .../testresults/negative/RATResultNegativeViewModel.kt   | 2 +-
 .../rki/coronawarnapp/ui/view/TestResultSectionView.kt   | 2 +-
 5 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RACoronaTest.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RACoronaTest.kt
index 126787cc0..fd54e5b7c 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RACoronaTest.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RACoronaTest.kt
@@ -71,10 +71,8 @@ data class RACoronaTest(
     override val type: CoronaTest.Type
         get() = CoronaTest.Type.RAPID_ANTIGEN
 
-    private fun isOutdated(nowUTC: Instant, testConfig: CoronaTestConfig): Boolean {
-        val timeoutTime = sampleCollectedAt ?: testedAt
-        return timeoutTime.plus(testConfig.coronaRapidAntigenTestParameters.hoursToDeemTestOutdated).isBefore(nowUTC)
-    }
+    private fun isOutdated(nowUTC: Instant, testConfig: CoronaTestConfig): Boolean =
+        testTakenAt.plus(testConfig.coronaRapidAntigenTestParameters.hoursToDeemTestOutdated).isBefore(nowUTC)
 
     fun getState(nowUTC: Instant, testConfig: CoronaTestConfig) =
         if (testResult == RAT_NEGATIVE && isOutdated(nowUTC, testConfig)) {
@@ -91,6 +89,9 @@ data class RACoronaTest(
             }
         }
 
+    val testTakenAt: Instant
+        get() = sampleCollectedAt ?: testedAt
+
     override val isFinal: Boolean
         get() = testResult == RAT_REDEEMED
 
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RapidAntigenCoronaTestExtensions.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RapidAntigenCoronaTestExtensions.kt
index 2b25be3b5..82089caae 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RapidAntigenCoronaTestExtensions.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RapidAntigenCoronaTestExtensions.kt
@@ -28,10 +28,10 @@ fun RACoronaTest?.toSubmissionState(nowUTC: Instant = Instant.now(), coronaTestC
     else -> when (getState(nowUTC, coronaTestConfig)) {
         INVALID -> TestError
         POSITIVE -> {
-            if (isViewed) TestPositive(testRegisteredAt = testedAt)
+            if (isViewed) TestPositive(testRegisteredAt = testTakenAt)
             else TestResultReady
         }
-        NEGATIVE -> TestNegative(testRegisteredAt = testedAt)
+        NEGATIVE -> TestNegative(testRegisteredAt = testTakenAt)
         REDEEMED -> TestInvalid
         PENDING -> TestPending
         OUTDATED -> TestOutdated
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/testresults/negative/RATResultNegativeFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/testresults/negative/RATResultNegativeFragment.kt
index 0906f2e79..19fee1b59 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/testresults/negative/RATResultNegativeFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/testresults/negative/RATResultNegativeFragment.kt
@@ -65,7 +65,7 @@ class RATResultNegativeFragment : Fragment(R.layout.fragment_submission_antigen_
             }
         }
 
-        val localTime = testAge.test.testedAt.toUserTimeZone()
+        val localTime = testAge.test.testTakenAt.toUserTimeZone()
         resultReceivedTimeAndDate.text = getString(
             R.string.coronatest_negative_antigen_result_time_date_placeholder,
             localTime?.toString(DATE_FORMAT),
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/testresults/negative/RATResultNegativeViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/testresults/negative/RATResultNegativeViewModel.kt
index 607dde740..9e80a0bff 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/testresults/negative/RATResultNegativeViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/testresults/negative/RATResultNegativeViewModel.kt
@@ -47,7 +47,7 @@ class RATResultNegativeViewModel @AssistedInject constructor(
         }
 
         val nowUTC = timeStamper.nowUTC
-        val age = nowUTC.millis - testedAt.millis
+        val age = nowUTC.millis - testTakenAt.millis
         val ageText = formatter.print(Duration(age).toPeriod())
 
         return TestAge(test = this, ageText)
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultSectionView.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultSectionView.kt
index 2dd7bb977..86a23f07d 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultSectionView.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultSectionView.kt
@@ -81,7 +81,7 @@ constructor(
         return if (coronaTest is RACoronaTest) {
             context.getString(
                 R.string.ag_homescreen_card_rapid_body_result_date,
-                coronaTest.testedAt.toDate()?.toUIFormat(context)
+                coronaTest.testTakenAt.toDate()?.toUIFormat(context)
             )
         } else {
             context.getString(
-- 
GitLab