diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/submission/SubmissionService.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/submission/SubmissionService.kt index 4eaa6d86005e05cb12f570b23979f2113ae6b8f0..a5026b3fe8f82b844fcf79ab4f301d046a5ae08d 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/submission/SubmissionService.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/submission/SubmissionService.kt @@ -9,6 +9,7 @@ import de.rki.coronawarnapp.service.submission.SubmissionConstants.TELE_TAN_KEY_ import de.rki.coronawarnapp.storage.LocalData import de.rki.coronawarnapp.transaction.SubmitDiagnosisKeysTransaction import de.rki.coronawarnapp.util.formatter.TestResult +import de.rki.coronawarnapp.worker.BackgroundWorkScheduler object SubmissionService { suspend fun asyncRegisterDevice() { @@ -89,6 +90,7 @@ object SubmissionService { } fun submissionSuccessful() { + BackgroundWorkScheduler.stopWorkScheduler() LocalData.numberOfSuccessfulSubmissions(1) } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/BackgroundWorkScheduler.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/BackgroundWorkScheduler.kt index 0cc08f34721b7661a48b9fd529b5a81e2555e893..88c08d83d0ca73584468c213650c99e3026c8f5e 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/BackgroundWorkScheduler.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/BackgroundWorkScheduler.kt @@ -68,6 +68,7 @@ object BackgroundWorkScheduler { * @see isWorkActive */ fun startWorkScheduler() { + if (LocalData.numberOfSuccessfulSubmissions() > 0) return val isPeriodicWorkActive = isWorkActive(WorkTag.DIAGNOSIS_KEY_RETRIEVAL_PERIODIC_WORKER.tag) logWorkActiveStatus( WorkTag.DIAGNOSIS_KEY_RETRIEVAL_PERIODIC_WORKER.tag, diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/SubmitDiagnosisKeysTransactionTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/SubmitDiagnosisKeysTransactionTest.kt index 18c475edeb4b82b6c7ff5d2e555d8efba97457d3..60bef8b27d0be54040c8009818e7aa47b992682d 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/SubmitDiagnosisKeysTransactionTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/SubmitDiagnosisKeysTransactionTest.kt @@ -6,6 +6,7 @@ import de.rki.coronawarnapp.nearby.InternalExposureNotificationClient import de.rki.coronawarnapp.service.diagnosiskey.DiagnosisKeyService import de.rki.coronawarnapp.service.submission.SubmissionService import de.rki.coronawarnapp.storage.LocalData +import de.rki.coronawarnapp.worker.BackgroundWorkScheduler import io.mockk.Runs import io.mockk.coEvery import io.mockk.coVerifyOrder @@ -30,6 +31,8 @@ class SubmitDiagnosisKeysTransactionTest { mockkObject(SubmissionService) mockkObject(InternalExposureNotificationClient) mockkObject(DiagnosisKeyService) + mockkObject(BackgroundWorkScheduler) + every { BackgroundWorkScheduler.stopWorkScheduler() } just Runs every { LocalData.numberOfSuccessfulSubmissions(any()) } just Runs coEvery { SubmissionService.asyncRequestAuthCode(any()) } returns authString }