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
                 )