diff --git a/.circleci/config.yml b/.circleci/config.yml
index ed0062ff57d6f8c55eccc0607a6bfb435af42dea..5f3a483cbe66ac67e4466c82baa4fe541797b3a9 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -24,12 +24,6 @@ jobs:
           environment:
             JVM_OPTS: -Xmx2048m
             GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
-      - run:
-          name: JaCoCo report
-          command: ./gradlew :Corona-Warn-App:jacocoTestReportDeviceRelease
-          environment:
-            JVM_OPTS: -Xmx2048m
-            GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
       - scan-sonar
       - save-build-cache
       - save_cache:
diff --git a/Corona-Warn-App/build.gradle b/Corona-Warn-App/build.gradle
index a48d110668028de81939102c0e32749e44be486f..3fb91cf51eb881b16865fbf07de00883d7533aa7 100644
--- a/Corona-Warn-App/build.gradle
+++ b/Corona-Warn-App/build.gradle
@@ -32,8 +32,8 @@ android {
         applicationId 'de.rki.coronawarnapp'
         minSdkVersion 23
         targetSdkVersion 29
-        versionCode 13
-        versionName "0.8.6"
+        versionCode 14
+        versionName "0.8.7"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 
         buildConfigField "String", "DOWNLOAD_CDN_URL", "\"$DOWNLOAD_CDN_URL\""
@@ -82,7 +82,6 @@ android {
             minifyEnabled true
             shrinkResources true
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-            testCoverageEnabled true
             buildConfigField "String", "EXPORT_SIGNATURE_ID", "\"de.rki.coronawarnapp-dev\""
         }
     }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionTanViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionTanViewModel.kt
index cae07743b57a1c5431a917d6a582d03244178564..c18d49a015360e7b4747526b6a323afe69dd88cc 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionTanViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/SubmissionTanViewModel.kt
@@ -5,7 +5,6 @@ import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.Transformations
 import androidx.lifecycle.ViewModel
 import de.rki.coronawarnapp.storage.SubmissionRepository
-import de.rki.coronawarnapp.util.TanHelper
 
 class SubmissionTanViewModel : ViewModel() {
 
@@ -17,21 +16,7 @@ class SubmissionTanViewModel : ViewModel() {
 
     val isValidTanFormat =
         Transformations.map(tan) {
-            it != null &&
-            it.length == TanConstants.MAX_LENGTH &&
-            TanHelper.isChecksumValid(it) &&
-            TanHelper.allCharactersValid(it)
-        }
-
-    val tanChecksumValid =
-        Transformations.map(tan) {
-            ((it !== null && it.trim().length == TanConstants.MAX_LENGTH) &&
-                    TanHelper.isChecksumValid(it).not()).not()
-        }
-
-    val tanCharactersValid =
-        Transformations.map(tan) {
-            !((it != null) && TanHelper.allCharactersValid(it).not())
+            it != null && it.length == TanConstants.MAX_LENGTH
         }
 
     fun storeTeletan() {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/TanConstants.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/TanConstants.kt
index 644cf1ee0f3aca6bb52e87b0fcca899b24065220..b6be13be81def6ec21f396f0b89f278cdeb9fd6a 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/TanConstants.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/TanConstants.kt
@@ -1,6 +1,6 @@
 package de.rki.coronawarnapp.ui.submission
 
 object TanConstants {
-    const val MAX_LENGTH = 10
+    const val MAX_LENGTH = 7
     val ALPHA_NUMERIC_CHARS = ('a'..'z').plus('A'..'Z').plus('0'..'9')
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/TanInput.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/TanInput.kt
index f95bafeb917c667bc35a01c154f46a95c22af3f8..70cc48b6833364f5303cc7d9d7549f2962e58e7f 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/TanInput.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/TanInput.kt
@@ -8,9 +8,6 @@ import android.view.inputmethod.InputMethodManager
 import android.widget.FrameLayout
 import androidx.core.widget.doOnTextChanged
 import de.rki.coronawarnapp.R
-import de.rki.coronawarnapp.ui.submission.TanConstants.MAX_LENGTH
-import de.rki.coronawarnapp.util.TanHelper
-import java.util.Locale
 import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_edittext
 import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_1
 import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_2
@@ -19,11 +16,6 @@ import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_4
 import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_5
 import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_6
 import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_7
-import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_8
-import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_9
-import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_10
-import kotlinx.android.synthetic.main.view_tan_input.view.dash_view_1
-import kotlinx.android.synthetic.main.view_tan_input.view.dash_view_2
 
 class TanInput(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs) {
 
@@ -38,7 +30,7 @@ class TanInput(context: Context, attrs: AttributeSet) : FrameLayout(context, att
             TanConstants.ALPHA_NUMERIC_CHARS.contains(it)
         }
     }
-    private var lengthFilter = InputFilter.LengthFilter(MAX_LENGTH)
+    private val lengthFilter = InputFilter.LengthFilter(TanConstants.MAX_LENGTH)
 
     var listener: ((String?) -> Unit)? = null
 
@@ -49,9 +41,6 @@ class TanInput(context: Context, attrs: AttributeSet) : FrameLayout(context, att
 
         tan_input_edittext.filters = arrayOf(whitespaceFilter, alphaNumericFilter, lengthFilter)
 
-        dash_view_1.text = "-"
-        dash_view_2.text = "-"
-
         // register listener
         tan_input_edittext.doOnTextChanged { text, _, _, _ -> updateTan(text) }
         setOnClickListener { showKeyboard() }
@@ -67,20 +56,9 @@ class TanInput(context: Context, attrs: AttributeSet) : FrameLayout(context, att
         }
     }
 
-    private fun limitLength(length: Int?) {
-        lengthFilter = InputFilter.LengthFilter(if (length != null) length else MAX_LENGTH)
-        tan_input_edittext.filters = arrayOf(whitespaceFilter, alphaNumericFilter, lengthFilter)
-    }
-
     private fun updateTan(text: CharSequence?) {
-        this.tan = text?.toString()?.toUpperCase(Locale.getDefault())
+        this.tan = text?.toString()
         updateDigits()
-        tan?.let {
-            limitLength(
-                if (TanHelper.allCharactersValid(it)) null
-                else it.length
-            )
-        }
         notifyListener()
     }
 
@@ -93,24 +71,9 @@ class TanInput(context: Context, attrs: AttributeSet) : FrameLayout(context, att
         tan_input_textview_4,
         tan_input_textview_5,
         tan_input_textview_6,
-        tan_input_textview_7,
-        tan_input_textview_8,
-        tan_input_textview_9,
-        tan_input_textview_10
+        tan_input_textview_7
     ).forEachIndexed { i, tanDigit ->
         tanDigit.text = digitAtIndex(i)
-        tanDigit.background =
-            if (digitAtIndex(i) == "")
-                resources.getDrawable(R.drawable.tan_input_digit, null)
-            else if (TanHelper.isTanCharacterValid(digitAtIndex(i)))
-                resources.getDrawable(R.drawable.tan_input_digit_entered, null)
-            else resources.getDrawable(R.drawable.tan_input_digit_error, null)
-
-        tanDigit.setTextColor(
-            if (TanHelper.isTanCharacterValid(digitAtIndex(i)))
-                resources.getColor(R.color.colorTextSemanticNeutral, null)
-            else resources.getColor(R.color.colorTextSemanticRed, null)
-        )
     }
 
     private fun digitAtIndex(index: Int): String = tan?.getOrNull(index)?.toString() ?: ""
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/TanHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/TanHelper.kt
deleted file mode 100644
index 9693fab69accc7c58476feab7bf44a7640db6c75..0000000000000000000000000000000000000000
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/TanHelper.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-package de.rki.coronawarnapp.util
-
-import de.rki.coronawarnapp.ui.submission.TanConstants.MAX_LENGTH
-import java.security.MessageDigest
-import java.util.Locale
-
-object TanHelper {
-    private const val VALID_CHARACTERS = "23456789ABCDEFGHJKMNPQRSTUVWXYZ"
-
-    fun isChecksumValid(tan: String): Boolean {
-        if (tan.trim().length != MAX_LENGTH)
-            return false
-        val subTan = tan.substring(0, MAX_LENGTH - 1).toUpperCase(Locale.getDefault())
-        val tanDigest = MessageDigest.getInstance("SHA-256").digest(subTan.toByteArray())
-        var checkChar = "%02x".format(tanDigest[0])[0]
-        if (checkChar == '0') checkChar = 'G'
-        if (checkChar == '1') checkChar = 'H'
-
-        return checkChar.toUpperCase() == tan.last().toUpperCase()
-    }
-
-    fun allCharactersValid(tan: String): Boolean {
-        for (character in tan) {
-            if (!isTanCharacterValid(character.toString()))
-                return false
-        }
-    return true
-    }
-
-    fun isTanCharacterValid(character: String): Boolean {
-        return VALID_CHARACTERS.contains(character)
-    }
-}
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterSubmissionHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterSubmissionHelper.kt
index c9502ce5d27553a5ed18c21b5d44987fe975c5bd..dbe3e29ed71c9d4c6116f0044da2aaf72f51bb13 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterSubmissionHelper.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/formatter/FormatterSubmissionHelper.kt
@@ -193,8 +193,3 @@ fun formatShowRiskStatusCard(deviceUiState: DeviceUIState?): Int =
                 deviceUiState != DeviceUIState.PAIRED_POSITIVE_TELETAN &&
                 deviceUiState != DeviceUIState.SUBMITTED_FINAL
     )
-
-fun formatShowTanCharacterError(
-    charactersValid: Boolean,
-    checksumValid: Boolean
-): Int = formatVisibility(checksumValid && !charactersValid)
diff --git a/Corona-Warn-App/src/main/res/drawable/tan_input_digit.xml b/Corona-Warn-App/src/main/res/drawable/tan_input_digit.xml
index 48e3d0c51a82c6484dfaad67960e18c39a9fa341..d06cdb9200e0e17be9a2d49cbc16c86faf412081 100644
--- a/Corona-Warn-App/src/main/res/drawable/tan_input_digit.xml
+++ b/Corona-Warn-App/src/main/res/drawable/tan_input_digit.xml
@@ -1,20 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-<item>
-    <shape xmlns:android="http://schemas.android.com/apk/res/android"
-        android:shape="rectangle">
-        <corners android:radius="@dimen/submission_tan_input_digit_radius" />
-        <solid android:color="@color/colorSurface2" />
-    </shape>
-</item>
-<item
-    android:height="1.5dp"
-    android:gravity="bottom">
-    <shape xmlns:android="http://schemas.android.com/apk/res/android"
-        android:shape="rectangle">
-        <corners android:bottomLeftRadius="@dimen/submission_tan_input_digit_radius" />
-        <corners android:bottomRightRadius="@dimen/submission_tan_input_digit_radius" />
-        <solid android:color="@color/colorTextSemanticNeutral" />
-    </shape>
-</item>
-</layer-list>
\ No newline at end of file
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:radius="@dimen/submission_tan_input_digit_radius" />
+    <gradient
+        android:angle="90"
+        android:centerColor="@color/colorSurface2"
+        android:centerX="0.02"
+        android:endColor="@color/colorSurface2"
+        android:startColor="@color/colorTextSemanticNeutral" />
+</shape>
\ No newline at end of file
diff --git a/Corona-Warn-App/src/main/res/drawable/tan_input_digit_entered.xml b/Corona-Warn-App/src/main/res/drawable/tan_input_digit_entered.xml
deleted file mode 100644
index 0550164c034b36b235de59a69df0cf69b5088316..0000000000000000000000000000000000000000
--- a/Corona-Warn-App/src/main/res/drawable/tan_input_digit_entered.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <corners android:radius="@dimen/submission_tan_input_digit_radius" />
-    <solid android:color="@color/colorSurface2" />
-</shape>
\ No newline at end of file
diff --git a/Corona-Warn-App/src/main/res/drawable/tan_input_digit_error.xml b/Corona-Warn-App/src/main/res/drawable/tan_input_digit_error.xml
deleted file mode 100644
index 01780eeb09b0b18076cb5bd414e1a2274c3d4015..0000000000000000000000000000000000000000
--- a/Corona-Warn-App/src/main/res/drawable/tan_input_digit_error.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item>
-        <shape xmlns:android="http://schemas.android.com/apk/res/android"
-            android:shape="rectangle">
-            <corners android:radius="@dimen/submission_tan_input_digit_radius" />
-            <solid android:color="@color/colorSurface2" />
-        </shape>
-    </item>
-    <item
-        android:height="1.5dp"
-        android:gravity="bottom">
-        <shape xmlns:android="http://schemas.android.com/apk/res/android"
-            android:shape="rectangle">
-            <corners android:bottomLeftRadius="@dimen/submission_tan_input_digit_radius" />
-            <corners android:bottomRightRadius="@dimen/submission_tan_input_digit_radius" />
-            <solid android:color="@color/colorTextSemanticRed" />
-        </shape>
-    </item>
-</layer-list>
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_tan.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_tan.xml
index 4337a0b5e99b2d44ccadf2aea29579f74a14fcf1..c940d7044756bbc18ba88d9b6393936436795151 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_submission_tan.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_tan.xml
@@ -5,7 +5,6 @@
 
     <data>
 
-        <import type="de.rki.coronawarnapp.util.formatter.FormatterHelper" />
         <import type="de.rki.coronawarnapp.util.formatter.FormatterSubmissionHelper" />
 
         <variable
@@ -55,33 +54,6 @@
                 app:layout_constraintStart_toStartOf="@+id/guideline_start"
                 app:layout_constraintTop_toBottomOf="@+id/submission_tan_body" />
 
-            <TextView
-                android:id="@+id/submission_tan_character_error"
-                style="@style/subtitle"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/spacing_small"
-                android:visibility="@{FormatterSubmissionHelper.formatShowTanCharacterError(viewmodel.tanCharactersValid, viewmodel.tanChecksumValid)}"
-                android:text="@string/submission_tan_character_error"
-                android:textColor="@color/colorTextSemanticRed"
-                app:layout_constraintEnd_toStartOf="@+id/guideline_end"
-                app:layout_constraintStart_toStartOf="@+id/guideline_start"
-                app:layout_constraintTop_toBottomOf="@id/submission_tan_input" />
-
-            <TextView
-                android:id="@+id/submission_tan_error"
-                style="@style/subtitle"
-                android:layout_width="@dimen/match_constraint"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/spacing_small"
-                android:visibility="@{FormatterHelper.formatVisibility(!viewmodel.tanChecksumValid)}"
-                android:text="@string/submission_tan_error"
-                android:textColor="@color/colorTextSemanticRed"
-                app:layout_constraintEnd_toStartOf="@+id/guideline_end"
-                app:layout_constraintStart_toStartOf="@+id/guideline_start"
-                app:layout_constraintTop_toBottomOf="@id/submission_tan_input" />
-
-
             <Button
                 android:id="@+id/submission_tan_button_enter"
                 style="@style/buttonPrimary"
diff --git a/Corona-Warn-App/src/main/res/layout/view_tan_input.xml b/Corona-Warn-App/src/main/res/layout/view_tan_input.xml
index 9083b562845012532d3bc66852b9b20a93ee1ffa..213e9ff71c18e439291b5c0443c14ff26fff0ae2 100644
--- a/Corona-Warn-App/src/main/res/layout/view_tan_input.xml
+++ b/Corona-Warn-App/src/main/res/layout/view_tan_input.xml
@@ -36,26 +36,17 @@
             android:id="@+id/tan_input_textview_3"
             style="@style/tanInputDigit"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintEnd_toStartOf="@+id/dash_view_1"
+            app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_4"
             app:layout_constraintStart_toEndOf="@+id/tan_input_textview_2"
             app:layout_constraintTop_toTopOf="parent"
             tools:text="X" />
 
-        <TextView
-            android:id="@+id/dash_view_1"
-            style="@style/tanInputDash"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_4"
-            app:layout_constraintStart_toEndOf="@+id/tan_input_textview_3"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="-" />
-
         <TextView
             android:id="@+id/tan_input_textview_4"
             style="@style/tanInputDigit"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_5"
-            app:layout_constraintStart_toEndOf="@+id/dash_view_1"
+            app:layout_constraintStart_toEndOf="@+id/tan_input_textview_3"
             app:layout_constraintTop_toTopOf="parent"
             tools:text="X" />
 
@@ -72,54 +63,19 @@
             android:id="@+id/tan_input_textview_6"
             style="@style/tanInputDigit"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintEnd_toStartOf="@+id/dash_view_2"
+            app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_7"
             app:layout_constraintStart_toEndOf="@+id/tan_input_textview_5"
             app:layout_constraintTop_toTopOf="parent"
             tools:text="X" />
 
-        <TextView
-            android:id="@+id/dash_view_2"
-            style="@style/tanInputDash"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_7"
-            app:layout_constraintStart_toEndOf="@+id/tan_input_textview_6"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="-" />
-
         <TextView
             android:id="@+id/tan_input_textview_7"
             style="@style/tanInputDigit"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_8"
-            app:layout_constraintStart_toEndOf="@+id/dash_view_2"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="X" />
-
-        <TextView
-            android:id="@+id/tan_input_textview_8"
-            style="@style/tanInputDigit"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_9"
-            app:layout_constraintStart_toEndOf="@+id/tan_input_textview_7"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="X" />
-
-        <TextView
-            android:id="@+id/tan_input_textview_9"
-            style="@style/tanInputDigit"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_10"
-            app:layout_constraintStart_toEndOf="@+id/tan_input_textview_8"
+            app:layout_constraintStart_toEndOf="@+id/tan_input_textview_6"
             app:layout_constraintTop_toTopOf="parent"
             tools:text="X" />
 
-        <TextView
-            android:id="@+id/tan_input_textview_10"
-            style="@style/tanInputDigit"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toEndOf="@+id/tan_input_textview_9"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="X" />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </layout>
diff --git a/Corona-Warn-App/src/main/res/values/dimens.xml b/Corona-Warn-App/src/main/res/values/dimens.xml
index 5b4e9fd4b08861921411429ec398b6c54f955ff9..9bb11cf839181372ca138fb41056d94c623ff1d8 100644
--- a/Corona-Warn-App/src/main/res/values/dimens.xml
+++ b/Corona-Warn-App/src/main/res/values/dimens.xml
@@ -81,10 +81,8 @@
     <!-- Submission Tan Input -->
     <dimen name="submission_tan_input_edittext_size">1dp</dimen>
     <dimen name="submission_tan_input_digit_radius">2dp</dimen>
-    <dimen name="submission_tan_input_digit_width">22dp</dimen>
-    <dimen name="submission_tan_input_digit_height">40dp</dimen>
-    <dimen name="submission_tan_input_dash_width">11dp</dimen>
-    <dimen name="submission_tan_input_dash_height">40dp</dimen>
+    <dimen name="submission_tan_input_digit_width">24dp</dimen>
+    <dimen name="submission_tan_input_digit_height">32dp</dimen>
 
     <!-- Submission QR Code Scan -->
     <dimen name="submission_scan_qr_code_viewfinder_size">240dp</dimen>
diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml
index d920ef01abd6f8a99ec0bcc0678d901af13698c6..c0fce7d608a567e3d241203cca74db7e634cbc15 100644
--- a/Corona-Warn-App/src/main/res/values/strings.xml
+++ b/Corona-Warn-App/src/main/res/values/strings.xml
@@ -2664,13 +2664,9 @@ as modifying the License.
     <!-- XHED: Page title for TAN submission pge -->
     <string name="submission_tan_title">TAN Eingabe</string>
     <!-- YTXT: Body text for the tan submission page -->
-    <string name="submission_tan_body">Geben Sie bitte die 10 Stellen der TAN ein, die Ihnen mitgeteilt wurde.</string>
+    <string name="submission_tan_body">Die TAN ist 7-stellig und Groß- und Kleinschreibung muss beachtet werden.\n\nGeben Sie bitte die Ihnen mitgeteilte TAN ein:</string>
     <!-- XBUT: Submit TAN button -->
     <string name="submission_tan_button_text">Weiter</string>
-    <!-- YTXT: Error text for the tan submission page -->
-    <string name="submission_tan_error">Ungültige TAN, bitte überprüfen Sie Ihre Eingabe.</string>
-    <!-- YTXT: Error text for the tan submission page (wrong characters) -->
-    <string name="submission_tan_character_error">Ungültige Eingabe, bitte überprüfen Sie das Zeichen.</string>
 
     <!-- Submission Intro -->
     <!-- XHED: Page title for menu at the start of the submission process  -->
diff --git a/Corona-Warn-App/src/main/res/values/styles.xml b/Corona-Warn-App/src/main/res/values/styles.xml
index 28523970dfdd25d849e9bc4e5744fda1418d8bd8..263640fb389abd0f4ffd0dbe1a0bf5555229e387 100644
--- a/Corona-Warn-App/src/main/res/values/styles.xml
+++ b/Corona-Warn-App/src/main/res/values/styles.xml
@@ -216,13 +216,6 @@
         <item name="android:gravity">center</item>
     </style>
 
-    <style name="tanInputDash" parent="headline6">
-        <item name="android:layout_width">@dimen/submission_tan_input_dash_width</item>
-        <item name="android:layout_height">@dimen/submission_tan_input_dash_height</item>
-        <item name="android:background">@null</item>
-        <item name="android:gravity">center</item>
-    </style>
-
     <style name="tanInputEdittext">
         <item name="android:layout_width">@dimen/submission_tan_input_edittext_size</item>
         <item name="android:layout_height">@dimen/submission_tan_input_edittext_size</item>
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/SubmissionTanViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/SubmissionTanViewModelTest.kt
deleted file mode 100644
index bf4828f3f34ba21c01774194536095c18a331645..0000000000000000000000000000000000000000
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/submission/SubmissionTanViewModelTest.kt
+++ /dev/null
@@ -1,44 +0,0 @@
-package de.rki.coronawarnapp.ui.submission
-
-import de.rki.coronawarnapp.util.TanHelper
-import org.junit.Test
-import org.junit.Assert.assertFalse
-import org.junit.Assert.assertTrue
-
-class SubmissionTanViewModelTest {
-    private var viewModel: SubmissionTanViewModel = SubmissionTanViewModel()
-
-    @Test
-    fun allCharactersValid() {
-        viewModel.tan.postValue("ABCD")
-        viewModel.tanCharactersValid.value?.let { assertTrue(it) }
-
-        viewModel.tan.postValue("ABCD0")
-        viewModel.tanCharactersValid.value?.let { assertFalse(it) }
-
-    }
-
-    @Test
-    fun tanFormatValid() {
-        viewModel.tan.postValue("ZWFPC7NG47")
-        viewModel.tanCharactersValid.value?.let { assertTrue(it) }
-
-        viewModel.tan.postValue("ABC")
-        viewModel.tanCharactersValid.value?.let { assertFalse(it) }
-
-        viewModel.tan.postValue("ZWFPC7NG48")
-        viewModel.tanCharactersValid.value?.let { assertFalse(it) }
-
-        viewModel.tan.postValue("ZWFPC7NG4A")
-        viewModel.tanCharactersValid.value?.let { assertFalse(it) }
-    }
-
-    @Test
-    fun checksumValid() {
-        viewModel.tan.postValue("ZWFPC7NG47")
-        viewModel.tanCharactersValid.value?.let { assertTrue(it) }
-
-        viewModel.tan.postValue("ZWFPC7NG48")
-        viewModel.tanCharactersValid.value?.let { assertFalse(it) }
-    }
-}
\ No newline at end of file
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/TanHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/TanHelperTest.kt
deleted file mode 100644
index d3c4a11201a9d5db9e242e35ff16964a7ba130ce..0000000000000000000000000000000000000000
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/TanHelperTest.kt
+++ /dev/null
@@ -1,88 +0,0 @@
-package de.rki.coronawarnapp.util
-
-import de.rki.coronawarnapp.service.submission.SubmissionService
-import org.hamcrest.CoreMatchers
-import org.hamcrest.MatcherAssert
-import org.junit.Test
-
-class TanHelperTest {
-
-    @Test
-    fun isValidCharacter() {
-        // valid
-        val validCharacters = arrayOf(
-            "2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H",
-            "J","K","M","N","P","Q","R","S","T","U","V","W","X","Y","Z"
-        )
-        for (character in validCharacters) {
-            MatcherAssert.assertThat(
-                TanHelper.isTanCharacterValid(character),
-                CoreMatchers.equalTo(true)
-            )
-        }
-
-        // invalid
-        val invalidCharacters = arrayOf(
-            "0","1","O","L","I","Ö","*","&","-","a","b",
-            "c","ö","ß","é","."," ","€","(",")",";",","
-        )
-        for (character in invalidCharacters) {
-            MatcherAssert.assertThat(
-                TanHelper.isTanCharacterValid(character),
-                CoreMatchers.equalTo(false)
-            )
-        }
-    }
-
-    @Test
-    fun areCharactersValid() {
-        // valid input strings (not necessarily valid TANs)
-        val validStrings = arrayOf(
-            "ABCD", "2345", "PTPHM35RP4", "AAAAAAAAAA", "BBBBB")
-        for (text in validStrings) {
-            MatcherAssert.assertThat(
-                TanHelper.allCharactersValid(text),
-                CoreMatchers.equalTo(true)
-            )
-        }
-
-        // invalid input strings
-        val invalidStrings = arrayOf(
-            "ABCDÖ", "01234", "PTPHM15RP4", "AAAAAA AAA", "BB.BBB")
-        for (text in invalidStrings) {
-            MatcherAssert.assertThat(
-                TanHelper.allCharactersValid(text),
-                CoreMatchers.equalTo(false)
-            )
-        }
-    }
-
-    @Test
-    fun isChecksumValid() {
-        // valid
-        val validTans = arrayOf(
-            "9A3B578UMG", "DEU7TKSV3H", "PTPHM35RP4", "V923D59AT8", "H9NC5CQ34E")
-        for (tan in validTans) {
-            MatcherAssert.assertThat(
-                TanHelper.isChecksumValid(tan),
-                CoreMatchers.equalTo(true)
-            )
-        }
-
-        // invalid
-        val invalidTans = arrayOf(
-            "DEU7TKSV32", "DEU7TKSV33", "DEU7TKSV34", "DEU7TKSV35",
-            "DEU7TKSV36", "DEU7TKSV37", "DEU7TKSV38", "DEU7TKSV39",
-            "DEU7TKSV3A", "DEU7TKSV3B", "DEU7TKSV3C", "DEU7TKSV3D",
-            "DEU7TKSV3E", "DEU7TKSV3F", "DEU7TKSV3G",
-            " QV5FQ38MA",
-            "9A3B578UM0", "DEU7TKSV31", "Q4XBJCB43", "929B96CA8"
-        )
-        for (tan in invalidTans) {
-            MatcherAssert.assertThat(
-                TanHelper.isChecksumValid(tan),
-                CoreMatchers.equalTo(false)
-            )
-        }
-    }
-}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 6c962032830aa145229e2797f605f4fc43cbf6fb..7c9cabba680f06302785d49399e3e80c16c90cef 100644
--- a/build.gradle
+++ b/build.gradle
@@ -19,7 +19,6 @@ buildscript {
         classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navVersion"
         classpath "org.jlleitschuh.gradle:ktlint-gradle:9.2.1"
         classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.9.1"
-        classpath "com.vanniktech:gradle-android-junit-jacoco-plugin:0.16.0"
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
@@ -29,7 +28,6 @@ buildscript {
 subprojects {
     apply plugin: "io.gitlab.arturbosch.detekt"
     apply plugin: "org.jlleitschuh.gradle.ktlint"
-    apply plugin: "com.vanniktech.android.junit.jacoco"
 
     detekt {
         debug = true
@@ -51,10 +49,6 @@ subprojects {
         ignoreFailures = false
         coloredOutput = false
     }
-
-    junitJacoco {
-        jacocoVersion = '0.8.5'
-    }
 }
 
 allprojects {