diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/consentstatus/ConsentStatusView.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/consentstatus/ConsentStatusView.kt
new file mode 100644
index 0000000000000000000000000000000000000000..ed8ba874646c1390e98a8bfd6c875748e5925a3a
--- /dev/null
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/consentstatus/ConsentStatusView.kt
@@ -0,0 +1,43 @@
+package de.rki.coronawarnapp.ui.submission.consentstatus
+
+import android.content.Context
+import android.util.AttributeSet
+import android.util.TypedValue
+import android.view.LayoutInflater
+import android.widget.TextView
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.databinding.BindingAdapter
+import de.rki.coronawarnapp.R
+
+class ConsentStatusView @JvmOverloads constructor(
+    context: Context,
+    attrs: AttributeSet? = null,
+    defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+
+    private var titleTextView: TextView
+
+    init {
+        LayoutInflater.from(context).inflate(R.layout.view_consent_status, this, true)
+
+        val outValue = TypedValue()
+        getContext().theme.resolveAttribute(android.R.attr.selectableItemBackground, outValue, true)
+        setBackgroundResource(outValue.resourceId)
+
+        titleTextView = findViewById(R.id.consent_status_message)
+    }
+
+    var consent: Boolean = false
+        set(value) {
+            when (value) {
+                true -> R.string.submission_consent_view_consent_given
+                false -> R.string.submission_consent_view_consent_not_given
+            }.let { titleTextView.setText(it) }
+            field = value
+        }
+}
+
+@BindingAdapter("consent")
+fun ConsentStatusView.consent(newConsent: Boolean) {
+    consent = newConsent
+}
diff --git a/Corona-Warn-App/src/main/res/drawable/ic_consent_status_view_icon.xml b/Corona-Warn-App/src/main/res/drawable/ic_consent_status_view_icon.xml
new file mode 100644
index 0000000000000000000000000000000000000000..20ff1116059d81ba8e6495c064ee2bcd4e09b051
--- /dev/null
+++ b/Corona-Warn-App/src/main/res/drawable/ic_consent_status_view_icon.xml
@@ -0,0 +1,11 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="16dp"
+    android:viewportWidth="24"
+    android:viewportHeight="16">
+  <path
+      android:pathData="M19.35,6.04C18.67,2.59 15.64,0 12,0C9.11,0 6.6,1.64 5.35,4.04C2.34,4.36 0,6.91 0,10C0,13.31 2.69,16 6,16H19C21.76,16 24,13.76 24,11C24,8.36 21.95,6.22 19.35,6.04ZM19,14H6C3.79,14 2,12.21 2,10C2,7.95 3.53,6.24 5.56,6.03L6.63,5.92L7.13,4.97C8.08,3.14 9.94,2 12,2C14.62,2 16.88,3.86 17.39,6.43L17.69,7.93L19.22,8.04C20.78,8.14 22,9.45 22,11C22,12.65 20.65,14 19,14ZM10.55,9H8L12,5L16,9H13.45V12H10.55V9Z"
+      android:fillColor="#17191A"
+      android:fillAlpha="0.3"
+      android:fillType="evenOdd"/>
+</vector>
diff --git a/Corona-Warn-App/src/main/res/layout/view_consent_status.xml b/Corona-Warn-App/src/main/res/layout/view_consent_status.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c40f41e737b54ef716c061c5a11197e19ee16aeb
--- /dev/null
+++ b/Corona-Warn-App/src/main/res/layout/view_consent_status.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:focusable="true"
+    tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
+
+    <View
+        android:id="@+id/test_result_illustration_divider"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/card_divider"
+        android:background="@color/colorHairline"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ImageView
+        android:id="@+id/consent_icon"
+        style="@style/icon"
+        android:layout_width="24dp"
+        android:layout_height="24dp"
+        android:layout_marginStart="16dp"
+        android:layout_marginTop="16dp"
+        android:layout_marginBottom="16dp"
+        android:focusable="false"
+        android:importantForAccessibility="no"
+        android:paddingTop="4dp"
+        android:src="@drawable/ic_consent_status_view_icon"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.0" />
+
+    <TextView
+        android:id="@+id/consent_status_message"
+        style="@style/headline6"
+        android:layout_width="@dimen/match_constraint"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="56dp"
+        android:layout_marginTop="16dp"
+        android:layout_marginEnd="16dp"
+        android:layout_marginBottom="16dp"
+        android:text="@string/submission_consent_view_consent_not_given"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:text="Einverständnis\n“Andere warnen” nicht erteilt" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/card_divider"
+        android:layout_marginTop="@dimen/spacing_small"
+        android:background="@color/colorHairline"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent" />
+
+</merge>
\ No newline at end of file