diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultFragment.kt
index 865b97643e45486845b01846f1bf51ca67029ee4..7aa2716938965569330dd8f33f38e051a01cae1e 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/testresult/SubmissionTestResultFragment.kt
@@ -76,7 +76,10 @@ class SubmissionTestResultFragment : Fragment(R.layout.fragment_submission_test_
 
         viewModel.uiState.observe2(this) {
             binding.uiState = it
-            binding.submissionTestResultContent.submissionTestResultSection.setTestResultSection(binding.uiState)
+            with(binding) {
+                submissionTestResultContent.submissionTestResultSection
+                        .setTestResultSection(uiState?.deviceUiState, uiState?.testResultReceivedDate)
+            }
             it.deviceUiState.withFailure {
                 if (it is CwaWebException) {
                     DialogHelper.showDialog(buildErrorDialog(it))
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultSection.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultSection.kt
index 7886575a61c54ca0ce2f2c2da46079a2be8e5ac4..ffbb9d48a4c94d9aee6b8e23cd326f533f95b11b 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultSection.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/view/TestResultSection.kt
@@ -9,8 +9,9 @@ import androidx.appcompat.content.res.AppCompatResources.getDrawable
 import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.core.content.withStyledAttributes
 import de.rki.coronawarnapp.R
-import de.rki.coronawarnapp.ui.submission.testresult.TestResultUIState
 import de.rki.coronawarnapp.util.DeviceUIState
+import de.rki.coronawarnapp.util.NetworkRequestWrapper
+import de.rki.coronawarnapp.util.NetworkRequestWrapper.Companion.withSuccess
 import de.rki.coronawarnapp.util.TimeAndDateExtensions.toUIFormat
 import de.rki.coronawarnapp.util.formatter.formatTestResult
 import kotlinx.android.synthetic.main.view_test_result_section.view.*
@@ -43,30 +44,25 @@ constructor(
         }
     }
 
-    fun setTestResultSection(uiState: TestResultUIState?) {
-        val deviceUIState = uiState?.deviceUiState
-        val registeredAt = uiState?.testResultReceivedDate
-
+    fun setTestResultSection(uiState: NetworkRequestWrapper<DeviceUIState, Throwable>?, registeredAt: Date?) {
         test_result_section_registered_at_text.text = formatTestResultRegisteredAtText(registeredAt)
-        val testResultIcon = formatTestStatusIcon(deviceUIState)
+        val testResultIcon = formatTestStatusIcon(uiState)
         test_result_section_status_icon.setImageDrawable(testResultIcon)
-        test_result_section_content.text = formatTestResultSectionContent(deviceUIState)
+        test_result_section_content.text = formatTestResultSectionContent(uiState)
     }
 
-    private fun formatTestStatusIcon(uiState: DeviceUIState?): Drawable? {
-        return when (uiState) {
-            DeviceUIState.PAIRED_NO_RESULT ->
-                context.getDrawable(R.drawable.ic_test_result_illustration_pending)
-            DeviceUIState.PAIRED_POSITIVE_TELETAN,
-            DeviceUIState.PAIRED_POSITIVE ->
-                context.getDrawable(R.drawable.ic_test_result_illustration_positive)
-            DeviceUIState.PAIRED_NEGATIVE ->
-                context.getDrawable(R.drawable.ic_test_result_illustration_negative)
-            DeviceUIState.PAIRED_ERROR,
-            DeviceUIState.PAIRED_REDEEMED ->
-                context.getDrawable(R.drawable.ic_test_result_illustration_invalid)
-            else -> context.getDrawable(R.drawable.ic_test_result_illustration_invalid)
-        }
+    private fun formatTestStatusIcon(uiState: NetworkRequestWrapper<DeviceUIState, Throwable>?): Drawable? {
+        return uiState.withSuccess(R.drawable.ic_test_result_illustration_invalid) {
+            when (it) {
+                DeviceUIState.PAIRED_NO_RESULT -> R.drawable.ic_test_result_illustration_pending
+                DeviceUIState.PAIRED_POSITIVE_TELETAN,
+                DeviceUIState.PAIRED_POSITIVE -> R.drawable.ic_test_result_illustration_positive
+                DeviceUIState.PAIRED_NEGATIVE -> R.drawable.ic_test_result_illustration_negative
+                DeviceUIState.PAIRED_ERROR,
+                DeviceUIState.PAIRED_REDEEMED -> R.drawable.ic_test_result_illustration_invalid
+                else -> R.drawable.ic_test_result_illustration_invalid
+            }
+        }.let { context.getDrawable(it) }
     }
 
     private fun formatTestResultRegisteredAtText(registeredAt: Date?): String {
@@ -74,18 +70,20 @@ constructor(
             .format(registeredAt?.toUIFormat(context))
     }
 
-    private fun formatTestResultSectionContent(uiState: DeviceUIState?): Spannable {
-        return when (uiState) {
-            DeviceUIState.PAIRED_NO_RESULT ->
-                SpannableString(context.getString(R.string.test_result_card_status_pending))
-            DeviceUIState.PAIRED_ERROR,
-            DeviceUIState.PAIRED_REDEEMED ->
-                SpannableString(context.getString(R.string.test_result_card_status_invalid))
+    private fun formatTestResultSectionContent(uiState: NetworkRequestWrapper<DeviceUIState, Throwable>?): Spannable {
+        return uiState.withSuccess(SpannableString("")) {
+            when (it) {
+                DeviceUIState.PAIRED_NO_RESULT ->
+                    SpannableString(context.getString(R.string.test_result_card_status_pending))
+                DeviceUIState.PAIRED_ERROR,
+                DeviceUIState.PAIRED_REDEEMED ->
+                    SpannableString(context.getString(R.string.test_result_card_status_invalid))
 
-            DeviceUIState.PAIRED_POSITIVE,
-            DeviceUIState.PAIRED_POSITIVE_TELETAN,
-            DeviceUIState.PAIRED_NEGATIVE -> formatTestResult(uiState)
-            else -> SpannableString("")
+                DeviceUIState.PAIRED_POSITIVE,
+                DeviceUIState.PAIRED_POSITIVE_TELETAN,
+                DeviceUIState.PAIRED_NEGATIVE -> formatTestResult(uiState)
+                else -> SpannableString("")
+            }
         }
     }
 }
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result_consent_given.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result_consent_given.xml
index ee0a184d4625380fd510031f549af97ba29de376..9586eeacf6d42f64319940fb1333c85718b3dd57 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result_consent_given.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result_consent_given.xml
@@ -34,7 +34,7 @@
             style="?android:attr/progressBarStyle"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:visibility="@{FormatterSubmissionHelper.formatTestResultSpinnerVisible(uiState.apiRequestState)}"
+            android:visibility="@{FormatterSubmissionHelper.formatTestResultSpinnerVisible(uiState.deviceUiState)}"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -48,7 +48,7 @@
             android:layout_width="@dimen/match_constraint"
             android:layout_height="@dimen/match_constraint"
             android:layout_marginBottom="@dimen/button_padding_top_bottom"
-            android:visibility="@{FormatterSubmissionHelper.formatTestResultVisible(uiState.apiRequestState)}"
+            android:visibility="@{FormatterSubmissionHelper.formatTestResultVisible(uiState.deviceUiState)}"
             app:layout_constraintBottom_toTopOf="@+id/include_submission_test_result_consent_given_buttons"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"