diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/covidcertificate/person/ui/details/PersonDetailsFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/covidcertificate/person/ui/details/PersonDetailsFragmentTest.kt index d75fbb9a32c..c311ecae8cb 100644 --- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/covidcertificate/person/ui/details/PersonDetailsFragmentTest.kt +++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/covidcertificate/person/ui/details/PersonDetailsFragmentTest.kt @@ -248,7 +248,6 @@ class PersonDetailsFragmentTest : BaseUITest() { every { isFinalShot } returns final every { qrCodeToDisplay } returns CoilQrCode(ScreenshotCertificateTestData.vaccinationCertificate) every { isValid } returns true - every { isBooster } returns booster every { getState() } returns CwaCovidCertificate.State.Valid(Instant.now().plus(20)) } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/person/core/PersonCertificatesExtensions.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/person/core/PersonCertificatesExtensions.kt index de90e849b92..02c37e3c785 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/person/core/PersonCertificatesExtensions.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/person/core/PersonCertificatesExtensions.kt @@ -75,9 +75,6 @@ private fun Collection.rule3FindRecentLastShot( nowUtc: Instant ): CwaCovidCertificate? = this .filterIsInstance() - .filter { - with(it.rawCertificate.vaccination) { doseNumber == totalSeriesOfDoses } - } .filter { Days.daysBetween(it.rawCertificate.vaccination.vaccinatedOn, nowUtc.toLocalDateUtc()).days > 14 } @@ -113,9 +110,6 @@ private fun Collection.rule5findTooRecentFinalShot( nowUtc: Instant ): CwaCovidCertificate? = this .filterIsInstance() - .filter { - with(it.rawCertificate.vaccination) { doseNumber == totalSeriesOfDoses } - } .filter { Days.daysBetween(it.rawCertificate.vaccination.vaccinatedOn, nowUtc.toLocalDateUtc()).days <= 14 } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/person/ui/details/items/VaccinationCertificateCard.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/person/ui/details/items/VaccinationCertificateCard.kt index fcac3641829..7eed43fd856 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/person/ui/details/items/VaccinationCertificateCard.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/person/ui/details/items/VaccinationCertificateCard.kt @@ -31,14 +31,11 @@ class VaccinationCertificateCard(parent: ViewGroup) : val curItem = payloads.filterIsInstance().singleOrNull() ?: item val certificate = curItem.certificate root.setOnClickListener { curItem.onClick() } - vaccinationDosesInfo.text = when (certificate.isBooster) { - true -> context.getString(R.string.vaccination_booster_certificate_title) - else -> context.getString( - R.string.vaccination_certificate_doses, - certificate.doseNumber, - certificate.totalSeriesOfDoses - ) - } + vaccinationDosesInfo.text = context.getString( + R.string.vaccination_certificate_doses, + certificate.doseNumber, + certificate.totalSeriesOfDoses + ) certificateDate.text = context.getString( R.string.vaccination_certificate_vaccinated_on, @@ -57,9 +54,6 @@ class VaccinationCertificateCard(parent: ViewGroup) : // Invalid state first !certificate.isValid -> R.drawable.ic_certificate_invalid - // Booster Vaccination - certificate.isBooster -> R.drawable.ic_vaccination_immune - // Final shot certificate.isFinalShot -> when (curItem.status) { IMMUNITY -> R.drawable.ic_vaccination_immune diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinatedPerson.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinatedPerson.kt index de696fb0a43..bc57cb7597d 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinatedPerson.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinatedPerson.kt @@ -53,8 +53,7 @@ data class VaccinatedPerson( fun getVaccinationStatus(nowUTC: Instant = Instant.now()): Status { val daysToImmunity = getDaysUntilImmunity(nowUTC) ?: return Status.INCOMPLETE - val isImmune = daysToImmunity <= 0 || isFirstVaccinationDoseAfterRecovery() || - getNewestFullDose()?.isBooster == true + val isImmune = daysToImmunity <= 0 || isFirstVaccinationDoseAfterRecovery() || isBooster() return when { isImmune -> Status.IMMUNITY else -> Status.COMPLETE @@ -81,6 +80,16 @@ data class VaccinatedPerson( } } + private fun isBooster(): Boolean { + val boosterVaccination = getNewestFullDose()?.rawCertificate?.vaccination + return if (boosterVaccination != null) { + when (boosterVaccination.medicalProductId) { + BIONTECH, ASTRA, MODERNA -> boosterVaccination.doseNumber > 2 + else -> boosterVaccination.doseNumber > 1 + } + } else false + } + enum class Status { INCOMPLETE, COMPLETE, diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinationCertificate.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinationCertificate.kt index d3642cfb14d..5af00ca8812 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinationCertificate.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinationCertificate.kt @@ -25,6 +25,4 @@ interface VaccinationCertificate : CwaCovidCertificate { override val rawCertificate: VaccinationDccV1 val isFinalShot get() = doseNumber == totalSeriesOfDoses - - val isBooster get() = doseNumber > totalSeriesOfDoses } diff --git a/Corona-Warn-App/src/main/res/values-bg/covid_certificate_strings.xml b/Corona-Warn-App/src/main/res/values-bg/covid_certificate_strings.xml index c4047aa2f5d..8f8a80236f5 100644 --- a/Corona-Warn-App/src/main/res/values-bg/covid_certificate_strings.xml +++ b/Corona-Warn-App/src/main/res/values-bg/covid_certificate_strings.xml @@ -68,8 +68,6 @@ "Ваксинация %1$d от %2$d" "Сертификат за ваксинация" - - "Ваксиниране с бустерна доза" diff --git a/Corona-Warn-App/src/main/res/values-de/covid_certificate_strings.xml b/Corona-Warn-App/src/main/res/values-de/covid_certificate_strings.xml index e1ff7ac8766..a48c1d0c58c 100644 --- a/Corona-Warn-App/src/main/res/values-de/covid_certificate_strings.xml +++ b/Corona-Warn-App/src/main/res/values-de/covid_certificate_strings.xml @@ -69,8 +69,6 @@ Impfung %1$d von %2$d Impfzertifikat - - Auffrischungsimpfung diff --git a/Corona-Warn-App/src/main/res/values-pl/covid_certificate_strings.xml b/Corona-Warn-App/src/main/res/values-pl/covid_certificate_strings.xml index fb26cee8fef..66f1cffad4a 100644 --- a/Corona-Warn-App/src/main/res/values-pl/covid_certificate_strings.xml +++ b/Corona-Warn-App/src/main/res/values-pl/covid_certificate_strings.xml @@ -68,8 +68,6 @@ "Szczepienie %1$d %2$d" "Certyfikat szczepienia" - - "Szczepienie przypominające" diff --git a/Corona-Warn-App/src/main/res/values-ro/covid_certificate_strings.xml b/Corona-Warn-App/src/main/res/values-ro/covid_certificate_strings.xml index 2252ec66f55..b391dd41dc8 100644 --- a/Corona-Warn-App/src/main/res/values-ro/covid_certificate_strings.xml +++ b/Corona-Warn-App/src/main/res/values-ro/covid_certificate_strings.xml @@ -68,8 +68,6 @@ "Vaccinarea %1$d din %2$d" "Certificat de vaccinare" - - "Vaccinarea de rapel" diff --git a/Corona-Warn-App/src/main/res/values-tr/covid_certificate_strings.xml b/Corona-Warn-App/src/main/res/values-tr/covid_certificate_strings.xml index 1ac0ba5a40d..f5f3fe7da62 100644 --- a/Corona-Warn-App/src/main/res/values-tr/covid_certificate_strings.xml +++ b/Corona-Warn-App/src/main/res/values-tr/covid_certificate_strings.xml @@ -68,8 +68,6 @@ "Aşı %1$d / %2$d" "Aşı Sertifikası" - - "Hatırlatma Aşısı" diff --git a/Corona-Warn-App/src/main/res/values/covid_certificate_strings.xml b/Corona-Warn-App/src/main/res/values/covid_certificate_strings.xml index c26f8a2a5a9..09bab4dcbb9 100644 --- a/Corona-Warn-App/src/main/res/values/covid_certificate_strings.xml +++ b/Corona-Warn-App/src/main/res/values/covid_certificate_strings.xml @@ -68,8 +68,6 @@ "Vaccination %1$d of %2$d" "Vaccination Certificate" - - "Booster Vaccination" diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/person/core/PersonCertificatesExtensionsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/person/core/PersonCertificatesExtensionsTest.kt index c5af40a47ee..d3341cd0013 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/person/core/PersonCertificatesExtensionsTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/person/core/PersonCertificatesExtensionsTest.kt @@ -149,10 +149,10 @@ class PersonCertificatesExtensionsTest : BaseTest() { certificates.remove(third) certificates.findHighestPriorityCertificate(time) shouldBe fourth certificates.remove(fourth) - certificates.findHighestPriorityCertificate(time) shouldBe fifth - certificates.remove(fifth) certificates.findHighestPriorityCertificate(time) shouldBe sixth certificates.remove(sixth) + certificates.findHighestPriorityCertificate(time) shouldBe fifth + certificates.remove(fifth) certificates.findHighestPriorityCertificate(time) shouldBe seventh certificates.remove(seventh) certificates.findHighestPriorityCertificate(time) shouldBe eighth diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinatedPersonTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinatedPersonTest.kt index 93645a1cfa1..dd453c97eec 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinatedPersonTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinatedPersonTest.kt @@ -186,7 +186,6 @@ class VaccinatedPersonTest : BaseTest() { every { totalSeriesOfDoses } returns 2 every { rawCertificate.vaccination.doseNumber } returns doseNumber every { rawCertificate.vaccination.medicalProductId } returns "EU/1/20/1528" - every { isBooster } returns false } every { containerId } returns VaccinationCertificateContainerId("VaccinationCertificateContainerId") } @@ -231,7 +230,6 @@ class VaccinatedPersonTest : BaseTest() { every { totalSeriesOfDoses } returns 2 every { rawCertificate.vaccination.doseNumber } returns doseNumber every { rawCertificate.vaccination.medicalProductId } returns "EU/1/20/1528" - every { isBooster } returns false } every { containerId } returns VaccinationCertificateContainerId("VaccinationCertificateContainerId")