diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotification.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotification.kt
index 3cebace1c18fa97124d78c0cb557b9120764a2d8..8c2a92737f1825e4b682066390375bdf4af833ee 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotification.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotification.kt
@@ -1,9 +1,11 @@
 package de.rki.coronawarnapp.coronatest.notification
 
 import android.content.Context
+import android.os.Bundle
 import androidx.navigation.NavDeepLinkBuilder
 import dagger.Reusable
 import de.rki.coronawarnapp.R
+import de.rki.coronawarnapp.coronatest.type.CoronaTest
 import de.rki.coronawarnapp.notification.GeneralNotifications
 import de.rki.coronawarnapp.notification.NotificationConstants.POSITIVE_RESULT_NOTIFICATION_ID
 import de.rki.coronawarnapp.notification.NotificationConstants.POSITIVE_RESULT_NOTIFICATION_INITIAL_OFFSET
@@ -22,20 +24,25 @@ class ShareTestResultNotification @Inject constructor(
     private val notificationHelper: GeneralNotifications,
 ) {
 
-    fun scheduleSharePositiveTestResultReminder() {
+    fun scheduleSharePositiveTestResultReminder(testType: CoronaTest.Type) {
         notificationHelper.scheduleRepeatingNotification(
+            testType,
             timeStamper.nowUTC.plus(POSITIVE_RESULT_NOTIFICATION_INITIAL_OFFSET),
             POSITIVE_RESULT_NOTIFICATION_INTERVAL,
             POSITIVE_RESULT_NOTIFICATION_ID
         )
     }
 
-    fun showSharePositiveTestResultNotification(notificationId: Int) {
+    fun showSharePositiveTestResultNotification(notificationId: Int, testType: CoronaTest.Type) {
         Timber.d("showSharePositiveTestResultNotification(notificationId=$notificationId)")
+
+        val args = Bundle().apply { putSerializable("testType", testType) }
+
         val pendingIntent = NavDeepLinkBuilder(context)
             .setGraph(R.navigation.nav_graph)
             .setComponentName(MainActivity::class.java)
             .setDestination(R.id.submissionTestResultAvailableFragment)
+            .setArguments(args)
             .createPendingIntent()
 
         val notification = notificationHelper.newBaseBuilder().apply {
@@ -50,8 +57,8 @@ class ShareTestResultNotification @Inject constructor(
         )
     }
 
-    fun cancelSharePositiveTestResultNotification() {
-        notificationHelper.cancelFutureNotifications(POSITIVE_RESULT_NOTIFICATION_ID)
+    fun cancelSharePositiveTestResultNotification(testType: CoronaTest.Type) {
+        notificationHelper.cancelFutureNotifications(POSITIVE_RESULT_NOTIFICATION_ID, testType)
         Timber.v("Future positive test result notifications have been canceled")
     }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotificationService.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotificationService.kt
index dddb09c4b7b328f9304001911108288c0bfd907f..155b74a704e991dc9f1efaefde9105e0383e2660 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotificationService.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotificationService.kt
@@ -1,6 +1,11 @@
 package de.rki.coronawarnapp.coronatest.notification
 
 import de.rki.coronawarnapp.coronatest.CoronaTestRepository
+import de.rki.coronawarnapp.coronatest.latestPCRT
+import de.rki.coronawarnapp.coronatest.latestRAT
+import de.rki.coronawarnapp.coronatest.type.CoronaTest
+import de.rki.coronawarnapp.coronatest.type.CoronaTest.Type.PCR
+import de.rki.coronawarnapp.coronatest.type.CoronaTest.Type.RAPID_ANTIGEN
 import de.rki.coronawarnapp.main.CWASettings
 import de.rki.coronawarnapp.notification.NotificationConstants.POSITIVE_RESULT_NOTIFICATION_TOTAL_COUNT
 import de.rki.coronawarnapp.util.coroutine.AppScope
@@ -22,47 +27,98 @@ class ShareTestResultNotificationService @Inject constructor(
 
     fun setup() {
         Timber.d("setup()")
+
         coronaTestRepository.coronaTests
             .onEach { tests ->
-                when {
-                    tests.any { it.isSubmissionAllowed } -> {
-                        maybeScheduleSharePositiveTestResultReminder()
-                    }
-                    tests.isNotEmpty() -> {
-                        notification.cancelSharePositiveTestResultNotification()
-                    }
-                    tests.isEmpty() -> {
-                        resetSharePositiveTestResultNotification()
-                    }
+
+                // schedule reminder if test wasn't submitted
+                tests.filter { test ->
+                    test.isSubmissionAllowed && !test.isSubmitted
+                }.forEach { test ->
+                    maybeScheduleSharePositiveTestResultReminder(test.type)
                 }
+
+                // cancel the reminder when test is submitted
+                tests
+                    .filter { it.isSubmitted }
+                    .forEach { notification.cancelSharePositiveTestResultNotification(it.type) }
             }
             .catch { Timber.e(it, "Failed to schedule positive test result reminder.") }
             .launchIn(appScope)
+
+        // if no PCR test is stored or if it was deleted, we reset the reminder
+        coronaTestRepository.latestPCRT
+            .onEach {
+                if (it == null) {
+                    resetSharePositiveTestResultNotification(PCR)
+                }
+            }
+            .catch { Timber.e(it, "Failed to reset positive test result reminder for PCR test.") }
+            .launchIn(appScope)
+
+        // if no RAT test is stored or if it was deleted, we reset the reminder
+        coronaTestRepository.latestRAT
+            .onEach {
+                if (it == null) {
+                    resetSharePositiveTestResultNotification(RAPID_ANTIGEN)
+                }
+            }
+            .catch { Timber.e(it, "Failed to reset positive test result reminder for RAT test.") }
+            .launchIn(appScope)
     }
 
-    fun maybeShowSharePositiveTestResultNotification(notificationId: Int) {
+    fun maybeShowSharePositiveTestResultNotification(notificationId: Int, testType: CoronaTest.Type) {
         Timber.d("maybeShowSharePositiveTestResultNotification(notificationId=$notificationId)")
-        if (cwaSettings.numberOfRemainingSharePositiveTestResultReminders > 0) {
-            cwaSettings.numberOfRemainingSharePositiveTestResultReminders -= 1
-            notification.showSharePositiveTestResultNotification(notificationId)
-        } else {
-            notification.cancelSharePositiveTestResultNotification()
+        if (testType == PCR) {
+            if (cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr > 0) {
+                cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr -= 1
+                notification.showSharePositiveTestResultNotification(notificationId, testType)
+            } else {
+                notification.cancelSharePositiveTestResultNotification(testType)
+            }
+        } else if (testType == RAPID_ANTIGEN) {
+            if (cwaSettings.numberOfRemainingSharePositiveTestResultRemindersRat > 0) {
+                cwaSettings.numberOfRemainingSharePositiveTestResultRemindersRat -= 1
+                notification.showSharePositiveTestResultNotification(notificationId, testType)
+            } else {
+                notification.cancelSharePositiveTestResultNotification(testType)
+            }
         }
     }
 
-    private fun maybeScheduleSharePositiveTestResultReminder() {
-        if (cwaSettings.numberOfRemainingSharePositiveTestResultReminders < 0) {
-            Timber.v("Schedule positive test result notification")
-            cwaSettings.numberOfRemainingSharePositiveTestResultReminders = POSITIVE_RESULT_NOTIFICATION_TOTAL_COUNT
-            notification.scheduleSharePositiveTestResultReminder()
-        } else {
-            Timber.v("Positive test result notification has already been scheduled")
+    private fun maybeScheduleSharePositiveTestResultReminder(testType: CoronaTest.Type) {
+        when (testType) {
+            PCR -> {
+                if (cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr < 0) {
+                    Timber.v("Schedule positive test result notification for PCR test")
+                    cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr =
+                        POSITIVE_RESULT_NOTIFICATION_TOTAL_COUNT
+                    notification.scheduleSharePositiveTestResultReminder(testType)
+                } else {
+                    Timber.v("Positive test result notification for PCR test has already been scheduled")
+                }
+            }
+            RAPID_ANTIGEN -> {
+                if (cwaSettings.numberOfRemainingSharePositiveTestResultRemindersRat < 0) {
+                    Timber.v("Schedule positive test result notification for RAT test")
+                    cwaSettings.numberOfRemainingSharePositiveTestResultRemindersRat =
+                        POSITIVE_RESULT_NOTIFICATION_TOTAL_COUNT
+                    notification.scheduleSharePositiveTestResultReminder(testType)
+                } else {
+                    Timber.v("Positive test result notification for RAT test has already been scheduled")
+                }
+            }
         }
     }
 
-    private fun resetSharePositiveTestResultNotification() {
-        notification.cancelSharePositiveTestResultNotification()
-        cwaSettings.numberOfRemainingSharePositiveTestResultReminders = Int.MIN_VALUE
-        Timber.v("Positive test result notification counter has been reset")
+    private fun resetSharePositiveTestResultNotification(testType: CoronaTest.Type) {
+        notification.cancelSharePositiveTestResultNotification(testType)
+
+        when (testType) {
+            PCR -> cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr = Int.MIN_VALUE
+            RAPID_ANTIGEN -> cwaSettings.numberOfRemainingSharePositiveTestResultRemindersRat = Int.MIN_VALUE
+        }
+
+        Timber.v("Share positive test result notification counter has been reset for all test types")
     }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/main/CWASettings.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/main/CWASettings.kt
index 86a3b42668eb0f9d689b5b70307a3403d991a863..c433ce80d25024c1173dc5cf4d06fea1303a076a 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/main/CWASettings.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/main/CWASettings.kt
@@ -48,9 +48,13 @@ class CWASettings @Inject constructor(
         ).let { raw -> ConfigData.DeviceTimeState.values().single { it.key == raw } }
         set(value) = prefs.edit { putString(PKEY_DEVICE_TIME_LAST_STATE_CHANGE_STATE, value.key) }
 
-    var numberOfRemainingSharePositiveTestResultReminders: Int
-        get() = prefs.getInt(PKEY_POSITIVE_TEST_RESULT_REMINDER_COUNT, Int.MIN_VALUE)
-        set(value) = prefs.edit { putInt(PKEY_POSITIVE_TEST_RESULT_REMINDER_COUNT, value) }
+    var numberOfRemainingSharePositiveTestResultRemindersPcr: Int
+        get() = prefs.getInt(PKEY_POSITIVE_TEST_RESULT_REMINDER_COUNT_PCR, Int.MIN_VALUE)
+        set(value) = prefs.edit { putInt(PKEY_POSITIVE_TEST_RESULT_REMINDER_COUNT_PCR, value) }
+
+    var numberOfRemainingSharePositiveTestResultRemindersRat: Int
+        get() = prefs.getInt(PKEY_POSITIVE_TEST_RESULT_REMINDER_COUNT_RAT, Int.MIN_VALUE)
+        set(value) = prefs.edit { putInt(PKEY_POSITIVE_TEST_RESULT_REMINDER_COUNT_RAT, value) }
 
     val isNotificationsRiskEnabled = prefs.createFlowPreference(
         key = PKEY_NOTIFICATIONS_RISK_ENABLED,
@@ -80,7 +84,10 @@ class CWASettings @Inject constructor(
         private const val PKEY_DEVICE_TIME_LAST_STATE_CHANGE_STATE = "devicetime.laststatechange.state"
         private const val PKEY_NOTIFICATIONS_RISK_ENABLED = "notifications.risk.enabled"
         private const val PKEY_NOTIFICATIONS_TEST_ENABLED = "notifications.test.enabled"
-        private const val PKEY_POSITIVE_TEST_RESULT_REMINDER_COUNT = "testresults.count"
+
+        private const val PKEY_POSITIVE_TEST_RESULT_REMINDER_COUNT_PCR = "testresults.count"
+        private const val PKEY_POSITIVE_TEST_RESULT_REMINDER_COUNT_RAT = "testresults.count.rat"
+
         private const val LAST_CHANGELOG_VERSION = "update.changelog.lastversion"
         private const val DEFAULT_APP_VERSION = 1L
     }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/GeneralNotifications.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/GeneralNotifications.kt
index cf0e71b82c29bc7aae392dd1e31b90b2fbd82aec..9bffd29f9e43a7f8d9de165bb8793bee5067296a 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/GeneralNotifications.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/GeneralNotifications.kt
@@ -17,7 +17,9 @@ import androidx.core.app.NotificationCompat
 import androidx.core.app.NotificationManagerCompat
 import dagger.Reusable
 import de.rki.coronawarnapp.R
+import de.rki.coronawarnapp.coronatest.type.CoronaTest
 import de.rki.coronawarnapp.notification.NotificationConstants.NOTIFICATION_ID
+import de.rki.coronawarnapp.notification.NotificationConstants.POSITIVE_RESULT_NOTIFICATION_TEST_TYPE
 import de.rki.coronawarnapp.ui.main.MainActivity
 import de.rki.coronawarnapp.util.di.AppContext
 import de.rki.coronawarnapp.util.notifications.setContentTextExpandable
@@ -63,8 +65,8 @@ class GeneralNotifications @Inject constructor(
         notificationManager.createNotificationChannel(channel)
     }
 
-    fun cancelFutureNotifications(notificationId: Int) {
-        val pendingIntent = createPendingIntentToScheduleNotification(notificationId)
+    fun cancelFutureNotifications(notificationId: Int, testType: CoronaTest.Type) {
+        val pendingIntent = createPendingIntentToScheduleNotification(notificationId, testType)
         val manager =
             context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
         manager.cancel(pendingIntent)
@@ -77,11 +79,12 @@ class GeneralNotifications @Inject constructor(
     }
 
     fun scheduleRepeatingNotification(
+        testType: CoronaTest.Type,
         initialTime: Instant,
         interval: Duration,
         notificationId: NotificationId
     ) {
-        val pendingIntent = createPendingIntentToScheduleNotification(notificationId)
+        val pendingIntent = createPendingIntentToScheduleNotification(notificationId, testType)
         val manager =
             context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
         manager.setInexactRepeating(AlarmManager.RTC, initialTime.millis, interval.millis, pendingIntent)
@@ -89,6 +92,7 @@ class GeneralNotifications @Inject constructor(
 
     private fun createPendingIntentToScheduleNotification(
         notificationId: NotificationId,
+        testType: CoronaTest.Type,
         flag: Int = FLAG_CANCEL_CURRENT
     ) =
         PendingIntent.getBroadcast(
@@ -96,6 +100,7 @@ class GeneralNotifications @Inject constructor(
             notificationId,
             Intent(context, NotificationReceiver::class.java).apply {
                 putExtra(NOTIFICATION_ID, notificationId)
+                putExtra(POSITIVE_RESULT_NOTIFICATION_TEST_TYPE, testType.raw)
             },
             flag
         )
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/NotificationConstants.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/NotificationConstants.kt
index 5e89ce916308b96724c92ce00219e9c5806a1813..ca7cfe8ddbbb4cfbb32fe86ccf1e629cdcf9f046 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/NotificationConstants.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/NotificationConstants.kt
@@ -11,6 +11,7 @@ object NotificationConstants {
 
     const val NOTIFICATION_ID = "NOTIFICATION_ID"
 
+    const val POSITIVE_RESULT_NOTIFICATION_TEST_TYPE = "NOTIFICATION_TEST_TYPE"
     const val POSITIVE_RESULT_NOTIFICATION_ID = 100
     const val POSITIVE_RESULT_NOTIFICATION_TOTAL_COUNT = 2
     val POSITIVE_RESULT_NOTIFICATION_INITIAL_OFFSET: Duration = Duration.standardHours(2)
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/NotificationReceiver.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/NotificationReceiver.kt
index b11c004a67e76b40da477cd2382af14a64750e8b..33834f3004bcd7ad3a2b4686eabbbeb46745003d 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/NotificationReceiver.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/notification/NotificationReceiver.kt
@@ -5,8 +5,10 @@ import android.content.Context
 import android.content.Intent
 import dagger.android.AndroidInjection
 import de.rki.coronawarnapp.coronatest.notification.ShareTestResultNotificationService
+import de.rki.coronawarnapp.coronatest.type.CoronaTest
 import de.rki.coronawarnapp.notification.NotificationConstants.NOTIFICATION_ID
 import de.rki.coronawarnapp.notification.NotificationConstants.POSITIVE_RESULT_NOTIFICATION_ID
+import de.rki.coronawarnapp.notification.NotificationConstants.POSITIVE_RESULT_NOTIFICATION_TEST_TYPE
 import timber.log.Timber
 import javax.inject.Inject
 
@@ -20,8 +22,16 @@ class NotificationReceiver : BroadcastReceiver() {
         AndroidInjection.inject(this, context)
         when (val notificationId = intent.getIntExtra(NOTIFICATION_ID, Int.MIN_VALUE)) {
             POSITIVE_RESULT_NOTIFICATION_ID -> {
-                Timber.tag(TAG).v("NotificationReceiver received intent to show a positive test result notification")
-                shareTestResultNotificationService.maybeShowSharePositiveTestResultNotification(notificationId)
+                val testTypeRaw = intent.getStringExtra(POSITIVE_RESULT_NOTIFICATION_TEST_TYPE)
+                val testType = CoronaTest.Type.values().first { it.raw == testTypeRaw }
+                Timber.tag(TAG).v(
+                    "NotificationReceiver received intent to show a positive test result notification for test type %s",
+                    testType
+                )
+                shareTestResultNotificationService.maybeShowSharePositiveTestResultNotification(
+                    notificationId,
+                    testType
+                )
             }
             else ->
                 Timber.tag(TAG).d("NotificationReceiver received an undefined notificationId: %s", notificationId)
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/task/SubmissionTask.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/task/SubmissionTask.kt
index 8e0551005b4c26f57eebcd962e47aee5ab00883e..bf8c50d1dfadb1311526b939be3deaaede65c962 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/task/SubmissionTask.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/submission/task/SubmissionTask.kt
@@ -4,7 +4,6 @@ import com.google.android.gms.nearby.exposurenotification.TemporaryExposureKey
 import de.rki.coronawarnapp.appconfig.AppConfigProvider
 import de.rki.coronawarnapp.bugreporting.reportProblem
 import de.rki.coronawarnapp.coronatest.CoronaTestRepository
-import de.rki.coronawarnapp.coronatest.notification.ShareTestResultNotificationService
 import de.rki.coronawarnapp.coronatest.type.CoronaTest
 import de.rki.coronawarnapp.coronatest.type.CoronaTest.Type.PCR
 import de.rki.coronawarnapp.coronatest.type.pcr.notification.PCRTestResultAvailableNotificationService
@@ -41,7 +40,6 @@ class SubmissionTask @Inject constructor(
     private val submissionSettings: SubmissionSettings,
     private val autoSubmission: AutoSubmission,
     private val timeStamper: TimeStamper,
-    private val shareTestResultNotificationService: ShareTestResultNotificationService,
     private val testResultAvailableNotificationService: PCRTestResultAvailableNotificationService,
     private val checkInsRepository: CheckInRepository,
     private val checkInsTransformer: CheckInsTransformer,
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigration.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigration.kt
index 9479266cd2b464059f98a58a8afd340ee37e902b..6cd22bcbd6e0869c25a0452a44bdd062a429ddcc 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigration.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigration.kt
@@ -54,7 +54,7 @@ class EncryptedPreferencesMigration @Inject constructor(
             cwaSettings.wasTracingExplanationDialogShown = wasTracingExplanationDialogShown()
             cwaSettings.isNotificationsRiskEnabled.update { isNotificationsRiskEnabled() }
             cwaSettings.isNotificationsTestEnabled.update { isNotificationsTestEnabled() }
-            cwaSettings.numberOfRemainingSharePositiveTestResultReminders =
+            cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr =
                 numberOfRemainingSharePositiveTestResultReminders()
         }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotificationServiceTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotificationServiceTest.kt
index 7e4f8ecd181e644e15a99cf419fbe757ae7711b0..9bcf463acf45f9ebbc60c1a16fdc6da2336355de 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotificationServiceTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/notification/ShareTestResultNotificationServiceTest.kt
@@ -2,6 +2,8 @@ package de.rki.coronawarnapp.coronatest.notification
 
 import de.rki.coronawarnapp.coronatest.CoronaTestRepository
 import de.rki.coronawarnapp.coronatest.type.CoronaTest
+import de.rki.coronawarnapp.coronatest.type.CoronaTest.Type.PCR
+import de.rki.coronawarnapp.coronatest.type.CoronaTest.Type.RAPID_ANTIGEN
 import de.rki.coronawarnapp.main.CWASettings
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
@@ -26,22 +28,29 @@ class ShareTestResultNotificationServiceTest : BaseTest() {
     private val coronaTestFlow = MutableStateFlow(
         emptySet<CoronaTest>()
     )
-    private var numberOfRemainingSharePositiveTestResultReminders: Int = Int.MIN_VALUE
+    private var numberOfRemainingSharePositiveTestResultRemindersPcr: Int = Int.MIN_VALUE
+    private var numberOfRemainingSharePositiveTestResultRemindersRat: Int = Int.MIN_VALUE
 
     @BeforeEach
     fun setup() {
         MockKAnnotations.init(this)
         every { coronaTestRepository.coronaTests } returns coronaTestFlow
-        every { cwaSettings.numberOfRemainingSharePositiveTestResultReminders = any() } answers {
-            numberOfRemainingSharePositiveTestResultReminders = arg(0)
+        every { cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr = any() } answers {
+            numberOfRemainingSharePositiveTestResultRemindersPcr = arg(0)
         }
-        every { cwaSettings.numberOfRemainingSharePositiveTestResultReminders } answers {
-            numberOfRemainingSharePositiveTestResultReminders
+        every { cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr } answers {
+            numberOfRemainingSharePositiveTestResultRemindersPcr
+        }
+        every { cwaSettings.numberOfRemainingSharePositiveTestResultRemindersRat = any() } answers {
+            numberOfRemainingSharePositiveTestResultRemindersRat = arg(0)
+        }
+        every { cwaSettings.numberOfRemainingSharePositiveTestResultRemindersRat } answers {
+            numberOfRemainingSharePositiveTestResultRemindersRat
         }
 
-        every { shareTestResultNotification.showSharePositiveTestResultNotification(any()) } just Runs
-        every { shareTestResultNotification.cancelSharePositiveTestResultNotification() } just Runs
-        every { shareTestResultNotification.scheduleSharePositiveTestResultReminder() } just Runs
+        every { shareTestResultNotification.showSharePositiveTestResultNotification(any(), any()) } just Runs
+        every { shareTestResultNotification.cancelSharePositiveTestResultNotification(any()) } just Runs
+        every { shareTestResultNotification.scheduleSharePositiveTestResultReminder(any()) } just Runs
     }
 
     private fun createInstance(scope: CoroutineScope) = ShareTestResultNotificationService(
@@ -57,6 +66,12 @@ class ShareTestResultNotificationServiceTest : BaseTest() {
 
         coronaTestFlow.value = setOf(
             mockk<CoronaTest>().apply {
+                every { type } returns PCR
+                every { isSubmissionAllowed } returns true
+                every { isSubmitted } returns false
+            },
+            mockk<CoronaTest>().apply {
+                every { type } returns RAPID_ANTIGEN
                 every { isSubmissionAllowed } returns true
                 every { isSubmitted } returns false
             }
@@ -64,54 +79,49 @@ class ShareTestResultNotificationServiceTest : BaseTest() {
 
         instance.setup()
 
-        verify { shareTestResultNotification.scheduleSharePositiveTestResultReminder() }
-        verify { cwaSettings.numberOfRemainingSharePositiveTestResultReminders = 2 }
+        verify(exactly = 1) { shareTestResultNotification.scheduleSharePositiveTestResultReminder(PCR) }
+        verify(exactly = 1) { shareTestResultNotification.scheduleSharePositiveTestResultReminder(RAPID_ANTIGEN) }
+
+        verify { cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr = 2 }
+        verify { cwaSettings.numberOfRemainingSharePositiveTestResultRemindersRat = 2 }
     }
 
     @Test
     fun `showing a notification consumes a token`() = runBlockingTest2(ignoreActive = true) {
         val instance = createInstance(this)
-        numberOfRemainingSharePositiveTestResultReminders = 2
+        numberOfRemainingSharePositiveTestResultRemindersPcr = 2
+        numberOfRemainingSharePositiveTestResultRemindersRat = 2
 
-        instance.maybeShowSharePositiveTestResultNotification(1)
+        instance.maybeShowSharePositiveTestResultNotification(1, PCR)
+        instance.maybeShowSharePositiveTestResultNotification(1, RAPID_ANTIGEN)
 
-        numberOfRemainingSharePositiveTestResultReminders shouldBe 1
+        numberOfRemainingSharePositiveTestResultRemindersPcr shouldBe 1
+        numberOfRemainingSharePositiveTestResultRemindersRat shouldBe 1
 
-        verify { shareTestResultNotification.showSharePositiveTestResultNotification(1) }
+        verify { shareTestResultNotification.showSharePositiveTestResultNotification(1, PCR) }
+        verify { shareTestResultNotification.showSharePositiveTestResultNotification(1, RAPID_ANTIGEN) }
     }
 
     @Test
     fun `if there are no tokens left to show a notification, cancel the current one`() =
         runBlockingTest2(ignoreActive = true) {
             val instance = createInstance(this)
-            numberOfRemainingSharePositiveTestResultReminders = 0
 
-            instance.maybeShowSharePositiveTestResultNotification(1)
-
-            numberOfRemainingSharePositiveTestResultReminders shouldBe 0
-
-            verify { shareTestResultNotification.cancelSharePositiveTestResultNotification() }
+            // PCR
+            numberOfRemainingSharePositiveTestResultRemindersPcr = 0
+            instance.maybeShowSharePositiveTestResultNotification(1, PCR)
+            numberOfRemainingSharePositiveTestResultRemindersPcr shouldBe 0
+            verify { shareTestResultNotification.cancelSharePositiveTestResultNotification(PCR) }
+
+            // RAT
+            numberOfRemainingSharePositiveTestResultRemindersRat = 0
+            instance.maybeShowSharePositiveTestResultNotification(1, RAPID_ANTIGEN)
+            numberOfRemainingSharePositiveTestResultRemindersRat shouldBe 0
+            verify { shareTestResultNotification.cancelSharePositiveTestResultNotification(PCR) }
         }
 
     @Test
-    fun `any test which allowes submission triggers scheduling`() = runBlockingTest2(ignoreActive = true) {
-        val instance = createInstance(this)
-
-        coronaTestFlow.value = setOf(
-            mockk<CoronaTest>().apply {
-                every { isSubmissionAllowed } returns true
-                every { isSubmitted } returns false
-            }
-        )
-
-        instance.setup()
-
-        verify { shareTestResultNotification.scheduleSharePositiveTestResultReminder() }
-        verify { cwaSettings.numberOfRemainingSharePositiveTestResultReminders = 2 }
-    }
-
-    @Test
-    fun `if there are no tests, we reset scheduling`() = runBlockingTest2(ignoreActive = true) {
+    fun `reset notification if no test is stored or test was deleted`() = runBlockingTest2(ignoreActive = true) {
         val instance = createInstance(this)
 
         coronaTestFlow.value = emptySet()
@@ -120,7 +130,9 @@ class ShareTestResultNotificationServiceTest : BaseTest() {
 
         advanceUntilIdle()
 
-        verify { shareTestResultNotification.cancelSharePositiveTestResultNotification() }
-        verify { cwaSettings.numberOfRemainingSharePositiveTestResultReminders = Int.MIN_VALUE }
+        verify { shareTestResultNotification.cancelSharePositiveTestResultNotification(PCR) }
+        verify { shareTestResultNotification.cancelSharePositiveTestResultNotification(RAPID_ANTIGEN) }
+        verify { cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr = Int.MIN_VALUE }
+        verify { cwaSettings.numberOfRemainingSharePositiveTestResultRemindersRat = Int.MIN_VALUE }
     }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/task/SubmissionTaskTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/task/SubmissionTaskTest.kt
index de0bc5cb26df3bdcdd47b355d3c875cdc2386c93..0e899746ec7e05152f44c1161fd6aaeeaa39d83c 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/task/SubmissionTaskTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/submission/task/SubmissionTaskTest.kt
@@ -4,7 +4,6 @@ import com.google.android.gms.nearby.exposurenotification.TemporaryExposureKey
 import de.rki.coronawarnapp.appconfig.AppConfigProvider
 import de.rki.coronawarnapp.appconfig.ConfigData
 import de.rki.coronawarnapp.coronatest.CoronaTestRepository
-import de.rki.coronawarnapp.coronatest.notification.ShareTestResultNotificationService
 import de.rki.coronawarnapp.coronatest.type.CoronaTest
 import de.rki.coronawarnapp.coronatest.type.CoronaTest.Type.PCR
 import de.rki.coronawarnapp.coronatest.type.CoronaTest.Type.RAPID_ANTIGEN
@@ -54,7 +53,6 @@ class SubmissionTaskTest : BaseTest() {
     @MockK lateinit var tekHistoryCalculations: ExposureKeyHistoryCalculations
     @MockK lateinit var tekHistoryStorage: TEKHistoryStorage
     @MockK lateinit var submissionSettings: SubmissionSettings
-    @MockK lateinit var shareTestResultNotificationService: ShareTestResultNotificationService
     @MockK lateinit var testResultAvailableNotificationService: PCRTestResultAvailableNotificationService
     @MockK lateinit var autoSubmission: AutoSubmission
 
@@ -84,7 +82,7 @@ class SubmissionTaskTest : BaseTest() {
                 every { isSubmitted } returns false
                 every { registrationToken } returns "regtoken"
                 every { identifier } returns "coronatest-identifier"
-                every { type } returns CoronaTest.Type.PCR
+                every { type } returns PCR
             }
         )
     )
@@ -171,7 +169,6 @@ class SubmissionTaskTest : BaseTest() {
         tekHistoryCalculations = tekHistoryCalculations,
         tekHistoryStorage = tekHistoryStorage,
         submissionSettings = submissionSettings,
-        shareTestResultNotificationService = shareTestResultNotificationService,
         timeStamper = timeStamper,
         autoSubmission = autoSubmission,
         testResultAvailableNotificationService = testResultAvailableNotificationService,
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigrationTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigrationTest.kt
index f10be3cd849ecac441f0fedf6bb05f5b9f70e353..5ecc2cc19dc5952a3e05fc2298e2c17a55842e55 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigrationTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/encryptionmigration/EncryptedPreferencesMigrationTest.kt
@@ -106,7 +106,7 @@ class EncryptedPreferencesMigrationTest : BaseIOTest() {
         every { cwaSettings.isNotificationsRiskEnabled } returns mockRiskPreference
         val mockTestPreference = mockFlowPreference(true)
         every { cwaSettings.isNotificationsTestEnabled } returns mockTestPreference
-        every { cwaSettings.numberOfRemainingSharePositiveTestResultReminders = Int.MAX_VALUE } just Runs
+        every { cwaSettings.numberOfRemainingSharePositiveTestResultRemindersPcr = Int.MAX_VALUE } just Runs
 
         // OnboardingLocalData
         val mockOnboardingCompletedTimestamp = mockFlowPreference(Instant.ofEpochMilli(10101010L))