From c20f76678a1204bdc9dd8fb3afbb0cde40990cb2 Mon Sep 17 00:00:00 2001
From: BMItter <46747780+BMItter@users.noreply.github.com>
Date: Thu, 10 Dec 2020 16:57:36 +0100
Subject: [PATCH] After long update no exposure, additonal logs & potential fix
 (EXPSOUREAPP-4120) (#1818)

* Use startedAt as fallback when finishedAt ist null to avoid new download tasks get launched while a task is running

* Additional logging on DefaultDiagnosisKeyProvider

* work-runtime-ktx to latest stable

* better mapNotNull, adjusted Exception

* removed worker downgrade for separate PR

Co-authored-by: Ralf Gehrer <ralfgehrer@users.noreply.github.com>
---
 .../DefaultDiagnosisKeyProvider.kt                     |  1 +
 .../de/rki/coronawarnapp/storage/TracingRepository.kt  | 10 ++++------
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProvider.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProvider.kt
index 3f22ca851..06acd9538 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProvider.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/diagnosiskeyprovider/DefaultDiagnosisKeyProvider.kt
@@ -59,6 +59,7 @@ class DefaultDiagnosisKeyProvider @Inject constructor(
             provideDiagnosisKeysTask
                 .addOnSuccessListener { cont.resume(true) }
                 .addOnFailureListener {
+                    Timber.w("Key submission failed because ${it.message}")
                     val wrappedException =
                         when (it is ApiException &&
                             it.statusCode == ReportingConstants.STATUS_CODE_REACHED_REQUEST_LIMIT) {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/TracingRepository.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/TracingRepository.kt
index e107f9754..c7a5b4c19 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/TracingRepository.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/TracingRepository.kt
@@ -26,7 +26,6 @@ import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.launch
 import org.joda.time.Duration
 import timber.log.Timber
-import java.util.NoSuchElementException
 import javax.inject.Inject
 import javax.inject.Singleton
 
@@ -153,11 +152,10 @@ class TracingRepository @Inject constructor(
         val taskLastFinishedAt = try {
             taskController.tasks.first()
                 .filter { it.taskState.type == DownloadDiagnosisKeysTask::class }
-                .mapNotNull { it.taskState.finishedAt }
-                .sortedDescending()
-                .first()
-        } catch (e: NoSuchElementException) {
-            Timber.tag(TAG).v("download did not run recently - no task with a finishedAt date found")
+                .mapNotNull { it.taskState.finishedAt ?: it.taskState.startedAt }
+                .maxOrNull()!!
+        } catch (e: NullPointerException) {
+            Timber.tag(TAG).v("download did not run recently - no task with a date found")
             return true
         }
 
-- 
GitLab