diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/LocalData.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/LocalData.kt index 0945e16819e2bd9ea7820fecb1ab7058fc628c36..f029b82ca048340064a2c8af5b8908a168edb5f1 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/LocalData.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/LocalData.kt @@ -615,6 +615,8 @@ object LocalData { ) } + fun submissionWasSuccessful(): Boolean = numberOfSuccessfulSubmissions() >= 1 + fun testGUID(): String? = getSharedPreferenceInstance().getString( CoronaWarnApplication.getAppContext() .getString(R.string.preference_test_guid), diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/SubmissionRepository.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/SubmissionRepository.kt index cd5a6cfc37a03a109eff93c293fdce9e7274bda2..eff4ebae82a41cb2f9d9d032d2f70a520ef5c2bf 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/SubmissionRepository.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/SubmissionRepository.kt @@ -114,7 +114,7 @@ object SubmissionRepository { private suspend fun refreshUIState(refreshTestResult: Boolean) { var uiState = DeviceUIState.UNPAIRED - if (LocalData.numberOfSuccessfulSubmissions() == 1) { + if (LocalData.submissionWasSuccessful()) { uiState = DeviceUIState.SUBMITTED_FINAL } else { if (LocalData.registrationToken() != null) { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/transaction/RiskLevelTransaction.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/transaction/RiskLevelTransaction.kt index 4437bdd56ef3bc999daa6afd83bf1af787d58ef3..00694db840711a121e091da9562bff0beda28e1d 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/transaction/RiskLevelTransaction.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/transaction/RiskLevelTransaction.kt @@ -563,7 +563,11 @@ object RiskLevelTransaction : Transaction() { */ private fun updateRiskLevelScore(riskLevel: RiskLevel) { val lastCalculatedScore = RiskLevelRepository.getLastCalculatedScore() - if (RiskLevel.riskLevelChangedBetweenLowAndHigh(lastCalculatedScore, riskLevel)) { + if (RiskLevel.riskLevelChangedBetweenLowAndHigh( + lastCalculatedScore, + riskLevel + ) && !LocalData.submissionWasSuccessful() + ) { NotificationHelper.sendNotification( CoronaWarnApplication.getAppContext().getString(R.string.notification_body), NotificationCompat.PRIORITY_HIGH diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/DiagnosisTestResultRetrievalPeriodicWorker.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/DiagnosisTestResultRetrievalPeriodicWorker.kt index 8b247a2234f96e51e9a7c42b7373a83a17be33b7..03543b63c27736c5bc9ca49fae917eeeec775290 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/DiagnosisTestResultRetrievalPeriodicWorker.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/DiagnosisTestResultRetrievalPeriodicWorker.kt @@ -89,13 +89,18 @@ class DiagnosisTestResultRetrievalPeriodicWorker( * @see TestResult */ private fun initiateNotification(testResult: TestResult) { + if (LocalData.isTestResultNotificationSent() || LocalData.submissionWasSuccessful()) { + return + } + if (testResult == TestResult.NEGATIVE || testResult == TestResult.POSITIVE || testResult == TestResult.INVALID ) { if (!CoronaWarnApplication.isAppInForeground) { NotificationHelper.sendNotification( CoronaWarnApplication.getAppContext() - .getString(R.string.notification_name), CoronaWarnApplication.getAppContext() + .getString(R.string.notification_name), + CoronaWarnApplication.getAppContext() .getString(R.string.notification_body), NotificationCompat.PRIORITY_HIGH )