diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/deadman/DeadmanNotificationScheduler.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/deadman/DeadmanNotificationScheduler.kt index d3b1523be13e76e842a6536bedfbd18fc4e2bcca..7e14369e7daa1a7a2cd177811b8bdef06cb65511 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/deadman/DeadmanNotificationScheduler.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/deadman/DeadmanNotificationScheduler.kt @@ -35,13 +35,17 @@ class DeadmanNotificationScheduler @Inject constructor( /** * Enqueue background deadman notification onetime work - * Replace with new if older work exists. + * Do -NOT- Replace with new if older work exists. + * As this will result in the notification spam seen in the past + * because running a new check every time the app is opened + * spawns a notification every time the last check + * was more than 35 Hours ago. */ fun schedulePeriodic() { // Create unique work and enqueue workManager.enqueueUniquePeriodicWork( PERIODIC_WORK_NAME, - ExistingPeriodicWorkPolicy.REPLACE, + ExistingPeriodicWorkPolicy.KEEP, workBuilder.buildPeriodicWork() ) } diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSchedulerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSchedulerTest.kt index 26e1708493bb8f3c56d47141493aba8c3a54384f..1ec45a093df3a25d8439c8066cddb0451e2065c4 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSchedulerTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/deadman/DeadmanNotificationSchedulerTest.kt @@ -36,7 +36,7 @@ class DeadmanNotificationSchedulerTest : BaseTest() { every { workManager.enqueueUniquePeriodicWork( DeadmanNotificationScheduler.PERIODIC_WORK_NAME, - ExistingPeriodicWorkPolicy.REPLACE, + ExistingPeriodicWorkPolicy.KEEP, any() ) } returns operation @@ -104,7 +104,7 @@ class DeadmanNotificationSchedulerTest : BaseTest() { verifySequence { workManager.enqueueUniquePeriodicWork( DeadmanNotificationScheduler.PERIODIC_WORK_NAME, - ExistingPeriodicWorkPolicy.REPLACE, + ExistingPeriodicWorkPolicy.KEEP, periodicWorkRequest ) }