diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeData.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeData.kt index 6a90f9e2132e68c155bbe1691ea4d197f793da50..8966f716c4a63d2fd8142e319f03d034822c223a 100644 --- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeData.kt +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeData.kt @@ -165,7 +165,8 @@ object HomeData { val TEST_SUBMISSION_DONE_ITEM = PcrTestSubmissionDoneCard.Item( state = SubmissionDone( testRegisteredAt = Instant.now() - ) + ), + onClickAction = {} ) } } diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/hometestcards/ui/HomeTestCardsFragmentViewModel.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/hometestcards/ui/HomeTestCardsFragmentViewModel.kt index d4676cb5a038497c7547067f24d91da65ae576b9..a91ab2477efe5d3a744713b3dac6397d3d03be1a 100644 --- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/hometestcards/ui/HomeTestCardsFragmentViewModel.kt +++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/hometestcards/ui/HomeTestCardsFragmentViewModel.kt @@ -46,7 +46,7 @@ class HomeTestCardsFragmentViewModel @AssistedInject constructor( PcrTestErrorCard.Item(SubmissionStatePCR.TestError) {}, PcrTestNegativeCard.Item(SubmissionStatePCR.TestNegative(Instant.now())) {}, PcrTestPositiveCard.Item(SubmissionStatePCR.TestPositive(Instant.now())) {}, - PcrTestSubmissionDoneCard.Item(SubmissionStatePCR.SubmissionDone(Instant.now())), + PcrTestSubmissionDoneCard.Item(SubmissionStatePCR.SubmissionDone(Instant.now())) {}, RapidTestPendingCard.Item(SubmissionStateRAT.TestPending) {}, RapidTestReadyCard.Item(SubmissionStateRAT.TestResultReady) {}, RapidTestInvalidCard.Item(SubmissionStateRAT.TestInvalid) {}, @@ -54,7 +54,7 @@ class HomeTestCardsFragmentViewModel @AssistedInject constructor( RapidTestErrorCard.Item(SubmissionStateRAT.TestError) {}, RapidTestNegativeCard.Item(SubmissionStateRAT.TestNegative(Instant.now())) {}, RapidTestPositiveCard.Item(SubmissionStateRAT.TestPositive(Instant.now())) {}, - RapidTestSubmissionDoneCard.Item(SubmissionStateRAT.SubmissionDone(Instant.now())) + RapidTestSubmissionDoneCard.Item(SubmissionStateRAT.SubmissionDone(Instant.now())) {} ) ) 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 598d434590a5f7523820adcc5273c33aaf1a32e2..523b6f2a00fedbfc9ca08d03d5fb3023cb30f43a 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 @@ -9,6 +9,7 @@ import de.rki.coronawarnapp.coronatest.type.rapidantigen.RACoronaTest.State.POSI import de.rki.coronawarnapp.coronatest.type.rapidantigen.RACoronaTest.State.REDEEMED import de.rki.coronawarnapp.coronatest.type.rapidantigen.SubmissionStateRAT.FetchingResult import de.rki.coronawarnapp.coronatest.type.rapidantigen.SubmissionStateRAT.NoTest +import de.rki.coronawarnapp.coronatest.type.rapidantigen.SubmissionStateRAT.SubmissionDone import de.rki.coronawarnapp.coronatest.type.rapidantigen.SubmissionStateRAT.TestError import de.rki.coronawarnapp.coronatest.type.rapidantigen.SubmissionStateRAT.TestInvalid import de.rki.coronawarnapp.coronatest.type.rapidantigen.SubmissionStateRAT.TestNegative @@ -21,6 +22,7 @@ import org.joda.time.Instant fun RACoronaTest?.toSubmissionState(nowUTC: Instant = Instant.now(), coronaTestConfig: CoronaTestConfig) = when { this == null -> NoTest + isSubmitted -> SubmissionDone(testRegisteredAt = registeredAt) isProcessing -> FetchingResult lastError != null -> if (lastError is CwaServerError) TestPending else TestInvalid else -> when (getState(nowUTC, coronaTestConfig)) { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/homecards/PcrTestSubmissionDoneCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/homecards/PcrTestSubmissionDoneCard.kt index 9cb260b99330b0006922b70d69f3d6ec14cd3960..d4ed6af6b785854ccaa27f593a538961a89bc8bb 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/homecards/PcrTestSubmissionDoneCard.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/homecards/PcrTestSubmissionDoneCard.kt @@ -30,6 +30,7 @@ class PcrTestSubmissionDoneCard( } data class Item( - val state: SubmissionStatePCR.SubmissionDone + val state: SubmissionStatePCR.SubmissionDone, + val onClickAction: (Item) -> Unit, ) : TestResultItem.PCR } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/homecards/RapidTestSubmissionDoneCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/homecards/RapidTestSubmissionDoneCard.kt index c6e3866a09b30c10f864d7b732150a7f7c16c0fe..c41df314763cbfb4c4262019318a6b22232249b0 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/homecards/RapidTestSubmissionDoneCard.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/ui/homecards/RapidTestSubmissionDoneCard.kt @@ -30,6 +30,7 @@ class RapidTestSubmissionDoneCard( } data class Item( - val state: SubmissionStateRAT.SubmissionDone + val state: SubmissionStateRAT.SubmissionDone, + val onClickAction: (Item) -> Unit, ) : TestResultItem.RA } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt index 924c15e01aa2b9cb67e47d588f846b21671a89bf..73fc1c4d40237b9bb81b043a5d6fc82cf0e100d1 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt @@ -207,7 +207,9 @@ class HomeFragmentViewModel @AssistedInject constructor( .actionMainFragmentToSubmissionTestResultPendingFragment(testType = CoronaTest.Type.PCR) ) } - is SubmissionStatePCR.SubmissionDone -> PcrTestSubmissionDoneCard.Item(state) + is SubmissionStatePCR.SubmissionDone -> PcrTestSubmissionDoneCard.Item(state) { + // TODO + } } private fun RACoronaTest?.toTestCardItem(coronaTestConfig: CoronaTestConfig) = @@ -258,7 +260,9 @@ class HomeFragmentViewModel @AssistedInject constructor( is SubmissionStateRAT.TestOutdated -> RapidTestOutdatedCard.Item(state) { submissionRepository.removeTestFromDevice(type = CoronaTest.Type.RAPID_ANTIGEN) } - is SubmissionStateRAT.SubmissionDone -> RapidTestSubmissionDoneCard.Item(state) + is SubmissionStateRAT.SubmissionDone -> RapidTestSubmissionDoneCard.Item(state) { + // TODO + } } val homeItems: LiveData<List<HomeItem>> = combine( diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RapidAntigenCoronaTestExtensionsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RapidAntigenCoronaTestExtensionsTest.kt index ed1be6eb11aa6fa1b747bb51267f0a19f80c3a67..3998d73348ed29e81a1ed8c900b39d10529c7ea2 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RapidAntigenCoronaTestExtensionsTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RapidAntigenCoronaTestExtensionsTest.kt @@ -1,6 +1,7 @@ package de.rki.coronawarnapp.coronatest.type.rapidantigen import de.rki.coronawarnapp.appconfig.CoronaTestConfig +import de.rki.coronawarnapp.coronatest.server.CoronaTestResult import de.rki.coronawarnapp.util.TimeStamper import io.kotest.matchers.shouldBe import io.mockk.MockKAnnotations @@ -29,4 +30,23 @@ class RapidAntigenCoronaTestExtensionsTest : BaseTest() { val test: RACoronaTest? = null test.toSubmissionState(timeStamper.nowUTC, coronaTestConfig) shouldBe SubmissionStateRAT.NoTest } + + @Test + fun `submission done mapping`() = runBlockingTest { + val test = RACoronaTest( + identifier = "identifier", + registeredAt = Instant.ofEpochMilli(123), + registrationToken = "regtoken", + testResult = CoronaTestResult.RAT_POSITIVE, + testedAt = Instant.EPOCH, + isSubmitted = true, // <--- + dateOfBirth = null, + firstName = null, + lastName = null, + lastUpdatedAt = Instant.EPOCH, + ) + test.toSubmissionState(timeStamper.nowUTC, coronaTestConfig) shouldBe SubmissionStateRAT.SubmissionDone( + testRegisteredAt = Instant.ofEpochMilli(123) + ) + } }