From 8e5663c80d650f7ab219f8503613fb0caa877a5f Mon Sep 17 00:00:00 2001 From: Matthias Urhahn <matthias.urhahn@sap.com> Date: Fri, 18 Jun 2021 11:19:14 +0200 Subject: [PATCH] Require labId for test certificates only for PCR tests (EXPOSUREAPP-7987) (#3494) * Require labId for test certificates only for PCR tests. * Good morning detekt. --- .../test/core/TestCertificateRepository.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/TestCertificateRepository.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/TestCertificateRepository.kt index b632cea27..7cc52508c 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/TestCertificateRepository.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/TestCertificateRepository.kt @@ -155,6 +155,8 @@ class TestCertificateRepository @Inject constructor( * * [refresh] itself will NOT throw an exception. */ + // TODO Will be addressed in 2.5? + @Suppress("ComplexMethod") suspend fun refresh(identifier: TestCertificateIdentifier? = null): Set<RefreshResult> { Timber.tag(TAG).d("refresh(identifier=%s)", identifier) @@ -181,7 +183,7 @@ class TestCertificateRepository @Inject constructor( val refreshedCerts = values .filter { workedOnIds.contains(it.identifier) } // Refresh targets - .filter { it.labId == null } // Targets of this step + .filter { it.labId == null && it.data is PCRCertificateData } // Targets of this step .map { cert -> Timber.tag(TAG).d("%s is missing a lab id returning exception", cert) RefreshResult( @@ -210,7 +212,7 @@ class TestCertificateRepository @Inject constructor( val refreshedCerts = values .filter { workedOnIds.contains(it.identifier) } // Refresh targets .filter { !it.isPublicKeyRegistered } // Targets of this step - .filter { it.labId != null } + .filter { it.labId != null || it.data !is PCRCertificateData } .map { cert -> withContext(dispatcherProvider.IO) { try { @@ -241,7 +243,7 @@ class TestCertificateRepository @Inject constructor( val refreshedCerts = values .filter { workedOnIds.contains(it.identifier) } // Refresh targets .filter { it.isPublicKeyRegistered && it.isCertificateRetrievalPending } // Targets of this step - .filter { it.labId != null } + .filter { it.labId != null || it.data !is PCRCertificateData } .map { cert -> withContext(dispatcherProvider.IO) { try { -- GitLab