From 12e4f8e1352a92ecfee775fdb9aaf8e798a7e513 Mon Sep 17 00:00:00 2001 From: Rituraj Sambherao <54317407+ritsam@users.noreply.github.com> Date: Thu, 23 Jul 2020 14:13:00 +0100 Subject: [PATCH] Stop notification when App is at End of life (#897) * Stop notification when at End of life * Stopping background worker when user is tested positive and they submit the keys. * Stop background services when diagnosis keys are submitted * check added before starting backgrouns schedular To prevent Backgrond services from starting again, a check has been added that checks if diagnosis keys are submitted already. * tests modified based on code changes Co-authored-by: Philipp Woessner <64482866+pwoessner@users.noreply.github.com> --- .../rki/coronawarnapp/service/submission/SubmissionService.kt | 2 ++ .../de/rki/coronawarnapp/worker/BackgroundWorkScheduler.kt | 1 + .../transaction/SubmitDiagnosisKeysTransactionTest.kt | 3 +++ 3 files changed, 6 insertions(+) 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 4eaa6d860..a5026b3fe 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 0cc08f347..88c08d83d 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 18c475ede..60bef8b27 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 } -- GitLab